X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fuisupport%2Fqssparser.cpp;h=495adc5c3aa277c2e57f84f9813a848e6f34ed82;hp=61679d9505883f3975fa8b60afdd7453f4f6c1ee;hb=8582c2ad5708a1972c85bea1cf8d81ad3ece4814;hpb=98144aaad0cd747f186edcd0e36a1d67326ac766 diff --git a/src/uisupport/qssparser.cpp b/src/uisupport/qssparser.cpp index 61679d95..495adc5c 100644 --- a/src/uisupport/qssparser.cpp +++ b/src/uisupport/qssparser.cpp @@ -82,7 +82,7 @@ void QssParser::processStyleSheet(QString &ss) return; // Remove C-style comments /* */ or // - static QRegExp commentRx("(//.*(\\n|$)|/\\*.*\\*/)"); + static QRegExp commentRx(R"((//.*(\n|$)|/\*.*\*/))"); commentRx.setMinimal(true); ss.remove(commentRx); @@ -200,7 +200,7 @@ std::pair QssParser::parseFormatType const std::pair invalid{FormatType::Invalid, MessageLabel::None}; - static const QRegExp rx("ChatLine(?:::(\\w+))?(?:#([\\w\\-]+))?(?:\\[([=-,\\\"\\w\\s]+)\\])?"); + static const QRegExp rx(R"(ChatLine(?:::(\w+))?(?:#([\w\-]+))?(?:\[([=-,\"\w\s]+)\])?)"); // $1: subelement; $2: msgtype; $3: conditionals if (!rx.exactMatch(decl)) { qWarning() << Q_FUNC_INFO << tr("Invalid block declaration: %1").arg(decl); @@ -279,7 +279,7 @@ std::pair QssParser::parseFormatType } // Next up: conditional (formats, labels, nickhash) - static const QRegExp condRx("\\s*([\\w\\-]+)\\s*=\\s*\"(\\w+)\"\\s*"); + static const QRegExp condRx(R"lit(\s*([\w\-]+)\s*=\s*"(\w+)"\s*)lit"); if (!conditions.isEmpty()) { foreach(const QString &cond, conditions.split(',', QString::SkipEmptyParts)) { if (!condRx.exactMatch(cond)) { @@ -359,7 +359,7 @@ UiStyle::ItemFormatType QssParser::parseItemFormatType(const QString &decl) { using ItemFormatType = UiStyle::ItemFormatType; - static const QRegExp rx("(Chat|Nick)ListItem(?:\\[([=-,\\\"\\w\\s]+)\\])?"); + static const QRegExp rx(R"((Chat|Nick)ListItem(?:\[([=-,\"\w\s]+)\])?)"); // $1: item type; $2: properties if (!rx.exactMatch(decl)) { qWarning() << Q_FUNC_INFO << tr("Invalid block declaration: %1").arg(decl); @@ -374,7 +374,7 @@ UiStyle::ItemFormatType QssParser::parseItemFormatType(const QString &decl) QString type, state; if (!properties.isEmpty()) { QHash props; - static const QRegExp propRx("\\s*([\\w\\-]+)\\s*=\\s*\"([\\w\\-]+)\"\\s*"); + static const QRegExp propRx(R"lit(\s*([\w\-]+)\s*=\s*"([\w\-]+)"\s*)lit"); foreach(const QString &prop, properties.split(',', QString::SkipEmptyParts)) { if (!propRx.exactMatch(prop)) { qWarning() << Q_FUNC_INFO << tr("Invalid proplist %1").arg(prop); @@ -539,7 +539,7 @@ QBrush QssParser::parseBrush(const QString &str, bool *ok) // [0-9] Match any digit from 0-9 // Note that '\' must be escaped as '\\' // Helpful interactive website for debugging and explaining: https://regex101.com/ - static const QRegExp rx("palette\\s*\\(\\s*([a-z-0-9]+)\\s*\\)"); + static const QRegExp rx(R"(palette\s*\(\s*([a-z-0-9]+)\s*\))"); if (!rx.exactMatch(str)) { qWarning() << Q_FUNC_INFO << tr("Invalid palette color role specification: %1").arg(str); return QBrush(); @@ -552,8 +552,8 @@ QBrush QssParser::parseBrush(const QString &str, bool *ok) return QBrush(); } else if (str.startsWith("qlineargradient")) { - static const QString rxFloat("\\s*(-?\\s*[0-9]*\\.?[0-9]+)\\s*"); - static const QRegExp rx(QString("qlineargradient\\s*\\(\\s*x1:%1,\\s*y1:%1,\\s*x2:%1,\\s*y2:%1,(.+)\\)").arg(rxFloat)); + static const QString rxFloat(R"(\s*(-?\s*[0-9]*\.?[0-9]+)\s*)"); + static const QRegExp rx(QString(R"(qlineargradient\s*\(\s*x1:%1,\s*y1:%1,\s*x2:%1,\s*y2:%1,(.+)\))").arg(rxFloat)); if (!rx.exactMatch(str)) { qWarning() << Q_FUNC_INFO << tr("Invalid gradient declaration: %1").arg(str); return QBrush(); @@ -575,8 +575,8 @@ QBrush QssParser::parseBrush(const QString &str, bool *ok) return QBrush(gradient); } else if (str.startsWith("qconicalgradient")) { - static const QString rxFloat("\\s*(-?\\s*[0-9]*\\.?[0-9]+)\\s*"); - static const QRegExp rx(QString("qconicalgradient\\s*\\(\\s*cx:%1,\\s*cy:%1,\\s*angle:%1,(.+)\\)").arg(rxFloat)); + static const QString rxFloat(R"(\s*(-?\s*[0-9]*\.?[0-9]+)\s*)"); + static const QRegExp rx(QString(R"(qconicalgradient\s*\(\s*cx:%1,\s*cy:%1,\s*angle:%1,(.+)\))").arg(rxFloat)); if (!rx.exactMatch(str)) { qWarning() << Q_FUNC_INFO << tr("Invalid gradient declaration: %1").arg(str); return QBrush(); @@ -597,8 +597,8 @@ QBrush QssParser::parseBrush(const QString &str, bool *ok) return QBrush(gradient); } else if (str.startsWith("qradialgradient")) { - static const QString rxFloat("\\s*(-?\\s*[0-9]*\\.?[0-9]+)\\s*"); - static const QRegExp rx(QString("qradialgradient\\s*\\(\\s*cx:%1,\\s*cy:%1,\\s*radius:%1,\\s*fx:%1,\\s*fy:%1,(.+)\\)").arg(rxFloat)); + static const QString rxFloat(R"(\s*(-?\s*[0-9]*\.?[0-9]+)\s*)"); + static const QRegExp rx(QString(R"(qradialgradient\s*\(\s*cx:%1,\s*cy:%1,\s*radius:%1,\s*fx:%1,\s*fy:%1,(.+)\))").arg(rxFloat)); if (!rx.exactMatch(str)) { qWarning() << Q_FUNC_INFO << tr("Invalid gradient declaration: %1").arg(str); return QBrush(); @@ -666,7 +666,7 @@ QColor QssParser::parseColor(const QString &str) QssParser::ColorTuple QssParser::parseColorTuple(const QString &str) { ColorTuple result; - static const QRegExp rx("\\(((\\s*[0-9]{1,3}%?\\s*)(,\\s*[0-9]{1,3}%?\\s*)*)\\)"); + static const QRegExp rx(R"(\(((\s*[0-9]{1,3}%?\s*)(,\s*[0-9]{1,3}%?\s*)*)\))"); if (!rx.exactMatch(str.trimmed())) { return ColorTuple(); } @@ -696,7 +696,7 @@ QGradientStops QssParser::parseGradientStops(const QString &str_) QString str = str_; QGradientStops result; static const QString rxFloat("(0?\\.[0-9]+|[01])"); // values between 0 and 1 - static const QRegExp rx(QString("\\s*,?\\s*stop:\\s*(%1)\\s+([^:]+)(,\\s*stop:|$)").arg(rxFloat)); + static const QRegExp rx(QString(R"(\s*,?\s*stop:\s*(%1)\s+([^:]+)(,\s*stop:|$))").arg(rxFloat)); int idx; while ((idx = rx.indexIn(str)) == 0) { qreal x = rx.cap(1).toDouble();