From 937675ebb383bab8d11c9deb75dc1103d3417e01 Mon Sep 17 00:00:00 2001 From: LemmyCook Date: Mon, 15 Sep 2025 22:56:05 -0400 Subject: [PATCH] TaskBar: implemented vertical mode --- Modules/Bar/Widgets/Taskbar.qml | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/Modules/Bar/Widgets/Taskbar.qml b/Modules/Bar/Widgets/Taskbar.qml index e6b5435..906459f 100644 --- a/Modules/Bar/Widgets/Taskbar.qml +++ b/Modules/Bar/Widgets/Taskbar.qml @@ -1,5 +1,3 @@ -pragma ComponentBehavior - import QtQuick import QtQuick.Controls import QtQuick.Layouts @@ -16,17 +14,30 @@ Rectangle { property real scaling: 1.0 readonly property real itemSize: Style.capsuleHeight * 0.8 * scaling + readonly property bool isVerticalBar: Settings.data.bar.position === "left" || Settings.data.bar.position === "right" // Always visible when there are toplevels - implicitWidth: taskbarLayout.implicitWidth + Style.marginM * scaling * 2 - implicitHeight: Math.round(Style.capsuleHeight * scaling) + implicitWidth: isVerticalBar ? Math.round(Style.capsuleHeight * scaling) : taskbarLayout.implicitWidth + Style.marginM * scaling * 2 + implicitHeight: isVerticalBar ? taskbarLayout.implicitHeight + Style.marginM * scaling * 2 : Math.round(Style.capsuleHeight * scaling) radius: Math.round(Style.radiusM * scaling) color: Color.mSurfaceVariant - RowLayout { + GridLayout { id: taskbarLayout - anchors.centerIn: parent - spacing: Style.marginXXS * root.scaling + anchors.fill: parent + anchors { + leftMargin: isVerticalBar ? undefined : Style.marginM * scaling + rightMargin: isVerticalBar ? undefined : Style.marginM * scaling + topMargin: isVerticalBar ? Style.marginM * scaling : undefined + bottomMargin: isVerticalBar ? Style.marginM * scaling : undefined + } + + // Configure GridLayout to behave like RowLayout or ColumnLayout + rows: isVerticalBar ? -1 : 1 // -1 means unlimited + columns: isVerticalBar ? 1 : -1 // -1 means unlimited + + rowSpacing: isVerticalBar ? Style.marginXXS * root.scaling : 0 + columnSpacing: isVerticalBar ? 0 : Style.marginXXS * root.scaling Repeater { model: ToplevelManager && ToplevelManager.toplevels ? ToplevelManager.toplevels : []