Revert "Remove qt5-compat"

This commit is contained in:
Lysec 2025-08-03 12:59:13 +02:00 committed by GitHub
parent 615dfa6621
commit 7fe8005cbe
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
10 changed files with 64 additions and 68 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 QtQuick.Effects import Qt5Compat.GraphicalEffects
import qs.Bar.Modules import qs.Bar.Modules
import qs.Settings import qs.Settings
import qs.Services import qs.Services

View file

@ -1,7 +1,7 @@
import QtQuick import QtQuick
import QtQuick.Controls import QtQuick.Controls
import QtQuick.Layouts import QtQuick.Layouts
import QtQuick.Effects import Qt5Compat.GraphicalEffects
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: MultiEffect { layer.effect: OpacityMask {
maskEnabled: true cached: 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 QtQuick.Effects import Qt5Compat.GraphicalEffects
import Quickshell.Services.SystemTray import Quickshell.Services.SystemTray
import Quickshell.Widgets import Quickshell.Widgets
import qs.Settings import qs.Settings
@ -14,10 +14,10 @@ Row {
property var trayMenu property var trayMenu
spacing: 8 spacing: 8
Layout.alignment: Qt.AlignVCenter Layout.alignment: Qt.AlignVCenter
property bool containsMouse: false property bool containsMouse: false
property var systemTray: SystemTray property var systemTray: SystemTray
Repeater { Repeater {
model: systemTray.items model: systemTray.items
delegate: Item { delegate: Item {
@ -26,7 +26,7 @@ Row {
// Hide Spotify icon, or adjust to your liking // Hide Spotify icon, or adjust to your liking
visible: modelData && modelData.id !== "spotify" visible: modelData && modelData.id !== "spotify"
property bool isHovered: trayMouseArea.containsMouse property bool isHovered: trayMouseArea.containsMouse
// Hover scale animation // Hover scale animation
scale: isHovered ? 1.15 : 1.0 scale: isHovered ? 1.15 : 1.0
Behavior on scale { Behavior on scale {
@ -35,7 +35,7 @@ Row {
easing.type: Easing.OutCubic easing.type: Easing.OutCubic
} }
} }
// Subtle rotation on hover // Subtle rotation on hover
rotation: isHovered ? 5 : 0 rotation: isHovered ? 5 : 0
Behavior on rotation { Behavior on rotation {
@ -44,7 +44,7 @@ Row {
easing.type: Easing.OutCubic easing.type: Easing.OutCubic
} }
} }
Rectangle { Rectangle {
anchors.centerIn: parent anchors.centerIn: parent
width: 16 width: 16
@ -63,8 +63,7 @@ Row {
backer.fillMode: Image.PreserveAspectFit backer.fillMode: Image.PreserveAspectFit
source: { source: {
let icon = modelData?.icon || ""; let icon = modelData?.icon || "";
if (!icon) if (!icon) return "";
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=");
@ -81,60 +80,61 @@ Row {
easing.type: Easing.OutCubic easing.type: Easing.OutCubic
} }
} }
Component.onCompleted: {} Component.onCompleted: {
}
} }
} }
MouseArea { MouseArea {
id: trayMouseArea id: trayMouseArea
anchors.fill: parent anchors.fill: parent
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) if (!modelData) return;
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
console.log("Right click on", modelData.id, "hasMenu:", modelData.hasMenu, "menu:", modelData.menu); console.log("Right click on", modelData.id, "hasMenu:", modelData.hasMenu, "menu:", modelData.menu)
// 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) {
// Anchor the menu to the tray icon item (parent) and position it below the icon // Anchor the menu to the tray icon item (parent) and position it below the icon
const menuX = (width / 2) - (trayMenu.width / 2); const menuX = (width / 2) - (trayMenu.width / 2);
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
onExited: trayTooltip.tooltipVisible = false onExited: trayTooltip.tooltipVisible = false
} }
StyledTooltip { StyledTooltip {
id: trayTooltip id: trayTooltip
text: modelData.tooltipTitle || modelData.name || modelData.id || "Tray Item" text: modelData.tooltipTitle || modelData.name || modelData.id || "Tray Item"
@ -143,10 +143,10 @@ Row {
targetItem: trayIcon targetItem: trayIcon
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 QtQuick.Effects import Qt5Compat.GraphicalEffects
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: MultiEffect { layer.effect: DropShadow {
shadowColor: "black" color: "black"
// radius: 12 radius: 12
samples: 24
shadowVerticalOffset: 0 verticalOffset: 0
shadowHorizontalOffset: 0 horizontalOffset: 0
shadowOpacity: 0.10 opacity: 0.10
} }
} }

View file

@ -2,7 +2,7 @@ import QtQuick
import QtQuick.Layouts import QtQuick.Layouts
import QtQuick.Controls import QtQuick.Controls
import QtQuick.Effects import QtQuick.Effects
import QtQuick.Effects import Qt5Compat.GraphicalEffects
import Quickshell.Wayland import Quickshell.Wayland
import Quickshell import Quickshell
import Quickshell.Services.Pam import Quickshell.Services.Pam
@ -146,7 +146,6 @@ 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 {
@ -170,9 +169,8 @@ WlSessionLock {
visible: false visible: false
asynchronous: true asynchronous: true
} }
MultiEffect { OpacityMask {
anchors.fill: avatarImage anchors.fill: avatarImage
maskEnabled: true
source: avatarImage source: avatarImage
maskSource: Rectangle { maskSource: Rectangle {
width: avatarImage.width width: avatarImage.width
@ -191,11 +189,10 @@ WlSessionLock {
visible: Settings.settings.profileImage === "" visible: Settings.settings.profileImage === ""
} }
layer.enabled: true layer.enabled: true
layer.effect: MultiEffect { layer.effect: Glow {
shadowEnabled: true color: Theme.accentPrimary
shadowColor: Theme.accentPrimary radius: 8
// radius: 8 samples: 16
// samples: 16
} }
} }

View file

@ -2,6 +2,7 @@ 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
@ -52,4 +53,4 @@ ShellRoot {
} }
} }
} }
} }

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 qs.Settings import qs.Settings
Rectangle { Rectangle {
@ -74,8 +74,7 @@ Rectangle {
sourceSize.height: 64 sourceSize.height: 64
} }
MultiEffect { OpacityMask {
maskEnabled: true
anchors.fill: avatarImage anchors.fill: avatarImage
source: avatarImage source: avatarImage
maskSource: Rectangle { maskSource: Rectangle {
@ -663,4 +662,4 @@ Rectangle {
} }
} }
} }
} }

View file

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

View file

@ -1,7 +1,7 @@
import QtQuick import QtQuick
import QtQuick.Layouts import QtQuick.Layouts
import QtQuick.Controls import QtQuick.Controls
import QtQuick.Effects import Qt5Compat.GraphicalEffects
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 QtQuick.Effects import Qt5Compat.GraphicalEffects
import Quickshell import Quickshell
import Quickshell.Io import Quickshell.Io
import qs.Settings import qs.Settings
@ -51,8 +51,7 @@ Rectangle {
z: 2 z: 2
} }
MultiEffect { OpacityMask {
maskEnabled:true
anchors.fill: parent anchors.fill: parent
source: Image { source: Image {
id: avatarImage id: avatarImage