refactor(quickshell): drop the Persona names from the primitives

P5Panel, P5Button, P5Slider and P5Tooltip become Panel, ActionButton,
LevelSlider and Tooltip. ActionButton and LevelSlider avoid clashing
with QtQuick.Controls, which the ask panel imports.
This commit is contained in:
nvrl committed 2026-10-04 23:39:51 +02:00
1 parent 7b7cd3e575
commit add12ccc76
20 files changed
+29 -29

No files matched your search

+2 -2
View File
@@ -50,7 +50,7 @@ Item {
}
}
P5Button {
ActionButton {
id: muteButton
anchors.right: parent.right
anchors.top: parent.top
@@ -59,7 +59,7 @@ Item {
onClicked: Audio.toggleMicMute()
}
P5Slider {
LevelSlider {
anchors.left: parent.left
anchors.right: parent.right
anchors.bottom: parent.bottom
+1 -1
View File
@@ -57,7 +57,7 @@ Item {
}
}
P5Slider {
LevelSlider {
anchors.left: parent.left
anchors.right: parent.right
anchors.bottom: parent.bottom
+3 -3
View File
@@ -50,7 +50,7 @@ Popout {
width: parent.width
spacing: Theme.padS
P5Button {
ActionButton {
id: outputMuteButton
width: parent.width
text: Audio.muted ? "Unmute output" : "Mute output"
@@ -58,7 +58,7 @@ Popout {
onClicked: Audio.toggleMute()
}
P5Button {
ActionButton {
width: parent.width
text: "Open audio mixer"
icon: "󰕾"
@@ -178,7 +178,7 @@ Popout {
}
}
P5Slider {
LevelSlider {
anchors.bottom: parent.bottom
anchors.left: parent.left
anchors.right: parent.right
+1 -1
View File
@@ -123,7 +123,7 @@ Popout {
// Follows the detail line rather than being pinned to the bottom of a
// fixed-height panel, which is what left a dead band above it.
P5Button {
ActionButton {
id: suspendButton
anchors.top: detailText.bottom
anchors.topMargin: Theme.padL
+2 -2
View File
@@ -40,14 +40,14 @@ Popout {
anchors.left: parent.left
spacing: Theme.padS
P5Button {
ActionButton {
text: Bt.enabled ? "On" : "Off"
icon: Bt.enabled ? "󰂯" : "󰂲"
accent: Bt.enabled ? Theme.accent : Theme.muted
onClicked: Bt.toggle()
}
P5Button {
ActionButton {
text: Bt.discovering ? "Scanning" : "Scan"
icon: "󰐷"
accent: Bt.discovering ? Theme.accent : Theme.primary
+1 -1
View File
@@ -172,7 +172,7 @@ Popout {
renderType: Text.NativeRendering
}
P5Slider {
LevelSlider {
anchors.left: elapsed.right
anchors.right: total.left
anchors.leftMargin: Theme.padS
+2 -2
View File
@@ -62,14 +62,14 @@ Popout {
anchors.left: parent.left
spacing: Theme.padS
P5Button {
ActionButton {
text: Net.wifiEnabled ? "Wi-Fi On" : "Wi-Fi Off"
icon: Net.wifiEnabled ? "󰖩" : "󰖪"
accent: Net.wifiEnabled ? Theme.primary : Theme.muted
onClicked: Net.toggleWifi()
}
P5Button {
ActionButton {
text: "Settings"
icon: "󰒓"
onClicked: Actions.openNetworkSettings()
+2 -2
View File
@@ -34,14 +34,14 @@ Popout {
anchors.left: parent.left
spacing: Theme.padS
P5Button {
ActionButton {
text: Notifs.dnd ? "Silenced" : "Silence"
icon: Notifs.dnd ? "󰂛" : "󰂚"
accent: Notifs.dnd ? Theme.treatmentOffText : Theme.primary
onClicked: Notifs.toggleDnd()
}
P5Button {
ActionButton {
text: "Clear"
icon: "󰎟"
destructive: true
+3 -3
View File
@@ -3,8 +3,8 @@ import "root:/config"
import "root:/components"
// The slab every popout sits on. Pure preset — it declares no children of its
// own, so P5Panel's default content property stays usable by callers.
P5Panel {
// own, so Panel's default content property stays usable by callers.
Panel {
property color tone: Theme.primary
property bool textured: false
@@ -14,7 +14,7 @@ P5Panel {
readonly property bool attached: parent?.frameAttached ?? false
fill: attached ? "transparent" : Theme.mantle
// Zero, not a transparent fill: P5Panel re-applies this opacity to the
// Zero, not a transparent fill: Panel re-applies this opacity to the
// fill colour, which turned "transparent" into 97% black.
fillOpacity: attached ? 0 : 0.97
// The frame is structure: a neutral hairline. A free-standing panel takes
+1 -1
View File
@@ -10,7 +10,7 @@ import "root:/components"
// implementation, but that draws a stock widget popup — square corners, system
// palette, no lean — hanging off the corner of a shell that has none of those
// things. This walks the menu with QsMenuOpener instead and draws it as a
// P5Panel, so a right click on a tray icon produces the same object language as
// Panel, so a right click on a tray icon produces the same object language as
// everything else on the rail.
//
// Dismissal is a Hyprland focus grab: click anywhere outside and the compositor