MythTV  master
stringutil.h
Go to the documentation of this file.
1 #ifndef STRINGUTIL_H_
2 #define STRINGUTIL_H_
3 
4 #if __has_include(<format>) // C++20
5 #include <format>
6 #endif
7 
8 #include <QByteArray>
9 #include <QString>
10 
11 #include "mythbaseexp.h"
12 
13 namespace StringUtil
14 {
15 MBASE_PUBLIC bool isValidUTF8(const QByteArray &data);
16 
24 inline QString intToPaddedString(int n, int width = 2)
25 {
26 #ifdef __cpp_lib_format // C++20 with <format>
27  return QString::fromStdString(std::format("{:0{}d}", n, width));
28 #else
29  return QString("%1").arg(n, width, 10, QChar('0'));
30 #endif // __cpp_lib_format
31 }
32 
33 inline QString indentSpaces(unsigned int level, unsigned int size = 4)
34 {
35  return {static_cast<int>(level * size), QChar(' ')};
36 }
37 
41 inline QString bool_to_string(bool val)
42 {
43  return (val) ? QStringLiteral("true") : QStringLiteral("false");
44 }
45 
47 int naturalCompare(const QString &_a, const QString &_b,
48  Qt::CaseSensitivity caseSensitivity = Qt::CaseSensitive);
49 
54 inline bool naturalSortCompare(const QString &a, const QString &b,
55  Qt::CaseSensitivity caseSensitivity = Qt::CaseSensitive)
56 {
57  return naturalCompare(a, b, caseSensitivity) < 0;
58 }
59 
60 MBASE_PUBLIC QString formatKBytes(int64_t sizeKB, int prec=1);
61 MBASE_PUBLIC QString formatBytes(int64_t sizeB, int prec=1);
62 
63 } // namespace StringUtil
64 
65 #endif // STRINGUTIL_H_
StringUtil::naturalSortCompare
bool naturalSortCompare(const QString &a, const QString &b, Qt::CaseSensitivity caseSensitivity=Qt::CaseSensitive)
naturalCompare as a std::sort compatible function (ignoring the third parameter, which is never used)...
Definition: stringutil.h:54
mythbaseexp.h
StringUtil::indentSpaces
QString indentSpaces(unsigned int level, unsigned int size=4)
Definition: stringutil.h:33
MBASE_PUBLIC
#define MBASE_PUBLIC
Definition: mythbaseexp.h:15
StringUtil::naturalCompare
MBASE_PUBLIC int naturalCompare(const QString &_a, const QString &_b, Qt::CaseSensitivity caseSensitivity=Qt::CaseSensitive)
This method chops the input a and b into pieces of digits and non-digits (a1.05 becomes a | 1 | .
Definition: stringutil.cpp:160
StringUtil::intToPaddedString
QString intToPaddedString(int n, int width=2)
Creates a zero padded string representation of an integer.
Definition: stringutil.h:24
StringUtil::formatKBytes
MBASE_PUBLIC QString formatKBytes(int64_t sizeKB, int prec=1)
Definition: stringutil.cpp:357
StringUtil::isValidUTF8
MBASE_PUBLIC bool isValidUTF8(const QByteArray &data)
Definition: stringutil.cpp:47
StringUtil
Definition: stringutil.h:13
StringUtil::formatBytes
MBASE_PUBLIC QString formatBytes(int64_t sizeB, int prec=1)
Definition: stringutil.cpp:378
StringUtil::bool_to_string
QString bool_to_string(bool val)
This is equivalent to QVariant(bool).toString()
Definition: stringutil.h:41