30 lines
786 B
QML
30 lines
786 B
QML
import QtQuick
|
|
import Quickshell
|
|
import "." as M
|
|
import "../services" as S
|
|
|
|
// Base component for bar modules with a pinnable hover panel.
|
|
// Provides the _pinned/_anyHover/_showPanel/_unpinTimer boilerplate.
|
|
// Modules bind _panelHovered to their HoverPanel's panelHovered property.
|
|
M.BarSection {
|
|
id: root
|
|
tooltip: ""
|
|
|
|
property bool _pinned: false
|
|
property bool _panelHovered: false
|
|
readonly property bool _anyHover: root._hovered || _panelHovered
|
|
readonly property bool _showPanel: _anyHover || _pinned
|
|
|
|
on_AnyHoverChanged: {
|
|
if (_anyHover)
|
|
_unpinTimer.stop();
|
|
else if (_pinned)
|
|
_unpinTimer.start();
|
|
}
|
|
|
|
Timer {
|
|
id: _unpinTimer
|
|
interval: 500
|
|
onTriggered: root._pinned = false
|
|
}
|
|
}
|