mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-01-30 08:22:51 -05:00
standardize some opacity colors
This commit is contained in:
@@ -358,6 +358,50 @@ Singleton {
|
|||||||
property color warning: "#FF9800"
|
property color warning: "#FF9800"
|
||||||
property color info: "#2196F3"
|
property color info: "#2196F3"
|
||||||
property color error: "#F2B8B5"
|
property color error: "#F2B8B5"
|
||||||
|
|
||||||
|
// Common alpha color variants for consistency
|
||||||
|
// Primary colors with alpha
|
||||||
|
property color primaryHover: Qt.rgba(primary.r, primary.g, primary.b, 0.12)
|
||||||
|
property color primaryHoverLight: Qt.rgba(primary.r, primary.g, primary.b, 0.08)
|
||||||
|
property color primaryPressed: Qt.rgba(primary.r, primary.g, primary.b, 0.16)
|
||||||
|
property color primarySelected: Qt.rgba(primary.r, primary.g, primary.b, 0.3)
|
||||||
|
property color primaryBackground: Qt.rgba(primary.r, primary.g, primary.b, 0.04)
|
||||||
|
|
||||||
|
// Secondary colors with alpha
|
||||||
|
property color secondaryHover: Qt.rgba(secondary.r, secondary.g, secondary.b, 0.08)
|
||||||
|
|
||||||
|
// Surface colors with alpha
|
||||||
|
property color surfaceHover: Qt.rgba(surfaceVariant.r, surfaceVariant.g, surfaceVariant.b, 0.08)
|
||||||
|
property color surfacePressed: Qt.rgba(surfaceVariant.r, surfaceVariant.g, surfaceVariant.b, 0.12)
|
||||||
|
property color surfaceSelected: Qt.rgba(surfaceVariant.r, surfaceVariant.g, surfaceVariant.b, 0.15)
|
||||||
|
property color surfaceLight: Qt.rgba(surfaceVariant.r, surfaceVariant.g, surfaceVariant.b, 0.1)
|
||||||
|
property color surfaceVariantAlpha: Qt.rgba(surfaceVariant.r, surfaceVariant.g, surfaceVariant.b, 0.2)
|
||||||
|
property color surfaceTextHover: Qt.rgba(surfaceText.r, surfaceText.g, surfaceText.b, 0.08)
|
||||||
|
property color surfaceTextPressed: Qt.rgba(surfaceText.r, surfaceText.g, surfaceText.b, 0.12)
|
||||||
|
property color surfaceTextAlpha: Qt.rgba(surfaceText.r, surfaceText.g, surfaceText.b, 0.3)
|
||||||
|
property color surfaceTextLight: Qt.rgba(surfaceText.r, surfaceText.g, surfaceText.b, 0.06)
|
||||||
|
property color surfaceTextMedium: Qt.rgba(surfaceText.r, surfaceText.g, surfaceText.b, 0.7)
|
||||||
|
|
||||||
|
// Outline colors with alpha
|
||||||
|
property color outlineLight: Qt.rgba(outline.r, outline.g, outline.b, 0.05)
|
||||||
|
property color outlineMedium: Qt.rgba(outline.r, outline.g, outline.b, 0.08)
|
||||||
|
property color outlineStrong: Qt.rgba(outline.r, outline.g, outline.b, 0.12)
|
||||||
|
property color outlineSelected: Qt.rgba(outline.r, outline.g, outline.b, 0.2)
|
||||||
|
property color outlineHeavy: Qt.rgba(outline.r, outline.g, outline.b, 0.3)
|
||||||
|
property color outlineButton: Qt.rgba(outline.r, outline.g, outline.b, 0.5)
|
||||||
|
|
||||||
|
// Error colors with alpha
|
||||||
|
property color errorHover: Qt.rgba(error.r, error.g, error.b, 0.12)
|
||||||
|
property color errorPressed: Qt.rgba(error.r, error.g, error.b, 0.9)
|
||||||
|
|
||||||
|
// Warning colors with alpha
|
||||||
|
property color warningHover: Qt.rgba(warning.r, warning.g, warning.b, 0.12)
|
||||||
|
|
||||||
|
// Shadow colors
|
||||||
|
property color shadowLight: Qt.rgba(0, 0, 0, 0.05)
|
||||||
|
property color shadowMedium: Qt.rgba(0, 0, 0, 0.08)
|
||||||
|
property color shadowDark: Qt.rgba(0, 0, 0, 0.1)
|
||||||
|
property color shadowStrong: Qt.rgba(0, 0, 0, 0.3)
|
||||||
property int shortDuration: 150
|
property int shortDuration: 150
|
||||||
property int mediumDuration: 300
|
property int mediumDuration: 300
|
||||||
property int longDuration: 500
|
property int longDuration: 500
|
||||||
|
|||||||
@@ -121,7 +121,7 @@ DankModal {
|
|||||||
keyboardFocus: "ondemand"
|
keyboardFocus: "ondemand"
|
||||||
backgroundColor: Theme.popupBackground()
|
backgroundColor: Theme.popupBackground()
|
||||||
cornerRadius: Theme.cornerRadiusLarge
|
cornerRadius: Theme.cornerRadiusLarge
|
||||||
borderColor: Qt.rgba(Theme.outline.r, Theme.outline.g, Theme.outline.b, 0.08)
|
borderColor: Theme.outlineMedium
|
||||||
borderWidth: 1
|
borderWidth: 1
|
||||||
enableShadow: true
|
enableShadow: true
|
||||||
onBackgroundClicked: {
|
onBackgroundClicked: {
|
||||||
@@ -175,7 +175,7 @@ DankModal {
|
|||||||
width: 100
|
width: 100
|
||||||
height: 40
|
height: 40
|
||||||
radius: Theme.cornerRadius
|
radius: Theme.cornerRadius
|
||||||
color: cancelClearButton.containsMouse ? Qt.rgba(Theme.surfaceText.r, Theme.surfaceText.g, Theme.surfaceText.b, 0.12) : Qt.rgba(Theme.surfaceVariant.r, Theme.surfaceVariant.g, Theme.surfaceVariant.b, 0.3)
|
color: cancelClearButton.containsMouse ? Theme.surfaceTextPressed : Theme.surfaceVariantAlpha
|
||||||
|
|
||||||
StyledText {
|
StyledText {
|
||||||
text: "Cancel"
|
text: "Cancel"
|
||||||
@@ -200,7 +200,7 @@ DankModal {
|
|||||||
width: 100
|
width: 100
|
||||||
height: 40
|
height: 40
|
||||||
radius: Theme.cornerRadius
|
radius: Theme.cornerRadius
|
||||||
color: confirmClearButton.containsMouse ? Qt.rgba(Theme.error.r, Theme.error.g, Theme.error.b, 0.9) : Theme.error
|
color: confirmClearButton.containsMouse ? Theme.errorPressed : Theme.error
|
||||||
|
|
||||||
StyledText {
|
StyledText {
|
||||||
text: "Clear All"
|
text: "Clear All"
|
||||||
@@ -375,7 +375,7 @@ DankModal {
|
|||||||
iconName: "delete_sweep"
|
iconName: "delete_sweep"
|
||||||
iconSize: Theme.iconSize
|
iconSize: Theme.iconSize
|
||||||
iconColor: Theme.error
|
iconColor: Theme.error
|
||||||
hoverColor: Qt.rgba(Theme.error.r, Theme.error.g, Theme.error.b, 0.12)
|
hoverColor: Theme.errorHover
|
||||||
onClicked: {
|
onClicked: {
|
||||||
showClearConfirmation = true;
|
showClearConfirmation = true;
|
||||||
}
|
}
|
||||||
@@ -385,7 +385,7 @@ DankModal {
|
|||||||
iconName: "close"
|
iconName: "close"
|
||||||
iconSize: Theme.iconSize - 4
|
iconSize: Theme.iconSize - 4
|
||||||
iconColor: Theme.surfaceText
|
iconColor: Theme.surfaceText
|
||||||
hoverColor: Qt.rgba(Theme.error.r, Theme.error.g, Theme.error.b, 0.12)
|
hoverColor: Theme.errorHover
|
||||||
onClicked: hide()
|
onClicked: hide()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -420,8 +420,8 @@ DankModal {
|
|||||||
width: parent.width
|
width: parent.width
|
||||||
height: parent.height - 110
|
height: parent.height - 110
|
||||||
radius: Theme.cornerRadiusLarge
|
radius: Theme.cornerRadiusLarge
|
||||||
color: Qt.rgba(Theme.surfaceVariant.r, Theme.surfaceVariant.g, Theme.surfaceVariant.b, 0.1)
|
color: Theme.surfaceLight
|
||||||
border.color: Qt.rgba(Theme.outline.r, Theme.outline.g, Theme.outline.b, 0.05)
|
border.color: Theme.outlineLight
|
||||||
border.width: 1
|
border.width: 1
|
||||||
clip: true
|
clip: true
|
||||||
|
|
||||||
@@ -455,8 +455,8 @@ DankModal {
|
|||||||
width: clipboardListView.width
|
width: clipboardListView.width
|
||||||
height: Math.max(60, contentText.contentHeight + Theme.spacingL)
|
height: Math.max(60, contentText.contentHeight + Theme.spacingL)
|
||||||
radius: Theme.cornerRadius
|
radius: Theme.cornerRadius
|
||||||
color: mouseArea.containsMouse ? Qt.rgba(Theme.primary.r, Theme.primary.g, Theme.primary.b, 0.12) : Qt.rgba(Theme.primary.r, Theme.primary.g, Theme.primary.b, 0.04)
|
color: mouseArea.containsMouse ? Theme.primaryHover : Theme.primaryBackground
|
||||||
border.color: Qt.rgba(Theme.outline.r, Theme.outline.g, Theme.outline.b, 0.12)
|
border.color: Theme.outlineStrong
|
||||||
border.width: 1
|
border.width: 1
|
||||||
|
|
||||||
Row {
|
Row {
|
||||||
@@ -470,7 +470,7 @@ DankModal {
|
|||||||
width: 24
|
width: 24
|
||||||
height: 24
|
height: 24
|
||||||
radius: 12
|
radius: 12
|
||||||
color: Qt.rgba(Theme.primary.r, Theme.primary.g, Theme.primary.b, 0.2)
|
color: Theme.primarySelected
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
|
||||||
StyledText {
|
StyledText {
|
||||||
@@ -553,7 +553,7 @@ DankModal {
|
|||||||
iconName: "close"
|
iconName: "close"
|
||||||
iconSize: Theme.iconSize - 6
|
iconSize: Theme.iconSize - 6
|
||||||
iconColor: Theme.error
|
iconColor: Theme.error
|
||||||
hoverColor: Qt.rgba(Theme.error.r, Theme.error.g, Theme.error.b, 0.12)
|
hoverColor: Theme.errorHover
|
||||||
onClicked: {
|
onClicked: {
|
||||||
console.log("Delete clicked for entry:", model.entry);
|
console.log("Delete clicked for entry:", model.entry);
|
||||||
deleteEntry(model.entry);
|
deleteEntry(model.entry);
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ PanelWindow {
|
|||||||
property var animationEasing: Theme.emphasizedEasing
|
property var animationEasing: Theme.emphasizedEasing
|
||||||
// Styling
|
// Styling
|
||||||
property color backgroundColor: Theme.surfaceContainer
|
property color backgroundColor: Theme.surfaceContainer
|
||||||
property color borderColor: Qt.rgba(Theme.outline.r, Theme.outline.g, Theme.outline.b, 0.08)
|
property color borderColor: Theme.outlineMedium
|
||||||
property real borderWidth: 1
|
property real borderWidth: 1
|
||||||
property real cornerRadius: Theme.cornerRadiusLarge
|
property real cornerRadius: Theme.cornerRadiusLarge
|
||||||
property bool enableShadow: false
|
property bool enableShadow: false
|
||||||
@@ -201,7 +201,7 @@ PanelWindow {
|
|||||||
shadowHorizontalOffset: 0
|
shadowHorizontalOffset: 0
|
||||||
shadowVerticalOffset: 8
|
shadowVerticalOffset: 8
|
||||||
shadowBlur: 1
|
shadowBlur: 1
|
||||||
shadowColor: Qt.rgba(0, 0, 0, 0.3)
|
shadowColor: Theme.shadowStrong
|
||||||
shadowOpacity: 0.3
|
shadowOpacity: 0.3
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -148,7 +148,7 @@ DankModal {
|
|||||||
iconName: "close"
|
iconName: "close"
|
||||||
iconSize: Theme.iconSize - 4
|
iconSize: Theme.iconSize - 4
|
||||||
iconColor: Theme.surfaceText
|
iconColor: Theme.surfaceText
|
||||||
hoverColor: Qt.rgba(Theme.error.r, Theme.error.g, Theme.error.b, 0.12)
|
hoverColor: Theme.errorHover
|
||||||
onClicked: fileBrowserModal.visible = false
|
onClicked: fileBrowserModal.visible = false
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ DankModal {
|
|||||||
StyledText {
|
StyledText {
|
||||||
text: "Details for \"" + networkSSID + "\""
|
text: "Details for \"" + networkSSID + "\""
|
||||||
font.pixelSize: Theme.fontSizeMedium
|
font.pixelSize: Theme.fontSizeMedium
|
||||||
color: Qt.rgba(Theme.surfaceText.r, Theme.surfaceText.g, Theme.surfaceText.b, 0.7)
|
color: Theme.surfaceTextMedium
|
||||||
width: parent.width
|
width: parent.width
|
||||||
elide: Text.ElideRight
|
elide: Text.ElideRight
|
||||||
}
|
}
|
||||||
@@ -82,7 +82,7 @@ DankModal {
|
|||||||
iconName: "close"
|
iconName: "close"
|
||||||
iconSize: Theme.iconSize - 4
|
iconSize: Theme.iconSize - 4
|
||||||
iconColor: Theme.surfaceText
|
iconColor: Theme.surfaceText
|
||||||
hoverColor: Qt.rgba(Theme.error.r, Theme.error.g, Theme.error.b, 0.12)
|
hoverColor: Theme.errorHover
|
||||||
onClicked: {
|
onClicked: {
|
||||||
root.hideDialog();
|
root.hideDialog();
|
||||||
}
|
}
|
||||||
@@ -108,8 +108,8 @@ DankModal {
|
|||||||
width: parent.width
|
width: parent.width
|
||||||
height: Math.max(parent.parent.height, detailsText.contentHeight + Theme.spacingM * 2)
|
height: Math.max(parent.parent.height, detailsText.contentHeight + Theme.spacingM * 2)
|
||||||
radius: Theme.cornerRadius
|
radius: Theme.cornerRadius
|
||||||
color: Qt.rgba(Theme.surfaceVariant.r, Theme.surfaceVariant.g, Theme.surfaceVariant.b, 0.08)
|
color: Theme.surfaceHover
|
||||||
border.color: Qt.rgba(Theme.outline.r, Theme.outline.g, Theme.outline.b, 0.12)
|
border.color: Theme.outlineStrong
|
||||||
border.width: 1
|
border.width: 1
|
||||||
|
|
||||||
StyledText {
|
StyledText {
|
||||||
|
|||||||
@@ -108,7 +108,7 @@ DankModal {
|
|||||||
width: 120
|
width: 120
|
||||||
height: 40
|
height: 40
|
||||||
radius: Theme.cornerRadius
|
radius: Theme.cornerRadius
|
||||||
color: cancelButton.containsMouse ? Qt.rgba(Theme.surfaceText.r, Theme.surfaceText.g, Theme.surfaceText.b, 0.12) : Qt.rgba(Theme.surfaceVariant.r, Theme.surfaceVariant.g, Theme.surfaceVariant.b, 0.3)
|
color: cancelButton.containsMouse ? Theme.surfaceTextPressed : Theme.surfaceVariantAlpha
|
||||||
|
|
||||||
StyledText {
|
StyledText {
|
||||||
text: "Cancel"
|
text: "Cancel"
|
||||||
|
|||||||
@@ -98,7 +98,7 @@ DankModal {
|
|||||||
iconName: "close"
|
iconName: "close"
|
||||||
iconSize: Theme.iconSize - 4
|
iconSize: Theme.iconSize - 4
|
||||||
iconColor: Theme.surfaceText
|
iconColor: Theme.surfaceText
|
||||||
hoverColor: Qt.rgba(Theme.error.r, Theme.error.g, Theme.error.b, 0.12)
|
hoverColor: Theme.errorHover
|
||||||
onClicked: processListModal.hide()
|
onClicked: processListModal.hide()
|
||||||
Layout.alignment: Qt.AlignVCenter
|
Layout.alignment: Qt.AlignVCenter
|
||||||
}
|
}
|
||||||
@@ -107,9 +107,9 @@ DankModal {
|
|||||||
Rectangle {
|
Rectangle {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
height: 52
|
height: 52
|
||||||
color: Qt.rgba(Theme.surfaceVariant.r, Theme.surfaceVariant.g, Theme.surfaceVariant.b, 0.15)
|
color: Theme.surfaceSelected
|
||||||
radius: Theme.cornerRadiusLarge
|
radius: Theme.cornerRadiusLarge
|
||||||
border.color: Qt.rgba(Theme.outline.r, Theme.outline.g, Theme.outline.b, 0.06)
|
border.color: Theme.outlineLight
|
||||||
border.width: 1
|
border.width: 1
|
||||||
|
|
||||||
Row {
|
Row {
|
||||||
@@ -124,7 +124,7 @@ DankModal {
|
|||||||
width: (parent.width - (tabNames.length - 1) * 2) / tabNames.length
|
width: (parent.width - (tabNames.length - 1) * 2) / tabNames.length
|
||||||
height: 44
|
height: 44
|
||||||
radius: Theme.cornerRadiusLarge
|
radius: Theme.cornerRadiusLarge
|
||||||
color: currentTab === index ? Qt.rgba(Theme.primary.r, Theme.primary.g, Theme.primary.b, 0.16) : (tabMouseArea.containsMouse ? Qt.rgba(Theme.primary.r, Theme.primary.g, Theme.primary.b, 0.08) : "transparent")
|
color: currentTab === index ? Theme.primaryPressed : (tabMouseArea.containsMouse ? Theme.primaryHoverLight : "transparent")
|
||||||
border.color: currentTab === index ? Theme.primary : "transparent"
|
border.color: currentTab === index ? Theme.primary : "transparent"
|
||||||
border.width: currentTab === index ? 1 : 0
|
border.width: currentTab === index ? 1 : 0
|
||||||
|
|
||||||
@@ -212,8 +212,8 @@ DankModal {
|
|||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.fillHeight: true
|
Layout.fillHeight: true
|
||||||
radius: Theme.cornerRadiusLarge
|
radius: Theme.cornerRadiusLarge
|
||||||
color: Qt.rgba(Theme.surfaceVariant.r, Theme.surfaceVariant.g, Theme.surfaceVariant.b, 0.1)
|
color: Theme.surfaceLight
|
||||||
border.color: Qt.rgba(Theme.outline.r, Theme.outline.g, Theme.outline.b, 0.05)
|
border.color: Theme.outlineLight
|
||||||
border.width: 1
|
border.width: 1
|
||||||
|
|
||||||
Loader {
|
Loader {
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ DankModal {
|
|||||||
iconName: "close"
|
iconName: "close"
|
||||||
iconSize: Theme.iconSize - 4
|
iconSize: Theme.iconSize - 4
|
||||||
iconColor: Theme.surfaceText
|
iconColor: Theme.surfaceText
|
||||||
hoverColor: Qt.rgba(Theme.error.r, Theme.error.g, Theme.error.b, 0.12)
|
hoverColor: Theme.errorHover
|
||||||
onClicked: settingsModal.settingsVisible = false
|
onClicked: settingsModal.settingsVisible = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ DankModal {
|
|||||||
keyboardFocus: "ondemand"
|
keyboardFocus: "ondemand"
|
||||||
backgroundColor: Theme.popupBackground()
|
backgroundColor: Theme.popupBackground()
|
||||||
cornerRadius: Theme.cornerRadiusXLarge
|
cornerRadius: Theme.cornerRadiusXLarge
|
||||||
borderColor: Qt.rgba(Theme.outline.r, Theme.outline.g, Theme.outline.b, 0.08)
|
borderColor: Theme.outlineMedium
|
||||||
borderWidth: 1
|
borderWidth: 1
|
||||||
enableShadow: true
|
enableShadow: true
|
||||||
onVisibleChanged: {
|
onVisibleChanged: {
|
||||||
@@ -132,8 +132,8 @@ DankModal {
|
|||||||
width: parent.width
|
width: parent.width
|
||||||
height: categorySelector.height + Theme.spacingM * 2
|
height: categorySelector.height + Theme.spacingM * 2
|
||||||
radius: Theme.cornerRadiusLarge
|
radius: Theme.cornerRadiusLarge
|
||||||
color: Qt.rgba(Theme.surfaceVariant.r, Theme.surfaceVariant.g, Theme.surfaceVariant.b, 0.2)
|
color: Theme.surfaceVariantAlpha
|
||||||
border.color: Qt.rgba(Theme.outline.r, Theme.outline.g, Theme.outline.b, 0.08)
|
border.color: Theme.outlineMedium
|
||||||
border.width: 1
|
border.width: 1
|
||||||
visible: appLauncher.categories.length > 1 || appLauncher.model.count > 0
|
visible: appLauncher.categories.length > 1 || appLauncher.model.count > 0
|
||||||
|
|
||||||
@@ -162,7 +162,7 @@ DankModal {
|
|||||||
height: 56
|
height: 56
|
||||||
cornerRadius: Theme.cornerRadiusLarge
|
cornerRadius: Theme.cornerRadiusLarge
|
||||||
backgroundColor: Qt.rgba(Theme.surfaceVariant.r, Theme.surfaceVariant.g, Theme.surfaceVariant.b, Theme.getContentBackgroundAlpha() * 0.7)
|
backgroundColor: Qt.rgba(Theme.surfaceVariant.r, Theme.surfaceVariant.g, Theme.surfaceVariant.b, Theme.getContentBackgroundAlpha() * 0.7)
|
||||||
normalBorderColor: Qt.rgba(Theme.outline.r, Theme.outline.g, Theme.outline.b, 0.08)
|
normalBorderColor: Theme.outlineMedium
|
||||||
focusedBorderColor: Theme.primary
|
focusedBorderColor: Theme.primary
|
||||||
leftIconName: "search"
|
leftIconName: "search"
|
||||||
leftIconSize: Theme.iconSize
|
leftIconSize: Theme.iconSize
|
||||||
@@ -220,8 +220,8 @@ DankModal {
|
|||||||
width: 36
|
width: 36
|
||||||
height: 36
|
height: 36
|
||||||
radius: Theme.cornerRadiusLarge
|
radius: Theme.cornerRadiusLarge
|
||||||
color: appLauncher.viewMode === "list" ? Qt.rgba(Theme.primary.r, Theme.primary.g, Theme.primary.b, 0.12) : listViewArea.containsMouse ? Qt.rgba(Theme.surfaceVariant.r, Theme.surfaceVariant.g, Theme.surfaceVariant.b, 0.08) : "transparent"
|
color: appLauncher.viewMode === "list" ? Theme.primaryHover : listViewArea.containsMouse ? Theme.surfaceHover : "transparent"
|
||||||
border.color: appLauncher.viewMode === "list" ? Qt.rgba(Theme.primary.r, Theme.primary.g, Theme.primary.b, 0.3) : "transparent"
|
border.color: appLauncher.viewMode === "list" ? Theme.primarySelected : "transparent"
|
||||||
border.width: 1
|
border.width: 1
|
||||||
|
|
||||||
DankIcon {
|
DankIcon {
|
||||||
@@ -249,8 +249,8 @@ DankModal {
|
|||||||
width: 36
|
width: 36
|
||||||
height: 36
|
height: 36
|
||||||
radius: Theme.cornerRadiusLarge
|
radius: Theme.cornerRadiusLarge
|
||||||
color: appLauncher.viewMode === "grid" ? Qt.rgba(Theme.primary.r, Theme.primary.g, Theme.primary.b, 0.12) : gridViewArea.containsMouse ? Qt.rgba(Theme.surfaceVariant.r, Theme.surfaceVariant.g, Theme.surfaceVariant.b, 0.08) : "transparent"
|
color: appLauncher.viewMode === "grid" ? Theme.primaryHover : gridViewArea.containsMouse ? Theme.surfaceHover : "transparent"
|
||||||
border.color: appLauncher.viewMode === "grid" ? Qt.rgba(Theme.primary.r, Theme.primary.g, Theme.primary.b, 0.3) : "transparent"
|
border.color: appLauncher.viewMode === "grid" ? Theme.primarySelected : "transparent"
|
||||||
border.width: 1
|
border.width: 1
|
||||||
|
|
||||||
DankIcon {
|
DankIcon {
|
||||||
@@ -283,8 +283,8 @@ DankModal {
|
|||||||
width: parent.width
|
width: parent.width
|
||||||
height: parent.height - y
|
height: parent.height - y
|
||||||
radius: Theme.cornerRadiusLarge
|
radius: Theme.cornerRadiusLarge
|
||||||
color: Qt.rgba(Theme.surfaceVariant.r, Theme.surfaceVariant.g, Theme.surfaceVariant.b, 0.1)
|
color: Theme.surfaceLight
|
||||||
border.color: Qt.rgba(Theme.outline.r, Theme.outline.g, Theme.outline.b, 0.05)
|
border.color: Theme.outlineLight
|
||||||
border.width: 1
|
border.width: 1
|
||||||
|
|
||||||
DankListView {
|
DankListView {
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ DankModal {
|
|||||||
StyledText {
|
StyledText {
|
||||||
text: "Enter password for \"" + wifiPasswordSSID + "\""
|
text: "Enter password for \"" + wifiPasswordSSID + "\""
|
||||||
font.pixelSize: Theme.fontSizeMedium
|
font.pixelSize: Theme.fontSizeMedium
|
||||||
color: Qt.rgba(Theme.surfaceText.r, Theme.surfaceText.g, Theme.surfaceText.b, 0.7)
|
color: Theme.surfaceTextMedium
|
||||||
width: parent.width
|
width: parent.width
|
||||||
elide: Text.ElideRight
|
elide: Text.ElideRight
|
||||||
}
|
}
|
||||||
@@ -77,7 +77,7 @@ DankModal {
|
|||||||
iconName: "close"
|
iconName: "close"
|
||||||
iconSize: Theme.iconSize - 4
|
iconSize: Theme.iconSize - 4
|
||||||
iconColor: Theme.surfaceText
|
iconColor: Theme.surfaceText
|
||||||
hoverColor: Qt.rgba(Theme.error.r, Theme.error.g, Theme.error.b, 0.12)
|
hoverColor: Theme.errorHover
|
||||||
onClicked: {
|
onClicked: {
|
||||||
wifiPasswordModalVisible = false;
|
wifiPasswordModalVisible = false;
|
||||||
wifiPasswordInput = "";
|
wifiPasswordInput = "";
|
||||||
@@ -91,8 +91,8 @@ DankModal {
|
|||||||
width: parent.width
|
width: parent.width
|
||||||
height: 50
|
height: 50
|
||||||
radius: Theme.cornerRadius
|
radius: Theme.cornerRadius
|
||||||
color: Qt.rgba(Theme.surfaceVariant.r, Theme.surfaceVariant.g, Theme.surfaceVariant.b, 0.08)
|
color: Theme.surfaceHover
|
||||||
border.color: passwordInput.activeFocus ? Theme.primary : Qt.rgba(Theme.outline.r, Theme.outline.g, Theme.outline.b, 0.12)
|
border.color: passwordInput.activeFocus ? Theme.primary : Theme.outlineStrong
|
||||||
border.width: passwordInput.activeFocus ? 2 : 1
|
border.width: passwordInput.activeFocus ? 2 : 1
|
||||||
|
|
||||||
DankTextField {
|
DankTextField {
|
||||||
@@ -146,7 +146,7 @@ DankModal {
|
|||||||
height: 20
|
height: 20
|
||||||
radius: 4
|
radius: 4
|
||||||
color: checked ? Theme.primary : "transparent"
|
color: checked ? Theme.primary : "transparent"
|
||||||
border.color: checked ? Theme.primary : Qt.rgba(Theme.outline.r, Theme.outline.g, Theme.outline.b, 0.5)
|
border.color: checked ? Theme.primary : Theme.outlineButton
|
||||||
border.width: 2
|
border.width: 2
|
||||||
|
|
||||||
DankIcon {
|
DankIcon {
|
||||||
@@ -191,8 +191,8 @@ DankModal {
|
|||||||
width: Math.max(70, cancelText.contentWidth + Theme.spacingM * 2)
|
width: Math.max(70, cancelText.contentWidth + Theme.spacingM * 2)
|
||||||
height: 36
|
height: 36
|
||||||
radius: Theme.cornerRadius
|
radius: Theme.cornerRadius
|
||||||
color: cancelArea.containsMouse ? Qt.rgba(Theme.surfaceText.r, Theme.surfaceText.g, Theme.surfaceText.b, 0.08) : "transparent"
|
color: cancelArea.containsMouse ? Theme.surfaceTextHover : "transparent"
|
||||||
border.color: Qt.rgba(Theme.outline.r, Theme.outline.g, Theme.outline.b, 0.2)
|
border.color: Theme.surfaceVariantAlpha
|
||||||
border.width: 1
|
border.width: 1
|
||||||
|
|
||||||
StyledText {
|
StyledText {
|
||||||
|
|||||||
@@ -338,12 +338,8 @@ PanelWindow {
|
|||||||
buttonSize: 20
|
buttonSize: 20
|
||||||
z: 15
|
z: 15
|
||||||
onClicked: {
|
onClicked: {
|
||||||
if (modelData.latestNotification.notification.transient) {
|
for (const notif of modelData.notifications) {
|
||||||
NotificationService.dismissGroup(modelData.key);
|
notif.popup = false;
|
||||||
} else {
|
|
||||||
for (const notif of modelData.notifications) {
|
|
||||||
notif.popup = false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -424,12 +420,8 @@ PanelWindow {
|
|||||||
buttonSize: 20
|
buttonSize: 20
|
||||||
z: 15
|
z: 15
|
||||||
onClicked: {
|
onClicked: {
|
||||||
if (modelData.latestNotification.notification.transient) {
|
for (const notif of modelData.notifications) {
|
||||||
NotificationService.dismissGroup(modelData.key);
|
notif.popup = false;
|
||||||
} else {
|
|
||||||
for (const notif of modelData.notifications) {
|
|
||||||
notif.popup = false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -667,12 +659,8 @@ PanelWindow {
|
|||||||
|
|
||||||
}
|
}
|
||||||
onClicked: {
|
onClicked: {
|
||||||
if (modelData.latestNotification.notification.transient) {
|
for (const notif of modelData.notifications) {
|
||||||
NotificationService.dismissGroup(modelData.key);
|
notif.popup = false;
|
||||||
} else {
|
|
||||||
for (const notif of modelData.notifications) {
|
|
||||||
notif.popup = false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ Rectangle {
|
|||||||
width: BatteryService.batteryAvailable ? 70 : 40
|
width: BatteryService.batteryAvailable ? 70 : 40
|
||||||
height: 30
|
height: 30
|
||||||
radius: Theme.cornerRadius
|
radius: Theme.cornerRadius
|
||||||
color: batteryArea.containsMouse || batteryPopupVisible ? Qt.rgba(Theme.primary.r, Theme.primary.g, Theme.primary.b, 0.16) : Qt.rgba(Theme.secondary.r, Theme.secondary.g, Theme.secondary.b, 0.08)
|
color: batteryArea.containsMouse || batteryPopupVisible ? Theme.primaryPressed : Theme.secondaryHover
|
||||||
visible: true
|
visible: true
|
||||||
|
|
||||||
Row {
|
Row {
|
||||||
@@ -99,7 +99,7 @@ Rectangle {
|
|||||||
height: tooltipText.contentHeight + Theme.spacingS * 2
|
height: tooltipText.contentHeight + Theme.spacingS * 2
|
||||||
radius: Theme.cornerRadius
|
radius: Theme.cornerRadius
|
||||||
color: Theme.surfaceContainer
|
color: Theme.surfaceContainer
|
||||||
border.color: Qt.rgba(Theme.outline.r, Theme.outline.g, Theme.outline.b, 0.2)
|
border.color: Theme.surfaceVariantAlpha
|
||||||
border.width: 1
|
border.width: 1
|
||||||
visible: batteryArea.containsMouse && !batteryPopupVisible
|
visible: batteryArea.containsMouse && !batteryPopupVisible
|
||||||
anchors.bottom: parent.top
|
anchors.bottom: parent.top
|
||||||
|
|||||||
@@ -95,7 +95,7 @@ PanelWindow {
|
|||||||
sourceComponent: Rectangle {
|
sourceComponent: Rectangle {
|
||||||
color: Theme.popupBackground()
|
color: Theme.popupBackground()
|
||||||
radius: Theme.cornerRadiusLarge
|
radius: Theme.cornerRadiusLarge
|
||||||
border.color: Qt.rgba(Theme.outline.r, Theme.outline.g, Theme.outline.b, 0.08)
|
border.color: Theme.outlineMedium
|
||||||
border.width: 1
|
border.width: 1
|
||||||
|
|
||||||
// Material 3 elevation with multiple layers
|
// Material 3 elevation with multiple layers
|
||||||
@@ -114,7 +114,7 @@ PanelWindow {
|
|||||||
anchors.margins: -2
|
anchors.margins: -2
|
||||||
color: "transparent"
|
color: "transparent"
|
||||||
radius: parent.radius + 2
|
radius: parent.radius + 2
|
||||||
border.color: Qt.rgba(0, 0, 0, 0.08)
|
border.color: Theme.shadowMedium
|
||||||
border.width: 1
|
border.width: 1
|
||||||
z: -2
|
z: -2
|
||||||
}
|
}
|
||||||
@@ -122,7 +122,7 @@ PanelWindow {
|
|||||||
Rectangle {
|
Rectangle {
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
color: "transparent"
|
color: "transparent"
|
||||||
border.color: Qt.rgba(Theme.outline.r, Theme.outline.g, Theme.outline.b, 0.12)
|
border.color: Theme.outlineStrong
|
||||||
border.width: 1
|
border.width: 1
|
||||||
radius: parent.radius
|
radius: parent.radius
|
||||||
z: -1
|
z: -1
|
||||||
@@ -161,7 +161,7 @@ PanelWindow {
|
|||||||
width: 32
|
width: 32
|
||||||
height: 32
|
height: 32
|
||||||
radius: 16
|
radius: 16
|
||||||
color: closeBatteryArea.containsMouse ? Qt.rgba(Theme.error.r, Theme.error.g, Theme.error.b, 0.12) : "transparent"
|
color: closeBatteryArea.containsMouse ? Theme.errorHover : "transparent"
|
||||||
|
|
||||||
DankIcon {
|
DankIcon {
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
@@ -188,7 +188,7 @@ PanelWindow {
|
|||||||
height: 80
|
height: 80
|
||||||
radius: Theme.cornerRadiusLarge
|
radius: Theme.cornerRadiusLarge
|
||||||
color: Qt.rgba(Theme.surfaceVariant.r, Theme.surfaceVariant.g, Theme.surfaceVariant.b, Theme.getContentBackgroundAlpha() * 0.4)
|
color: Qt.rgba(Theme.surfaceVariant.r, Theme.surfaceVariant.g, Theme.surfaceVariant.b, Theme.getContentBackgroundAlpha() * 0.4)
|
||||||
border.color: BatteryService.isCharging ? Theme.primary : (BatteryService.isLowBattery ? Theme.error : Qt.rgba(Theme.outline.r, Theme.outline.g, Theme.outline.b, 0.08))
|
border.color: BatteryService.isCharging ? Theme.primary : (BatteryService.isLowBattery ? Theme.error : Theme.outlineMedium)
|
||||||
border.width: BatteryService.isCharging || BatteryService.isLowBattery ? 2 : 1
|
border.width: BatteryService.isCharging || BatteryService.isLowBattery ? 2 : 1
|
||||||
visible: BatteryService.batteryAvailable
|
visible: BatteryService.batteryAvailable
|
||||||
|
|
||||||
@@ -262,7 +262,7 @@ PanelWindow {
|
|||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
font.pixelSize: Theme.fontSizeSmall
|
font.pixelSize: Theme.fontSizeSmall
|
||||||
color: Qt.rgba(Theme.surfaceText.r, Theme.surfaceText.g, Theme.surfaceText.b, 0.7)
|
color: Theme.surfaceTextMedium
|
||||||
visible: text.length > 0
|
visible: text.length > 0
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -278,7 +278,7 @@ PanelWindow {
|
|||||||
height: 80
|
height: 80
|
||||||
radius: Theme.cornerRadiusLarge
|
radius: Theme.cornerRadiusLarge
|
||||||
color: Qt.rgba(Theme.surfaceVariant.r, Theme.surfaceVariant.g, Theme.surfaceVariant.b, Theme.getContentBackgroundAlpha() * 0.4)
|
color: Qt.rgba(Theme.surfaceVariant.r, Theme.surfaceVariant.g, Theme.surfaceVariant.b, Theme.getContentBackgroundAlpha() * 0.4)
|
||||||
border.color: Qt.rgba(Theme.outline.r, Theme.outline.g, Theme.outline.b, 0.08)
|
border.color: Theme.outlineMedium
|
||||||
border.width: 1
|
border.width: 1
|
||||||
visible: !BatteryService.batteryAvailable
|
visible: !BatteryService.batteryAvailable
|
||||||
|
|
||||||
@@ -307,7 +307,7 @@ PanelWindow {
|
|||||||
Text {
|
Text {
|
||||||
text: "Power profile management is available"
|
text: "Power profile management is available"
|
||||||
font.pixelSize: Theme.fontSizeMedium
|
font.pixelSize: Theme.fontSizeMedium
|
||||||
color: Qt.rgba(Theme.surfaceText.r, Theme.surfaceText.g, Theme.surfaceText.b, 0.7)
|
color: Theme.surfaceTextMedium
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -341,7 +341,7 @@ PanelWindow {
|
|||||||
Text {
|
Text {
|
||||||
text: "Health"
|
text: "Health"
|
||||||
font.pixelSize: Theme.fontSizeSmall
|
font.pixelSize: Theme.fontSizeSmall
|
||||||
color: Qt.rgba(Theme.surfaceText.r, Theme.surfaceText.g, Theme.surfaceText.b, 0.7)
|
color: Theme.surfaceTextMedium
|
||||||
font.weight: Font.Medium
|
font.weight: Font.Medium
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -367,7 +367,7 @@ PanelWindow {
|
|||||||
Text {
|
Text {
|
||||||
text: "Capacity"
|
text: "Capacity"
|
||||||
font.pixelSize: Theme.fontSizeSmall
|
font.pixelSize: Theme.fontSizeSmall
|
||||||
color: Qt.rgba(Theme.surfaceText.r, Theme.surfaceText.g, Theme.surfaceText.b, 0.7)
|
color: Theme.surfaceTextMedium
|
||||||
font.weight: Font.Medium
|
font.weight: Font.Medium
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -407,8 +407,8 @@ PanelWindow {
|
|||||||
width: parent.width
|
width: parent.width
|
||||||
height: 50
|
height: 50
|
||||||
radius: Theme.cornerRadiusLarge
|
radius: Theme.cornerRadiusLarge
|
||||||
color: profileArea.containsMouse ? Qt.rgba(Theme.primary.r, Theme.primary.g, Theme.primary.b, 0.08) : (root.isActiveProfile(modelData) ? Qt.rgba(Theme.primary.r, Theme.primary.g, Theme.primary.b, 0.16) : Qt.rgba(Theme.surfaceVariant.r, Theme.surfaceVariant.g, Theme.surfaceVariant.b, 0.1))
|
color: profileArea.containsMouse ? Theme.primaryHoverLight : (root.isActiveProfile(modelData) ? Theme.primaryPressed : Theme.surfaceLight)
|
||||||
border.color: root.isActiveProfile(modelData) ? Theme.primary : Qt.rgba(Theme.outline.r, Theme.outline.g, Theme.outline.b, 0.05)
|
border.color: root.isActiveProfile(modelData) ? Theme.primary : Theme.outlineLight
|
||||||
border.width: root.isActiveProfile(modelData) ? 2 : 1
|
border.width: root.isActiveProfile(modelData) ? 2 : 1
|
||||||
|
|
||||||
Row {
|
Row {
|
||||||
@@ -438,7 +438,7 @@ PanelWindow {
|
|||||||
Text {
|
Text {
|
||||||
text: Theme.getPowerProfileDescription(modelData)
|
text: Theme.getPowerProfileDescription(modelData)
|
||||||
font.pixelSize: Theme.fontSizeSmall
|
font.pixelSize: Theme.fontSizeSmall
|
||||||
color: Qt.rgba(Theme.surfaceText.r, Theme.surfaceText.g, Theme.surfaceText.b, 0.7)
|
color: Theme.surfaceTextMedium
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -469,8 +469,8 @@ PanelWindow {
|
|||||||
width: parent.width
|
width: parent.width
|
||||||
height: 60
|
height: 60
|
||||||
radius: Theme.cornerRadiusLarge
|
radius: Theme.cornerRadiusLarge
|
||||||
color: Qt.rgba(Theme.error.r, Theme.error.g, Theme.error.b, 0.12)
|
color: Theme.errorHover
|
||||||
border.color: Qt.rgba(Theme.error.r, Theme.error.g, Theme.error.b, 0.3)
|
border.color: Theme.primarySelected
|
||||||
border.width: 1
|
border.width: 1
|
||||||
visible: (typeof PowerProfiles !== "undefined") && PowerProfiles.degradationReason !== PerformanceDegradationReason.None
|
visible: (typeof PowerProfiles !== "undefined") && PowerProfiles.degradationReason !== PerformanceDegradationReason.None
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ Rectangle {
|
|||||||
width: clockRow.implicitWidth + Theme.spacingS * 2
|
width: clockRow.implicitWidth + Theme.spacingS * 2
|
||||||
height: 30
|
height: 30
|
||||||
radius: Theme.cornerRadius
|
radius: Theme.cornerRadius
|
||||||
color: clockMouseArea.containsMouse ? Qt.rgba(Theme.primary.r, Theme.primary.g, Theme.primary.b, 0.12) : Qt.rgba(Theme.surfaceText.r, Theme.surfaceText.g, Theme.surfaceText.b, 0.08)
|
color: clockMouseArea.containsMouse ? Theme.primaryHover : Theme.surfaceTextHover
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
root.currentDate = systemClock.date;
|
root.currentDate = systemClock.date;
|
||||||
}
|
}
|
||||||
@@ -35,7 +35,7 @@ Rectangle {
|
|||||||
Text {
|
Text {
|
||||||
text: "•"
|
text: "•"
|
||||||
font.pixelSize: Theme.fontSizeMedium
|
font.pixelSize: Theme.fontSizeMedium
|
||||||
color: Qt.rgba(Theme.surfaceText.r, Theme.surfaceText.g, Theme.surfaceText.b, 0.5)
|
color: Theme.outlineButton
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
visible: !compactMode
|
visible: !compactMode
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ Rectangle {
|
|||||||
width: Math.max(80, controlIndicators.implicitWidth + Theme.spacingS * 2)
|
width: Math.max(80, controlIndicators.implicitWidth + Theme.spacingS * 2)
|
||||||
height: 30
|
height: 30
|
||||||
radius: Theme.cornerRadius
|
radius: Theme.cornerRadius
|
||||||
color: controlCenterArea.containsMouse || root.isActive ? Qt.rgba(Theme.primary.r, Theme.primary.g, Theme.primary.b, 0.16) : Qt.rgba(Theme.secondary.r, Theme.secondary.g, Theme.secondary.b, 0.08)
|
color: controlCenterArea.containsMouse || root.isActive ? Theme.primaryPressed : Theme.secondaryHover
|
||||||
|
|
||||||
Row {
|
Row {
|
||||||
id: controlIndicators
|
id: controlIndicators
|
||||||
@@ -48,7 +48,7 @@ Rectangle {
|
|||||||
return "wifi_off";
|
return "wifi_off";
|
||||||
}
|
}
|
||||||
size: Theme.iconSize - 8
|
size: Theme.iconSize - 8
|
||||||
color: NetworkService.networkStatus !== "disconnected" ? Theme.primary : Qt.rgba(Theme.surfaceText.r, Theme.surfaceText.g, Theme.surfaceText.b, 0.5)
|
color: NetworkService.networkStatus !== "disconnected" ? Theme.primary : Theme.outlineButton
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
visible: true
|
visible: true
|
||||||
}
|
}
|
||||||
@@ -57,7 +57,7 @@ Rectangle {
|
|||||||
DankIcon {
|
DankIcon {
|
||||||
name: "bluetooth"
|
name: "bluetooth"
|
||||||
size: Theme.iconSize - 8
|
size: Theme.iconSize - 8
|
||||||
color: BluetoothService.enabled ? Theme.primary : Qt.rgba(Theme.surfaceText.r, Theme.surfaceText.g, Theme.surfaceText.b, 0.5)
|
color: BluetoothService.enabled ? Theme.primary : Theme.outlineButton
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
visible: BluetoothService.available && BluetoothService.enabled
|
visible: BluetoothService.available && BluetoothService.enabled
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ Rectangle {
|
|||||||
width: 55
|
width: 55
|
||||||
height: 30
|
height: 30
|
||||||
radius: Theme.cornerRadius
|
radius: Theme.cornerRadius
|
||||||
color: cpuArea.containsMouse ? Qt.rgba(Theme.primary.r, Theme.primary.g, Theme.primary.b, 0.16) : Qt.rgba(Theme.secondary.r, Theme.secondary.g, Theme.secondary.b, 0.08)
|
color: cpuArea.containsMouse ? Theme.primaryPressed : Theme.secondaryHover
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
SysMonitorService.addRef();
|
SysMonitorService.addRef();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ Rectangle {
|
|||||||
width: compactMode ? Math.min(baseWidth, maxCompactWidth) : Math.min(baseWidth, maxNormalWidth)
|
width: compactMode ? Math.min(baseWidth, maxCompactWidth) : Math.min(baseWidth, maxNormalWidth)
|
||||||
height: 30
|
height: 30
|
||||||
radius: Theme.cornerRadius
|
radius: Theme.cornerRadius
|
||||||
color: mouseArea.containsMouse ? Qt.rgba(Theme.primary.r, Theme.primary.g, Theme.primary.b, 0.12) : Qt.rgba(Theme.surfaceText.r, Theme.surfaceText.g, Theme.surfaceText.b, 0.08)
|
color: mouseArea.containsMouse ? Theme.primaryHover : Theme.surfaceTextHover
|
||||||
clip: true
|
clip: true
|
||||||
visible: FocusedWindowService.niriAvailable && (FocusedWindowService.focusedAppName || FocusedWindowService.focusedWindowTitle)
|
visible: FocusedWindowService.niriAvailable && (FocusedWindowService.focusedAppName || FocusedWindowService.focusedWindowTitle)
|
||||||
|
|
||||||
@@ -40,7 +40,7 @@ Rectangle {
|
|||||||
Text {
|
Text {
|
||||||
text: "•"
|
text: "•"
|
||||||
font.pixelSize: Theme.fontSizeMedium
|
font.pixelSize: Theme.fontSizeMedium
|
||||||
color: Qt.rgba(Theme.surfaceText.r, Theme.surfaceText.g, Theme.surfaceText.b, 0.5)
|
color: Theme.outlineButton
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
visible: appText.text && titleText.text
|
visible: appText.text && titleText.text
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ Rectangle {
|
|||||||
width: 40
|
width: 40
|
||||||
height: 30
|
height: 30
|
||||||
radius: Theme.cornerRadius
|
radius: Theme.cornerRadius
|
||||||
color: launcherArea.containsMouse || isActive ? Qt.rgba(Theme.surfaceText.r, Theme.surfaceText.g, Theme.surfaceText.b, 0.12) : Qt.rgba(Theme.surfaceText.r, Theme.surfaceText.g, Theme.surfaceText.b, 0.08)
|
color: launcherArea.containsMouse || isActive ? Theme.surfaceTextPressed : Theme.surfaceTextHover
|
||||||
|
|
||||||
SystemLogo {
|
SystemLogo {
|
||||||
visible: Prefs.useOSLogo
|
visible: Prefs.useOSLogo
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ Rectangle {
|
|||||||
|
|
||||||
height: 30
|
height: 30
|
||||||
radius: Theme.cornerRadius
|
radius: Theme.cornerRadius
|
||||||
color: Qt.rgba(Theme.surfaceText.r, Theme.surfaceText.g, Theme.surfaceText.b, 0.08)
|
color: Theme.surfaceTextHover
|
||||||
states: [
|
states: [
|
||||||
State {
|
State {
|
||||||
name: "shown"
|
name: "shown"
|
||||||
@@ -144,7 +144,7 @@ Rectangle {
|
|||||||
height: 20
|
height: 20
|
||||||
radius: 10
|
radius: 10
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
color: prevArea.containsMouse ? Qt.rgba(Theme.primary.r, Theme.primary.g, Theme.primary.b, 0.12) : "transparent"
|
color: prevArea.containsMouse ? Theme.primaryHover : "transparent"
|
||||||
visible: root.playerAvailable
|
visible: root.playerAvailable
|
||||||
opacity: (activePlayer && activePlayer.canGoPrevious) ? 1 : 0.3
|
opacity: (activePlayer && activePlayer.canGoPrevious) ? 1 : 0.3
|
||||||
|
|
||||||
@@ -175,7 +175,7 @@ Rectangle {
|
|||||||
height: 24
|
height: 24
|
||||||
radius: 12
|
radius: 12
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
color: activePlayer && activePlayer.playbackState === 1 ? Theme.primary : Qt.rgba(Theme.primary.r, Theme.primary.g, Theme.primary.b, 0.12)
|
color: activePlayer && activePlayer.playbackState === 1 ? Theme.primary : Theme.primaryHover
|
||||||
visible: root.playerAvailable
|
visible: root.playerAvailable
|
||||||
opacity: activePlayer ? 1 : 0.3
|
opacity: activePlayer ? 1 : 0.3
|
||||||
|
|
||||||
@@ -204,7 +204,7 @@ Rectangle {
|
|||||||
height: 20
|
height: 20
|
||||||
radius: 10
|
radius: 10
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
color: nextArea.containsMouse ? Qt.rgba(Theme.primary.r, Theme.primary.g, Theme.primary.b, 0.12) : "transparent"
|
color: nextArea.containsMouse ? Theme.primaryHover : "transparent"
|
||||||
visible: playerAvailable
|
visible: playerAvailable
|
||||||
opacity: (activePlayer && activePlayer.canGoNext) ? 1 : 0.3
|
opacity: (activePlayer && activePlayer.canGoNext) ? 1 : 0.3
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ Rectangle {
|
|||||||
width: 40
|
width: 40
|
||||||
height: 30
|
height: 30
|
||||||
radius: Theme.cornerRadius
|
radius: Theme.cornerRadius
|
||||||
color: notificationArea.containsMouse || root.isActive ? Qt.rgba(Theme.primary.r, Theme.primary.g, Theme.primary.b, 0.16) : Qt.rgba(Theme.secondary.r, Theme.secondary.g, Theme.secondary.b, 0.08)
|
color: notificationArea.containsMouse || root.isActive ? Theme.primaryPressed : Theme.secondaryHover
|
||||||
|
|
||||||
DankIcon {
|
DankIcon {
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ Rectangle {
|
|||||||
width: 55
|
width: 55
|
||||||
height: 30
|
height: 30
|
||||||
radius: Theme.cornerRadius
|
radius: Theme.cornerRadius
|
||||||
color: ramArea.containsMouse ? Qt.rgba(Theme.primary.r, Theme.primary.g, Theme.primary.b, 0.16) : Qt.rgba(Theme.secondary.r, Theme.secondary.g, Theme.secondary.b, 0.08)
|
color: ramArea.containsMouse ? Theme.primaryPressed : Theme.secondaryHover
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
SysMonitorService.addRef();
|
SysMonitorService.addRef();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ Rectangle {
|
|||||||
width: Math.max(40, systemTrayRow.implicitWidth + Theme.spacingS * 2)
|
width: Math.max(40, systemTrayRow.implicitWidth + Theme.spacingS * 2)
|
||||||
height: 30
|
height: 30
|
||||||
radius: Theme.cornerRadius
|
radius: Theme.cornerRadius
|
||||||
color: Qt.rgba(Theme.secondary.r, Theme.secondary.g, Theme.secondary.b, 0.08)
|
color: Theme.secondaryHover
|
||||||
visible: systemTrayRow.children.length > 0
|
visible: systemTrayRow.children.length > 0
|
||||||
|
|
||||||
Row {
|
Row {
|
||||||
@@ -43,7 +43,7 @@ Rectangle {
|
|||||||
Rectangle {
|
Rectangle {
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
radius: Theme.cornerRadiusSmall
|
radius: Theme.cornerRadiusSmall
|
||||||
color: trayItemArea.containsMouse ? Qt.rgba(Theme.primary.r, Theme.primary.g, Theme.primary.b, 0.12) : "transparent"
|
color: trayItemArea.containsMouse ? Theme.primaryHover : "transparent"
|
||||||
|
|
||||||
Behavior on color {
|
Behavior on color {
|
||||||
enabled: trayItemArea.containsMouse !== undefined
|
enabled: trayItemArea.containsMouse !== undefined
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ PanelWindow {
|
|||||||
height: Math.max(60, menuList.contentHeight + Theme.spacingS * 2)
|
height: Math.max(60, menuList.contentHeight + Theme.spacingS * 2)
|
||||||
color: Theme.popupBackground()
|
color: Theme.popupBackground()
|
||||||
radius: Theme.cornerRadiusLarge
|
radius: Theme.cornerRadiusLarge
|
||||||
border.color: Qt.rgba(Theme.outline.r, Theme.outline.g, Theme.outline.b, 0.08)
|
border.color: Theme.outlineMedium
|
||||||
border.width: 1
|
border.width: 1
|
||||||
// Material 3 animations
|
// Material 3 animations
|
||||||
opacity: showContextMenu ? 1 : 0
|
opacity: showContextMenu ? 1 : 0
|
||||||
@@ -98,7 +98,7 @@ PanelWindow {
|
|||||||
width: ListView.view.width
|
width: ListView.view.width
|
||||||
height: modelData.isSeparator ? 5 : 28
|
height: modelData.isSeparator ? 5 : 28
|
||||||
radius: modelData.isSeparator ? 0 : Theme.cornerRadiusSmall
|
radius: modelData.isSeparator ? 0 : Theme.cornerRadiusSmall
|
||||||
color: modelData.isSeparator ? "transparent" : (menuItemArea.containsMouse ? Qt.rgba(Theme.primary.r, Theme.primary.g, Theme.primary.b, 0.12) : "transparent")
|
color: modelData.isSeparator ? "transparent" : (menuItemArea.containsMouse ? Theme.primaryHover : "transparent")
|
||||||
|
|
||||||
// Separator line
|
// Separator line
|
||||||
Rectangle {
|
Rectangle {
|
||||||
@@ -106,7 +106,7 @@ PanelWindow {
|
|||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
width: parent.width - Theme.spacingS * 2
|
width: parent.width - Theme.spacingS * 2
|
||||||
height: 1
|
height: 1
|
||||||
color: Qt.rgba(Theme.outline.r, Theme.outline.g, Theme.outline.b, 0.2)
|
color: Theme.surfaceVariantAlpha
|
||||||
}
|
}
|
||||||
|
|
||||||
// Menu item content
|
// Menu item content
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ PanelWindow {
|
|||||||
Rectangle {
|
Rectangle {
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
color: "transparent"
|
color: "transparent"
|
||||||
border.color: Qt.rgba(Theme.outline.r, Theme.outline.g, Theme.outline.b, 0.08)
|
border.color: Theme.outlineMedium
|
||||||
border.width: 1
|
border.width: 1
|
||||||
radius: parent.radius
|
radius: parent.radius
|
||||||
}
|
}
|
||||||
@@ -236,7 +236,7 @@ PanelWindow {
|
|||||||
width: 40
|
width: 40
|
||||||
height: 30
|
height: 30
|
||||||
radius: Theme.cornerRadius
|
radius: Theme.cornerRadius
|
||||||
color: clipboardArea.containsMouse ? Qt.rgba(Theme.primary.r, Theme.primary.g, Theme.primary.b, 0.12) : Qt.rgba(Theme.secondary.r, Theme.secondary.g, Theme.secondary.b, 0.08)
|
color: clipboardArea.containsMouse ? Theme.primaryHover : Theme.secondaryHover
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
visible: Prefs.showClipboard
|
visible: Prefs.showClipboard
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ Rectangle {
|
|||||||
width: visible ? Math.min(100, weatherRow.implicitWidth + Theme.spacingS * 2) : 0
|
width: visible ? Math.min(100, weatherRow.implicitWidth + Theme.spacingS * 2) : 0
|
||||||
height: 30
|
height: 30
|
||||||
radius: Theme.cornerRadius
|
radius: Theme.cornerRadius
|
||||||
color: weatherArea.containsMouse ? Qt.rgba(Theme.primary.r, Theme.primary.g, Theme.primary.b, 0.12) : Qt.rgba(Theme.surfaceText.r, Theme.surfaceText.g, Theme.surfaceText.b, 0.08)
|
color: weatherArea.containsMouse ? Theme.primaryHover : Theme.surfaceTextHover
|
||||||
|
|
||||||
Ref {
|
Ref {
|
||||||
service: WeatherService
|
service: WeatherService
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ Rectangle {
|
|||||||
width: Prefs.showWorkspacePadding ? Math.max(120, workspaceRow.implicitWidth + Theme.spacingL * 2) : workspaceRow.implicitWidth + Theme.spacingL * 2
|
width: Prefs.showWorkspacePadding ? Math.max(120, workspaceRow.implicitWidth + Theme.spacingL * 2) : workspaceRow.implicitWidth + Theme.spacingL * 2
|
||||||
height: 30
|
height: 30
|
||||||
radius: Theme.cornerRadiusLarge
|
radius: Theme.cornerRadiusLarge
|
||||||
color: Qt.rgba(Theme.surfaceText.r, Theme.surfaceText.g, Theme.surfaceText.b, 0.08)
|
color: Theme.surfaceTextHover
|
||||||
visible: NiriService.niriAvailable
|
visible: NiriService.niriAvailable
|
||||||
|
|
||||||
Connections {
|
Connections {
|
||||||
@@ -108,7 +108,7 @@ Rectangle {
|
|||||||
width: isActive ? Theme.spacingXL + Theme.spacingM : Theme.spacingL + Theme.spacingXS
|
width: isActive ? Theme.spacingXL + Theme.spacingM : Theme.spacingL + Theme.spacingXS
|
||||||
height: Theme.spacingL
|
height: Theme.spacingL
|
||||||
radius: height / 2
|
radius: height / 2
|
||||||
color: isActive ? Theme.primary : isPlaceholder ? Qt.rgba(Theme.surfaceText.r, Theme.surfaceText.g, Theme.surfaceText.b, 0.06) : isHovered ? Qt.rgba(Theme.primary.r, Theme.primary.g, Theme.primary.b, 0.5) : Qt.rgba(Theme.surfaceText.r, Theme.surfaceText.g, Theme.surfaceText.b, 0.3)
|
color: isActive ? Theme.primary : isPlaceholder ? Theme.surfaceTextLight : isHovered ? Theme.outlineButton : Theme.surfaceTextAlpha
|
||||||
|
|
||||||
MouseArea {
|
MouseArea {
|
||||||
id: mouseArea
|
id: mouseArea
|
||||||
@@ -129,7 +129,7 @@ Rectangle {
|
|||||||
visible: Prefs.showWorkspaceIndex
|
visible: Prefs.showWorkspaceIndex
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
text: isPlaceholder ? sequentialNumber : sequentialNumber
|
text: isPlaceholder ? sequentialNumber : sequentialNumber
|
||||||
color: isPlaceholder ? Qt.rgba(Theme.surfaceText.r, Theme.surfaceText.g, Theme.surfaceText.b, 0.3) : Theme.surfaceText
|
color: isPlaceholder ? Theme.surfaceTextAlpha : Theme.surfaceText
|
||||||
font.pixelSize: Theme.fontSizeMedium
|
font.pixelSize: Theme.fontSizeMedium
|
||||||
font.bold: isActive && !isPlaceholder
|
font.bold: isActive && !isPlaceholder
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,8 @@ Singleton {
|
|||||||
id: root
|
id: root
|
||||||
|
|
||||||
readonly property list<NotifWrapper> notifications: []
|
readonly property list<NotifWrapper> notifications: []
|
||||||
readonly property list<NotifWrapper> popups: notifications.filter(n => n.popup)
|
readonly property list<NotifWrapper> allWrappers: []
|
||||||
|
readonly property list<NotifWrapper> popups: allWrappers.filter(n => n.popup)
|
||||||
|
|
||||||
// Android 16-style grouped notifications
|
// Android 16-style grouped notifications
|
||||||
readonly property var groupedNotifications: getGroupedNotifications()
|
readonly property var groupedNotifications: getGroupedNotifications()
|
||||||
@@ -38,23 +39,29 @@ Singleton {
|
|||||||
inlineReplySupported: true
|
inlineReplySupported: true
|
||||||
|
|
||||||
onNotification: notif => {
|
onNotification: notif => {
|
||||||
|
console.log("=== RAW NOTIFICATION DATA ===");
|
||||||
|
console.log("appName:", notif.appName);
|
||||||
|
console.log("summary:", notif.summary);
|
||||||
|
console.log("body:", notif.body);
|
||||||
|
console.log("appIcon:", notif.appIcon);
|
||||||
|
console.log("image:", notif.image);
|
||||||
|
console.log("urgency:", notif.urgency);
|
||||||
|
console.log("hasInlineReply:", notif.hasInlineReply);
|
||||||
|
console.log("=============================");
|
||||||
|
|
||||||
notif.tracked = true;
|
notif.tracked = true;
|
||||||
|
|
||||||
const wrapper = notifComponent.createObject(root, {
|
const wrapper = notifComponent.createObject(root, {
|
||||||
popup: !notif.transient, // Transient notifications show as popups but don't persist
|
popup: true, // Always show as popup initially
|
||||||
notification: notif
|
notification: notif
|
||||||
});
|
});
|
||||||
|
|
||||||
if (wrapper) {
|
if (wrapper) {
|
||||||
const groupKey = getGroupKey(wrapper);
|
const groupKey = getGroupKey(wrapper);
|
||||||
|
|
||||||
// Only add to notifications list if not transient
|
root.allWrappers.push(wrapper);
|
||||||
if (!notif.transient) {
|
root.notifications.push(wrapper);
|
||||||
root.notifications.push(wrapper);
|
addToPersistentStorage(wrapper);
|
||||||
addToPersistentStorage(wrapper);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -65,7 +72,16 @@ Singleton {
|
|||||||
property bool popup: false
|
property bool popup: false
|
||||||
|
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
popup = !root.popupsDisabled && !notification.transient;
|
popup = !root.popupsDisabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
readonly property Timer timer: Timer {
|
||||||
|
interval: 5000
|
||||||
|
repeat: false
|
||||||
|
running: wrapper.popup
|
||||||
|
onTriggered: {
|
||||||
|
wrapper.popup = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
readonly property date time: new Date()
|
readonly property date time: new Date()
|
||||||
readonly property string timeStr: {
|
readonly property string timeStr: {
|
||||||
@@ -113,23 +129,24 @@ Singleton {
|
|||||||
target: wrapper.notification.Retainable
|
target: wrapper.notification.Retainable
|
||||||
|
|
||||||
function onDropped(): void {
|
function onDropped(): void {
|
||||||
const index = root.notifications.indexOf(wrapper);
|
const notifIndex = root.notifications.indexOf(wrapper);
|
||||||
if (index !== -1) {
|
const allIndex = root.allWrappers.indexOf(wrapper);
|
||||||
// Get the group key before removing the notification
|
|
||||||
const groupKey = getGroupKey(wrapper);
|
if (allIndex !== -1) {
|
||||||
root.notifications.splice(index, 1);
|
root.allWrappers.splice(allIndex, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (notifIndex !== -1) {
|
||||||
|
const groupKey = getGroupKey(wrapper);
|
||||||
|
root.notifications.splice(notifIndex, 1);
|
||||||
|
|
||||||
// Check if this group now has no notifications left or only 1 left
|
|
||||||
const remainingInGroup = root.notifications.filter(n => getGroupKey(n) === groupKey);
|
const remainingInGroup = root.notifications.filter(n => getGroupKey(n) === groupKey);
|
||||||
if (remainingInGroup.length === 0) {
|
if (remainingInGroup.length === 0) {
|
||||||
// Immediately clear expansion state for empty group
|
|
||||||
clearGroupExpansionState(groupKey);
|
clearGroupExpansionState(groupKey);
|
||||||
} else if (remainingInGroup.length === 1) {
|
} else if (remainingInGroup.length === 1) {
|
||||||
// Collapse groups that only have 1 notification left
|
|
||||||
clearGroupExpansionState(groupKey);
|
clearGroupExpansionState(groupKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Clean up all expansion states
|
|
||||||
cleanupExpansionStates();
|
cleanupExpansionStates();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -168,7 +185,7 @@ Singleton {
|
|||||||
function disablePopups(disable) {
|
function disablePopups(disable) {
|
||||||
popupsDisabled = disable;
|
popupsDisabled = disable;
|
||||||
if (disable) {
|
if (disable) {
|
||||||
for (const notif of root.notifications) {
|
for (const notif of root.allWrappers) {
|
||||||
notif.popup = false;
|
notif.popup = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -271,6 +288,12 @@ Singleton {
|
|||||||
for (const notif of group.notifications) {
|
for (const notif of group.notifications) {
|
||||||
notif.notification.dismiss();
|
notif.notification.dismiss();
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
for (const notif of allWrappers) {
|
||||||
|
if (getGroupKey(notif) === groupKey) {
|
||||||
|
notif.notification.dismiss();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ StyledRect {
|
|||||||
property string iconName: ""
|
property string iconName: ""
|
||||||
property int iconSize: Theme.iconSize - 4
|
property int iconSize: Theme.iconSize - 4
|
||||||
property color iconColor: Theme.surfaceText
|
property color iconColor: Theme.surfaceText
|
||||||
property color hoverColor: Qt.rgba(Theme.primary.r, Theme.primary.g, Theme.primary.b, 0.12)
|
property color hoverColor: Theme.primaryHover
|
||||||
property color backgroundColor: "transparent"
|
property color backgroundColor: "transparent"
|
||||||
property bool circular: true
|
property bool circular: true
|
||||||
property int buttonSize: 32
|
property int buttonSize: 32
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ Rectangle {
|
|||||||
width: parent.width
|
width: parent.width
|
||||||
height: 60
|
height: 60
|
||||||
radius: Theme.cornerRadius
|
radius: Theme.cornerRadius
|
||||||
color: Qt.rgba(Theme.surfaceVariant.r, Theme.surfaceVariant.g, Theme.surfaceVariant.b, 0.08)
|
color: Theme.surfaceHover
|
||||||
onVisibleChanged: {
|
onVisibleChanged: {
|
||||||
if (!visible && dropdownMenu.visible)
|
if (!visible && dropdownMenu.visible)
|
||||||
dropdownMenu.close();
|
dropdownMenu.close();
|
||||||
@@ -59,8 +59,8 @@ Rectangle {
|
|||||||
anchors.rightMargin: Theme.spacingM
|
anchors.rightMargin: Theme.spacingM
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
radius: Theme.cornerRadiusSmall
|
radius: Theme.cornerRadiusSmall
|
||||||
color: dropdownArea.containsMouse ? Qt.rgba(Theme.primary.r, Theme.primary.g, Theme.primary.b, 0.12) : Theme.contentBackground()
|
color: dropdownArea.containsMouse ? Theme.primaryHover : Theme.contentBackground()
|
||||||
border.color: Qt.rgba(Theme.outline.r, Theme.outline.g, Theme.outline.b, 0.2)
|
border.color: Theme.surfaceVariantAlpha
|
||||||
border.width: 1
|
border.width: 1
|
||||||
|
|
||||||
MouseArea {
|
MouseArea {
|
||||||
@@ -141,7 +141,7 @@ Rectangle {
|
|||||||
|
|
||||||
contentItem: Rectangle {
|
contentItem: Rectangle {
|
||||||
color: Qt.rgba(Theme.surfaceContainer.r, Theme.surfaceContainer.g, Theme.surfaceContainer.b, 1)
|
color: Qt.rgba(Theme.surfaceContainer.r, Theme.surfaceContainer.g, Theme.surfaceContainer.b, 1)
|
||||||
border.color: Qt.rgba(Theme.outline.r, Theme.outline.g, Theme.outline.b, 0.3)
|
border.color: Theme.primarySelected
|
||||||
border.width: 1
|
border.width: 1
|
||||||
radius: Theme.cornerRadiusSmall
|
radius: Theme.cornerRadiusSmall
|
||||||
|
|
||||||
@@ -158,7 +158,7 @@ Rectangle {
|
|||||||
width: ListView.view.width
|
width: ListView.view.width
|
||||||
height: 32
|
height: 32
|
||||||
radius: Theme.cornerRadiusSmall
|
radius: Theme.cornerRadiusSmall
|
||||||
color: optionArea.containsMouse ? Qt.rgba(Theme.primary.r, Theme.primary.g, Theme.primary.b, 0.08) : "transparent"
|
color: optionArea.containsMouse ? Theme.primaryHoverLight : "transparent"
|
||||||
|
|
||||||
Row {
|
Row {
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
|
|||||||
@@ -69,8 +69,8 @@ ScrollView {
|
|||||||
width: grid.cellWidth - cellPadding
|
width: grid.cellWidth - cellPadding
|
||||||
height: grid.cellHeight - cellPadding
|
height: grid.cellHeight - cellPadding
|
||||||
radius: Theme.cornerRadiusLarge
|
radius: Theme.cornerRadiusLarge
|
||||||
color: currentIndex === index ? Qt.rgba(Theme.primary.r, Theme.primary.g, Theme.primary.b, 0.16) : mouseArea.containsMouse ? Qt.rgba(Theme.primary.r, Theme.primary.g, Theme.primary.b, 0.08) : Qt.rgba(Theme.surfaceVariant.r, Theme.surfaceVariant.g, Theme.surfaceVariant.b, 0.03)
|
color: currentIndex === index ? Theme.primaryPressed : mouseArea.containsMouse ? Theme.primaryHoverLight : Qt.rgba(Theme.surfaceVariant.r, Theme.surfaceVariant.g, Theme.surfaceVariant.b, 0.03)
|
||||||
border.color: currentIndex === index ? Qt.rgba(Theme.primary.r, Theme.primary.g, Theme.primary.b, 0.3) : Qt.rgba(Theme.outline.r, Theme.outline.g, Theme.outline.b, 0.08)
|
border.color: currentIndex === index ? Theme.primarySelected : Theme.outlineMedium
|
||||||
border.width: currentIndex === index ? 2 : 1
|
border.width: currentIndex === index ? 2 : 1
|
||||||
|
|
||||||
Column {
|
Column {
|
||||||
@@ -97,10 +97,10 @@ ScrollView {
|
|||||||
Rectangle {
|
Rectangle {
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
visible: !iconImg.visible
|
visible: !iconImg.visible
|
||||||
color: Qt.rgba(Theme.primary.r, Theme.primary.g, Theme.primary.b, 0.1)
|
color: Theme.surfaceLight
|
||||||
radius: Theme.cornerRadiusLarge
|
radius: Theme.cornerRadiusLarge
|
||||||
border.width: 1
|
border.width: 1
|
||||||
border.color: Qt.rgba(Theme.primary.r, Theme.primary.g, Theme.primary.b, 0.2)
|
border.color: Theme.primarySelected
|
||||||
|
|
||||||
Text {
|
Text {
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
|
|||||||
@@ -58,8 +58,8 @@ ScrollView {
|
|||||||
width: list.width
|
width: list.width
|
||||||
height: itemHeight
|
height: itemHeight
|
||||||
radius: Theme.cornerRadiusLarge
|
radius: Theme.cornerRadiusLarge
|
||||||
color: ListView.isCurrentItem ? Qt.rgba(Theme.primary.r, Theme.primary.g, Theme.primary.b, 0.16) : mouseArea.containsMouse ? Qt.rgba(Theme.primary.r, Theme.primary.g, Theme.primary.b, 0.08) : Qt.rgba(Theme.surfaceVariant.r, Theme.surfaceVariant.g, Theme.surfaceVariant.b, 0.03)
|
color: ListView.isCurrentItem ? Theme.primaryPressed : mouseArea.containsMouse ? Theme.primaryHoverLight : Qt.rgba(Theme.surfaceVariant.r, Theme.surfaceVariant.g, Theme.surfaceVariant.b, 0.03)
|
||||||
border.color: ListView.isCurrentItem ? Qt.rgba(Theme.primary.r, Theme.primary.g, Theme.primary.b, 0.3) : Qt.rgba(Theme.outline.r, Theme.outline.g, Theme.outline.b, 0.08)
|
border.color: ListView.isCurrentItem ? Theme.primarySelected : Theme.outlineMedium
|
||||||
border.width: ListView.isCurrentItem ? 2 : 1
|
border.width: ListView.isCurrentItem ? 2 : 1
|
||||||
|
|
||||||
Row {
|
Row {
|
||||||
@@ -85,10 +85,10 @@ ScrollView {
|
|||||||
Rectangle {
|
Rectangle {
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
visible: !iconImg.visible
|
visible: !iconImg.visible
|
||||||
color: Qt.rgba(Theme.primary.r, Theme.primary.g, Theme.primary.b, 0.1)
|
color: Theme.surfaceLight
|
||||||
radius: Theme.cornerRadiusLarge
|
radius: Theme.cornerRadiusLarge
|
||||||
border.width: 1
|
border.width: 1
|
||||||
border.color: Qt.rgba(Theme.primary.r, Theme.primary.g, Theme.primary.b, 0.2)
|
border.color: Theme.primarySelected
|
||||||
|
|
||||||
Text {
|
Text {
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
|
|||||||
@@ -144,7 +144,7 @@ Item {
|
|||||||
placeholderText: root.placeholderText
|
placeholderText: root.placeholderText
|
||||||
text: root.currentLocation
|
text: root.currentLocation
|
||||||
backgroundColor: Theme.surfaceVariant
|
backgroundColor: Theme.surfaceVariant
|
||||||
normalBorderColor: Qt.rgba(Theme.outline.r, Theme.outline.g, Theme.outline.b, 0.3)
|
normalBorderColor: Theme.primarySelected
|
||||||
focusedBorderColor: Theme.primary
|
focusedBorderColor: Theme.primary
|
||||||
onTextEdited: {
|
onTextEdited: {
|
||||||
if (root._internalChange)
|
if (root._internalChange)
|
||||||
@@ -226,7 +226,7 @@ Item {
|
|||||||
y: searchInputField.height
|
y: searchInputField.height
|
||||||
radius: Theme.cornerRadius
|
radius: Theme.cornerRadius
|
||||||
color: Theme.popupBackground()
|
color: Theme.popupBackground()
|
||||||
border.color: Qt.rgba(Theme.outline.r, Theme.outline.g, Theme.outline.b, 0.3)
|
border.color: Theme.primarySelected
|
||||||
border.width: 1
|
border.width: 1
|
||||||
visible: locationInput.getActiveFocus() && locationInput.text.length > 2 && (searchResultsModel.count > 0 || root.isLoading)
|
visible: locationInput.getActiveFocus() && locationInput.text.length > 2 && (searchResultsModel.count > 0 || root.isLoading)
|
||||||
|
|
||||||
@@ -262,7 +262,7 @@ Item {
|
|||||||
width: searchResultsList.width
|
width: searchResultsList.width
|
||||||
height: 36
|
height: 36
|
||||||
radius: Theme.cornerRadius
|
radius: Theme.cornerRadius
|
||||||
color: resultMouseArea.containsMouse ? Qt.rgba(Theme.primary.r, Theme.primary.g, Theme.primary.b, 0.1) : "transparent"
|
color: resultMouseArea.containsMouse ? Theme.surfaceLight : "transparent"
|
||||||
|
|
||||||
Row {
|
Row {
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ Item {
|
|||||||
width: parent.width - (leftIconWidth + rightIconWidth + (slider.leftIcon.length > 0 ? Theme.spacingM : 0) + (slider.rightIcon.length > 0 ? Theme.spacingM : 0))
|
width: parent.width - (leftIconWidth + rightIconWidth + (slider.leftIcon.length > 0 ? Theme.spacingM : 0) + (slider.rightIcon.length > 0 ? Theme.spacingM : 0))
|
||||||
height: 6
|
height: 6
|
||||||
radius: 3
|
radius: 3
|
||||||
color: slider.enabled ? Qt.rgba(Theme.surfaceVariant.r, Theme.surfaceVariant.g, Theme.surfaceVariant.b, 0.3) : Qt.rgba(Theme.surfaceVariant.r, Theme.surfaceVariant.g, Theme.surfaceVariant.b, 0.1)
|
color: slider.enabled ? Theme.surfaceVariantAlpha : Theme.surfaceLight
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
|
||||||
StyledRect {
|
StyledRect {
|
||||||
@@ -82,7 +82,7 @@ Item {
|
|||||||
height: parent.height + 4
|
height: parent.height + 4
|
||||||
radius: width / 2
|
radius: width / 2
|
||||||
color: "transparent"
|
color: "transparent"
|
||||||
border.color: Qt.rgba(Theme.primary.r, Theme.primary.g, Theme.primary.b, 0.3)
|
border.color: Theme.primarySelected
|
||||||
border.width: 2
|
border.width: 2
|
||||||
visible: sliderMouseArea.containsMouse && slider.enabled
|
visible: sliderMouseArea.containsMouse && slider.enabled
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ Item {
|
|||||||
width: tabBar.equalWidthTabs ? (tabBar.width - tabBar.spacing * (tabCount - 1)) / tabCount : contentRow.implicitWidth + Theme.spacingM * 2
|
width: tabBar.equalWidthTabs ? (tabBar.width - tabBar.spacing * (tabCount - 1)) / tabCount : contentRow.implicitWidth + Theme.spacingM * 2
|
||||||
height: tabBar.tabHeight
|
height: tabBar.tabHeight
|
||||||
radius: Theme.cornerRadiusSmall
|
radius: Theme.cornerRadiusSmall
|
||||||
color: isActive ? Qt.rgba(Theme.primary.r, Theme.primary.g, Theme.primary.b, 0.16) : tabArea.containsMouse ? Qt.rgba(Theme.primary.r, Theme.primary.g, Theme.primary.b, 0.08) : "transparent"
|
color: isActive ? Theme.primaryPressed : tabArea.containsMouse ? Theme.primaryHoverLight : "transparent"
|
||||||
|
|
||||||
Row {
|
Row {
|
||||||
id: contentRow
|
id: contentRow
|
||||||
|
|||||||
@@ -28,8 +28,8 @@ StyledRect {
|
|||||||
// Custom properties
|
// Custom properties
|
||||||
property color backgroundColor: Qt.rgba(Theme.surfaceContainer.r, Theme.surfaceContainer.g, Theme.surfaceContainer.b, 0.9)
|
property color backgroundColor: Qt.rgba(Theme.surfaceContainer.r, Theme.surfaceContainer.g, Theme.surfaceContainer.b, 0.9)
|
||||||
property color focusedBorderColor: Theme.primary
|
property color focusedBorderColor: Theme.primary
|
||||||
property color normalBorderColor: Qt.rgba(Theme.outline.r, Theme.outline.g, Theme.outline.b, 0.12)
|
property color normalBorderColor: Theme.outlineStrong
|
||||||
property color placeholderColor: Qt.rgba(Theme.surfaceText.r, Theme.surfaceText.g, Theme.surfaceText.b, 0.5)
|
property color placeholderColor: Theme.outlineButton
|
||||||
property int borderWidth: 1
|
property int borderWidth: 1
|
||||||
property int focusedBorderWidth: 2
|
property int focusedBorderWidth: 2
|
||||||
property real cornerRadius: Theme.cornerRadius
|
property real cornerRadius: Theme.cornerRadius
|
||||||
@@ -160,7 +160,7 @@ StyledRect {
|
|||||||
width: 24
|
width: 24
|
||||||
height: 24
|
height: 24
|
||||||
radius: 12
|
radius: 12
|
||||||
color: clearArea.containsMouse ? Qt.rgba(Theme.outline.r, Theme.outline.g, Theme.outline.b, 0.12) : "transparent"
|
color: clearArea.containsMouse ? Theme.outlineStrong : "transparent"
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
anchors.rightMargin: Theme.spacingM
|
anchors.rightMargin: Theme.spacingM
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ Item {
|
|||||||
|
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
radius: toggle.text ? Theme.cornerRadius : 0
|
radius: toggle.text ? Theme.cornerRadius : 0
|
||||||
color: toggle.text ? Qt.rgba(Theme.surfaceVariant.r, Theme.surfaceVariant.g, Theme.surfaceVariant.b, 0.08) : "transparent"
|
color: toggle.text ? Theme.surfaceHover : "transparent"
|
||||||
visible: toggle.text
|
visible: toggle.text
|
||||||
|
|
||||||
StateLayer {
|
StateLayer {
|
||||||
@@ -85,7 +85,7 @@ Item {
|
|||||||
anchors.rightMargin: toggle.text ? Theme.spacingM : 0
|
anchors.rightMargin: toggle.text ? Theme.spacingM : 0
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
radius: height / 2
|
radius: height / 2
|
||||||
color: (toggle.checked && toggle.enabled) ? Theme.primary : Qt.rgba(Theme.surfaceVariant.r, Theme.surfaceVariant.g, Theme.surfaceVariant.b, 0.3)
|
color: (toggle.checked && toggle.enabled) ? Theme.primary : Theme.surfaceVariantAlpha
|
||||||
opacity: toggle.toggling ? 0.6 : (toggle.enabled ? 1 : 0.4)
|
opacity: toggle.toggling ? 0.6 : (toggle.enabled ? 1 : 0.4)
|
||||||
|
|
||||||
StyledRect {
|
StyledRect {
|
||||||
|
|||||||
@@ -67,6 +67,8 @@ sleep 0.5
|
|||||||
notify-send -h string:desktop-entry:org.gnome.Nautilus -i folder-downloads "Files" "document.pdf downloaded"
|
notify-send -h string:desktop-entry:org.gnome.Nautilus -i folder-downloads "Files" "document.pdf downloaded"
|
||||||
sleep 2
|
sleep 2
|
||||||
|
|
||||||
|
# notify-send --hint=boolean:resident:true "Resident Test" "Click an action - I should stay visible!" --action="Test Action" --action="Close Me"
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "✅ Notification tests completed!"
|
echo "✅ Notification tests completed!"
|
||||||
echo ""
|
echo ""
|
||||||
|
|||||||
Reference in New Issue
Block a user