Compare commits
2 commits
112ed0d6de
...
96d8ab6534
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
96d8ab6534 | ||
|
|
8130cb1bdd |
12 changed files with 184 additions and 144 deletions
12
components/StyledLayoutSeparator.qml
Normal file
12
components/StyledLayoutSeparator.qml
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
import qs.config
|
||||
import QtQuick
|
||||
import QtQuick.Layouts
|
||||
|
||||
Rectangle {
|
||||
color: Styling.theme.basecontent
|
||||
opacity: 0.33
|
||||
Layout.fillHeight: true
|
||||
Layout.margins: 2
|
||||
implicitWidth: 0.5
|
||||
radius: 9999
|
||||
}
|
||||
|
|
@ -1,70 +1,79 @@
|
|||
import qs.config
|
||||
import qs.services
|
||||
import QtQuick
|
||||
import Quickshell
|
||||
import Quickshell.Hyprland
|
||||
import Quickshell.Widgets
|
||||
|
||||
PopupWindow {
|
||||
id: root
|
||||
|
||||
property bool opened: false
|
||||
property int animationDuration: 200
|
||||
property alias margins: background.margin
|
||||
property alias backgroundColor: background.color
|
||||
property alias radius: background.radius
|
||||
property alias state: background.state
|
||||
required property Component content
|
||||
|
||||
implicitWidth: background.width
|
||||
implicitHeight: background.height
|
||||
color: "transparent"
|
||||
|
||||
HyprlandFocusGrab {
|
||||
id: grab
|
||||
active: root.visible
|
||||
windows: [root]
|
||||
onCleared: {
|
||||
background.state = "closed";
|
||||
}
|
||||
}
|
||||
|
||||
function toggle() {
|
||||
background.state = background.state == "opened" ? "closed" : "opened";
|
||||
Visibility.togglePopup(this);
|
||||
}
|
||||
|
||||
StyledWrapperRectangle {
|
||||
implicitWidth: background.width
|
||||
Behavior on implicitWidth {
|
||||
NumberAnimation {
|
||||
duration: 100
|
||||
}
|
||||
}
|
||||
implicitHeight: background.height
|
||||
Behavior on implicitHeight {
|
||||
NumberAnimation {
|
||||
duration: 100
|
||||
}
|
||||
}
|
||||
|
||||
Timer {
|
||||
id: timer
|
||||
interval: 750
|
||||
onTriggered: {
|
||||
if (!root.visible) {
|
||||
return;
|
||||
}
|
||||
root.toggle();
|
||||
}
|
||||
}
|
||||
|
||||
WrapperMouseArea {
|
||||
hoverEnabled: true
|
||||
onExited: {
|
||||
timer.start();
|
||||
}
|
||||
onEntered: {
|
||||
timer.stop();
|
||||
}
|
||||
WrapperRectangle {
|
||||
id: background
|
||||
|
||||
margin: 16
|
||||
focus: true
|
||||
onFocusChanged: {
|
||||
if (!focus) {
|
||||
grab.active = false;
|
||||
}
|
||||
}
|
||||
|
||||
opacity: 0
|
||||
Behavior on opacity {
|
||||
NumberAnimation {
|
||||
duration: Styling.animations.speed.normal
|
||||
duration: root.animationDuration
|
||||
}
|
||||
}
|
||||
|
||||
state: "closed"
|
||||
states: [
|
||||
State {
|
||||
name: "closed"
|
||||
PropertyChanges {
|
||||
background {
|
||||
opacity: 0
|
||||
}
|
||||
}
|
||||
},
|
||||
State {
|
||||
states: State {
|
||||
name: "opened"
|
||||
when: root.opened
|
||||
PropertyChanges {
|
||||
background {
|
||||
opacity: 1
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
transitions: [
|
||||
Transition {
|
||||
from: "closed"
|
||||
from: ""
|
||||
to: "opened"
|
||||
ScriptAction {
|
||||
script: root.visible = true
|
||||
|
|
@ -72,7 +81,7 @@ PopupWindow {
|
|||
},
|
||||
Transition {
|
||||
from: "opened"
|
||||
to: "closed"
|
||||
to: ""
|
||||
SequentialAnimation {
|
||||
PauseAnimation {
|
||||
duration: root.animationDuration
|
||||
|
|
@ -90,3 +99,4 @@ PopupWindow {
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ StyledWrapperRectangle {
|
|||
RowLayout {
|
||||
id: leftbar
|
||||
|
||||
spacing: Styling.layout.spacing.base
|
||||
spacing: Styling.layout.spacing.lg
|
||||
|
||||
SystemLogo {
|
||||
implicitSize: 22
|
||||
|
|
@ -44,7 +44,7 @@ StyledWrapperRectangle {
|
|||
|
||||
Layout.alignment: Qt.AlignHCenter
|
||||
|
||||
spacing: Styling.layout.spacing.base
|
||||
spacing: Styling.layout.spacing.lg
|
||||
|
||||
Mpris {}
|
||||
}
|
||||
|
|
@ -54,18 +54,14 @@ StyledWrapperRectangle {
|
|||
|
||||
Layout.alignment: Qt.AlignRight
|
||||
|
||||
spacing: Styling.layout.spacing.base
|
||||
|
||||
Pywal {}
|
||||
spacing: Styling.layout.spacing.lg
|
||||
|
||||
Pipewire {}
|
||||
|
||||
Caffeine {}
|
||||
StyledLayoutSeparator {}
|
||||
|
||||
Network {}
|
||||
|
||||
Bluetooth {}
|
||||
|
||||
Storage {}
|
||||
|
||||
Memory {}
|
||||
|
|
@ -74,10 +70,20 @@ StyledWrapperRectangle {
|
|||
|
||||
Gpu {}
|
||||
|
||||
Power {}
|
||||
StyledLayoutSeparator {}
|
||||
|
||||
Pywal {}
|
||||
|
||||
Caffeine {}
|
||||
|
||||
Bluetooth {}
|
||||
|
||||
StyledLayoutSeparator {}
|
||||
|
||||
Clock {}
|
||||
|
||||
Power {}
|
||||
|
||||
Notifications {}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ StyledIconButton {
|
|||
id: root
|
||||
|
||||
border.width: 2
|
||||
border.color: Caffeine.enabled ? Styling.theme.secondary : root.hovered ? Styling.theme.primary : Styling.theme.base300
|
||||
border.color: Caffeine.enabled ? Styling.theme.secondary : root.hovered ? Styling.theme.primary : Styling.theme.base200
|
||||
text: Styling.lucide.icons.coffee
|
||||
|
||||
onClicked: {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
import qs.components
|
||||
import Quickshell
|
||||
|
||||
StyledRectangle {
|
||||
StyledText {
|
||||
text: ` ${Qt.formatDateTime(clock.date, "hh:mm:ss AP")}`
|
||||
SystemClock {
|
||||
|
|
@ -9,4 +8,3 @@ StyledRectangle {
|
|||
precision: SystemClock.Seconds
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,8 +5,6 @@ import qs.utils
|
|||
import QtQuick
|
||||
import QtQuick.Layouts
|
||||
|
||||
StyledRectangle {
|
||||
|
||||
RowLayout {
|
||||
|
||||
Ref {
|
||||
|
|
@ -21,4 +19,3 @@ StyledRectangle {
|
|||
text: ` ${(SystemInfo.memPerc * 100).toFixed()}%`
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,8 +5,6 @@ import qs.utils
|
|||
import QtQuick
|
||||
import QtQuick.Layouts
|
||||
|
||||
StyledRectangle {
|
||||
|
||||
RowLayout {
|
||||
|
||||
Ref {
|
||||
|
|
@ -52,4 +50,3 @@ StyledRectangle {
|
|||
text: ` ${(NetworkService.active?.strength ?? 0).toFixed()}%`
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,8 +5,6 @@ import qs.utils
|
|||
import QtQuick
|
||||
import QtQuick.Layouts
|
||||
|
||||
StyledRectangle {
|
||||
|
||||
RowLayout {
|
||||
|
||||
Ref {
|
||||
|
|
@ -23,4 +21,3 @@ StyledRectangle {
|
|||
text: ` ${(SystemInfo.storagePerc * 100).toFixed()}%`
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
pragma ComponentBehavior: Bound
|
||||
|
||||
import qs.components
|
||||
import qs.config
|
||||
import QtQuick
|
||||
import QtQuick.Layouts
|
||||
import Quickshell
|
||||
|
|
@ -9,6 +10,10 @@ import Quickshell.Bluetooth
|
|||
StyledPopupWindow {
|
||||
id: root
|
||||
|
||||
backgroundColor: Styling.theme.base300
|
||||
margins: 16
|
||||
radius: 8
|
||||
|
||||
content: ColumnLayout {
|
||||
spacing: 8
|
||||
StyledWrapperRectangle {
|
||||
|
|
|
|||
|
|
@ -9,6 +9,10 @@ import QtQuick.Layouts
|
|||
StyledPopupWindow {
|
||||
id: root
|
||||
|
||||
backgroundColor: Styling.theme.base300
|
||||
margins: 16
|
||||
radius: 8
|
||||
|
||||
content: GridLayout {
|
||||
|
||||
columns: 2
|
||||
|
|
|
|||
|
|
@ -9,6 +9,10 @@ import Quickshell
|
|||
StyledPopupWindow {
|
||||
id: window
|
||||
|
||||
backgroundColor: Styling.theme.base300
|
||||
margins: 14
|
||||
radius: 8
|
||||
|
||||
property QsMenuOpener menuOpener
|
||||
|
||||
content: ColumnLayout {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
pragma Singleton
|
||||
|
||||
import qs.components
|
||||
import Quickshell
|
||||
|
||||
Singleton {
|
||||
|
|
@ -8,6 +9,15 @@ Singleton {
|
|||
property alias pomodoro: properties.pomodoro
|
||||
property alias powermenu: properties.powermenu
|
||||
property alias storybook: properties.storybook
|
||||
property StyledPopupWindow activePopup
|
||||
|
||||
function togglePopup(popup: StyledPopupWindow) {
|
||||
if (activePopup && popup != activePopup) {
|
||||
activePopup.state = "";
|
||||
}
|
||||
popup.state = popup.state == "opened" ? "" : "opened";
|
||||
activePopup = popup;
|
||||
}
|
||||
|
||||
PersistentProperties {
|
||||
id: properties
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue