Merge pull request #80 from leiserfg/remove-qt5-dep

Remove qt5.comp dep
This commit is contained in:
Lysec 2025-08-03 19:38:41 +02:00 committed by GitHub
commit e71fecb521
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
11 changed files with 127 additions and 109 deletions

View file

@ -4,7 +4,7 @@ import QtQuick.Layouts
import Quickshell import Quickshell
import Quickshell.Io import Quickshell.Io
import Quickshell.Wayland import Quickshell.Wayland
import Qt5Compat.GraphicalEffects import QtQuick.Effects
import qs.Bar.Modules import qs.Bar.Modules
import qs.Settings import qs.Settings
import qs.Services import qs.Services

View file

@ -1,8 +1,8 @@
import QtQuick import QtQuick
import QtQuick.Controls import QtQuick.Controls
import QtQuick.Layouts import QtQuick.Layouts
import Qt5Compat.GraphicalEffects
import Quickshell.Widgets import Quickshell.Widgets
import QtQuick.Effects
import qs.Settings import qs.Settings
import qs.Services import qs.Services
import qs.Components import qs.Components
@ -63,8 +63,8 @@ Item {
// Rounded corners using layer // Rounded corners using layer
layer.enabled: true layer.enabled: true
layer.effect: OpacityMask { layer.effect: MultiEffect {
cached: true maskEnabled: true
maskSource: Rectangle { maskSource: Rectangle {
width: albumArt.width width: albumArt.width
height: albumArt.height height: albumArt.height

View file

@ -2,7 +2,7 @@ import QtQuick
import QtQuick.Layouts import QtQuick.Layouts
import QtQuick.Controls import QtQuick.Controls
import Quickshell import Quickshell
import Qt5Compat.GraphicalEffects import QtQuick.Effects
import Quickshell.Services.SystemTray import Quickshell.Services.SystemTray
import Quickshell.Widgets import Quickshell.Widgets
import qs.Settings import qs.Settings
@ -63,7 +63,8 @@ Row {
backer.fillMode: Image.PreserveAspectFit backer.fillMode: Image.PreserveAspectFit
source: { source: {
let icon = modelData?.icon || ""; let icon = modelData?.icon || "";
if (!icon) return ""; if (!icon)
return "";
// Process icon path // Process icon path
if (icon.includes("?path=")) { if (icon.includes("?path=")) {
const [name, path] = icon.split("?path="); const [name, path] = icon.split("?path=");
@ -80,9 +81,7 @@ Row {
easing.type: Easing.OutCubic easing.type: Easing.OutCubic
} }
} }
Component.onCompleted: { Component.onCompleted: {}
}
} }
} }
@ -92,31 +91,32 @@ Row {
hoverEnabled: true hoverEnabled: true
cursorShape: Qt.PointingHandCursor cursorShape: Qt.PointingHandCursor
acceptedButtons: Qt.LeftButton | Qt.RightButton | Qt.MiddleButton acceptedButtons: Qt.LeftButton | Qt.RightButton | Qt.MiddleButton
onClicked: (mouse) => { onClicked: mouse => {
if (!modelData) return; if (!modelData)
return;
if (mouse.button === Qt.LeftButton) { if (mouse.button === Qt.LeftButton) {
// Close any open menu first // Close any open menu first
if (trayMenu && trayMenu.visible) { if (trayMenu && trayMenu.visible) {
trayMenu.hideMenu() trayMenu.hideMenu();
} }
if (!modelData.onlyMenu) { if (!modelData.onlyMenu) {
modelData.activate() modelData.activate();
} }
} else if (mouse.button === Qt.MiddleButton) { } else if (mouse.button === Qt.MiddleButton) {
// Close any open menu first // Close any open menu first
if (trayMenu && trayMenu.visible) { if (trayMenu && trayMenu.visible) {
trayMenu.hideMenu() trayMenu.hideMenu();
} }
modelData.secondaryActivate && modelData.secondaryActivate() modelData.secondaryActivate && modelData.secondaryActivate();
} else if (mouse.button === Qt.RightButton) { } else if (mouse.button === Qt.RightButton) {
trayTooltip.tooltipVisible = false trayTooltip.tooltipVisible = false;
// If menu is already visible, close it // If menu is already visible, close it
if (trayMenu && trayMenu.visible) { if (trayMenu && trayMenu.visible) {
trayMenu.hideMenu() trayMenu.hideMenu();
return return;
} }
if (modelData.hasMenu && modelData.menu && trayMenu) { if (modelData.hasMenu && modelData.menu && trayMenu) {
@ -125,9 +125,9 @@ Row {
const menuY = height + 20; const menuY = height + 20;
trayMenu.menu = modelData.menu; trayMenu.menu = modelData.menu;
trayMenu.showAt(parent, menuX, menuY); trayMenu.showAt(parent, menuX, menuY);
} else { } else
// console.log("No menu available for", modelData.id, "or trayMenu not set") // console.log("No menu available for", modelData.id, "or trayMenu not set")
} {}
} }
} }
onEntered: trayTooltip.tooltipVisible = true onEntered: trayTooltip.tooltipVisible = true
@ -143,9 +143,9 @@ Row {
delay: 200 delay: 200
} }
Component.onDestruction: { Component.onDestruction:
// No cache cleanup needed // No cache cleanup needed
} {}
} }
} }
} }

View file

@ -2,7 +2,7 @@ import QtQuick
import QtQuick.Controls import QtQuick.Controls
import QtQuick.Layouts import QtQuick.Layouts
import QtQuick.Window import QtQuick.Window
import Qt5Compat.GraphicalEffects import QtQuick.Effects
import Quickshell import Quickshell
import Quickshell.Io import Quickshell.Io
import qs.Settings import qs.Settings
@ -124,13 +124,13 @@ Item {
border.color: Qt.rgba(Theme.textPrimary.r, Theme.textPrimary.g, Theme.textPrimary.b, 0.1) border.color: Qt.rgba(Theme.textPrimary.r, Theme.textPrimary.g, Theme.textPrimary.b, 0.1)
border.width: 1 border.width: 1
layer.enabled: true layer.enabled: true
layer.effect: DropShadow { layer.effect: MultiEffect {
color: "black" shadowColor: "black"
radius: 12 // radius: 12
samples: 24
verticalOffset: 0 shadowVerticalOffset: 0
horizontalOffset: 0 shadowHorizontalOffset: 0
opacity: 0.10 shadowOpacity: 0.10
} }
} }

View file

@ -1,8 +1,8 @@
import QtQuick import QtQuick
import Qt5Compat.GraphicalEffects
import Quickshell import Quickshell
import Quickshell.Widgets import Quickshell.Widgets
import qs.Settings import qs.Settings
import QtQuick.Effects
Item { Item {
anchors.fill: parent anchors.fill: parent
@ -17,18 +17,27 @@ Item {
backer.fillMode: Image.PreserveAspectCrop backer.fillMode: Image.PreserveAspectCrop
} }
OpacityMask { MultiEffect {
anchors.fill: avatarImage anchors.fill: avatarImage
source: avatarImage source: avatarImage
maskSource: Rectangle { maskEnabled: true
width: avatarImage.width maskSource: mask
height: avatarImage.height
radius: avatarImage.width / 2
visible: false
}
visible: Settings.settings.profileImage !== "" visible: Settings.settings.profileImage !== ""
} }
Item {
id: mask
anchors.fill: avatarImage
layer.enabled: true
visible: false
Rectangle {
anchors.fill: avatarImage
radius: avatarImage.width / 2
}
}
// Fallback icon // Fallback icon
Text { Text {
anchors.centerIn: parent anchors.centerIn: parent
@ -40,4 +49,3 @@ Item {
z: 0 z: 0
} }
} }

View file

@ -2,11 +2,10 @@ import QtQuick
import QtQuick.Layouts import QtQuick.Layouts
import QtQuick.Controls import QtQuick.Controls
import QtQuick.Effects import QtQuick.Effects
import Qt5Compat.GraphicalEffects
import Quickshell import Quickshell
import Quickshell.Wayland
import Quickshell.Services.Pam import Quickshell.Services.Pam
import Quickshell.Io import Quickshell.Io
import Quickshell.Wayland
import Quickshell.Widgets import Quickshell.Widgets
import qs.Components import qs.Components
import qs.Settings import qs.Settings
@ -33,7 +32,7 @@ WlSessionLock {
Component.onCompleted: { Component.onCompleted: {
Qt.callLater(function () { Qt.callLater(function () {
fetchWeatherData(); fetchWeatherData();
}) });
} }
function fetchWeatherData() { function fetchWeatherData() {
@ -147,6 +146,7 @@ WlSessionLock {
blurEnabled: true blurEnabled: true
blur: 0.48 // controls blur strength (0 to 1) blur: 0.48 // controls blur strength (0 to 1)
blurMax: 128 // max blur radius in pixels blurMax: 128 // max blur radius in pixels
// transparentBorder: true
} }
ColumnLayout { ColumnLayout {
@ -164,10 +164,11 @@ WlSessionLock {
Avatar {} Avatar {}
layer.enabled: true layer.enabled: true
layer.effect: Glow { layer.effect: MultiEffect {
color: Theme.accentPrimary shadowEnabled: true
radius: 8 shadowColor: Theme.accentPrimary
samples: 16 // radius: 8
// samples: 16
} }
} }
@ -379,7 +380,6 @@ WlSessionLock {
horizontalAlignment: Text.AlignHCenter horizontalAlignment: Text.AlignHCenter
Layout.alignment: Qt.AlignHCenter Layout.alignment: Qt.AlignHCenter
} }
} }
} }
@ -408,10 +408,8 @@ WlSessionLock {
anchors.margins: 32 anchors.margins: 32
spacing: 12 spacing: 12
BatteryCharge { BatteryCharge {}
} }
}
ColumnLayout { ColumnLayout {
anchors.right: parent.right anchors.right: parent.right

View file

@ -2,7 +2,6 @@ import QtQuick
import QtQuick.Effects import QtQuick.Effects
import Quickshell import Quickshell
import Quickshell.Wayland import Quickshell.Wayland
import Qt5Compat.GraphicalEffects
import qs.Services import qs.Services
import qs.Settings import qs.Settings

View file

@ -1,7 +1,7 @@
import QtQuick import QtQuick
import QtQuick.Layouts import QtQuick.Layouts
import QtQuick.Effects
import QtQuick.Controls import QtQuick.Controls
import Qt5Compat.GraphicalEffects
import Quickshell.Widgets import Quickshell.Widgets
import qs.Components import qs.Components
import qs.Settings import qs.Settings
@ -91,7 +91,7 @@ Rectangle {
activeFocusOnTab: true activeFocusOnTab: true
inputMethodHints: Qt.ImhUrlCharactersOnly inputMethodHints: Qt.ImhUrlCharactersOnly
onTextChanged: { onTextChanged: {
Settings.settings.profileImage = text Settings.settings.profileImage = text;
} }
MouseArea { MouseArea {
anchors.fill: parent anchors.fill: parent
@ -152,7 +152,7 @@ Rectangle {
anchors.fill: parent anchors.fill: parent
cursorShape: Qt.PointingHandCursor cursorShape: Qt.PointingHandCursor
onClicked: { onClicked: {
Settings.settings.showActiveWindowIcon = !Settings.settings.showActiveWindowIcon Settings.settings.showActiveWindowIcon = !Settings.settings.showActiveWindowIcon;
} }
} }
} }
@ -207,7 +207,7 @@ Rectangle {
anchors.fill: parent anchors.fill: parent
cursorShape: Qt.PointingHandCursor cursorShape: Qt.PointingHandCursor
onClicked: { onClicked: {
Settings.settings.showSystemInfoInBar = !Settings.settings.showSystemInfoInBar Settings.settings.showSystemInfoInBar = !Settings.settings.showSystemInfoInBar;
} }
} }
} }
@ -262,7 +262,7 @@ Rectangle {
anchors.fill: parent anchors.fill: parent
cursorShape: Qt.PointingHandCursor cursorShape: Qt.PointingHandCursor
onClicked: { onClicked: {
Settings.settings.showCorners = !Settings.settings.showCorners Settings.settings.showCorners = !Settings.settings.showCorners;
} }
} }
} }
@ -317,7 +317,7 @@ Rectangle {
anchors.fill: parent anchors.fill: parent
cursorShape: Qt.PointingHandCursor cursorShape: Qt.PointingHandCursor
onClicked: { onClicked: {
Settings.settings.showTaskbar = !Settings.settings.showTaskbar Settings.settings.showTaskbar = !Settings.settings.showTaskbar;
} }
} }
} }
@ -372,7 +372,7 @@ Rectangle {
anchors.fill: parent anchors.fill: parent
cursorShape: Qt.PointingHandCursor cursorShape: Qt.PointingHandCursor
onClicked: { onClicked: {
Settings.settings.showDock = !Settings.settings.showDock Settings.settings.showDock = !Settings.settings.showDock;
} }
} }
} }
@ -427,7 +427,7 @@ Rectangle {
anchors.fill: parent anchors.fill: parent
cursorShape: Qt.PointingHandCursor cursorShape: Qt.PointingHandCursor
onClicked: { onClicked: {
Settings.settings.showMediaInBar = !Settings.settings.showMediaInBar Settings.settings.showMediaInBar = !Settings.settings.showMediaInBar;
} }
} }
} }
@ -482,7 +482,7 @@ Rectangle {
anchors.fill: parent anchors.fill: parent
cursorShape: Qt.PointingHandCursor cursorShape: Qt.PointingHandCursor
onClicked: { onClicked: {
Settings.settings.dimPanels = !Settings.settings.dimPanels Settings.settings.dimPanels = !Settings.settings.dimPanels;
} }
} }
} }
@ -621,7 +621,7 @@ Rectangle {
activeFocusOnTab: true activeFocusOnTab: true
inputMethodHints: Qt.ImhUrlCharactersOnly inputMethodHints: Qt.ImhUrlCharactersOnly
onTextChanged: { onTextChanged: {
Settings.settings.videoPath = text Settings.settings.videoPath = text;
} }
MouseArea { MouseArea {
anchors.fill: parent anchors.fill: parent

View file

@ -1,7 +1,7 @@
import QtQuick import QtQuick
import QtQuick.Controls import QtQuick.Controls
import QtQuick.Layouts import QtQuick.Layouts
import Qt5Compat.GraphicalEffects import QtQuick.Effects
import qs.Settings import qs.Settings
import qs.Components import qs.Components
import qs.Services import qs.Services
@ -61,7 +61,8 @@ Rectangle {
// Album art with spectrum // Album art with spectrum
Item { Item {
id: albumArtContainer id: albumArtContainer
width: 96; height: 96 // enough for spectrum and art (will adjust if needed) width: 96
height: 96 // enough for spectrum and art (will adjust if needed)
Layout.alignment: Qt.AlignLeft | Qt.AlignVCenter Layout.alignment: Qt.AlignLeft | Qt.AlignVCenter
// Spectrum visualizer // Spectrum visualizer
@ -80,7 +81,8 @@ Rectangle {
// Album art image // Album art image
Rectangle { Rectangle {
id: albumArtwork id: albumArtwork
width: 60; height: 60 width: 60
height: 60
anchors.centerIn: parent anchors.centerIn: parent
radius: 30 // circle radius: 30 // circle
color: Qt.darker(Theme.surface, 1.1) color: Qt.darker(Theme.surface, 1.1)
@ -103,14 +105,23 @@ Rectangle {
// Rounded corners using layer // Rounded corners using layer
layer.enabled: true layer.enabled: true
layer.effect: OpacityMask { layer.effect: MultiEffect {
cached: true maskEnabled: true
maskSource: Rectangle { maskSource: mask
}
}
Item {
id: mask
anchors.fill: albumArt
layer.enabled: true
visible: false
Rectangle {
width: albumArt.width width: albumArt.width
height: albumArt.height height: albumArt.height
radius: albumArt.width / 2 // circle radius: albumArt.width / 2 // circle
visible: false
}
} }
} }
@ -172,8 +183,7 @@ Rectangle {
color: Qt.rgba(Theme.textPrimary.r, Theme.textPrimary.g, Theme.textPrimary.b, 0.15) color: Qt.rgba(Theme.textPrimary.r, Theme.textPrimary.g, Theme.textPrimary.b, 0.15)
Layout.fillWidth: true Layout.fillWidth: true
property real progressRatio: Math.min(1, MusicManager.trackLength > 0 ? property real progressRatio: Math.min(1, MusicManager.trackLength > 0 ? (MusicManager.currentPosition / MusicManager.trackLength) : 0)
(MusicManager.currentPosition / MusicManager.trackLength) : 0)
Rectangle { Rectangle {
id: progressFill id: progressFill
@ -183,7 +193,9 @@ Rectangle {
color: Theme.accentPrimary color: Theme.accentPrimary
Behavior on width { Behavior on width {
NumberAnimation { duration: 200 } NumberAnimation {
duration: 200
}
} }
} }
@ -204,7 +216,9 @@ Rectangle {
scale: progressMouseArea.containsMouse || progressMouseArea.pressed ? 1.2 : 1.0 scale: progressMouseArea.containsMouse || progressMouseArea.pressed ? 1.2 : 1.0
Behavior on scale { Behavior on scale {
NumberAnimation { duration: 150 } NumberAnimation {
duration: 150
}
} }
} }
@ -217,14 +231,14 @@ Rectangle {
enabled: MusicManager.trackLength > 0 && MusicManager.canSeek enabled: MusicManager.trackLength > 0 && MusicManager.canSeek
onClicked: function (mouse) { onClicked: function (mouse) {
let ratio = mouse.x / width let ratio = mouse.x / width;
MusicManager.seekByRatio(ratio) MusicManager.seekByRatio(ratio);
} }
onPositionChanged: function (mouse) { onPositionChanged: function (mouse) {
if (pressed) { if (pressed) {
let ratio = Math.max(0, Math.min(1, mouse.x / width)) let ratio = Math.max(0, Math.min(1, mouse.x / width));
MusicManager.seekByRatio(ratio) MusicManager.seekByRatio(ratio);
} }
} }
} }

View file

@ -1,7 +1,7 @@
import QtQuick import QtQuick
import QtQuick.Layouts import QtQuick.Layouts
import QtQuick.Controls import QtQuick.Controls
import Qt5Compat.GraphicalEffects import QtQuick.Effects
import Quickshell import Quickshell
import Quickshell.Io import Quickshell.Io
import qs.Settings import qs.Settings

View file

@ -1,7 +1,7 @@
import QtQuick import QtQuick
import QtQuick.Layouts import QtQuick.Layouts
import QtQuick.Controls import QtQuick.Controls
import Qt5Compat.GraphicalEffects import QtQuick.Effects
import Quickshell import Quickshell
import Quickshell.Io import Quickshell.Io
import Quickshell.Widgets import Quickshell.Widgets
@ -421,7 +421,6 @@ Rectangle {
rebootProcess.running = true; rebootProcess.running = true;
} }
property bool panelVisible: false property bool panelVisible: false
// Trigger initial update when panel becomes visible // Trigger initial update when panel becomes visible