From e4e1613b0fe741aa6330810560bedf71b25e0e4c Mon Sep 17 00:00:00 2001 From: Filip Fila Date: Mon, 2 Dec 2019 23:06:58 +0100 Subject: [PATCH] [PC3 ToolButton] Have the label take into account complementary color schemes Summary: We've ported the SDDM theme to PC3 and now have black labels in PC3 ToolButtons (keyboard and session button). The SDDM theme uses a complementary color scheme, which is something the PC2 ToolButton respects and turns the labels white. Therefore I just copy pasted PC2's label color code to its PC3 counterpart. BUG: 414929 FIXED-IN: 5.66 Test Plan: ``` import QtQuick 2.13 import org.kde.plasma.components 3.0 as PlasmaComponents import org.kde.plasma.core 2.0 as PlasmaCore PlasmaCore.ColorScope { colorGroup: PlasmaCore.Theme.ComplementaryColorGroup Rectangle { height: 80 width: 100 color: "red" PlasmaComponents.ToolButton{ anchors.fill: parent text: "sup" } } } ``` The label was white instead of black. Reviewers: #plasma, ngraham, davidedmundson Reviewed By: #plasma, ngraham, davidedmundson Subscribers: mart, davidedmundson, fvogt, kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D25699 --- src/declarativeimports/plasmacomponents3/ToolButton.qml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/declarativeimports/plasmacomponents3/ToolButton.qml b/src/declarativeimports/plasmacomponents3/ToolButton.qml index 84d158f0d..bdf2c9def 100644 --- a/src/declarativeimports/plasmacomponents3/ToolButton.qml +++ b/src/declarativeimports/plasmacomponents3/ToolButton.qml @@ -56,13 +56,20 @@ T.ToolButton { colorGroup: PlasmaCore.ColorScope.colorGroup source: control.icon ? (control.icon.name || control.icon.source) : "" } + //NOTE: this is used only to check element's existence + PlasmaCore.FrameSvgItem { + id: buttonsurfaceChecker + visible: false + imagePath: "widgets/button" + prefix: control.flat ? ["toolbutton-hover", "normal"] : "normal" + } Label { Layout.fillWidth: true visible: text.length > 0 text: control.Kirigami.MnemonicData.richTextLabel font: control.font opacity: enabled || control.highlighted || control.checked ? 1 : 0.4 - color: theme.buttonTextColor + color: (control.hovered || !control.flat) && buttonsurfaceChecker.usedPrefix != "toolbutton-hover" ? theme.buttonTextColor : PlasmaCore.ColorScope.textColor horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter elide: Text.ElideRight