diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-09-10 13:05:02 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-09-23 17:01:29 +0200 |
commit | 7c1f94f387ade061eae46e549e1f04a70234b68e (patch) | |
tree | f61697bf47e7bc34b9c3cc394b77721be7a6b805 | |
parent | df4cbaf8dc59a5c62ad82a56de8e3596bfecebcd (diff) |
Fix Qt6 todo in qcssparser
Colors with wrong number of elements are now invalid.
Change-Id: I32c934894de86095d9790baa5f0d2001d76bcd3c
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
-rw-r--r-- | src/gui/text/qcssparser.cpp | 9 | ||||
-rw-r--r-- | tests/auto/gui/text/qcssparser/tst_qcssparser.cpp | 5 |
2 files changed, 8 insertions, 6 deletions
diff --git a/src/gui/text/qcssparser.cpp b/src/gui/text/qcssparser.cpp index f67c0f485a..24ad9d5092 100644 --- a/src/gui/text/qcssparser.cpp +++ b/src/gui/text/qcssparser.cpp @@ -770,11 +770,14 @@ static ColorData parseColorValue(QCss::Value v) if (tokenCount < 5) return ColorData(); - // ### Qt6: replace this with a check and return invalid color when token count does not match - if (hasAlpha && tokenCount != 7) + if (hasAlpha && tokenCount != 7) { qWarning("QCssParser::parseColorValue: Specified color with alpha value but no alpha given: '%s'", qPrintable(lst.join(QLatin1Char(' ')))); - if (!hasAlpha && tokenCount != 5) + return ColorData(); + } + if (!hasAlpha && tokenCount != 5) { qWarning("QCssParser::parseColorValue: Specified color without alpha value but alpha given: '%s'", qPrintable(lst.join(QLatin1Char(' ')))); + return ColorData(); + } int v1 = colorDigits.at(0).variant.toInt(); int v2 = colorDigits.at(2).variant.toInt(); diff --git a/tests/auto/gui/text/qcssparser/tst_qcssparser.cpp b/tests/auto/gui/text/qcssparser/tst_qcssparser.cpp index 0c7e53b4fa..937e7c2acd 100644 --- a/tests/auto/gui/text/qcssparser/tst_qcssparser.cpp +++ b/tests/auto/gui/text/qcssparser/tst_qcssparser.cpp @@ -860,9 +860,8 @@ void tst_QCssParser::colorValue_data() QTest::newRow("role2") << "color: palette( window-text ) " << qApp->palette().color(QPalette::WindowText); QTest::newRow("transparent") << "color: transparent" << QColor(Qt::transparent); - // ### Qt6: no longer valid - QTest::newRow("rgb-invalid") << "color: rgb(10, 20, 30, 40)" << QColor(10, 20, 30, 40); - QTest::newRow("rgba-invalid") << "color: rgba(10, 20, 30)" << QColor(10, 20, 30, 255); + QTest::newRow("rgb-invalid") << "color: rgb(10, 20, 30, 40)" << QColor(); + QTest::newRow("rgba-invalid") << "color: rgba(10, 20, 30)" << QColor(); } void tst_QCssParser::colorValue() |