shift-shell/components/mobileshell/qml/actiondrawer/private/QuickSettingsFullDelegate.qml
Devin Lin e196a91c8b actiondrawer: Use contextually correct colors and dark background at all times
This commit changes the action drawer colorsets to be contextually correct. The panel background would use the window background colors (instead of the view ones), and quicksettings delegates would use colors from the Button color set (rather than the view).

This also changes the background scrim to always be dark even in light mode. I think this is important to do because we have two views (notifications, and quick settings), which currently don't have much in the way of colours to distinguish the two. 

This commit also makes some changes to the notifications widget in order for its card foreground to be the standard theme colors.

![image](/uploads/b4e42984da926bc266d6c53d59a323b7/image.png){width=200}
![image](/uploads/4dc71502cdf85b5cbf6a2497a2384939/image.png){width=200}
![image](/uploads/ebd2d57ed46161ec8bb240a36c7069e7/image.png){width=300}

![image](/uploads/99656ee4cc322ee7412d7aef1c696893/image.png){width=200}
![image](/uploads/c0521a64069077fbe7e44b23159227e7/image.png){width=200}
![image](/uploads/6567a1bf42092d914a56d03ac5d7be54/image.png){width=300}
2025-09-18 09:29:53 -04:00

107 lines
3.2 KiB
QML

/*
* SPDX-FileCopyrightText: 2015 Marco Martin <notmart@gmail.com>
* SPDX-FileCopyrightText: 2021 Devin Lin <devin@kde.org>
*
* SPDX-License-Identifier: LGPL-2.0-or-later
*/
import QtQuick 2.15
import QtQuick.Layouts 1.1
import org.kde.kirigami 2.12 as Kirigami
import org.kde.plasma.core as PlasmaCore
import org.kde.plasma.private.mobileshell as MobileShell
import org.kde.plasma.private.mobileshell.shellsettingsplugin as ShellSettings
import org.kde.plasma.components 3.0 as PlasmaComponents
QuickSettingsDelegate {
id: root
padding: Kirigami.Units.smallSpacing * 2
iconItem: icon
// scale animation on press
zoomScale: (ShellSettings.Settings.animationsEnabled && mouseArea.pressed) ? 0.9 : 1
background: Item {
// very simple shadow for performance
Rectangle {
anchors.top: parent.top
anchors.topMargin: 1
anchors.left: parent.left
anchors.right: parent.right
height: parent.height
radius: Kirigami.Units.cornerRadius
color: Qt.rgba(0, 0, 0, 0.075)
}
// background color
Rectangle {
anchors.fill: parent
radius: Kirigami.Units.cornerRadius
border.pixelAligned: false
border.width: 1
border.color: root.enabled ? root.enabledButtonBorderColor : root.disabledButtonBorderColor
color: {
if (root.enabled) {
return mouseArea.pressed ? root.enabledButtonPressedColor : root.enabledButtonColor
} else {
return mouseArea.pressed ? root.disabledButtonPressedColor : root.disabledButtonColor
}
}
}
}
MobileShell.HapticsEffect {
id: haptics
}
contentItem: MouseArea {
id: mouseArea
onPressed: haptics.buttonVibrate()
onClicked: root.delegateClick()
onPressAndHold: {
haptics.buttonVibrate();
root.delegatePressAndHold();
}
cursorShape: Qt.PointingHandCursor
Kirigami.Icon {
id: icon
anchors.top: parent.top
anchors.left: parent.left
implicitWidth: Kirigami.Units.iconSizes.small
implicitHeight: width
source: root.icon
}
ColumnLayout {
id: column
spacing: Kirigami.Units.smallSpacing
anchors.right: parent.right
anchors.left: parent.left
anchors.bottom: parent.bottom
MobileShell.MarqueeLabel {
Layout.fillWidth: true
inputText: root.text
font.pointSize: Kirigami.Theme.defaultFont.pointSize * 0.75 // TODO base height off of size of delegate
font.weight: Font.Bold
}
MobileShell.MarqueeLabel {
// if no status is given, just use On/Off
inputText: root.status ? root.status : (root.enabled ? i18n("On") : i18n("Off"))
opacity: 0.6
Layout.fillWidth: true
font.pointSize: Kirigami.Theme.defaultFont.pointSize * 0.75
}
}
}
}