mirror of
https://github.com/noctalia-dev/noctalia-shell.git
synced 2026-05-11 17:08:27 +08:00
82 lines
3.6 KiB
QML
82 lines
3.6 KiB
QML
import QtQuick
|
|
import QtQuick.Controls
|
|
import QtQuick.Layouts
|
|
import Quickshell
|
|
import qs.Commons
|
|
import qs.Services.UI
|
|
import qs.Widgets
|
|
|
|
ColumnLayout {
|
|
id: root
|
|
spacing: Style.marginL
|
|
Layout.fillWidth: true
|
|
|
|
property var availableWidgets
|
|
property var addWidgetToSection
|
|
property var removeWidgetFromSection
|
|
property var reorderWidgetInSection
|
|
property var updateWidgetSettingsInSection
|
|
property var moveWidgetBetweenSections
|
|
|
|
signal openPluginSettings(var manifest)
|
|
|
|
ColumnLayout {
|
|
Layout.fillWidth: true
|
|
Layout.fillHeight: true
|
|
Layout.topMargin: Style.marginM
|
|
spacing: Style.marginM
|
|
|
|
// Left Section
|
|
NSectionEditor {
|
|
sectionName: "Left"
|
|
sectionId: "left"
|
|
settingsDialogComponent: Qt.resolvedUrl(Quickshell.shellDir + "/Modules/Panels/Settings/Bar/BarWidgetSettingsDialog.qml")
|
|
widgetRegistry: BarWidgetRegistry
|
|
widgetModel: Settings.data.bar.widgets.left
|
|
availableWidgets: root.availableWidgets
|
|
onAddWidget: (widgetId, section) => root.addWidgetToSection(widgetId, section)
|
|
onRemoveWidget: (section, index) => root.removeWidgetFromSection(section, index)
|
|
onReorderWidget: (section, fromIndex, toIndex) => root.reorderWidgetInSection(section, fromIndex, toIndex)
|
|
onUpdateWidgetSettings: (section, index, settings) => root.updateWidgetSettingsInSection(section, index, settings)
|
|
onMoveWidget: (fromSection, index, toSection) => root.moveWidgetBetweenSections(fromSection, index, toSection)
|
|
onOpenPluginSettingsRequested: manifest => root.openPluginSettings(manifest)
|
|
}
|
|
|
|
// Center Section
|
|
NSectionEditor {
|
|
sectionName: "Center"
|
|
sectionId: "center"
|
|
settingsDialogComponent: Qt.resolvedUrl(Quickshell.shellDir + "/Modules/Panels/Settings/Bar/BarWidgetSettingsDialog.qml")
|
|
widgetRegistry: BarWidgetRegistry
|
|
widgetModel: Settings.data.bar.widgets.center
|
|
availableWidgets: root.availableWidgets
|
|
onAddWidget: (widgetId, section) => root.addWidgetToSection(widgetId, section)
|
|
onRemoveWidget: (section, index) => root.removeWidgetFromSection(section, index)
|
|
onReorderWidget: (section, fromIndex, toIndex) => root.reorderWidgetInSection(section, fromIndex, toIndex)
|
|
onUpdateWidgetSettings: (section, index, settings) => root.updateWidgetSettingsInSection(section, index, settings)
|
|
onMoveWidget: (fromSection, index, toSection) => root.moveWidgetBetweenSections(fromSection, index, toSection)
|
|
onOpenPluginSettingsRequested: manifest => root.openPluginSettings(manifest)
|
|
}
|
|
|
|
// Right Section
|
|
NSectionEditor {
|
|
sectionName: "Right"
|
|
sectionId: "right"
|
|
settingsDialogComponent: Qt.resolvedUrl(Quickshell.shellDir + "/Modules/Panels/Settings/Bar/BarWidgetSettingsDialog.qml")
|
|
widgetRegistry: BarWidgetRegistry
|
|
widgetModel: Settings.data.bar.widgets.right
|
|
availableWidgets: root.availableWidgets
|
|
onAddWidget: (widgetId, section) => root.addWidgetToSection(widgetId, section)
|
|
onRemoveWidget: (section, index) => root.removeWidgetFromSection(section, index)
|
|
onReorderWidget: (section, fromIndex, toIndex) => root.reorderWidgetInSection(section, fromIndex, toIndex)
|
|
onUpdateWidgetSettings: (section, index, settings) => root.updateWidgetSettingsInSection(section, index, settings)
|
|
onMoveWidget: (fromSection, index, toSection) => root.moveWidgetBetweenSections(fromSection, index, toSection)
|
|
onOpenPluginSettingsRequested: manifest => root.openPluginSettings(manifest)
|
|
}
|
|
|
|
NLabel {
|
|
description: I18n.tr("settings.bar.widgets.section.description")
|
|
}
|
|
}
|
|
}
|