**shadows** update

This commit is contained in:
Zacharias-Brohn
2025-11-18 00:02:52 +01:00
parent c128dfc5c7
commit 57746ffc9e
6 changed files with 152 additions and 115 deletions
+29
View File
@@ -0,0 +1,29 @@
import QtQuick
import QtQuick.Effects
Item {
id: root
property real radius
Rectangle {
id: shadowRect
anchors.fill: root
radius: root.radius
layer.enabled: true
color: "black"
visible: false
}
MultiEffect {
id: effects
source: shadowRect
anchors.fill: shadowRect
shadowBlur: 2.0
shadowEnabled: true
shadowOpacity: 1
shadowColor: "black"
maskSource: shadowRect
maskEnabled: true
maskInverted: true
autoPaddingEnabled: true
}
}
+3 -21
View File
@@ -7,6 +7,7 @@ import QtQuick.Effects
import QtQuick.Layouts
import qs.Config
import qs.Helpers
import qs.Effects
Scope {
id: root
@@ -50,34 +51,15 @@ Scope {
}
}
// mask: Region { item: backgroundRect }
Rectangle {
id: shadowRect
ShadowRect {
id: effects
anchors {
top: appListRect.top
bottom: backgroundRect.bottom
left: appListRect.left
right: appListRect.right
}
layer.enabled: true
radius: 8
color: "black"
visible: false
}
MultiEffect {
id: effects
source: shadowRect
anchors.fill: shadowRect
shadowBlur: 2.0
shadowEnabled: true
shadowOpacity: 1
shadowColor: "black"
maskSource: shadowRect
maskEnabled: true
maskInverted: true
autoPaddingEnabled: true
}
Rectangle {
+17 -11
View File
@@ -21,7 +21,7 @@ Repeater {
property bool previewHidden: groupColumn.shouldShow && index > 0
width: parent.width
height: contentColumn.height + 20
height: contentColumn.height + 15
color: Config.baseBgColor
border.color: "#555555"
border.width: 1
@@ -107,19 +107,25 @@ Repeater {
}
}
Behavior on height {
Anim {
duration: MaterialEasing.expressiveDefaultSpatialTime
easing.bezierCurve: MaterialEasing.expressiveDefaultSpatial
}
}
// Behavior on height {
// Anim {
// duration: MaterialEasing.expressiveDefaultSpatialTime
// easing.bezierCurve: MaterialEasing.expressiveDefaultSpatial
// }
// }
Column {
id: contentColumn
anchors.centerIn: parent
width: parent.width - 20
anchors.top: parent.top
anchors.left: parent.left
anchors.right: parent.right
anchors.leftMargin: 10
anchors.rightMargin: 10
anchors.topMargin: 5
// width: parent.width - 20
spacing: 10
RowLayout {
id: infoRow
width: parent.width
spacing: 10
@@ -135,7 +141,6 @@ Repeater {
ColumnLayout {
Layout.fillWidth: true
Layout.fillHeight: true
spacing: 2
Text {
text: groupHeader.modelData.summary
@@ -144,6 +149,7 @@ Repeater {
font.pointSize: 16
elide: Text.ElideRight
Layout.fillWidth: true
Layout.alignment: Qt.AlignTop
}
Text {
@@ -161,7 +167,7 @@ Repeater {
}
Text {
text: groupColumn.notifications.length > 1 ? ( groupColumn.isExpanded ? "" : "(" + groupColumn.notifications.length + ")" ) : ""
text: groupHeader.modelData.timeStr
font.pointSize: 10
color: "#666666"
Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
+7
View File
@@ -4,10 +4,12 @@ import Quickshell.Io
import Quickshell.Wayland
import QtQuick.Layouts
import QtQuick.Controls.FluentWinUI3
import QtQuick.Effects
import QtQuick
import qs.Config
import qs.Helpers
import qs.Daemons
import qs.Effects
PanelWindow {
id: root
@@ -94,6 +96,11 @@ PanelWindow {
bar: root.bar
}
ShadowRect {
anchors.fill: backgroundRect
radius: backgroundRect.radius
}
Rectangle {
id: backgroundRect
y: 10
+95 -83
View File
@@ -7,6 +7,7 @@ import QtQuick
import qs.Config
import qs.Daemons
import qs.Helpers
import qs.Effects
PanelWindow {
id: root
@@ -106,98 +107,109 @@ PanelWindow {
NotifRegion {}
}
delegate: Rectangle {
id: backgroundRect
required property NotifServer.Notif modelData
delegate: Item {
id: rootItem
implicitWidth: 400
implicitHeight: contentLayout.childrenRect.height + 16
color: Config.baseBgColor
border.color: "#555555"
radius: 8
required property NotifServer.Notif modelData
Component.onCompleted: {
root.notifRegions.push( notifRegion.createObject(root, { item: backgroundRect }));
}
Column {
id: contentLayout
anchors.left: parent.left
anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter
anchors.margins: 10
spacing: 8
RowLayout {
spacing: 12
IconImage {
source: backgroundRect.modelData.image
Layout.preferredWidth: 48
Layout.preferredHeight: 48
Layout.alignment: Qt.AlignHCenter | Qt.AlignLeft
visible: backgroundRect.modelData.image !== ""
}
ColumnLayout {
Layout.fillWidth: true
Layout.fillHeight: true
Layout.leftMargin: 0
Layout.alignment: Qt.AlignVCenter | Qt.AlignLeft
Text {
text: backgroundRect.modelData.appName
color: "white"
font.bold: true
font.pointSize: 14
elide: Text.ElideRight
wrapMode: Text.NoWrap
Layout.fillWidth: true
}
Text {
text: backgroundRect.modelData.summary
color: "white"
font.pointSize: 12
font.bold: true
elide: Text.ElideRight
wrapMode: Text.WordWrap
Layout.fillWidth: true
}
}
}
Text {
text: backgroundRect.modelData.body
color: "#dddddd"
font.pointSize: 14
elide: Text.ElideRight
wrapMode: Text.WordWrap
maximumLineCount: 4
width: parent.width
}
ShadowRect {
anchors.fill: backgroundRect
radius: backgroundRect.radius
}
Rectangle {
anchors.right: parent.right
anchors.top: parent.top
anchors.rightMargin: 6
anchors.topMargin: 6
width: 18
height: 18
color: closeArea.containsMouse ? "#FF6077" : "transparent"
radius: 9
id: backgroundRect
implicitWidth: 400
implicitHeight: contentLayout.childrenRect.height + 16
color: Config.baseBgColor
border.color: "#555555"
radius: 8
Text {
anchors.centerIn: parent
text: "✕"
color: closeArea.containsMouse ? "white" : "#888888"
font.pointSize: 12
Component.onCompleted: {
root.notifRegions.push( notifRegion.createObject(root, { item: backgroundRect }));
}
MouseArea {
id: closeArea
anchors.fill: parent
hoverEnabled: true
onClicked: {
backgroundRect.modelData.close();
Column {
id: contentLayout
anchors.left: parent.left
anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter
anchors.margins: 10
spacing: 8
RowLayout {
spacing: 12
IconImage {
source: rootItem.modelData.image
Layout.preferredWidth: 48
Layout.preferredHeight: 48
Layout.alignment: Qt.AlignHCenter | Qt.AlignLeft
visible: rootItem.modelData.image !== ""
}
ColumnLayout {
Layout.fillWidth: true
Layout.fillHeight: true
Layout.leftMargin: 0
Layout.alignment: Qt.AlignVCenter | Qt.AlignLeft
Text {
text: rootItem.modelData.appName
color: "white"
font.bold: true
font.pointSize: 14
elide: Text.ElideRight
wrapMode: Text.NoWrap
Layout.fillWidth: true
}
Text {
text: rootItem.modelData.summary
color: "white"
font.pointSize: 12
font.bold: true
elide: Text.ElideRight
wrapMode: Text.WordWrap
Layout.fillWidth: true
}
}
}
Text {
text: rootItem.modelData.body
color: "#dddddd"
font.pointSize: 14
elide: Text.ElideRight
wrapMode: Text.WordWrap
maximumLineCount: 4
width: parent.width
}
}
Rectangle {
anchors.right: parent.right
anchors.top: parent.top
anchors.rightMargin: 6
anchors.topMargin: 6
width: 18
height: 18
color: closeArea.containsMouse ? "#FF6077" : "transparent"
radius: 9
Text {
anchors.centerIn: parent
text: "✕"
color: closeArea.containsMouse ? "white" : "#888888"
font.pointSize: 12
}
MouseArea {
id: closeArea
anchors.fill: parent
hoverEnabled: true
onClicked: {
rootItem.modelData.close();
}
}
}
}
+1
View File
@@ -13,6 +13,7 @@ Scope {
screen: modelData
WlrLayershell.exclusionMode: ExclusionMode.Ignore
WlrLayershell.layer: WlrLayer.Bottom
color: "transparent"
anchors {
top: true