controlcenter: corrected all panels edge-to-edge containers
This commit is contained in:
parent
442b49e0e1
commit
b0006f2f11
6 changed files with 493 additions and 272 deletions
|
|
@ -12,6 +12,7 @@ import qs.config
|
|||
import qs.utils
|
||||
import Caelestia.Models
|
||||
import Quickshell
|
||||
import Quickshell.Widgets
|
||||
import QtQuick
|
||||
import QtQuick.Layouts
|
||||
|
||||
|
|
@ -47,26 +48,6 @@ RowLayout {
|
|||
|
||||
spacing: 0
|
||||
|
||||
function collapseAllSections(exceptSection) {
|
||||
if (exceptSection !== themeModeSection)
|
||||
themeModeSection.expanded = false;
|
||||
if (exceptSection !== colorVariantSection)
|
||||
colorVariantSection.expanded = false;
|
||||
if (exceptSection !== colorSchemeSection)
|
||||
colorSchemeSection.expanded = false;
|
||||
if (exceptSection !== animationsSection)
|
||||
animationsSection.expanded = false;
|
||||
if (exceptSection !== fontsSection)
|
||||
fontsSection.expanded = false;
|
||||
if (exceptSection !== scalesSection)
|
||||
scalesSection.expanded = false;
|
||||
if (exceptSection !== transparencySection)
|
||||
transparencySection.expanded = false;
|
||||
if (exceptSection !== borderSection)
|
||||
borderSection.expanded = false;
|
||||
if (exceptSection !== backgroundSection)
|
||||
backgroundSection.expanded = false;
|
||||
}
|
||||
|
||||
function saveConfig() {
|
||||
// Update animations
|
||||
|
|
@ -110,26 +91,72 @@ RowLayout {
|
|||
Layout.minimumWidth: 420
|
||||
Layout.fillHeight: true
|
||||
|
||||
StyledFlickable {
|
||||
id: sidebarFlickable
|
||||
ClippingRectangle {
|
||||
id: leftAppearanceClippingRect
|
||||
anchors.fill: parent
|
||||
flickableDirection: Flickable.VerticalFlick
|
||||
contentHeight: sidebarLayout.height
|
||||
anchors.margins: Appearance.padding.normal
|
||||
anchors.leftMargin: 0
|
||||
anchors.rightMargin: Appearance.padding.normal / 2
|
||||
radius: leftAppearanceBorder.innerRadius
|
||||
color: "transparent"
|
||||
|
||||
StyledScrollBar.vertical: StyledScrollBar {
|
||||
flickable: sidebarFlickable
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
id: sidebarLayout
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
anchors.top: parent.top
|
||||
Loader {
|
||||
id: leftAppearanceLoader
|
||||
anchors.fill: parent
|
||||
anchors.margins: Appearance.padding.large + Appearance.padding.normal
|
||||
anchors.leftMargin: Appearance.padding.large
|
||||
anchors.rightMargin: Appearance.padding.large + Appearance.padding.normal / 2
|
||||
asynchronous: true
|
||||
sourceComponent: appearanceLeftContentComponent
|
||||
property var rootPane: root
|
||||
}
|
||||
}
|
||||
|
||||
spacing: Appearance.spacing.small
|
||||
InnerBorder {
|
||||
id: leftAppearanceBorder
|
||||
leftThickness: 0
|
||||
rightThickness: Appearance.padding.normal / 2
|
||||
}
|
||||
|
||||
Component {
|
||||
id: appearanceLeftContentComponent
|
||||
|
||||
StyledFlickable {
|
||||
id: sidebarFlickable
|
||||
readonly property var rootPane: leftAppearanceLoader.rootPane
|
||||
flickableDirection: Flickable.VerticalFlick
|
||||
contentHeight: sidebarLayout.height
|
||||
|
||||
function collapseAllSections(exceptSection) {
|
||||
if (exceptSection !== themeModeSection)
|
||||
themeModeSection.expanded = false;
|
||||
if (exceptSection !== colorVariantSection)
|
||||
colorVariantSection.expanded = false;
|
||||
if (exceptSection !== colorSchemeSection)
|
||||
colorSchemeSection.expanded = false;
|
||||
if (exceptSection !== animationsSection)
|
||||
animationsSection.expanded = false;
|
||||
if (exceptSection !== fontsSection)
|
||||
fontsSection.expanded = false;
|
||||
if (exceptSection !== scalesSection)
|
||||
scalesSection.expanded = false;
|
||||
if (exceptSection !== transparencySection)
|
||||
transparencySection.expanded = false;
|
||||
if (exceptSection !== borderSection)
|
||||
borderSection.expanded = false;
|
||||
if (exceptSection !== backgroundSection)
|
||||
backgroundSection.expanded = false;
|
||||
}
|
||||
|
||||
StyledScrollBar.vertical: StyledScrollBar {
|
||||
flickable: sidebarFlickable
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
id: sidebarLayout
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
spacing: Appearance.spacing.small
|
||||
|
||||
RowLayout {
|
||||
spacing: Appearance.spacing.smaller
|
||||
|
|
@ -150,7 +177,7 @@ RowLayout {
|
|||
title: qsTr("Theme mode")
|
||||
description: qsTr("Light or dark theme")
|
||||
onToggleRequested: {
|
||||
root.collapseAllSections(themeModeSection);
|
||||
sidebarFlickable.collapseAllSections(themeModeSection);
|
||||
}
|
||||
|
||||
SwitchRow {
|
||||
|
|
@ -167,7 +194,7 @@ RowLayout {
|
|||
title: qsTr("Color variant")
|
||||
description: qsTr("Material theme variant")
|
||||
onToggleRequested: {
|
||||
root.collapseAllSections(colorVariantSection);
|
||||
sidebarFlickable.collapseAllSections(colorVariantSection);
|
||||
}
|
||||
|
||||
StyledListView {
|
||||
|
|
@ -257,7 +284,7 @@ RowLayout {
|
|||
title: qsTr("Color scheme")
|
||||
description: qsTr("Available color schemes")
|
||||
onToggleRequested: {
|
||||
root.collapseAllSections(colorSchemeSection);
|
||||
sidebarFlickable.collapseAllSections(colorSchemeSection);
|
||||
}
|
||||
|
||||
StyledListView {
|
||||
|
|
@ -401,7 +428,7 @@ RowLayout {
|
|||
id: animationsSection
|
||||
title: qsTr("Animations")
|
||||
onToggleRequested: {
|
||||
root.collapseAllSections(animationsSection);
|
||||
sidebarFlickable.collapseAllSections(animationsSection);
|
||||
}
|
||||
|
||||
SpinBoxRow {
|
||||
|
|
@ -409,10 +436,10 @@ RowLayout {
|
|||
min: 0.1
|
||||
max: 5
|
||||
step: 0.1
|
||||
value: root.animDurationsScale
|
||||
value: rootPane.animDurationsScale
|
||||
onValueModified: value => {
|
||||
root.animDurationsScale = value;
|
||||
root.saveConfig();
|
||||
rootPane.animDurationsScale = value;
|
||||
rootPane.saveConfig();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -421,7 +448,7 @@ RowLayout {
|
|||
id: fontsSection
|
||||
title: qsTr("Fonts")
|
||||
onToggleRequested: {
|
||||
root.collapseAllSections(fontsSection);
|
||||
sidebarFlickable.collapseAllSections(fontsSection);
|
||||
}
|
||||
|
||||
StyledText {
|
||||
|
|
@ -449,7 +476,7 @@ RowLayout {
|
|||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
readonly property bool isCurrent: modelData === root.fontFamilyMaterial
|
||||
readonly property bool isCurrent: modelData === rootPane.fontFamilyMaterial
|
||||
color: Qt.alpha(Colours.tPalette.m3surfaceContainer, isCurrent ? Colours.tPalette.m3surfaceContainer.a : 0)
|
||||
radius: Appearance.rounding.normal
|
||||
border.width: isCurrent ? 1 : 0
|
||||
|
|
@ -457,8 +484,8 @@ RowLayout {
|
|||
|
||||
StateLayer {
|
||||
function onClicked(): void {
|
||||
root.fontFamilyMaterial = modelData;
|
||||
root.saveConfig();
|
||||
rootPane.fontFamilyMaterial = modelData;
|
||||
rootPane.saveConfig();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -522,7 +549,7 @@ RowLayout {
|
|||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
readonly property bool isCurrent: modelData === root.fontFamilyMono
|
||||
readonly property bool isCurrent: modelData === rootPane.fontFamilyMono
|
||||
color: Qt.alpha(Colours.tPalette.m3surfaceContainer, isCurrent ? Colours.tPalette.m3surfaceContainer.a : 0)
|
||||
radius: Appearance.rounding.normal
|
||||
border.width: isCurrent ? 1 : 0
|
||||
|
|
@ -530,8 +557,8 @@ RowLayout {
|
|||
|
||||
StateLayer {
|
||||
function onClicked(): void {
|
||||
root.fontFamilyMono = modelData;
|
||||
root.saveConfig();
|
||||
rootPane.fontFamilyMono = modelData;
|
||||
rootPane.saveConfig();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -595,7 +622,7 @@ RowLayout {
|
|||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
readonly property bool isCurrent: modelData === root.fontFamilySans
|
||||
readonly property bool isCurrent: modelData === rootPane.fontFamilySans
|
||||
color: Qt.alpha(Colours.tPalette.m3surfaceContainer, isCurrent ? Colours.tPalette.m3surfaceContainer.a : 0)
|
||||
radius: Appearance.rounding.normal
|
||||
border.width: isCurrent ? 1 : 0
|
||||
|
|
@ -603,8 +630,8 @@ RowLayout {
|
|||
|
||||
StateLayer {
|
||||
function onClicked(): void {
|
||||
root.fontFamilySans = modelData;
|
||||
root.saveConfig();
|
||||
rootPane.fontFamilySans = modelData;
|
||||
rootPane.saveConfig();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -648,10 +675,10 @@ RowLayout {
|
|||
min: 0.1
|
||||
max: 5
|
||||
step: 0.1
|
||||
value: root.fontSizeScale
|
||||
value: rootPane.fontSizeScale
|
||||
onValueModified: value => {
|
||||
root.fontSizeScale = value;
|
||||
root.saveConfig();
|
||||
rootPane.fontSizeScale = value;
|
||||
rootPane.saveConfig();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -660,7 +687,7 @@ RowLayout {
|
|||
id: scalesSection
|
||||
title: qsTr("Scales")
|
||||
onToggleRequested: {
|
||||
root.collapseAllSections(scalesSection);
|
||||
sidebarFlickable.collapseAllSections(scalesSection);
|
||||
}
|
||||
|
||||
SpinBoxRow {
|
||||
|
|
@ -668,10 +695,10 @@ RowLayout {
|
|||
min: 0.1
|
||||
max: 5
|
||||
step: 0.1
|
||||
value: root.paddingScale
|
||||
value: rootPane.paddingScale
|
||||
onValueModified: value => {
|
||||
root.paddingScale = value;
|
||||
root.saveConfig();
|
||||
rootPane.paddingScale = value;
|
||||
rootPane.saveConfig();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -680,10 +707,10 @@ RowLayout {
|
|||
min: 0.1
|
||||
max: 5
|
||||
step: 0.1
|
||||
value: root.roundingScale
|
||||
value: rootPane.roundingScale
|
||||
onValueModified: value => {
|
||||
root.roundingScale = value;
|
||||
root.saveConfig();
|
||||
rootPane.roundingScale = value;
|
||||
rootPane.saveConfig();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -692,10 +719,10 @@ RowLayout {
|
|||
min: 0.1
|
||||
max: 5
|
||||
step: 0.1
|
||||
value: root.spacingScale
|
||||
value: rootPane.spacingScale
|
||||
onValueModified: value => {
|
||||
root.spacingScale = value;
|
||||
root.saveConfig();
|
||||
rootPane.spacingScale = value;
|
||||
rootPane.saveConfig();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -704,15 +731,15 @@ RowLayout {
|
|||
id: transparencySection
|
||||
title: qsTr("Transparency")
|
||||
onToggleRequested: {
|
||||
root.collapseAllSections(transparencySection);
|
||||
sidebarFlickable.collapseAllSections(transparencySection);
|
||||
}
|
||||
|
||||
SwitchRow {
|
||||
label: qsTr("Transparency enabled")
|
||||
checked: root.transparencyEnabled
|
||||
checked: rootPane.transparencyEnabled
|
||||
onToggled: checked => {
|
||||
root.transparencyEnabled = checked;
|
||||
root.saveConfig();
|
||||
rootPane.transparencyEnabled = checked;
|
||||
rootPane.saveConfig();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -737,7 +764,7 @@ RowLayout {
|
|||
}
|
||||
|
||||
StyledText {
|
||||
text: qsTr("%1%").arg(Math.round(root.transparencyBase * 100))
|
||||
text: qsTr("%1%").arg(Math.round(rootPane.transparencyBase * 100))
|
||||
color: Colours.palette.m3outline
|
||||
font.pointSize: Appearance.font.size.normal
|
||||
}
|
||||
|
|
@ -751,10 +778,10 @@ RowLayout {
|
|||
|
||||
from: 0
|
||||
to: 100
|
||||
value: root.transparencyBase * 100
|
||||
value: rootPane.transparencyBase * 100
|
||||
onMoved: {
|
||||
root.transparencyBase = baseSlider.value / 100;
|
||||
root.saveConfig();
|
||||
rootPane.transparencyBase = baseSlider.value / 100;
|
||||
rootPane.saveConfig();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -781,7 +808,7 @@ RowLayout {
|
|||
}
|
||||
|
||||
StyledText {
|
||||
text: qsTr("%1%").arg(Math.round(root.transparencyLayers * 100))
|
||||
text: qsTr("%1%").arg(Math.round(rootPane.transparencyLayers * 100))
|
||||
color: Colours.palette.m3outline
|
||||
font.pointSize: Appearance.font.size.normal
|
||||
}
|
||||
|
|
@ -795,10 +822,10 @@ RowLayout {
|
|||
|
||||
from: 0
|
||||
to: 100
|
||||
value: root.transparencyLayers * 100
|
||||
value: rootPane.transparencyLayers * 100
|
||||
onMoved: {
|
||||
root.transparencyLayers = layersSlider.value / 100;
|
||||
root.saveConfig();
|
||||
rootPane.transparencyLayers = layersSlider.value / 100;
|
||||
rootPane.saveConfig();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -809,7 +836,7 @@ RowLayout {
|
|||
id: borderSection
|
||||
title: qsTr("Border")
|
||||
onToggleRequested: {
|
||||
root.collapseAllSections(borderSection);
|
||||
sidebarFlickable.collapseAllSections(borderSection);
|
||||
}
|
||||
|
||||
SpinBoxRow {
|
||||
|
|
@ -817,10 +844,10 @@ RowLayout {
|
|||
min: 0.1
|
||||
max: 100
|
||||
step: 0.1
|
||||
value: root.borderRounding
|
||||
value: rootPane.borderRounding
|
||||
onValueModified: value => {
|
||||
root.borderRounding = value;
|
||||
root.saveConfig();
|
||||
rootPane.borderRounding = value;
|
||||
rootPane.saveConfig();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -829,10 +856,10 @@ RowLayout {
|
|||
min: 0.1
|
||||
max: 100
|
||||
step: 0.1
|
||||
value: root.borderThickness
|
||||
value: rootPane.borderThickness
|
||||
onValueModified: value => {
|
||||
root.borderThickness = value;
|
||||
root.saveConfig();
|
||||
rootPane.borderThickness = value;
|
||||
rootPane.saveConfig();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -841,24 +868,24 @@ RowLayout {
|
|||
id: backgroundSection
|
||||
title: qsTr("Background")
|
||||
onToggleRequested: {
|
||||
root.collapseAllSections(backgroundSection);
|
||||
sidebarFlickable.collapseAllSections(backgroundSection);
|
||||
}
|
||||
|
||||
SwitchRow {
|
||||
label: qsTr("Desktop clock")
|
||||
checked: root.desktopClockEnabled
|
||||
checked: rootPane.desktopClockEnabled
|
||||
onToggled: checked => {
|
||||
root.desktopClockEnabled = checked;
|
||||
root.saveConfig();
|
||||
rootPane.desktopClockEnabled = checked;
|
||||
rootPane.saveConfig();
|
||||
}
|
||||
}
|
||||
|
||||
SwitchRow {
|
||||
label: qsTr("Background enabled")
|
||||
checked: root.backgroundEnabled
|
||||
checked: rootPane.backgroundEnabled
|
||||
onToggled: checked => {
|
||||
root.backgroundEnabled = checked;
|
||||
root.saveConfig();
|
||||
rootPane.backgroundEnabled = checked;
|
||||
rootPane.saveConfig();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -871,19 +898,19 @@ RowLayout {
|
|||
|
||||
SwitchRow {
|
||||
label: qsTr("Visualiser enabled")
|
||||
checked: root.visualiserEnabled
|
||||
checked: rootPane.visualiserEnabled
|
||||
onToggled: checked => {
|
||||
root.visualiserEnabled = checked;
|
||||
root.saveConfig();
|
||||
rootPane.visualiserEnabled = checked;
|
||||
rootPane.saveConfig();
|
||||
}
|
||||
}
|
||||
|
||||
SwitchRow {
|
||||
label: qsTr("Visualiser auto hide")
|
||||
checked: root.visualiserAutoHide
|
||||
checked: rootPane.visualiserAutoHide
|
||||
onToggled: checked => {
|
||||
root.visualiserAutoHide = checked;
|
||||
root.saveConfig();
|
||||
rootPane.visualiserAutoHide = checked;
|
||||
rootPane.saveConfig();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -891,10 +918,10 @@ RowLayout {
|
|||
label: qsTr("Visualiser rounding")
|
||||
min: 0
|
||||
max: 10
|
||||
value: Math.round(root.visualiserRounding)
|
||||
value: Math.round(rootPane.visualiserRounding)
|
||||
onValueModified: value => {
|
||||
root.visualiserRounding = value;
|
||||
root.saveConfig();
|
||||
rootPane.visualiserRounding = value;
|
||||
rootPane.saveConfig();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -902,19 +929,15 @@ RowLayout {
|
|||
label: qsTr("Visualiser spacing")
|
||||
min: 0
|
||||
max: 10
|
||||
value: Math.round(root.visualiserSpacing)
|
||||
value: Math.round(rootPane.visualiserSpacing)
|
||||
onValueModified: value => {
|
||||
root.visualiserSpacing = value;
|
||||
root.saveConfig();
|
||||
rootPane.visualiserSpacing = value;
|
||||
rootPane.saveConfig();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
InnerBorder {
|
||||
leftThickness: 0
|
||||
rightThickness: Appearance.padding.normal / 2
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -922,30 +945,53 @@ RowLayout {
|
|||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
|
||||
StyledFlickable {
|
||||
ClippingRectangle {
|
||||
id: rightAppearanceClippingRect
|
||||
anchors.fill: parent
|
||||
anchors.margins: Appearance.padding.normal
|
||||
anchors.leftMargin: 0
|
||||
anchors.rightMargin: Appearance.padding.normal / 2
|
||||
radius: rightAppearanceBorder.innerRadius
|
||||
color: "transparent"
|
||||
|
||||
flickableDirection: Flickable.VerticalFlick
|
||||
contentHeight: contentLayout.height
|
||||
|
||||
StyledScrollBar.vertical: StyledScrollBar {
|
||||
flickable: parent
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
id: contentLayout
|
||||
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
anchors.top: parent.top
|
||||
anchors.leftMargin: Appearance.padding.large * 2
|
||||
anchors.rightMargin: Appearance.padding.large * 2
|
||||
Loader {
|
||||
id: rightAppearanceLoader
|
||||
anchors.fill: parent
|
||||
anchors.topMargin: Appearance.padding.large * 2
|
||||
anchors.bottomMargin: Appearance.padding.large * 2
|
||||
anchors.leftMargin: 0
|
||||
anchors.rightMargin: 0
|
||||
asynchronous: true
|
||||
sourceComponent: appearanceRightContentComponent
|
||||
property var rootPane: root
|
||||
}
|
||||
}
|
||||
|
||||
spacing: Appearance.spacing.normal
|
||||
InnerBorder {
|
||||
id: rightAppearanceBorder
|
||||
leftThickness: Appearance.padding.normal / 2
|
||||
}
|
||||
|
||||
Component {
|
||||
id: appearanceRightContentComponent
|
||||
|
||||
StyledFlickable {
|
||||
id: rightAppearanceFlickable
|
||||
flickableDirection: Flickable.VerticalFlick
|
||||
contentHeight: contentLayout.height
|
||||
|
||||
StyledScrollBar.vertical: StyledScrollBar {
|
||||
flickable: rightAppearanceFlickable
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
id: contentLayout
|
||||
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
anchors.leftMargin: Appearance.padding.large * 2
|
||||
anchors.rightMargin: Appearance.padding.large * 2
|
||||
spacing: Appearance.spacing.normal
|
||||
|
||||
MaterialIcon {
|
||||
Layout.alignment: Qt.AlignHCenter
|
||||
|
|
@ -1182,10 +1228,7 @@ RowLayout {
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
InnerBorder {
|
||||
leftThickness: Appearance.padding.normal / 2
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import qs.components.effects
|
|||
import qs.components.containers
|
||||
import qs.services
|
||||
import qs.config
|
||||
import Quickshell.Widgets
|
||||
import QtQuick
|
||||
import QtQuick.Layouts
|
||||
|
||||
|
|
@ -20,28 +21,58 @@ RowLayout {
|
|||
spacing: 0
|
||||
|
||||
Item {
|
||||
id: leftAudioItem
|
||||
Layout.preferredWidth: Math.floor(parent.width * 0.4)
|
||||
Layout.minimumWidth: 420
|
||||
Layout.fillHeight: true
|
||||
|
||||
StyledFlickable {
|
||||
ClippingRectangle {
|
||||
id: leftAudioClippingRect
|
||||
anchors.fill: parent
|
||||
anchors.margins: Appearance.padding.large + Appearance.padding.normal
|
||||
anchors.leftMargin: Appearance.padding.large
|
||||
anchors.rightMargin: Appearance.padding.large + Appearance.padding.normal / 2
|
||||
flickableDirection: Flickable.VerticalFlick
|
||||
contentHeight: leftContent.height
|
||||
anchors.margins: Appearance.padding.normal
|
||||
anchors.leftMargin: 0
|
||||
anchors.rightMargin: Appearance.padding.normal / 2
|
||||
|
||||
StyledScrollBar.vertical: StyledScrollBar {
|
||||
flickable: parent
|
||||
radius: leftAudioBorder.innerRadius
|
||||
color: "transparent"
|
||||
|
||||
Loader {
|
||||
id: leftAudioLoader
|
||||
|
||||
anchors.fill: parent
|
||||
anchors.margins: Appearance.padding.large + Appearance.padding.normal
|
||||
anchors.leftMargin: Appearance.padding.large
|
||||
anchors.rightMargin: Appearance.padding.large + Appearance.padding.normal / 2
|
||||
|
||||
asynchronous: true
|
||||
sourceComponent: audioLeftContentComponent
|
||||
}
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
id: leftContent
|
||||
InnerBorder {
|
||||
id: leftAudioBorder
|
||||
leftThickness: 0
|
||||
rightThickness: Appearance.padding.normal / 2
|
||||
}
|
||||
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
spacing: Appearance.spacing.normal
|
||||
Component {
|
||||
id: audioLeftContentComponent
|
||||
|
||||
StyledFlickable {
|
||||
id: leftAudioFlickable
|
||||
flickableDirection: Flickable.VerticalFlick
|
||||
contentHeight: leftContent.height
|
||||
|
||||
StyledScrollBar.vertical: StyledScrollBar {
|
||||
flickable: leftAudioFlickable
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
id: leftContent
|
||||
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
spacing: Appearance.spacing.normal
|
||||
|
||||
// Settings header above the collapsible sections
|
||||
RowLayout {
|
||||
|
|
@ -215,42 +246,64 @@ RowLayout {
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
InnerBorder {
|
||||
leftThickness: 0
|
||||
rightThickness: Appearance.padding.normal / 2
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Item {
|
||||
id: rightAudioItem
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
|
||||
StyledFlickable {
|
||||
ClippingRectangle {
|
||||
id: rightAudioClippingRect
|
||||
anchors.fill: parent
|
||||
anchors.margins: Appearance.padding.normal
|
||||
anchors.leftMargin: 0
|
||||
anchors.rightMargin: Appearance.padding.normal / 2
|
||||
|
||||
flickableDirection: Flickable.VerticalFlick
|
||||
contentHeight: contentLayout.height
|
||||
radius: rightAudioBorder.innerRadius
|
||||
color: "transparent"
|
||||
|
||||
StyledScrollBar.vertical: StyledScrollBar {
|
||||
flickable: parent
|
||||
}
|
||||
Loader {
|
||||
id: rightAudioLoader
|
||||
|
||||
ColumnLayout {
|
||||
id: contentLayout
|
||||
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
anchors.top: parent.top
|
||||
anchors.leftMargin: Appearance.padding.large * 2
|
||||
anchors.rightMargin: Appearance.padding.large * 2
|
||||
anchors.fill: parent
|
||||
anchors.topMargin: Appearance.padding.large * 2
|
||||
anchors.bottomMargin: Appearance.padding.large * 2
|
||||
anchors.leftMargin: 0
|
||||
anchors.rightMargin: 0
|
||||
|
||||
spacing: Appearance.spacing.normal
|
||||
asynchronous: true
|
||||
sourceComponent: audioRightContentComponent
|
||||
}
|
||||
}
|
||||
|
||||
InnerBorder {
|
||||
id: rightAudioBorder
|
||||
leftThickness: Appearance.padding.normal / 2
|
||||
}
|
||||
|
||||
Component {
|
||||
id: audioRightContentComponent
|
||||
|
||||
StyledFlickable {
|
||||
id: rightAudioFlickable
|
||||
flickableDirection: Flickable.VerticalFlick
|
||||
contentHeight: contentLayout.height
|
||||
|
||||
StyledScrollBar.vertical: StyledScrollBar {
|
||||
flickable: rightAudioFlickable
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
id: contentLayout
|
||||
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
anchors.leftMargin: Appearance.padding.large * 2
|
||||
anchors.rightMargin: Appearance.padding.large * 2
|
||||
spacing: Appearance.spacing.normal
|
||||
|
||||
ConnectionHeader {
|
||||
icon: "volume_up"
|
||||
|
|
@ -397,10 +450,7 @@ RowLayout {
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
InnerBorder {
|
||||
leftThickness: Appearance.padding.normal / 2
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -19,30 +19,57 @@ RowLayout {
|
|||
spacing: 0
|
||||
|
||||
Item {
|
||||
id: leftBtItem
|
||||
Layout.preferredWidth: Math.floor(parent.width * 0.4)
|
||||
Layout.minimumWidth: 420
|
||||
Layout.fillHeight: true
|
||||
|
||||
DeviceList {
|
||||
ClippingRectangle {
|
||||
id: leftBtClippingRect
|
||||
anchors.fill: parent
|
||||
anchors.margins: Appearance.padding.large + Appearance.padding.normal
|
||||
anchors.leftMargin: Appearance.padding.large
|
||||
anchors.rightMargin: Appearance.padding.large + Appearance.padding.normal / 2
|
||||
anchors.margins: Appearance.padding.normal
|
||||
anchors.leftMargin: 0
|
||||
anchors.rightMargin: Appearance.padding.normal / 2
|
||||
|
||||
session: root.session
|
||||
radius: leftBtBorder.innerRadius
|
||||
color: "transparent"
|
||||
|
||||
Loader {
|
||||
id: leftBtLoader
|
||||
|
||||
anchors.fill: parent
|
||||
anchors.margins: Appearance.padding.large + Appearance.padding.normal
|
||||
anchors.leftMargin: Appearance.padding.large
|
||||
anchors.rightMargin: Appearance.padding.large + Appearance.padding.normal / 2
|
||||
|
||||
asynchronous: true
|
||||
sourceComponent: btDeviceListComponent
|
||||
}
|
||||
}
|
||||
|
||||
InnerBorder {
|
||||
id: leftBtBorder
|
||||
leftThickness: 0
|
||||
rightThickness: Appearance.padding.normal / 2
|
||||
}
|
||||
|
||||
Component {
|
||||
id: btDeviceListComponent
|
||||
|
||||
DeviceList {
|
||||
anchors.fill: parent
|
||||
session: root.session
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Item {
|
||||
id: rightBtItem
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
|
||||
ClippingRectangle {
|
||||
id: btClippingRect
|
||||
anchors.fill: parent
|
||||
anchors.margins: Appearance.padding.normal
|
||||
anchors.leftMargin: 0
|
||||
|
|
|
|||
|
|
@ -144,20 +144,50 @@ RowLayout {
|
|||
}
|
||||
|
||||
Item {
|
||||
id: leftLauncherItem
|
||||
Layout.preferredWidth: Math.floor(parent.width * 0.4)
|
||||
Layout.minimumWidth: 420
|
||||
Layout.fillHeight: true
|
||||
|
||||
ColumnLayout {
|
||||
ClippingRectangle {
|
||||
id: leftLauncherClippingRect
|
||||
anchors.fill: parent
|
||||
anchors.margins: Appearance.padding.large + Appearance.padding.normal
|
||||
anchors.leftMargin: Appearance.padding.large
|
||||
anchors.rightMargin: Appearance.padding.large + Appearance.padding.normal / 2
|
||||
anchors.bottomMargin: 0
|
||||
anchors.margins: Appearance.padding.normal
|
||||
anchors.leftMargin: 0
|
||||
anchors.rightMargin: Appearance.padding.normal / 2
|
||||
|
||||
spacing: Appearance.spacing.small
|
||||
radius: leftLauncherBorder.innerRadius
|
||||
color: "transparent"
|
||||
|
||||
RowLayout {
|
||||
Loader {
|
||||
id: leftLauncherLoader
|
||||
|
||||
anchors.fill: parent
|
||||
anchors.margins: Appearance.padding.large + Appearance.padding.normal
|
||||
anchors.leftMargin: Appearance.padding.large
|
||||
anchors.rightMargin: Appearance.padding.large + Appearance.padding.normal / 2
|
||||
anchors.bottomMargin: 0
|
||||
|
||||
asynchronous: true
|
||||
sourceComponent: leftContentComponent
|
||||
}
|
||||
}
|
||||
|
||||
InnerBorder {
|
||||
id: leftLauncherBorder
|
||||
leftThickness: 0
|
||||
rightThickness: Appearance.padding.normal / 2
|
||||
}
|
||||
|
||||
Component {
|
||||
id: leftContentComponent
|
||||
|
||||
ColumnLayout {
|
||||
anchors.fill: parent
|
||||
|
||||
spacing: Appearance.spacing.small
|
||||
|
||||
RowLayout {
|
||||
spacing: Appearance.spacing.smaller
|
||||
|
||||
StyledText {
|
||||
|
|
@ -268,6 +298,7 @@ RowLayout {
|
|||
}
|
||||
|
||||
StyledListView {
|
||||
id: appsListView
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
|
||||
|
|
@ -323,26 +354,50 @@ RowLayout {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
InnerBorder {
|
||||
leftThickness: 0
|
||||
rightThickness: Appearance.padding.normal / 2
|
||||
}
|
||||
}
|
||||
|
||||
Item {
|
||||
id: rightLauncherItem
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
|
||||
ColumnLayout {
|
||||
ClippingRectangle {
|
||||
id: rightLauncherClippingRect
|
||||
anchors.fill: parent
|
||||
anchors.margins: Appearance.padding.normal
|
||||
anchors.leftMargin: 0
|
||||
anchors.rightMargin: Appearance.padding.normal / 2
|
||||
|
||||
spacing: Appearance.spacing.normal
|
||||
radius: rightLauncherBorder.innerRadius
|
||||
color: "transparent"
|
||||
|
||||
Item {
|
||||
Loader {
|
||||
id: rightLauncherLoader
|
||||
|
||||
anchors.fill: parent
|
||||
anchors.margins: Appearance.padding.large * 2
|
||||
|
||||
asynchronous: true
|
||||
sourceComponent: rightContentComponent
|
||||
}
|
||||
}
|
||||
|
||||
InnerBorder {
|
||||
id: rightLauncherBorder
|
||||
|
||||
leftThickness: Appearance.padding.normal / 2
|
||||
}
|
||||
|
||||
Component {
|
||||
id: rightContentComponent
|
||||
|
||||
ColumnLayout {
|
||||
anchors.fill: parent
|
||||
|
||||
spacing: Appearance.spacing.normal
|
||||
|
||||
Item {
|
||||
Layout.alignment: Qt.AlignHCenter
|
||||
Layout.leftMargin: Appearance.padding.large * 2
|
||||
Layout.rightMargin: Appearance.padding.large * 2
|
||||
|
|
@ -397,6 +452,7 @@ RowLayout {
|
|||
Layout.rightMargin: Appearance.padding.large * 2
|
||||
|
||||
StyledFlickable {
|
||||
id: detailsFlickable
|
||||
anchors.fill: parent
|
||||
flickableDirection: Flickable.VerticalFlick
|
||||
contentHeight: debugLayout.height
|
||||
|
|
@ -428,9 +484,6 @@ RowLayout {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
InnerBorder {
|
||||
leftThickness: Appearance.padding.normal / 2
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,32 +29,59 @@ Item {
|
|||
spacing: 0
|
||||
|
||||
Item {
|
||||
id: leftNetworkItem
|
||||
Layout.preferredWidth: Math.floor(parent.width * 0.4)
|
||||
Layout.minimumWidth: 420
|
||||
Layout.fillHeight: true
|
||||
|
||||
// Left pane - networking list with collapsible sections
|
||||
StyledFlickable {
|
||||
id: leftFlickable
|
||||
|
||||
ClippingRectangle {
|
||||
id: leftNetworkClippingRect
|
||||
anchors.fill: parent
|
||||
flickableDirection: Flickable.VerticalFlick
|
||||
contentHeight: leftContent.height
|
||||
anchors.margins: Appearance.padding.normal
|
||||
anchors.leftMargin: 0
|
||||
anchors.rightMargin: Appearance.padding.normal / 2
|
||||
|
||||
StyledScrollBar.vertical: StyledScrollBar {
|
||||
flickable: leftFlickable
|
||||
}
|
||||
radius: leftNetworkBorder.innerRadius
|
||||
color: "transparent"
|
||||
|
||||
ColumnLayout {
|
||||
id: leftContent
|
||||
Loader {
|
||||
id: leftNetworkLoader
|
||||
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
anchors.top: parent.top
|
||||
anchors.fill: parent
|
||||
anchors.margins: Appearance.padding.large + Appearance.padding.normal
|
||||
anchors.leftMargin: Appearance.padding.large
|
||||
anchors.rightMargin: Appearance.padding.large + Appearance.padding.normal / 2
|
||||
spacing: Appearance.spacing.normal
|
||||
|
||||
asynchronous: true
|
||||
sourceComponent: networkListComponent
|
||||
}
|
||||
}
|
||||
|
||||
InnerBorder {
|
||||
id: leftNetworkBorder
|
||||
leftThickness: 0
|
||||
rightThickness: Appearance.padding.normal / 2
|
||||
}
|
||||
|
||||
Component {
|
||||
id: networkListComponent
|
||||
|
||||
StyledFlickable {
|
||||
id: leftFlickable
|
||||
|
||||
flickableDirection: Flickable.VerticalFlick
|
||||
contentHeight: leftContent.height
|
||||
|
||||
StyledScrollBar.vertical: StyledScrollBar {
|
||||
flickable: leftFlickable
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
id: leftContent
|
||||
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
spacing: Appearance.spacing.normal
|
||||
|
||||
// Settings header above the collapsible sections
|
||||
RowLayout {
|
||||
|
|
@ -385,18 +412,16 @@ Item {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
InnerBorder {
|
||||
leftThickness: 0
|
||||
rightThickness: Appearance.padding.normal / 2
|
||||
}
|
||||
}
|
||||
|
||||
Item {
|
||||
id: rightNetworkItem
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
|
||||
ClippingRectangle {
|
||||
id: networkClippingRect
|
||||
anchors.fill: parent
|
||||
anchors.margins: Appearance.padding.normal
|
||||
anchors.leftMargin: 0
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import qs.services
|
|||
import qs.config
|
||||
import qs.utils
|
||||
import Quickshell
|
||||
import Quickshell.Widgets
|
||||
import QtQuick
|
||||
import QtQuick.Layouts
|
||||
|
||||
|
|
@ -17,6 +18,9 @@ RowLayout {
|
|||
|
||||
required property Session session
|
||||
|
||||
// Clock
|
||||
property bool clockShowIcon: Config.bar.clock.showIcon ?? true
|
||||
|
||||
// Bar Behavior
|
||||
property bool persistent: Config.bar.persistent ?? true
|
||||
property bool showOnHover: Config.bar.showOnHover ?? true
|
||||
|
|
@ -48,9 +52,6 @@ RowLayout {
|
|||
spacing: 0
|
||||
|
||||
Component.onCompleted: {
|
||||
// Update clock toggle
|
||||
clockShowIconSwitch.checked = Config.bar.clock.showIcon ?? true;
|
||||
|
||||
// Update entries
|
||||
if (Config.bar.entries) {
|
||||
entriesModel.clear();
|
||||
|
|
@ -66,7 +67,7 @@ RowLayout {
|
|||
|
||||
function saveConfig(entryIndex, entryEnabled) {
|
||||
// Update clock setting
|
||||
Config.bar.clock.showIcon = clockShowIconSwitch.checked;
|
||||
Config.bar.clock.showIcon = root.clockShowIcon;
|
||||
|
||||
// Update bar behavior
|
||||
Config.bar.persistent = root.persistent;
|
||||
|
|
@ -116,42 +117,62 @@ RowLayout {
|
|||
id: entriesModel
|
||||
}
|
||||
|
||||
|
||||
function collapseAllSections(exceptSection) {
|
||||
if (exceptSection !== clockSection) clockSection.expanded = false;
|
||||
if (exceptSection !== barBehaviorSection) barBehaviorSection.expanded = false;
|
||||
if (exceptSection !== statusIconsSection) statusIconsSection.expanded = false;
|
||||
if (exceptSection !== traySettingsSection) traySettingsSection.expanded = false;
|
||||
if (exceptSection !== workspacesSection) workspacesSection.expanded = false;
|
||||
}
|
||||
|
||||
Item {
|
||||
id: leftTaskbarItem
|
||||
Layout.preferredWidth: Math.floor(parent.width * 0.4)
|
||||
Layout.minimumWidth: 420
|
||||
Layout.fillHeight: true
|
||||
|
||||
StyledFlickable {
|
||||
id: sidebarFlickable
|
||||
ClippingRectangle {
|
||||
id: leftTaskbarClippingRect
|
||||
anchors.fill: parent
|
||||
flickableDirection: Flickable.VerticalFlick
|
||||
contentHeight: sidebarLayout.height
|
||||
anchors.margins: Appearance.padding.normal
|
||||
anchors.leftMargin: 0
|
||||
anchors.rightMargin: Appearance.padding.normal / 2
|
||||
|
||||
StyledScrollBar.vertical: StyledScrollBar {
|
||||
flickable: sidebarFlickable
|
||||
}
|
||||
radius: leftTaskbarBorder.innerRadius
|
||||
color: "transparent"
|
||||
|
||||
ColumnLayout {
|
||||
id: sidebarLayout
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
anchors.top: parent.top
|
||||
Loader {
|
||||
id: leftTaskbarLoader
|
||||
|
||||
anchors.fill: parent
|
||||
anchors.margins: Appearance.padding.large + Appearance.padding.normal
|
||||
anchors.leftMargin: Appearance.padding.large
|
||||
anchors.rightMargin: Appearance.padding.large + Appearance.padding.normal / 2
|
||||
|
||||
spacing: Appearance.spacing.small
|
||||
asynchronous: true
|
||||
sourceComponent: leftTaskbarContentComponent
|
||||
}
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
InnerBorder {
|
||||
id: leftTaskbarBorder
|
||||
leftThickness: 0
|
||||
rightThickness: Appearance.padding.normal / 2
|
||||
}
|
||||
|
||||
Component {
|
||||
id: leftTaskbarContentComponent
|
||||
|
||||
StyledFlickable {
|
||||
id: sidebarFlickable
|
||||
flickableDirection: Flickable.VerticalFlick
|
||||
contentHeight: sidebarLayout.height
|
||||
|
||||
StyledScrollBar.vertical: StyledScrollBar {
|
||||
flickable: sidebarFlickable
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
id: sidebarLayout
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
anchors.top: parent.top
|
||||
|
||||
spacing: Appearance.spacing.small
|
||||
|
||||
RowLayout {
|
||||
spacing: Appearance.spacing.smaller
|
||||
|
||||
StyledText {
|
||||
|
|
@ -169,9 +190,6 @@ RowLayout {
|
|||
id: clockSection
|
||||
title: qsTr("Clock")
|
||||
description: qsTr("Clock display settings")
|
||||
onToggleRequested: {
|
||||
root.collapseAllSections(clockSection);
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
id: clockRow
|
||||
|
|
@ -190,8 +208,9 @@ RowLayout {
|
|||
|
||||
StyledSwitch {
|
||||
id: clockShowIconSwitch
|
||||
checked: true
|
||||
checked: root.clockShowIcon
|
||||
onToggled: {
|
||||
root.clockShowIcon = checked;
|
||||
root.saveConfig();
|
||||
}
|
||||
}
|
||||
|
|
@ -201,9 +220,6 @@ RowLayout {
|
|||
CollapsibleSection {
|
||||
id: barBehaviorSection
|
||||
title: qsTr("Bar Behavior")
|
||||
onToggleRequested: {
|
||||
root.collapseAllSections(barBehaviorSection);
|
||||
}
|
||||
|
||||
SwitchRow {
|
||||
label: qsTr("Persistent")
|
||||
|
|
@ -238,9 +254,6 @@ RowLayout {
|
|||
CollapsibleSection {
|
||||
id: statusIconsSection
|
||||
title: qsTr("Status Icons")
|
||||
onToggleRequested: {
|
||||
root.collapseAllSections(statusIconsSection);
|
||||
}
|
||||
|
||||
SwitchRow {
|
||||
label: qsTr("Show audio")
|
||||
|
|
@ -309,9 +322,6 @@ RowLayout {
|
|||
CollapsibleSection {
|
||||
id: traySettingsSection
|
||||
title: qsTr("Tray Settings")
|
||||
onToggleRequested: {
|
||||
root.collapseAllSections(traySettingsSection);
|
||||
}
|
||||
|
||||
SwitchRow {
|
||||
label: qsTr("Background")
|
||||
|
|
@ -344,9 +354,6 @@ RowLayout {
|
|||
CollapsibleSection {
|
||||
id: workspacesSection
|
||||
title: qsTr("Workspaces")
|
||||
onToggleRequested: {
|
||||
root.collapseAllSections(workspacesSection);
|
||||
}
|
||||
|
||||
StyledRect {
|
||||
Layout.fillWidth: true
|
||||
|
|
@ -517,43 +524,62 @@ RowLayout {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
InnerBorder {
|
||||
leftThickness: 0
|
||||
rightThickness: Appearance.padding.normal / 2
|
||||
}
|
||||
}
|
||||
|
||||
Item {
|
||||
id: rightTaskbarItem
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
|
||||
StyledFlickable {
|
||||
ClippingRectangle {
|
||||
id: rightTaskbarClippingRect
|
||||
anchors.fill: parent
|
||||
anchors.margins: Appearance.padding.normal
|
||||
anchors.leftMargin: 0
|
||||
anchors.rightMargin: Appearance.padding.normal / 2
|
||||
|
||||
flickableDirection: Flickable.VerticalFlick
|
||||
contentHeight: contentLayout.height
|
||||
radius: rightTaskbarBorder.innerRadius
|
||||
color: "transparent"
|
||||
|
||||
StyledScrollBar.vertical: StyledScrollBar {
|
||||
flickable: parent
|
||||
Loader {
|
||||
id: rightTaskbarLoader
|
||||
|
||||
anchors.fill: parent
|
||||
anchors.margins: Appearance.padding.large * 2
|
||||
|
||||
asynchronous: true
|
||||
sourceComponent: rightTaskbarContentComponent
|
||||
}
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
id: contentLayout
|
||||
InnerBorder {
|
||||
id: rightTaskbarBorder
|
||||
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
anchors.top: parent.top
|
||||
anchors.leftMargin: Appearance.padding.large * 2
|
||||
anchors.rightMargin: Appearance.padding.large * 2
|
||||
anchors.topMargin: Appearance.padding.large * 2
|
||||
leftThickness: Appearance.padding.normal / 2
|
||||
}
|
||||
|
||||
spacing: Appearance.spacing.normal
|
||||
Component {
|
||||
id: rightTaskbarContentComponent
|
||||
|
||||
MaterialIcon {
|
||||
StyledFlickable {
|
||||
flickableDirection: Flickable.VerticalFlick
|
||||
contentHeight: contentLayout.height
|
||||
|
||||
StyledScrollBar.vertical: StyledScrollBar {
|
||||
flickable: parent
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
id: contentLayout
|
||||
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
anchors.top: parent.top
|
||||
|
||||
spacing: Appearance.spacing.normal
|
||||
|
||||
MaterialIcon {
|
||||
Layout.alignment: Qt.AlignHCenter
|
||||
text: "task_alt"
|
||||
font.pointSize: Appearance.font.size.extraLarge * 3
|
||||
|
|
@ -577,7 +603,7 @@ RowLayout {
|
|||
|
||||
StyledText {
|
||||
Layout.alignment: Qt.AlignHCenter
|
||||
text: clockShowIconSwitch.checked ? qsTr("Clock icon enabled") : qsTr("Clock icon disabled")
|
||||
text: root.clockShowIcon ? qsTr("Clock icon enabled") : qsTr("Clock icon disabled")
|
||||
color: Colours.palette.m3outline
|
||||
}
|
||||
|
||||
|
|
@ -597,9 +623,6 @@ RowLayout {
|
|||
|
||||
}
|
||||
}
|
||||
|
||||
InnerBorder {
|
||||
leftThickness: Appearance.padding.normal / 2
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue