23 #ifndef __STRINGS_HPP_
24 #define __STRINGS_HPP_
30 #include <QtContainerFwd>
35 #if QT_VERSION < QT_VERSION_CHECK(5, 14, 0)
39 constexpr
auto KeepEmptyParts = QString::KeepEmptyParts;
40 constexpr
auto SkipEmptyParts = QString::SkipEmptyParts;
45 #define ESCAPE_COLOR_CHAR '\034'
57 static QString colorizeString(
const QString &str,
int def=4);
65 static QStringList combineManyPaths(
const QStringList &fronts,
const QString &pathEnd);
84 static QString combinePaths(QString pathFront, QString pathEnd);
91 static QString createRandomAlphaNumericString(
unsigned numChars);
92 static QString createRandomAlphaNumericStringWithNewLines(
unsigned numCharsPerLine,
unsigned numLines);
97 static const QString &escape(QString &str);
105 static QString formatDataAmount(qint64 bytes);
116 static QString formatDataSpeed(
float speedInBytesPerSecond);
129 static QString formatTime(
float seconds);
131 static bool isCharOnCharList(
char c,
const QString& charList);
140 static QString normalizePath(QString path);
145 static QByteArray readUntilByte(QDataStream& stream,
unsigned char stopByte);
156 static void translateServerAddress(
const QString& addressString, QString& hostname,
unsigned short& port,
const QString& defaultAddress);
158 static const QString &unescape(QString &str);
167 static bool isUrlSafe(
const QString& url);
169 static QString timestamp(
const QString& format);
170 static QString& trim(QString& str,
const QString& charList) {
return trimr(triml(str, charList), charList); }
171 static QString& trimr(QString& str,
const QString& charList);
172 static QString& triml(QString& str,
const QString& charList);
185 static QString wrapUrlsWithHtmlATags(
const QString& str);
196 static const unsigned RANDOM_CHAR_POOL_SIZE = 36;
197 static const char RANDOM_CHAR_POOL[RANDOM_CHAR_POOL_SIZE];
200 static float scaleDataUnit(
float bytes, DataUnit& outUnit);