Promote bar/common to qs.Ui kit module
This commit is contained in:
1 parent
408dada45d
commit
6b915926b2
25 files changed
+110
-98
No files matched your search
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -0,0 +1,12 @@
|
|||||||
|
module qs.Ui
|
||||||
|
|
||||||
|
CursorSurface 1.0 CursorSurface.qml
|
||||||
|
KeyboardPanel 1.0 KeyboardPanel.qml
|
||||||
|
PanelActionButton 1.0 PanelActionButton.qml
|
||||||
|
PanelSectionHeader 1.0 PanelSectionHeader.qml
|
||||||
|
PanelSeparator 1.0 PanelSeparator.qml
|
||||||
|
PanelSlider 1.0 PanelSlider.qml
|
||||||
|
PanelToolTip 1.0 PanelToolTip.qml
|
||||||
|
PillButton 1.0 PillButton.qml
|
||||||
|
PopupCard 1.0 PopupCard.qml
|
||||||
|
WidgetButton 1.0 WidgetButton.qml
|
||||||
@@ -10,7 +10,7 @@ import Quickshell.Widgets
|
|||||||
import QtQuick
|
import QtQuick
|
||||||
import QtQuick.Layouts
|
import QtQuick.Layouts
|
||||||
import qs.Commons
|
import qs.Commons
|
||||||
import "common" as BarCommon
|
import qs.Ui
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
id: root
|
id: root
|
||||||
@@ -1716,7 +1716,7 @@ Item {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
BarCommon.PopupCard {
|
PopupCard {
|
||||||
id: managePopup
|
id: managePopup
|
||||||
anchorItem: trayRoot
|
anchorItem: trayRoot
|
||||||
owner: trayRoot
|
owner: trayRoot
|
||||||
@@ -1801,7 +1801,7 @@ Item {
|
|||||||
elide: Text.ElideRight
|
elide: Text.ElideRight
|
||||||
}
|
}
|
||||||
|
|
||||||
BarCommon.PillButton {
|
PillButton {
|
||||||
id: rowPinBtn
|
id: rowPinBtn
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
@@ -1815,7 +1815,7 @@ Item {
|
|||||||
onClicked: trayRoot.togglePin(rowRoot.itemId)
|
onClicked: trayRoot.togglePin(rowRoot.itemId)
|
||||||
}
|
}
|
||||||
|
|
||||||
BarCommon.PillButton {
|
PillButton {
|
||||||
id: rowHideBtn
|
id: rowHideBtn
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
anchors.right: rowPinBtn.left
|
anchors.right: rowPinBtn.left
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import QtQuick.Controls
|
|||||||
import Quickshell
|
import Quickshell
|
||||||
import Quickshell.Io
|
import Quickshell.Io
|
||||||
import Quickshell.Services.Pipewire
|
import Quickshell.Services.Pipewire
|
||||||
import "../common" as Common
|
import qs.Ui
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
id: root
|
id: root
|
||||||
@@ -90,7 +90,7 @@ Item {
|
|||||||
// selectedIndex semantics within a section:
|
// selectedIndex semantics within a section:
|
||||||
// -1 → on the slider row (h/l adjusts volume, m/Enter mute)
|
// -1 → on the slider row (h/l adjusts volume, m/Enter mute)
|
||||||
// 0..N-1 → on the Nth device/stream row
|
// 0..N-1 → on the Nth device/stream row
|
||||||
// Visuals derive from hasCursor/current via Common.CursorSurface, never
|
// Visuals derive from hasCursor/current via CursorSurface, never
|
||||||
// from containsMouse — that's what keeps the highlight unique across
|
// from containsMouse — that's what keeps the highlight unique across
|
||||||
// keyboard + mouse like wifi does.
|
// keyboard + mouse like wifi does.
|
||||||
property string focusSection: "output"
|
property string focusSection: "output"
|
||||||
@@ -348,7 +348,7 @@ Item {
|
|||||||
function hide(): void { root.closePopout() }
|
function hide(): void { root.closePopout() }
|
||||||
}
|
}
|
||||||
|
|
||||||
Common.WidgetButton {
|
WidgetButton {
|
||||||
id: button
|
id: button
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
bar: root.bar
|
bar: root.bar
|
||||||
@@ -366,7 +366,7 @@ Item {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Common.KeyboardPanel {
|
KeyboardPanel {
|
||||||
id: panel
|
id: panel
|
||||||
anchorItem: button
|
anchorItem: button
|
||||||
owner: root
|
owner: root
|
||||||
@@ -440,7 +440,7 @@ Item {
|
|||||||
width: parent.width
|
width: parent.width
|
||||||
spacing: 8
|
spacing: 8
|
||||||
|
|
||||||
Common.PanelSectionHeader {
|
PanelSectionHeader {
|
||||||
text: "Output"
|
text: "Output"
|
||||||
foreground: root.bar.foreground
|
foreground: root.bar.foreground
|
||||||
fontFamily: root.bar.fontFamily
|
fontFamily: root.bar.fontFamily
|
||||||
@@ -462,7 +462,7 @@ Item {
|
|||||||
// Output slider row — itself a cursor target (selectedIndex === -1
|
// Output slider row — itself a cursor target (selectedIndex === -1
|
||||||
// when focusSection === "output"). h/l adjust the value via
|
// when focusSection === "output"). h/l adjust the value via
|
||||||
// root.adjustVolume; m / Enter toggle mute.
|
// root.adjustVolume; m / Enter toggle mute.
|
||||||
Common.CursorSurface {
|
CursorSurface {
|
||||||
id: outputSliderRow
|
id: outputSliderRow
|
||||||
width: parent.width
|
width: parent.width
|
||||||
height: outputSliderInner.implicitHeight + 8
|
height: outputSliderInner.implicitHeight + 8
|
||||||
@@ -496,7 +496,7 @@ Item {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Common.Slider {
|
PanelSlider {
|
||||||
id: outputSlider
|
id: outputSlider
|
||||||
bar: root.bar
|
bar: root.bar
|
||||||
width: parent.width - outputIconText.width - outputPercent.width - 16
|
width: parent.width - outputIconText.width - outputPercent.width - 16
|
||||||
@@ -559,7 +559,7 @@ Item {
|
|||||||
width: parent.width
|
width: parent.width
|
||||||
spacing: 8
|
spacing: 8
|
||||||
|
|
||||||
Common.PanelSectionHeader {
|
PanelSectionHeader {
|
||||||
text: "Input"
|
text: "Input"
|
||||||
foreground: root.bar.foreground
|
foreground: root.bar.foreground
|
||||||
fontFamily: root.bar.fontFamily
|
fontFamily: root.bar.fontFamily
|
||||||
@@ -578,7 +578,7 @@ Item {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Common.CursorSurface {
|
CursorSurface {
|
||||||
id: inputSliderRow
|
id: inputSliderRow
|
||||||
visible: !!root.source
|
visible: !!root.source
|
||||||
width: parent.width
|
width: parent.width
|
||||||
@@ -613,7 +613,7 @@ Item {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Common.Slider {
|
PanelSlider {
|
||||||
id: inputSlider
|
id: inputSlider
|
||||||
bar: root.bar
|
bar: root.bar
|
||||||
width: parent.width - inputIconText.width - inputPercent.width - 16
|
width: parent.width - inputIconText.width - inputPercent.width - 16
|
||||||
@@ -672,7 +672,7 @@ Item {
|
|||||||
spacing: 6
|
spacing: 6
|
||||||
visible: root.audioStreams.length > 0
|
visible: root.audioStreams.length > 0
|
||||||
|
|
||||||
Common.PanelSectionHeader {
|
PanelSectionHeader {
|
||||||
text: "Playing"
|
text: "Playing"
|
||||||
foreground: root.bar.foreground
|
foreground: root.bar.foreground
|
||||||
fontFamily: root.bar.fontFamily
|
fontFamily: root.bar.fontFamily
|
||||||
@@ -701,7 +701,7 @@ Item {
|
|||||||
// Output device row — cursor target inside the "output" section. Mouse
|
// Output device row — cursor target inside the "output" section. Mouse
|
||||||
// hover updates the panel cursor at the root; visuals come entirely
|
// hover updates the panel cursor at the root; visuals come entirely
|
||||||
// from hasCursor/current via CursorSurface, never from containsMouse.
|
// from hasCursor/current via CursorSurface, never from containsMouse.
|
||||||
component SinkRow: Common.CursorSurface {
|
component SinkRow: CursorSurface {
|
||||||
id: sinkRow
|
id: sinkRow
|
||||||
required property var node
|
required property var node
|
||||||
required property int rowIndex
|
required property int rowIndex
|
||||||
@@ -767,7 +767,7 @@ Item {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Input device row — sibling of SinkRow for the "input" section.
|
// Input device row — sibling of SinkRow for the "input" section.
|
||||||
component SourceRow: Common.CursorSurface {
|
component SourceRow: CursorSurface {
|
||||||
id: sourceRow
|
id: sourceRow
|
||||||
required property var node
|
required property var node
|
||||||
required property int rowIndex
|
required property int rowIndex
|
||||||
@@ -836,7 +836,7 @@ Item {
|
|||||||
// The stream has its own slider inline, so h/l from the keyboard
|
// The stream has its own slider inline, so h/l from the keyboard
|
||||||
// adjusts THIS stream's volume (not the global output) when the cursor
|
// adjusts THIS stream's volume (not the global output) when the cursor
|
||||||
// sits on this row. Enter/Space mutes the stream.
|
// sits on this row. Enter/Space mutes the stream.
|
||||||
component StreamRow: Common.CursorSurface {
|
component StreamRow: CursorSurface {
|
||||||
id: streamRow
|
id: streamRow
|
||||||
required property var node
|
required property var node
|
||||||
required property int rowIndex
|
required property int rowIndex
|
||||||
@@ -906,7 +906,7 @@ Item {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Common.Slider {
|
PanelSlider {
|
||||||
bar: root.bar
|
bar: root.bar
|
||||||
width: parent.width
|
width: parent.width
|
||||||
minimum: 0
|
minimum: 0
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import QtQuick.Controls
|
|||||||
import Quickshell
|
import Quickshell
|
||||||
import Quickshell.Io
|
import Quickshell.Io
|
||||||
import Quickshell.Bluetooth
|
import Quickshell.Bluetooth
|
||||||
import "../common" as Common
|
import qs.Ui
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
id: root
|
id: root
|
||||||
@@ -71,7 +71,7 @@ Item {
|
|||||||
// them, Enter activates.
|
// them, Enter activates.
|
||||||
// "known" — paired/known device rows; Enter toggles connect.
|
// "known" — paired/known device rows; Enter toggles connect.
|
||||||
// "discovered" — unpaired devices visible while scanning; Enter pairs.
|
// "discovered" — unpaired devices visible while scanning; Enter pairs.
|
||||||
// Visuals always come from Common.CursorSurface (hasCursor / current),
|
// Visuals always come from CursorSurface (hasCursor / current),
|
||||||
// never from containsMouse. Mouse hover updates root cursor state too,
|
// never from containsMouse. Mouse hover updates root cursor state too,
|
||||||
// guaranteeing one highlight on screen.
|
// guaranteeing one highlight on screen.
|
||||||
property string focusSection: "header"
|
property string focusSection: "header"
|
||||||
@@ -310,7 +310,7 @@ Item {
|
|||||||
function hide(): void { root.closePopout() }
|
function hide(): void { root.closePopout() }
|
||||||
}
|
}
|
||||||
|
|
||||||
Common.WidgetButton {
|
WidgetButton {
|
||||||
id: button
|
id: button
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
bar: root.bar
|
bar: root.bar
|
||||||
@@ -322,7 +322,7 @@ Item {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Common.KeyboardPanel {
|
KeyboardPanel {
|
||||||
id: panel
|
id: panel
|
||||||
anchorItem: button
|
anchorItem: button
|
||||||
owner: root
|
owner: root
|
||||||
@@ -445,7 +445,7 @@ Item {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Discovered (unpaired) devices, only shown while scanning.
|
// Discovered (unpaired) devices, only shown while scanning.
|
||||||
Common.PanelSectionHeader {
|
PanelSectionHeader {
|
||||||
visible: root.adapter && root.adapter.discovering && root.discoveredDevices.length > 0
|
visible: root.adapter && root.adapter.discovering && root.discoveredDevices.length > 0
|
||||||
text: "Discovered"
|
text: "Discovered"
|
||||||
foreground: root.bar.foreground
|
foreground: root.bar.foreground
|
||||||
@@ -483,11 +483,11 @@ Item {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Header pill — wraps Common.PillButton with cursor-state binding so it
|
// Header pill — wraps PillButton with cursor-state binding so it
|
||||||
// participates in the same single-cursor model as device rows. We don't
|
// participates in the same single-cursor model as device rows. We don't
|
||||||
// use Common.CursorSurface here because the pill already provides its
|
// use CursorSurface here because the pill already provides its
|
||||||
// own active/hover visuals and we want them to layer correctly.
|
// own active/hover visuals and we want them to layer correctly.
|
||||||
component HeaderPill: Common.PillButton {
|
component HeaderPill: PillButton {
|
||||||
id: pill
|
id: pill
|
||||||
required property int pillIndex
|
required property int pillIndex
|
||||||
property bool pillEnabled: true
|
property bool pillEnabled: true
|
||||||
@@ -528,7 +528,7 @@ Item {
|
|||||||
// connect that drops back to Disconnected within 10s surfaces as "Failed".
|
// connect that drops back to Disconnected within 10s surfaces as "Failed".
|
||||||
// Now a cursor target: hasCursor binds to root state, mouse hover updates
|
// Now a cursor target: hasCursor binds to root state, mouse hover updates
|
||||||
// root state. The X button on the right is a PanelActionButton.
|
// root state. The X button on the right is a PanelActionButton.
|
||||||
component DeviceRow: Common.CursorSurface {
|
component DeviceRow: CursorSurface {
|
||||||
id: row
|
id: row
|
||||||
required property var dev
|
required property var dev
|
||||||
required property int rowIndex
|
required property int rowIndex
|
||||||
@@ -660,7 +660,7 @@ Item {
|
|||||||
|
|
||||||
// Explicit close button on any known device. Action depends on state:
|
// Explicit close button on any known device. Action depends on state:
|
||||||
// connected -> disconnect, otherwise -> forget the pairing entirely.
|
// connected -> disconnect, otherwise -> forget the pairing entirely.
|
||||||
Common.PanelActionButton {
|
PanelActionButton {
|
||||||
id: disconnectBtn
|
id: disconnectBtn
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import QtQuick
|
import QtQuick
|
||||||
import QtQuick.Layouts
|
import QtQuick.Layouts
|
||||||
import Quickshell
|
import Quickshell
|
||||||
import "../common" as Common
|
import qs.Ui
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
id: root
|
id: root
|
||||||
@@ -57,7 +57,7 @@ Item {
|
|||||||
onDateChanged: root.now = clockTimer.date
|
onDateChanged: root.now = clockTimer.date
|
||||||
}
|
}
|
||||||
|
|
||||||
Common.WidgetButton {
|
WidgetButton {
|
||||||
id: button
|
id: button
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
bar: root.bar
|
bar: root.bar
|
||||||
@@ -76,7 +76,7 @@ Item {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Common.PopupCard {
|
PopupCard {
|
||||||
id: popup
|
id: popup
|
||||||
anchorItem: button
|
anchorItem: button
|
||||||
bar: root.bar
|
bar: root.bar
|
||||||
@@ -94,7 +94,7 @@ Item {
|
|||||||
width: parent.width
|
width: parent.width
|
||||||
implicitHeight: 28
|
implicitHeight: 28
|
||||||
|
|
||||||
Common.PillButton {
|
PillButton {
|
||||||
id: prevButton
|
id: prevButton
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
@@ -114,7 +114,7 @@ Item {
|
|||||||
font.bold: true
|
font.bold: true
|
||||||
}
|
}
|
||||||
|
|
||||||
Common.PillButton {
|
PillButton {
|
||||||
id: nextButton
|
id: nextButton
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import QtQuick
|
import QtQuick
|
||||||
import Quickshell
|
import Quickshell
|
||||||
import Quickshell.Io
|
import Quickshell.Io
|
||||||
import "../common" as Common
|
import qs.Ui
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
id: root
|
id: root
|
||||||
@@ -53,7 +53,7 @@ Item {
|
|||||||
implicitWidth: button.implicitWidth
|
implicitWidth: button.implicitWidth
|
||||||
implicitHeight: button.implicitHeight
|
implicitHeight: button.implicitHeight
|
||||||
|
|
||||||
Common.WidgetButton {
|
WidgetButton {
|
||||||
id: button
|
id: button
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
bar: root.bar
|
bar: root.bar
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import QtQuick
|
|||||||
import Quickshell
|
import Quickshell
|
||||||
import Quickshell.Hyprland
|
import Quickshell.Hyprland
|
||||||
import Quickshell.Io
|
import Quickshell.Io
|
||||||
import "../common" as Common
|
import qs.Ui
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
id: root
|
id: root
|
||||||
@@ -71,7 +71,7 @@ Item {
|
|||||||
implicitWidth: button.implicitWidth
|
implicitWidth: button.implicitWidth
|
||||||
implicitHeight: button.implicitHeight
|
implicitHeight: button.implicitHeight
|
||||||
|
|
||||||
Common.WidgetButton {
|
WidgetButton {
|
||||||
id: button
|
id: button
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
bar: root.bar
|
bar: root.bar
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import QtQuick
|
import QtQuick
|
||||||
import Quickshell
|
import Quickshell
|
||||||
import Quickshell.Services.Mpris
|
import Quickshell.Services.Mpris
|
||||||
import "../common" as Common
|
import qs.Ui
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
id: root
|
id: root
|
||||||
@@ -113,7 +113,7 @@ Item {
|
|||||||
onExited: if (root.bar) root.bar.hideTooltip(root)
|
onExited: if (root.bar) root.bar.hideTooltip(root)
|
||||||
}
|
}
|
||||||
|
|
||||||
Common.PopupCard {
|
PopupCard {
|
||||||
id: popup
|
id: popup
|
||||||
anchorItem: root
|
anchorItem: root
|
||||||
bar: root.bar
|
bar: root.bar
|
||||||
@@ -198,7 +198,7 @@ Item {
|
|||||||
anchors.horizontalCenter: parent.horizontalCenter
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
spacing: 6
|
spacing: 6
|
||||||
|
|
||||||
Common.PillButton {
|
PillButton {
|
||||||
iconText: ""
|
iconText: ""
|
||||||
foreground: root.bar.foreground
|
foreground: root.bar.foreground
|
||||||
horizontalPadding: 10
|
horizontalPadding: 10
|
||||||
@@ -208,7 +208,7 @@ Item {
|
|||||||
onClicked: if (root.activePlayer) root.activePlayer.previous()
|
onClicked: if (root.activePlayer) root.activePlayer.previous()
|
||||||
}
|
}
|
||||||
|
|
||||||
Common.PillButton {
|
PillButton {
|
||||||
iconText: root.activePlayer && root.activePlayer.isPlaying ? "" : ""
|
iconText: root.activePlayer && root.activePlayer.isPlaying ? "" : ""
|
||||||
foreground: root.bar.foreground
|
foreground: root.bar.foreground
|
||||||
horizontalPadding: 14
|
horizontalPadding: 14
|
||||||
@@ -219,7 +219,7 @@ Item {
|
|||||||
onClicked: if (root.activePlayer) root.activePlayer.togglePlaying()
|
onClicked: if (root.activePlayer) root.activePlayer.togglePlaying()
|
||||||
}
|
}
|
||||||
|
|
||||||
Common.PillButton {
|
PillButton {
|
||||||
iconText: ""
|
iconText: ""
|
||||||
foreground: root.bar.foreground
|
foreground: root.bar.foreground
|
||||||
horizontalPadding: 10
|
horizontalPadding: 10
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import QtQuick
|
import QtQuick
|
||||||
import Quickshell
|
import Quickshell
|
||||||
import Quickshell.Services.Pipewire
|
import Quickshell.Services.Pipewire
|
||||||
import "../common" as Common
|
import qs.Ui
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
id: root
|
id: root
|
||||||
@@ -36,7 +36,7 @@ Item {
|
|||||||
|
|
||||||
PwObjectTracker { objects: root.source ? [root.source] : [] }
|
PwObjectTracker { objects: root.source ? [root.source] : [] }
|
||||||
|
|
||||||
Common.WidgetButton {
|
WidgetButton {
|
||||||
id: button
|
id: button
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
bar: root.bar
|
bar: root.bar
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import QtQuick
|
|||||||
import QtQuick.Controls
|
import QtQuick.Controls
|
||||||
import Quickshell
|
import Quickshell
|
||||||
import Quickshell.Io
|
import Quickshell.Io
|
||||||
import "../common" as Common
|
import qs.Ui
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
id: root
|
id: root
|
||||||
@@ -174,7 +174,7 @@ Item {
|
|||||||
onRunningChanged: if (!running) root.refresh()
|
onRunningChanged: if (!running) root.refresh()
|
||||||
}
|
}
|
||||||
|
|
||||||
Common.WidgetButton {
|
WidgetButton {
|
||||||
id: button
|
id: button
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
bar: root.bar
|
bar: root.bar
|
||||||
@@ -186,7 +186,7 @@ Item {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Common.PopupCard {
|
PopupCard {
|
||||||
anchorItem: button
|
anchorItem: button
|
||||||
owner: root
|
owner: root
|
||||||
bar: root.bar
|
bar: root.bar
|
||||||
@@ -222,7 +222,7 @@ Item {
|
|||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
}
|
}
|
||||||
|
|
||||||
Common.Slider {
|
PanelSlider {
|
||||||
id: brightnessSlider
|
id: brightnessSlider
|
||||||
bar: root.bar
|
bar: root.bar
|
||||||
width: parent.width - 22 - brightnessPercent.width - 16
|
width: parent.width - 22 - brightnessPercent.width - 16
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import QtQuick
|
|||||||
import QtQuick.Controls
|
import QtQuick.Controls
|
||||||
import Quickshell
|
import Quickshell
|
||||||
import Quickshell.Io
|
import Quickshell.Io
|
||||||
import "../common" as Common
|
import qs.Ui
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
id: root
|
id: root
|
||||||
@@ -66,7 +66,7 @@ Item {
|
|||||||
// Single cursor model: exactly one highlighted spot across the whole
|
// Single cursor model: exactly one highlighted spot across the whole
|
||||||
// panel, located via `focusSection` + (`selectedIndex` | `dnsIndex`).
|
// panel, located via `focusSection` + (`selectedIndex` | `dnsIndex`).
|
||||||
// Mouse hover and keyboard nav both mutate this state at the root; items
|
// Mouse hover and keyboard nav both mutate this state at the root; items
|
||||||
// never read containsMouse for visuals. See Common.CursorSurface for the
|
// never read containsMouse for visuals. See CursorSurface for the
|
||||||
// shared chrome (fill / border) shared by NetworkRow and DnsProviderPill.
|
// shared chrome (fill / border) shared by NetworkRow and DnsProviderPill.
|
||||||
readonly property color activeFill: bar ? Qt.rgba(bar.foreground.r, bar.foreground.g, bar.foreground.b, 0.18) : "transparent"
|
readonly property color activeFill: bar ? Qt.rgba(bar.foreground.r, bar.foreground.g, bar.foreground.b, 0.18) : "transparent"
|
||||||
|
|
||||||
@@ -518,7 +518,7 @@ iwctl station "$station" get-networks rssi-dbms 2>/dev/null \\
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Common.WidgetButton {
|
WidgetButton {
|
||||||
id: button
|
id: button
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
bar: root.bar
|
bar: root.bar
|
||||||
@@ -535,12 +535,12 @@ iwctl station "$station" get-networks rssi-dbms 2>/dev/null \\
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Keyboard-driven popup anchored to the bar widget icon. The shared
|
// Keyboard-driven popup anchored to the bar widget icon. The shared
|
||||||
// Common.KeyboardPanel handles the layer-shell PanelWindow scaffolding
|
// KeyboardPanel handles the layer-shell PanelWindow scaffolding
|
||||||
// (Exclusive focus on map, screen binding, anchored-to-icon positioning,
|
// (Exclusive focus on map, screen binding, anchored-to-icon positioning,
|
||||||
// outside-click via an overlay MouseArea + Region mask that lets the bar
|
// outside-click via an overlay MouseArea + Region mask that lets the bar
|
||||||
// remain clickable, fade animation, popout coordination). What stays
|
// remain clickable, fade animation, popout coordination). What stays
|
||||||
// here is the wifi-specific UI inside.
|
// here is the wifi-specific UI inside.
|
||||||
Common.KeyboardPanel {
|
KeyboardPanel {
|
||||||
id: panel
|
id: panel
|
||||||
anchorItem: button
|
anchorItem: button
|
||||||
owner: root
|
owner: root
|
||||||
@@ -664,7 +664,7 @@ iwctl station "$station" get-networks rssi-dbms 2>/dev/null \\
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Common.PillButton {
|
PillButton {
|
||||||
id: refreshBtn
|
id: refreshBtn
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
@@ -681,7 +681,7 @@ iwctl station "$station" get-networks rssi-dbms 2>/dev/null \\
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Common.PanelSeparator {
|
PanelSeparator {
|
||||||
visible: !!root.info.iface
|
visible: !!root.info.iface
|
||||||
foreground: root.bar.foreground
|
foreground: root.bar.foreground
|
||||||
}
|
}
|
||||||
@@ -776,7 +776,7 @@ iwctl station "$station" get-networks rssi-dbms 2>/dev/null \\
|
|||||||
}
|
}
|
||||||
|
|
||||||
// DNS provider selection.
|
// DNS provider selection.
|
||||||
Common.PanelSeparator {
|
PanelSeparator {
|
||||||
foreground: root.bar.foreground
|
foreground: root.bar.foreground
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -784,7 +784,7 @@ iwctl station "$station" get-networks rssi-dbms 2>/dev/null \\
|
|||||||
width: parent.width
|
width: parent.width
|
||||||
spacing: 8
|
spacing: 8
|
||||||
|
|
||||||
Common.PanelSectionHeader {
|
PanelSectionHeader {
|
||||||
text: "DNS provider"
|
text: "DNS provider"
|
||||||
foreground: root.bar.foreground
|
foreground: root.bar.foreground
|
||||||
fontFamily: root.bar.fontFamily
|
fontFamily: root.bar.fontFamily
|
||||||
@@ -825,12 +825,12 @@ iwctl station "$station" get-networks rssi-dbms 2>/dev/null \\
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Wi-Fi networks (only if a Wi-Fi station is available).
|
// Wi-Fi networks (only if a Wi-Fi station is available).
|
||||||
Common.PanelSeparator {
|
PanelSeparator {
|
||||||
visible: root.wifiStationAvailable
|
visible: root.wifiStationAvailable
|
||||||
foreground: root.bar.foreground
|
foreground: root.bar.foreground
|
||||||
}
|
}
|
||||||
|
|
||||||
Common.PanelSectionHeader {
|
PanelSectionHeader {
|
||||||
visible: root.wifiStationAvailable
|
visible: root.wifiStationAvailable
|
||||||
text: root.scanning ? "Scanning Wi-Fi…" : "Wi-Fi networks"
|
text: root.scanning ? "Scanning Wi-Fi…" : "Wi-Fi networks"
|
||||||
foreground: root.bar.foreground
|
foreground: root.bar.foreground
|
||||||
@@ -882,7 +882,7 @@ iwctl station "$station" get-networks rssi-dbms 2>/dev/null \\
|
|||||||
// One DNS provider pill. The cursor + current visuals come entirely from
|
// One DNS provider pill. The cursor + current visuals come entirely from
|
||||||
// CursorSurface; this component just binds them to the panel's cursor
|
// CursorSurface; this component just binds them to the panel's cursor
|
||||||
// state and renders the label/tooltip/click target.
|
// state and renders the label/tooltip/click target.
|
||||||
component DnsProviderPill: Common.CursorSurface {
|
component DnsProviderPill: CursorSurface {
|
||||||
id: pill
|
id: pill
|
||||||
required property string provider
|
required property string provider
|
||||||
required property int index
|
required property int index
|
||||||
@@ -921,7 +921,7 @@ iwctl station "$station" get-networks rssi-dbms 2>/dev/null \\
|
|||||||
onClicked: pill.clicked()
|
onClicked: pill.clicked()
|
||||||
}
|
}
|
||||||
|
|
||||||
Common.PanelToolTip {
|
PanelToolTip {
|
||||||
visible: pill.tooltipText !== "" && pillMouse.containsMouse
|
visible: pill.tooltipText !== "" && pillMouse.containsMouse
|
||||||
text: pill.tooltipText
|
text: pill.tooltipText
|
||||||
panelForeground: root.bar.foreground
|
panelForeground: root.bar.foreground
|
||||||
@@ -934,7 +934,7 @@ iwctl station "$station" get-networks rssi-dbms 2>/dev/null \\
|
|||||||
// expands inline to a passphrase prompt when the user picks a protected
|
// expands inline to a passphrase prompt when the user picks a protected
|
||||||
// network we don't have credentials for. Clicking a connected row
|
// network we don't have credentials for. Clicking a connected row
|
||||||
// disconnects; the X button on a connected row forgets the network.
|
// disconnects; the X button on a connected row forgets the network.
|
||||||
component NetworkRow: Common.CursorSurface {
|
component NetworkRow: CursorSurface {
|
||||||
id: row
|
id: row
|
||||||
required property var net
|
required property var net
|
||||||
required property int index
|
required property int index
|
||||||
@@ -1042,7 +1042,7 @@ iwctl known-networks list 2>/dev/null \\
|
|||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
}
|
}
|
||||||
|
|
||||||
Common.PanelActionButton {
|
PanelActionButton {
|
||||||
id: forgetBtn
|
id: forgetBtn
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
@@ -1167,7 +1167,7 @@ iwctl known-networks list 2>/dev/null \\
|
|||||||
// 22×22 right-anchored to line up with forgetBtn and lockIndicator
|
// 22×22 right-anchored to line up with forgetBtn and lockIndicator
|
||||||
// above. Esc closes the prompt (handled by pwField.Keys.onEscapePressed)
|
// above. Esc closes the prompt (handled by pwField.Keys.onEscapePressed)
|
||||||
// so there's no separate cancel button.
|
// so there's no separate cancel button.
|
||||||
Common.PanelActionButton {
|
PanelActionButton {
|
||||||
id: connectPwBtn
|
id: connectPwBtn
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import QtQuick
|
|||||||
import QtQuick.Layouts
|
import QtQuick.Layouts
|
||||||
import Quickshell
|
import Quickshell
|
||||||
import qs.Commons
|
import qs.Commons
|
||||||
import "../common" as Common
|
import qs.Ui
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
id: root
|
id: root
|
||||||
@@ -72,7 +72,7 @@ Item {
|
|||||||
implicitWidth: button.implicitWidth
|
implicitWidth: button.implicitWidth
|
||||||
implicitHeight: button.implicitHeight
|
implicitHeight: button.implicitHeight
|
||||||
|
|
||||||
Common.WidgetButton {
|
WidgetButton {
|
||||||
id: button
|
id: button
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
bar: root.bar
|
bar: root.bar
|
||||||
@@ -103,7 +103,7 @@ Item {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Common.PopupCard {
|
PopupCard {
|
||||||
id: popup
|
id: popup
|
||||||
anchorItem: button
|
anchorItem: button
|
||||||
bar: root.bar
|
bar: root.bar
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import QtQuick
|
import QtQuick
|
||||||
import Quickshell
|
import Quickshell
|
||||||
import Quickshell.Io
|
import Quickshell.Io
|
||||||
import "../common" as Common
|
import qs.Ui
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
id: root
|
id: root
|
||||||
@@ -147,7 +147,7 @@ Item {
|
|||||||
onButtonHoveredChanged: buttonHovered ? showPopup() : scheduleHide()
|
onButtonHoveredChanged: buttonHovered ? showPopup() : scheduleHide()
|
||||||
onPopupHoveredChanged: popupHovered ? hideTimer.stop() : scheduleHide()
|
onPopupHoveredChanged: popupHovered ? hideTimer.stop() : scheduleHide()
|
||||||
|
|
||||||
Common.WidgetButton {
|
WidgetButton {
|
||||||
id: button
|
id: button
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
bar: root.bar
|
bar: root.bar
|
||||||
@@ -169,7 +169,7 @@ Item {
|
|||||||
onHoveredChanged: root.buttonHovered = hovered
|
onHoveredChanged: root.buttonHovered = hovered
|
||||||
}
|
}
|
||||||
|
|
||||||
Common.PopupCard {
|
PopupCard {
|
||||||
id: popup
|
id: popup
|
||||||
anchorItem: button
|
anchorItem: button
|
||||||
owner: root
|
owner: root
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import QtQuick
|
import QtQuick
|
||||||
import Quickshell
|
import Quickshell
|
||||||
import Quickshell.Io
|
import Quickshell.Io
|
||||||
import "../common" as Common
|
import qs.Ui
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
id: root
|
id: root
|
||||||
@@ -279,7 +279,7 @@ Item {
|
|||||||
onTriggered: root.refresh()
|
onTriggered: root.refresh()
|
||||||
}
|
}
|
||||||
|
|
||||||
Common.WidgetButton {
|
WidgetButton {
|
||||||
id: button
|
id: button
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
@@ -305,7 +305,7 @@ Item {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Common.PopupCard {
|
PopupCard {
|
||||||
id: popup
|
id: popup
|
||||||
anchorItem: button
|
anchorItem: button
|
||||||
owner: root
|
owner: root
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import QtQuick
|
import QtQuick
|
||||||
import QtQuick.Controls
|
import QtQuick.Controls
|
||||||
import Quickshell
|
import Quickshell
|
||||||
import "../bar/common" as Common
|
import qs.Ui
|
||||||
import qs.Commons
|
import qs.Commons
|
||||||
|
|
||||||
// Visual reference + live playground for omarchy-shell's common UI
|
// Visual reference + live playground for omarchy-shell's common UI
|
||||||
@@ -124,7 +124,7 @@ Item {
|
|||||||
font.bold: true
|
font.bold: true
|
||||||
}
|
}
|
||||||
Text {
|
Text {
|
||||||
text: "Live previews of every component in plugins/bar/common/. Use this as the visual reference when porting panels or extracting new primitives. Press h/l to walk the cursor demo, Esc to close."
|
text: "Live previews of every type exported from qs.Ui. Use this as the visual reference when porting panels or building plugins. Press h/l to walk the cursor demo, Esc to close."
|
||||||
color: Qt.darker(root.foreground, 1.4)
|
color: Qt.darker(root.foreground, 1.4)
|
||||||
font.family: root.fontFamily
|
font.family: root.fontFamily
|
||||||
font.pixelSize: 11
|
font.pixelSize: 11
|
||||||
@@ -133,7 +133,7 @@ Item {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Common.PanelSeparator { foreground: root.foreground }
|
PanelSeparator { foreground: root.foreground }
|
||||||
|
|
||||||
// ---- PanelSectionHeader ------------------------------------------
|
// ---- PanelSectionHeader ------------------------------------------
|
||||||
Column {
|
Column {
|
||||||
@@ -171,17 +171,17 @@ Item {
|
|||||||
anchors.rightMargin: 14
|
anchors.rightMargin: 14
|
||||||
spacing: 6
|
spacing: 6
|
||||||
|
|
||||||
Common.PanelSectionHeader {
|
PanelSectionHeader {
|
||||||
text: "DNS provider"
|
text: "DNS provider"
|
||||||
foreground: root.foreground
|
foreground: root.foreground
|
||||||
fontFamily: root.fontFamily
|
fontFamily: root.fontFamily
|
||||||
}
|
}
|
||||||
Common.PanelSectionHeader {
|
PanelSectionHeader {
|
||||||
text: "Wi-Fi networks"
|
text: "Wi-Fi networks"
|
||||||
foreground: root.foreground
|
foreground: root.foreground
|
||||||
fontFamily: root.fontFamily
|
fontFamily: root.fontFamily
|
||||||
}
|
}
|
||||||
Common.PanelSectionHeader {
|
PanelSectionHeader {
|
||||||
text: "Playing"
|
text: "Playing"
|
||||||
foreground: root.foreground
|
foreground: root.foreground
|
||||||
fontFamily: root.fontFamily
|
fontFamily: root.fontFamily
|
||||||
@@ -227,9 +227,9 @@ Item {
|
|||||||
anchors.rightMargin: 14
|
anchors.rightMargin: 14
|
||||||
spacing: 12
|
spacing: 12
|
||||||
|
|
||||||
Common.PanelSeparator { foreground: root.foreground }
|
PanelSeparator { foreground: root.foreground }
|
||||||
Common.PanelSeparator { foreground: root.foreground; strength: 0.25 }
|
PanelSeparator { foreground: root.foreground; strength: 0.25 }
|
||||||
Common.PanelSeparator { foreground: root.foreground; strength: 0.45 }
|
PanelSeparator { foreground: root.foreground; strength: 0.45 }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -279,7 +279,7 @@ Item {
|
|||||||
{ "label": "Forget / scan / disabled-ish row" }
|
{ "label": "Forget / scan / disabled-ish row" }
|
||||||
]
|
]
|
||||||
|
|
||||||
Common.CursorSurface {
|
CursorSurface {
|
||||||
required property var modelData
|
required property var modelData
|
||||||
required property int index
|
required property int index
|
||||||
width: parent.width
|
width: parent.width
|
||||||
@@ -351,7 +351,7 @@ Item {
|
|||||||
anchors.leftMargin: 14
|
anchors.leftMargin: 14
|
||||||
spacing: 6
|
spacing: 6
|
||||||
|
|
||||||
Common.PillButton {
|
PillButton {
|
||||||
text: "DHCP"
|
text: "DHCP"
|
||||||
tooltipText: "Use DNS from DHCP"
|
tooltipText: "Use DNS from DHCP"
|
||||||
tooltipBackground: root.background
|
tooltipBackground: root.background
|
||||||
@@ -360,7 +360,7 @@ Item {
|
|||||||
fontFamily: root.fontFamily
|
fontFamily: root.fontFamily
|
||||||
}
|
}
|
||||||
|
|
||||||
Common.PillButton {
|
PillButton {
|
||||||
text: "Cloudflare"
|
text: "Cloudflare"
|
||||||
tooltipText: "Set DNS to Cloudflare"
|
tooltipText: "Set DNS to Cloudflare"
|
||||||
tooltipBackground: root.background
|
tooltipBackground: root.background
|
||||||
@@ -370,7 +370,7 @@ Item {
|
|||||||
active: true
|
active: true
|
||||||
}
|
}
|
||||||
|
|
||||||
Common.PillButton {
|
PillButton {
|
||||||
iconText: ""
|
iconText: ""
|
||||||
tooltipText: "Refresh"
|
tooltipText: "Refresh"
|
||||||
tooltipBackground: root.background
|
tooltipBackground: root.background
|
||||||
@@ -381,7 +381,7 @@ Item {
|
|||||||
verticalPadding: 4
|
verticalPadding: 4
|
||||||
}
|
}
|
||||||
|
|
||||||
Common.PillButton {
|
PillButton {
|
||||||
iconText: ""
|
iconText: ""
|
||||||
text: "On"
|
text: "On"
|
||||||
tooltipText: "Turn Bluetooth off"
|
tooltipText: "Turn Bluetooth off"
|
||||||
@@ -431,7 +431,7 @@ Item {
|
|||||||
anchors.leftMargin: 14
|
anchors.leftMargin: 14
|
||||||
spacing: 18
|
spacing: 18
|
||||||
|
|
||||||
Common.PanelActionButton {
|
PanelActionButton {
|
||||||
iconText: ""
|
iconText: ""
|
||||||
tooltipText: "Confirm (default flavor)"
|
tooltipText: "Confirm (default flavor)"
|
||||||
foreground: root.foreground
|
foreground: root.foreground
|
||||||
@@ -439,7 +439,7 @@ Item {
|
|||||||
fontFamily: root.fontFamily
|
fontFamily: root.fontFamily
|
||||||
}
|
}
|
||||||
|
|
||||||
Common.PanelActionButton {
|
PanelActionButton {
|
||||||
iconText: ""
|
iconText: ""
|
||||||
tooltipText: "Forget network (urgent flavor)"
|
tooltipText: "Forget network (urgent flavor)"
|
||||||
foreground: root.foreground
|
foreground: root.foreground
|
||||||
@@ -448,7 +448,7 @@ Item {
|
|||||||
fontFamily: root.fontFamily
|
fontFamily: root.fontFamily
|
||||||
}
|
}
|
||||||
|
|
||||||
Common.PanelActionButton {
|
PanelActionButton {
|
||||||
iconText: ""
|
iconText: ""
|
||||||
tooltipText: "Disabled — type a passphrase first"
|
tooltipText: "Disabled — type a passphrase first"
|
||||||
foreground: root.foreground
|
foreground: root.foreground
|
||||||
@@ -504,7 +504,7 @@ Item {
|
|||||||
cursorShape: Qt.PointingHandCursor
|
cursorShape: Qt.PointingHandCursor
|
||||||
}
|
}
|
||||||
|
|
||||||
Common.PanelToolTip {
|
PanelToolTip {
|
||||||
visible: tipMouse.containsMouse
|
visible: tipMouse.containsMouse
|
||||||
text: "Styled tooltip — drop into any panel"
|
text: "Styled tooltip — drop into any panel"
|
||||||
panelForeground: root.foreground
|
panelForeground: root.foreground
|
||||||
@@ -563,7 +563,7 @@ Item {
|
|||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
}
|
}
|
||||||
|
|
||||||
Common.Slider {
|
PanelSlider {
|
||||||
id: demoSlider
|
id: demoSlider
|
||||||
bar: root.fakeBar
|
bar: root.fakeBar
|
||||||
width: parent.width - 70
|
width: parent.width - 70
|
||||||
@@ -623,13 +623,13 @@ Item {
|
|||||||
anchors.rightMargin: 14
|
anchors.rightMargin: 14
|
||||||
spacing: 6
|
spacing: 6
|
||||||
|
|
||||||
Common.PanelSectionHeader {
|
PanelSectionHeader {
|
||||||
text: "Wi-Fi networks"
|
text: "Wi-Fi networks"
|
||||||
foreground: root.foreground
|
foreground: root.foreground
|
||||||
fontFamily: root.fontFamily
|
fontFamily: root.fontFamily
|
||||||
}
|
}
|
||||||
|
|
||||||
Common.CursorSurface {
|
CursorSurface {
|
||||||
width: parent.width
|
width: parent.width
|
||||||
implicitHeight: composedRow.implicitHeight + 12
|
implicitHeight: composedRow.implicitHeight + 12
|
||||||
current: true
|
current: true
|
||||||
@@ -655,7 +655,7 @@ Item {
|
|||||||
font.pixelSize: 14
|
font.pixelSize: 14
|
||||||
}
|
}
|
||||||
|
|
||||||
Common.PanelActionButton {
|
PanelActionButton {
|
||||||
id: composedForget
|
id: composedForget
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
@@ -695,9 +695,9 @@ Item {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Common.PanelSeparator { foreground: root.foreground }
|
PanelSeparator { foreground: root.foreground }
|
||||||
|
|
||||||
Common.CursorSurface {
|
CursorSurface {
|
||||||
width: parent.width
|
width: parent.width
|
||||||
implicitHeight: idleRow.implicitHeight + 12
|
implicitHeight: idleRow.implicitHeight + 12
|
||||||
foreground: root.foreground
|
foreground: root.foreground
|
||||||
|
|||||||
Reference in new issue
Block a user