Theme: Fix parsing of colors without alpha

Use QColor(const QString &) ctor instead of manual parsing.

Uncovered by a19005fc38 which made the
locator highlighting black.

Change-Id: Ic11483613510e3cf97eede396e9b7d53bbc3ff61
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
Orgad Shaneh
2018-01-04 23:35:07 +02:00
committed by Orgad Shaneh
parent b74fdc2e74
commit add1bdf43f
5 changed files with 12 additions and 20 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -133,13 +133,12 @@ QPair<QColor, QString> 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();