forked from openkylin/qt5-ukui-platformtheme
支持设置任意色为高亮色
This commit is contained in:
parent
9346a089f0
commit
55975ef73f
|
@ -63,7 +63,7 @@
|
||||||
<key type="s" name="theme-color">
|
<key type="s" name="theme-color">
|
||||||
<default>"daybreakBlue"</default>
|
<default>"daybreakBlue"</default>
|
||||||
<summary> theme color</summary>
|
<summary> theme color</summary>
|
||||||
<description>Set theme color for UKUI desktop environment.include default,daybreakBlue,jamPurple,magenta,sunRed,sunsetOrange,dustGold,polarGreen</description>
|
<description>Set theme color for UKUI desktop environment.include default,daybreakBlue,jamPurple,magenta,sunRed,sunsetOrange,dustGold,polarGreen, and using rgba for example "(125,125,125)" </description>
|
||||||
</key>
|
</key>
|
||||||
<key type="b" name="cursor-blink">
|
<key type="b" name="cursor-blink">
|
||||||
<default>true</default>
|
<default>true</default>
|
||||||
|
|
|
@ -724,7 +724,61 @@ QPalette UKUIConfigStyle::standardPalette() const
|
||||||
if (auto settings = UKUIStyleSettings::globalInstance()) {
|
if (auto settings = UKUIStyleSettings::globalInstance()) {
|
||||||
QString themeColor = settings->get("themeColor").toString();
|
QString themeColor = settings->get("themeColor").toString();
|
||||||
themeColor = settings->get("theme-color").toString();
|
themeColor = settings->get("theme-color").toString();
|
||||||
setThemeColor(themeColor, palette);
|
|
||||||
|
QColor color = palette.color(QPalette::Active, QPalette::Highlight);
|
||||||
|
if (themeColor == "default") {
|
||||||
|
|
||||||
|
} else if (themeColor == "daybreakBlue") {
|
||||||
|
color = QColor(55, 144, 250);
|
||||||
|
} else if (themeColor == "jamPurple") {
|
||||||
|
color = QColor(120, 115, 245);
|
||||||
|
} else if (themeColor == "magenta") {
|
||||||
|
color = QColor(235, 48, 150);
|
||||||
|
} else if (themeColor == "sunRed") {
|
||||||
|
color = QColor(243, 34, 45);
|
||||||
|
} else if (themeColor == "sunsetOrange") {
|
||||||
|
color = QColor(246, 140, 39);
|
||||||
|
} else if (themeColor == "dustGold") {
|
||||||
|
color = QColor(249, 197, 61);
|
||||||
|
} else if (themeColor == "polarGreen") {
|
||||||
|
color = QColor(82, 196, 41);
|
||||||
|
}
|
||||||
|
else if(!themeColor.isEmpty() && themeColor.startsWith("(") && themeColor.endsWith(")")){
|
||||||
|
QColor c = color;
|
||||||
|
QString colorStr = themeColor;
|
||||||
|
colorStr = colorStr.remove(colorStr.length() - 1, 1);
|
||||||
|
colorStr = colorStr.remove(0, 1);
|
||||||
|
QStringList list = colorStr.split(",");
|
||||||
|
if (list.length() == 3 || list.length() == 4) {
|
||||||
|
c.setRed(list[0].toInt());
|
||||||
|
c.setGreen(list[1].toInt());
|
||||||
|
c.setBlue(list[2].toInt());
|
||||||
|
if (list.length() == 4) {
|
||||||
|
QStringList alphaList = QString(list[3]).split("*");
|
||||||
|
if (alphaList.length() == 2) {
|
||||||
|
if (alphaList[0].toFloat() == 255.0)
|
||||||
|
c.setAlphaF(alphaList[1].toFloat());
|
||||||
|
else if (alphaList[1].toFloat() == 255.0)
|
||||||
|
c.setAlphaF(alphaList[0].toFloat());
|
||||||
|
else
|
||||||
|
c.setAlphaF(alphaList[0].toFloat() * alphaList[1].toFloat() / 255.0);
|
||||||
|
|
||||||
|
} else if (alphaList.length() == 1) {
|
||||||
|
if(alphaList[0].toFloat() <= 1.0)
|
||||||
|
c.setAlphaF(alphaList[0].toFloat());
|
||||||
|
else
|
||||||
|
c.setAlpha(alphaList[0].toInt());
|
||||||
|
} else
|
||||||
|
c.setAlphaF(1.0);
|
||||||
|
}
|
||||||
|
}/* else if (list.length() == 1 && list[0].startsWith("#")) {
|
||||||
|
c = list[0];
|
||||||
|
}*/
|
||||||
|
|
||||||
|
color = c;
|
||||||
|
}
|
||||||
|
|
||||||
|
setThemeColor(color, palette);
|
||||||
sp->setUKUIThemeColor(themeColor);
|
sp->setUKUIThemeColor(themeColor);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -823,32 +877,10 @@ QColor UKUIConfigStyle::highLight_Hover(const QStyleOption *option) const
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void UKUIConfigStyle::setThemeColor(QString themeColor, QPalette &palette) const
|
void UKUIConfigStyle::setThemeColor(QColor color, QPalette &palette) const
|
||||||
{
|
{
|
||||||
if (themeColor == "default") {
|
palette.setColor(QPalette::Active, QPalette::Highlight, color);
|
||||||
|
palette.setColor(QPalette::Inactive, QPalette::Highlight, color);
|
||||||
} else if (themeColor == "daybreakBlue") {
|
|
||||||
palette.setColor(QPalette::Active, QPalette::Highlight, QColor(55, 144, 250));
|
|
||||||
palette.setColor(QPalette::Inactive, QPalette::Highlight, QColor(55, 144, 250));
|
|
||||||
} else if (themeColor == "jamPurple") {
|
|
||||||
palette.setColor(QPalette::Active, QPalette::Highlight, QColor(120, 115, 245));
|
|
||||||
palette.setColor(QPalette::Inactive, QPalette::Highlight, QColor(120, 115, 245));
|
|
||||||
} else if (themeColor == "magenta") {
|
|
||||||
palette.setColor(QPalette::Active, QPalette::Highlight, QColor(235, 48, 150));
|
|
||||||
palette.setColor(QPalette::Inactive, QPalette::Highlight, QColor(235, 48, 150));
|
|
||||||
} else if (themeColor == "sunRed") {
|
|
||||||
palette.setColor(QPalette::Active, QPalette::Highlight, QColor(243, 34, 45));
|
|
||||||
palette.setColor(QPalette::Inactive, QPalette::Highlight, QColor(243, 34, 45));
|
|
||||||
} else if (themeColor == "sunsetOrange") {
|
|
||||||
palette.setColor(QPalette::Active, QPalette::Highlight, QColor(246, 140, 39));
|
|
||||||
palette.setColor(QPalette::Inactive, QPalette::Highlight, QColor(246, 140, 39));
|
|
||||||
} else if (themeColor == "dustGold") {
|
|
||||||
palette.setColor(QPalette::Active, QPalette::Highlight, QColor(249, 197, 61));
|
|
||||||
palette.setColor(QPalette::Inactive, QPalette::Highlight, QColor(249, 197, 61));
|
|
||||||
} else if (themeColor == "polarGreen") {
|
|
||||||
palette.setColor(QPalette::Active, QPalette::Highlight, QColor(82, 196, 41));
|
|
||||||
palette.setColor(QPalette::Inactive, QPalette::Highlight, QColor(82, 196, 41));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void UKUIConfigStyle::updateTabletModeValue(bool isTabletMode)
|
void UKUIConfigStyle::updateTabletModeValue(bool isTabletMode)
|
||||||
|
|
|
@ -159,7 +159,7 @@ private:
|
||||||
QColor highLight_Click(const QStyleOption *option) const;
|
QColor highLight_Click(const QStyleOption *option) const;
|
||||||
QColor highLight_Hover(const QStyleOption *option) const;
|
QColor highLight_Hover(const QStyleOption *option) const;
|
||||||
|
|
||||||
void setThemeColor(QString themeColor, QPalette &palette) const;
|
void setThemeColor(QColor color, QPalette &palette) const;
|
||||||
|
|
||||||
// view
|
// view
|
||||||
QString calculateElidedText(const QString &text, const QTextOption &textOption,
|
QString calculateElidedText(const QString &text, const QTextOption &textOption,
|
||||||
|
|
Loading…
Reference in New Issue