extract PinnableSection base component from 12 bar modules

This commit is contained in:
Damocles 2026-04-23 00:48:07 +02:00
parent deb3fc0a12
commit aa0f7bb5ef
14 changed files with 55 additions and 229 deletions

View file

@ -6,12 +6,12 @@ import "." as M
import "../services" as S
import "../applets" as C
M.BarSection {
M.PinnableSection {
id: root
spacing: S.Theme.moduleSpacing
opacity: S.Modules.mpris.enable && player !== null ? 1 : 0
visible: opacity > 0
tooltip: ""
_panelHovered: hoverPanel.panelHovered
readonly property var _players: S.MprisService.players
readonly property MprisPlayer player: S.MprisService.player
@ -71,23 +71,6 @@ M.BarSection {
required property var bar
property bool _pinned: false
readonly property bool _anyHover: root._hovered || hoverPanel.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
}
M.BarIcon {
icon: root.playing ? "\uF04B" : (root.player?.playbackState === MprisPlaybackState.Paused ? "\uDB80\uDFE4" : "\uDB81\uDCDB")
anchors.verticalCenter: parent.verticalCenter