diff options
Diffstat (limited to 'modules/dashboard/Tabs.qml')
| -rw-r--r-- | modules/dashboard/Tabs.qml | 36 |
1 files changed, 14 insertions, 22 deletions
diff --git a/modules/dashboard/Tabs.qml b/modules/dashboard/Tabs.qml index 1d50d26..ed4613d 100644 --- a/modules/dashboard/Tabs.qml +++ b/modules/dashboard/Tabs.qml @@ -14,6 +14,8 @@ Item { required property real nonAnimWidth required property PersistentProperties state + required property var tabs + readonly property alias count: bar.count implicitHeight: bar.implicitHeight + indicator.implicitHeight + indicator.anchors.topMargin + separator.implicitHeight @@ -30,30 +32,18 @@ Item { onCurrentIndexChanged: root.state.currentTab = currentIndex - Tab { - iconName: "dashboard" - text: qsTr("Dashboard") - } - - Tab { - iconName: "queue_music" - text: qsTr("Media") - } + Repeater { + model: ScriptModel { + values: root.tabs + } - Tab { - iconName: "speed" - text: qsTr("Performance") - } + delegate: Tab { + required property var modelData - Tab { - iconName: "cloud" - text: qsTr("Weather") + iconName: modelData.iconName + text: modelData.text + } } - - // Tab { - // iconName: "workspaces" - // text: qsTr("Workspaces") - // } } Item { @@ -62,11 +52,13 @@ Item { anchors.top: bar.bottom anchors.topMargin: 5 - implicitWidth: bar.currentItem.implicitWidth + implicitWidth: bar.currentItem?.implicitWidth ?? 0 implicitHeight: 3 x: { const tab = bar.currentItem; + if (!tab) + return 0; const width = (root.nonAnimWidth - bar.spacing * (bar.count - 1)) / bar.count; return width * tab.TabBar.index + (width - tab.implicitWidth) / 2; } |