From add1bdf43f8b5f953305989196e0796343b68cff Mon Sep 17 00:00:00 2001 From: Orgad Shaneh Date: Thu, 4 Jan 2018 23:35:07 +0200 Subject: [PATCH] Theme: Fix parsing of colors without alpha Use QColor(const QString &) ctor instead of manual parsing. Uncovered by a19005fc38a6659a7008cf56181bfc1a96698300 which made the locator highlighting black. Change-Id: Ic11483613510e3cf97eede396e9b7d53bbc3ff61 Reviewed-by: Alessandro Portale --- share/qtcreator/themes/dark.creatortheme | 4 ++-- share/qtcreator/themes/flat-dark.creatortheme | 4 ++-- share/qtcreator/themes/flat-light.creatortheme | 4 ++-- share/qtcreator/themes/flat.creatortheme | 4 ++-- src/libs/utils/theme/theme.cpp | 16 ++++------------ 5 files changed, 12 insertions(+), 20 deletions(-) diff --git a/share/qtcreator/themes/dark.creatortheme b/share/qtcreator/themes/dark.creatortheme index 0c6e90e838b..4eb8b5bd6e0 100644 --- a/share/qtcreator/themes/dark.creatortheme +++ b/share/qtcreator/themes/dark.creatortheme @@ -103,7 +103,7 @@ MiniProjectTargetSelectorBorderColor=shadowBackground MiniProjectTargetSelectorSummaryBackgroundColor=shadowBackground MiniProjectTargetSelectorTextColor=text PanelStatusBarBackgroundColor=shadowBackground -PanelsWidgetSeparatorLineColor=0 +PanelsWidgetSeparatorLineColor=000000 PanelTextColorDark=text PanelTextColorMid=ffa0a0a0 PanelTextColorLight=text @@ -234,7 +234,7 @@ ToolBarIconShadow=true WindowColorAsBase=false [Gradients] -DetailsWidgetHeaderGradient\1\color=0 +DetailsWidgetHeaderGradient\1\color=000000 DetailsWidgetHeaderGradient\1\pos=1 DetailsWidgetHeaderGradient\size=1 diff --git a/share/qtcreator/themes/flat-dark.creatortheme b/share/qtcreator/themes/flat-dark.creatortheme index 9375141ddc3..fc62d648192 100644 --- a/share/qtcreator/themes/flat-dark.creatortheme +++ b/share/qtcreator/themes/flat-dark.creatortheme @@ -108,7 +108,7 @@ MiniProjectTargetSelectorBorderColor=shadowBackground MiniProjectTargetSelectorSummaryBackgroundColor=shadowBackground MiniProjectTargetSelectorTextColor=fancyBarsNormalTextColor PanelStatusBarBackgroundColor=shadowBackground -PanelsWidgetSeparatorLineColor=0 +PanelsWidgetSeparatorLineColor=000000 PanelTextColorDark=text PanelTextColorMid=ffa0a0a0 PanelTextColorLight=text @@ -239,6 +239,6 @@ ToolBarIconShadow=true WindowColorAsBase=false [Gradients] -DetailsWidgetHeaderGradient\1\color=0 +DetailsWidgetHeaderGradient\1\color=000000 DetailsWidgetHeaderGradient\1\pos=1 DetailsWidgetHeaderGradient\size=1 diff --git a/share/qtcreator/themes/flat-light.creatortheme b/share/qtcreator/themes/flat-light.creatortheme index 4460fd72d1e..0dc43e72143 100644 --- a/share/qtcreator/themes/flat-light.creatortheme +++ b/share/qtcreator/themes/flat-light.creatortheme @@ -106,7 +106,7 @@ MiniProjectTargetSelectorBorderColor=shadowBackground MiniProjectTargetSelectorSummaryBackgroundColor=shadowBackground MiniProjectTargetSelectorTextColor=fancyBarsNormalTextColor PanelStatusBarBackgroundColor=shadowBackground -PanelsWidgetSeparatorLineColor=0 +PanelsWidgetSeparatorLineColor=000000 PanelTextColorDark=text PanelTextColorMid=ff666666 PanelTextColorLight=fancyBarsNormalTextColor @@ -216,6 +216,6 @@ ToolBarIconShadow=false WindowColorAsBase=false [Gradients] -DetailsWidgetHeaderGradient\1\color=0 +DetailsWidgetHeaderGradient\1\color=000000 DetailsWidgetHeaderGradient\1\pos=1 DetailsWidgetHeaderGradient\size=1 diff --git a/share/qtcreator/themes/flat.creatortheme b/share/qtcreator/themes/flat.creatortheme index e98999056ac..a0f021e7887 100644 --- a/share/qtcreator/themes/flat.creatortheme +++ b/share/qtcreator/themes/flat.creatortheme @@ -104,7 +104,7 @@ MiniProjectTargetSelectorBorderColor=shadowBackground MiniProjectTargetSelectorSummaryBackgroundColor=shadowBackground MiniProjectTargetSelectorTextColor=fancyBarsNormalTextColor PanelStatusBarBackgroundColor=shadowBackground -PanelsWidgetSeparatorLineColor=0 +PanelsWidgetSeparatorLineColor=000000 PanelTextColorDark=text PanelTextColorMid=ff666666 PanelTextColorLight=fancyBarsNormalTextColor @@ -214,6 +214,6 @@ ToolBarIconShadow=true WindowColorAsBase=false [Gradients] -DetailsWidgetHeaderGradient\1\color=0 +DetailsWidgetHeaderGradient\1\color=000000 DetailsWidgetHeaderGradient\1\pos=1 DetailsWidgetHeaderGradient\size=1 diff --git a/src/libs/utils/theme/theme.cpp b/src/libs/utils/theme/theme.cpp index 7a4227cd751..149b48863b9 100644 --- a/src/libs/utils/theme/theme.cpp +++ b/src/libs/utils/theme/theme.cpp @@ -133,13 +133,12 @@ QPair Theme::readNamedColor(const QString &color) const if (color == QLatin1String("style")) return qMakePair(QColor(), QString()); - bool ok = true; - const QRgb rgba = color.toLongLong(&ok, 16); - if (!ok) { + const QColor col('#' + color); + if (!col.isValid()) { qWarning("Color \"%s\" is neither a named color nor a valid color", qPrintable(color)); return qMakePair(Qt::black, QString()); } - return qMakePair(QColor::fromRgba(rgba), QString()); + return qMakePair(col, QString()); } QString Theme::filePath() const @@ -157,13 +156,6 @@ void Theme::setDisplayName(const QString &name) d->displayName = name; } -static QColor readColor(const QString &color) -{ - bool ok = true; - const QRgb rgba = color.toLongLong(&ok, 16); - return QColor::fromRgba(rgba); -} - void Theme::readSettings(QSettings &settings) { d->fileName = settings.fileName(); @@ -218,7 +210,7 @@ void Theme::readSettings(QSettings &settings) QTC_ASSERT(settings.contains(QLatin1String("pos")), return);; double pos = settings.value(QLatin1String("pos")).toDouble(); QTC_ASSERT(settings.contains(QLatin1String("color")), return);; - QColor c = readColor(settings.value(QLatin1String("color")).toString()); + const QColor c('#' + settings.value(QLatin1String("color")).toString()); stops.append(qMakePair(pos, c)); } settings.endArray();