load higher resolution tray icons for high-dpi screens

This commit is contained in:
2026-05-27 11:43:42 +02:00
parent bd576e17dc
commit 3963a48a9d
3 changed files with 35 additions and 20 deletions
+27 -15
View File
@@ -305,22 +305,34 @@ Variants {
}
}
Drawing {
id: drawing
Loader {
id: drawingLoader
anchors.fill: parent
z: 2
active: visibilities.isDrawing
sourceComponent: Drawing {
id: drawing
anchors.fill: parent
z: 2
}
}
DrawingInput {
id: input
Loader {
id: inputLoader
bar: bar
drawing: drawing
panels: panels
popout: panels.drawing
visibilities: visibilities
z: 2
active: visibilities.isDrawing
sourceComponent: DrawingInput {
id: input
bar: bar
drawing: drawingLoader.item
panels: panels
popout: panels.drawing
visibilities: visibilities
z: 2
}
}
Interactions {
@@ -328,8 +340,8 @@ Variants {
anchors.fill: parent
bar: bar
drawing: drawing
input: input
drawing: drawingLoader.item
input: inputLoader.item
panels: panels
popouts: panels.popouts
screen: scope.modelData
@@ -340,7 +352,7 @@ Variants {
id: panels
bar: bar
drawingItem: drawing
drawingItem: drawingLoader.item
screen: scope.modelData
visibilities: visibilities
+3 -4
View File
@@ -44,11 +44,11 @@ Item {
Loader {
id: icon
active: Qt.binding(() => root.shouldBeActive || root.visible)
active: root.shouldBeActive || root.visible
anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter
asynchronous: true
height: content.contentItem.height
height: content.item.height
opacity: root.expanded ? 0 : 1
Behavior on opacity {
@@ -64,6 +64,7 @@ Item {
Loader {
id: content
active: root.shouldBeActive || root.visible
anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter
asynchronous: true
@@ -77,7 +78,5 @@ Item {
drawing: root.drawing
visibilities: root.visibilities
}
Component.onCompleted: active = Qt.binding(() => root.shouldBeActive || root.visible)
}
}
+5 -1
View File
@@ -3,6 +3,7 @@ import QtQuick
import QtQuick.VectorImage
import Quickshell
import Quickshell.Services.SystemTray
import qs.Helpers
import qs.Modules
import qs.Components
import qs.Config
@@ -11,6 +12,7 @@ Item {
id: root
property bool current: popouts.currentName.startsWith(`traymenu${ind}`) && popouts.hasCurrent
readonly property real dpr: Hypr.monitorFor(loader.screen).scale
property bool hasLoaded: false
required property int ind
required property SystemTrayItem item
@@ -48,9 +50,11 @@ Item {
id: icon
anchors.centerIn: parent
antialiasing: true
color: root.current ? DynamicColors.palette.m3onPrimary : DynamicColors.palette.m3onSurface
implicitSize: 22
implicitSize: 24 * root.dpr
layer.enabled: Config.general.color.smart || Config.general.color.scheduleDark
scale: 1 / root.dpr
source: root.item.icon
}
}