Merge pull request #76 from Ly-sec/revert-74-workspaces

Revert "Remove qt5-compat"
This commit is contained in:
Lysec 2025-08-03 12:59:24 +02:00 committed by GitHub
commit 317bb538b5
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.Io
import Quickshell.Wayland
import QtQuick.Effects
import Qt5Compat.GraphicalEffects
import qs.Bar.Modules
import qs.Settings
import qs.Services

View file

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

View file

@ -2,7 +2,7 @@ import QtQuick
import QtQuick.Layouts
import QtQuick.Controls
import Quickshell
import QtQuick.Effects
import Qt5Compat.GraphicalEffects
import Quickshell.Services.SystemTray
import Quickshell.Widgets
import qs.Settings
@ -14,10 +14,10 @@ Row {
property var trayMenu
spacing: 8
Layout.alignment: Qt.AlignVCenter
property bool containsMouse: false
property var systemTray: SystemTray
Repeater {
model: systemTray.items
delegate: Item {
@ -26,7 +26,7 @@ Row {
// Hide Spotify icon, or adjust to your liking
visible: modelData && modelData.id !== "spotify"
property bool isHovered: trayMouseArea.containsMouse
// Hover scale animation
scale: isHovered ? 1.15 : 1.0
Behavior on scale {
@ -35,7 +35,7 @@ Row {
easing.type: Easing.OutCubic
}
}
// Subtle rotation on hover
rotation: isHovered ? 5 : 0
Behavior on rotation {
@ -44,7 +44,7 @@ Row {
easing.type: Easing.OutCubic
}
}
Rectangle {
anchors.centerIn: parent
width: 16
@ -63,8 +63,7 @@ Row {
backer.fillMode: Image.PreserveAspectFit
source: {
let icon = modelData?.icon || "";
if (!icon)
return "";
if (!icon) return "";
// Process icon path
if (icon.includes("?path=")) {
const [name, path] = icon.split("?path=");
@ -81,60 +80,61 @@ Row {
easing.type: Easing.OutCubic
}
}
Component.onCompleted: {}
Component.onCompleted: {
}
}
}
MouseArea {
id: trayMouseArea
anchors.fill: parent
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
acceptedButtons: Qt.LeftButton | Qt.RightButton | Qt.MiddleButton
onClicked: mouse => {
if (!modelData)
return;
onClicked: (mouse) => {
if (!modelData) return;
if (mouse.button === Qt.LeftButton) {
// Close any open menu first
if (trayMenu && trayMenu.visible) {
trayMenu.hideMenu();
trayMenu.hideMenu()
}
if (!modelData.onlyMenu) {
modelData.activate();
modelData.activate()
}
} else if (mouse.button === Qt.MiddleButton) {
// Close any open menu first
if (trayMenu && trayMenu.visible) {
trayMenu.hideMenu();
trayMenu.hideMenu()
}
modelData.secondaryActivate && modelData.secondaryActivate();
modelData.secondaryActivate && modelData.secondaryActivate()
} else if (mouse.button === Qt.RightButton) {
trayTooltip.tooltipVisible = false;
console.log("Right click on", modelData.id, "hasMenu:", modelData.hasMenu, "menu:", modelData.menu);
trayTooltip.tooltipVisible = false
console.log("Right click on", modelData.id, "hasMenu:", modelData.hasMenu, "menu:", modelData.menu)
// If menu is already visible, close it
if (trayMenu && trayMenu.visible) {
trayMenu.hideMenu();
return;
trayMenu.hideMenu()
return
}
if (modelData.hasMenu && modelData.menu && trayMenu) {
// Anchor the menu to the tray icon item (parent) and position it below the icon
const menuX = (width / 2) - (trayMenu.width / 2);
const menuY = height + 20;
trayMenu.menu = modelData.menu;
trayMenu.showAt(parent, menuX, menuY);
} else
// console.log("No menu available for", modelData.id, "or trayMenu not set")
{}
} else {
// console.log("No menu available for", modelData.id, "or trayMenu not set")
}
}
}
onEntered: trayTooltip.tooltipVisible = true
onExited: trayTooltip.tooltipVisible = false
}
StyledTooltip {
id: trayTooltip
text: modelData.tooltipTitle || modelData.name || modelData.id || "Tray Item"
@ -143,10 +143,10 @@ Row {
targetItem: trayIcon
delay: 200
}
Component.onDestruction:
// No cache cleanup needed
{}
Component.onDestruction: {
// No cache cleanup needed
}
}
}
}
}

View file

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

View file

@ -2,7 +2,7 @@ import QtQuick
import QtQuick.Layouts
import QtQuick.Controls
import QtQuick.Effects
import QtQuick.Effects
import Qt5Compat.GraphicalEffects
import Quickshell.Wayland
import Quickshell
import Quickshell.Services.Pam
@ -146,7 +146,6 @@ WlSessionLock {
blurEnabled: true
blur: 0.48 // controls blur strength (0 to 1)
blurMax: 128 // max blur radius in pixels
// transparentBorder: true
}
ColumnLayout {
@ -170,9 +169,8 @@ WlSessionLock {
visible: false
asynchronous: true
}
MultiEffect {
OpacityMask {
anchors.fill: avatarImage
maskEnabled: true
source: avatarImage
maskSource: Rectangle {
width: avatarImage.width
@ -191,11 +189,10 @@ WlSessionLock {
visible: Settings.settings.profileImage === ""
}
layer.enabled: true
layer.effect: MultiEffect {
shadowEnabled: true
shadowColor: Theme.accentPrimary
// radius: 8
// samples: 16
layer.effect: Glow {
color: Theme.accentPrimary
radius: 8
samples: 16
}
}

View file

@ -2,6 +2,7 @@ import QtQuick
import QtQuick.Effects
import Quickshell
import Quickshell.Wayland
import Qt5Compat.GraphicalEffects
import qs.Services
import qs.Settings
@ -52,4 +53,4 @@ ShellRoot {
}
}
}
}
}

View file

@ -1,7 +1,7 @@
import QtQuick
import QtQuick.Layouts
import QtQuick.Effects
import QtQuick.Controls
import Qt5Compat.GraphicalEffects
import qs.Settings
Rectangle {
@ -74,8 +74,7 @@ Rectangle {
sourceSize.height: 64
}
MultiEffect {
maskEnabled: true
OpacityMask {
anchors.fill: avatarImage
source: avatarImage
maskSource: Rectangle {
@ -663,4 +662,4 @@ Rectangle {
}
}
}
}
}

View file

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

View file

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

View file

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