mirror of
https://github.com/end-4/dots-hyprland.git
synced 2026-06-05 14:59:27 -05:00
79 lines
2.2 KiB
QML
79 lines
2.2 KiB
QML
import QtQuick
|
|
import qs
|
|
import qs.services
|
|
import qs.modules.common
|
|
import qs.modules.common.widgets
|
|
|
|
RippleButton {
|
|
id: root
|
|
|
|
property bool showPing: false
|
|
|
|
property real buttonPadding: 5
|
|
implicitWidth: distroIcon.width + buttonPadding * 2
|
|
implicitHeight: distroIcon.height + buttonPadding * 2
|
|
buttonRadius: Appearance.rounding.full
|
|
colBackgroundHover: Appearance.colors.colLayer1Hover
|
|
colRipple: Appearance.colors.colLayer1Active
|
|
colBackgroundToggled: Appearance.colors.colSecondaryContainer
|
|
colBackgroundToggledHover: Appearance.colors.colSecondaryContainerHover
|
|
colRippleToggled: Appearance.colors.colSecondaryContainerActive
|
|
toggled: GlobalStates.sidebarLeftOpen
|
|
|
|
onPressed: {
|
|
GlobalStates.sidebarLeftOpen = !GlobalStates.sidebarLeftOpen;
|
|
}
|
|
|
|
Connections {
|
|
target: Ai
|
|
function onResponseFinished() {
|
|
if (GlobalStates.sidebarLeftOpen) return;
|
|
root.showPing = true;
|
|
}
|
|
}
|
|
|
|
Connections {
|
|
target: Booru
|
|
function onResponseFinished() {
|
|
if (GlobalStates.sidebarLeftOpen) return;
|
|
root.showPing = true;
|
|
}
|
|
}
|
|
|
|
Connections {
|
|
target: GlobalStates
|
|
function onSidebarLeftOpenChanged() {
|
|
root.showPing = false;
|
|
}
|
|
}
|
|
|
|
CustomIcon {
|
|
id: distroIcon
|
|
anchors.centerIn: parent
|
|
width: 19.5
|
|
height: 19.5
|
|
source: Config.options.bar.topLeftIcon == 'distro' ? SystemInfo.distroIcon : `${Config.options.bar.topLeftIcon}-symbolic`
|
|
colorize: true
|
|
color: Appearance.colors.colOnLayer0
|
|
|
|
Rectangle {
|
|
opacity: root.showPing ? 1 : 0
|
|
visible: opacity > 0
|
|
anchors {
|
|
bottom: parent.bottom
|
|
right: parent.right
|
|
bottomMargin: -2
|
|
rightMargin: -2
|
|
}
|
|
implicitWidth: 8
|
|
implicitHeight: 8
|
|
radius: Appearance.rounding.full
|
|
color: Appearance.colors.colTertiary
|
|
|
|
Behavior on opacity {
|
|
animation: Appearance.animation.elementMoveFast.numberAnimation.createObject(this)
|
|
}
|
|
}
|
|
}
|
|
}
|