TaskbarGrouped: Fixes, cleanup and improvements.

This commit is contained in:
ItsLemmy
2025-11-20 21:37:02 -05:00
parent 60d37576e0
commit 63940703f8
3 changed files with 73 additions and 68 deletions
+47 -39
View File
@@ -34,11 +34,13 @@ Item {
}
return {};
}
readonly property string labelMode: (widgetSettings.labelMode !== undefined) ? widgetSettings.labelMode : widgetMetadata.labelMode
readonly property bool hideUnoccupied: (widgetSettings.hideUnoccupied !== undefined) ? widgetSettings.hideUnoccupied : widgetMetadata.hideUnoccupied
readonly property int characterCount: 2
readonly property bool showLabelsOnlyWhenOccupied: (widgetSettings.showLabelsOnlyWhenOccupied !== undefined) ? widgetSettings.showLabelsOnlyWhenOccupied : true
readonly property bool hideUnoccupied: (widgetSettings.hideUnoccupied !== undefined) ? widgetSettings.hideUnoccupied : widgetMetadata.hideUnoccupied
readonly property string labelMode: (widgetSettings.labelMode !== undefined) ? widgetSettings.labelMode : widgetMetadata.labelMode
readonly property bool showLabelsOnlyWhenOccupied: (widgetSettings.showLabelsOnlyWhenOccupied !== undefined) ? widgetSettings.showLabelsOnlyWhenOccupied : widgetMetadata.showLabelsOnlyWhenOccupied
readonly property bool colorizeIcons: (widgetSettings.colorizeIcons !== undefined) ? widgetSettings.colorizeIcons : widgetMetadata.colorizeIcons
property ListModel localWorkspaces: ListModel {}
property real masterProgress: 0.0
property bool effectsActive: false
@@ -270,9 +272,22 @@ Item {
hoverEnabled: true
enabled: !hasWindows
cursorShape: enabled ? Qt.PointingHandCursor : Qt.ArrowCursor
onClicked: {
CompositorService.switchToWorkspace(workspaceModel);
}
acceptedButtons: Qt.LeftButton | Qt.RightButton
onPressed: mouse => {
if (mouse.button === Qt.LeftButton) {
CompositorService.switchToWorkspace(workspaceModel);
} else if (mouse.button === Qt.RightButton) {
TooltipService.hide();
root.selectedWindow = "";
root.selectedAppName = "";
var popupMenuWindow = PanelService.getPopupMenuWindow(screen);
if (popupMenuWindow) {
const pos = BarService.getContextMenuPosition(container, contextMenu.implicitWidth, contextMenu.implicitHeight);
contextMenu.openAtItem(container, pos.x, pos.y);
popupMenuWindow.showContextMenu(contextMenu);
}
}
}
}
Flow {
@@ -345,25 +360,25 @@ Item {
cursorShape: Qt.PointingHandCursor
acceptedButtons: Qt.LeftButton | Qt.RightButton
onPressed: function (mouse) {
if (!model) {
return;
}
onPressed: mouse => {
if (!model) {
return;
}
if (mouse.button === Qt.LeftButton) {
CompositorService.focusWindow(model);
} else if (mouse.button === Qt.RightButton) {
TooltipService.hide();
root.selectedWindow = model;
root.selectedAppName = CompositorService.getCleanAppName(model.appId, model.title);
var popupMenuWindow = PanelService.getPopupMenuWindow(screen);
if (popupMenuWindow) {
const pos = BarService.getContextMenuPosition(taskbarItem, contextMenu.implicitWidth, contextMenu.implicitHeight);
contextMenu.openAtItem(taskbarItem, pos.x, pos.y);
popupMenuWindow.showContextMenu(contextMenu);
}
}
}
if (mouse.button === Qt.LeftButton) {
CompositorService.focusWindow(model);
} else if (mouse.button === Qt.RightButton) {
TooltipService.hide();
root.selectedWindow = model;
root.selectedAppName = CompositorService.getCleanAppName(model.appId, model.title);
var popupMenuWindow = PanelService.getPopupMenuWindow(screen);
if (popupMenuWindow) {
const pos = BarService.getContextMenuPosition(taskbarItem, contextMenu.implicitWidth, contextMenu.implicitHeight);
contextMenu.openAtItem(taskbarItem, pos.x, pos.y);
popupMenuWindow.showContextMenu(contextMenu);
}
}
}
onEntered: {
taskbarItem.itemHovered = true;
TooltipService.show(taskbarItem, model.title || model.appId || "Unknown app.", BarService.getTooltipDirection());
@@ -407,7 +422,11 @@ Item {
if (hasWindows)
return Color.mSecondary;
return Qt.alpha(Color.mOutline, 0.3);
if (Settings.data.colorSchemes.darkMode) {
return Qt.darker(Color.mSecondary, 1.5);
} else {
return Qt.lighter(Color.mSecondary, 1.5);
}
}
scale: workspaceModel.isActive ? 1.0 : 0.9
@@ -472,21 +491,10 @@ Item {
return Color.mOnPrimary;
if (workspaceModel.isUrgent)
return Color.mOnError;
if (hasWindows)
return Color.mOnSecondary;
// if (hasWindows)
// return Color.mOnSecondary;
return Color.mOnSurface;
}
opacity: {
if (workspaceModel.isFocused)
return 1.0;
if (workspaceModel.isUrgent)
return 0.9;
if (hasWindows)
return 0.8;
return 0.6;
return Color.mOnSecondary;
}
Behavior on opacity {
@@ -12,22 +12,28 @@ ColumnLayout {
property var widgetData: null
property var widgetMetadata: null
property string valueLabelMode: widgetData.labelMode !== undefined ? widgetData.labelMode : (widgetMetadata ? widgetMetadata.labelMode : "index")
property bool valueHideUnoccupied: widgetData.hideUnoccupied !== undefined ? widgetData.hideUnoccupied : (widgetMetadata ? widgetMetadata.hideUnoccupied : false)
property bool valueShowWorkspaceNumbers: widgetData.showWorkspaceNumbers !== undefined ? widgetData.showWorkspaceNumbers : (widgetMetadata ? widgetMetadata.showWorkspaceNumbers : true)
property bool valueShowNumbersOnlyWhenOccupied: widgetData.showNumbersOnlyWhenOccupied !== undefined ? widgetData.showNumbersOnlyWhenOccupied : (widgetMetadata ? widgetMetadata.showNumbersOnlyWhenOccupied : true)
property bool valueColorizeIcons: widgetData.colorizeIcons !== undefined ? widgetData.colorizeIcons : (widgetMetadata ? widgetMetadata.colorizeIcons : false)
property bool valueHideUnoccupied: widgetData.hideUnoccupied !== undefined ? widgetData.hideUnoccupied : widgetMetadata.hideUnoccupied
property string valueLabelMode: widgetData.labelMode !== undefined ? widgetData.labelMode : widgetMetadata.labelMode
property bool valueShowLabelsOnlyWhenOccupied: widgetData.showLabelsOnlyWhenOccupied !== undefined ? widgetData.showLabelsOnlyWhenOccupied : widgetMetadata.showLabelsOnlyWhenOccupied
property bool valueColorizeIcons: widgetData.colorizeIcons !== undefined ? widgetData.colorizeIcons : widgetMetadata.colorizeIcons
function saveSettings() {
var settings = Object.assign({}, widgetData || {});
settings.labelMode = valueLabelMode;
settings.hideUnoccupied = valueHideUnoccupied;
settings.showWorkspaceNumbers = valueShowWorkspaceNumbers;
settings.showNumbersOnlyWhenOccupied = valueShowNumbersOnlyWhenOccupied;
settings.labelMode = valueLabelMode;
settings.showLabelsOnlyWhenOccupied = valueShowLabelsOnlyWhenOccupied;
settings.colorizeIcons = valueColorizeIcons;
return settings;
}
NToggle {
label: I18n.tr("bar.widget-settings.workspace.hide-unoccupied.label")
description: I18n.tr("bar.widget-settings.workspace.hide-unoccupied.description")
checked: valueHideUnoccupied
onToggled: checked => valueHideUnoccupied = checked
}
NComboBox {
id: labelModeCombo
label: I18n.tr("bar.widget-settings.workspace.label-mode.label")
@@ -50,16 +56,18 @@ ColumnLayout {
"name": I18n.tr("options.workspace-labels.index+name")
}
]
currentKey: widgetData.labelMode || widgetMetadata.labelMode
currentKey: widgetData.labelMode
onSelected: key => valueLabelMode = key
minimumWidth: 200
}
NToggle {
label: I18n.tr("bar.widget-settings.workspace.hide-unoccupied.label")
description: I18n.tr("bar.widget-settings.workspace.hide-unoccupied.description")
checked: valueHideUnoccupied
onToggled: checked => valueHideUnoccupied = checked
Layout.fillWidth: true
label: I18n.tr("bar.widget-settings.taskbar-grouped.show-labels-only-when-occupied.label")
description: I18n.tr("bar.widget-settings.taskbar-grouped.show-labels-only-when-occupied.description")
checked: root.valueShowLabelsOnlyWhenOccupied
onToggled: checked => root.valueShowLabelsOnlyWhenOccupied = checked
visible: !root.valueHideUnoccupied
}
NToggle {
@@ -69,13 +77,4 @@ ColumnLayout {
checked: root.valueColorizeIcons
onToggled: checked => root.valueColorizeIcons = checked
}
NToggle {
Layout.fillWidth: true
label: I18n.tr("bar.widget-settings.taskbar-grouped.show-labels-only-when-occupied.label")
description: I18n.tr("bar.widget-settings.taskbar-grouped.show-labels-only-when-occupied.description")
checked: root.valueShowNumbersOnlyWhenOccupied
onToggled: checked => root.valueShowNumbersOnlyWhenOccupied = checked
visible: root.valueShowWorkspaceNumbers
}
}
+5 -7
View File
@@ -58,12 +58,12 @@ Singleton {
"SessionMenu": "WidgetSettings/SessionMenuSettings.qml",
"Spacer": "WidgetSettings/SpacerSettings.qml",
"SystemMonitor": "WidgetSettings/SystemMonitorSettings.qml",
"Taskbar": "WidgetSettings/TaskbarSettings.qml",
"TaskbarGrouped": "WidgetSettings/TaskbarGroupedSettings.qml",
"Tray": "WidgetSettings/TraySettings.qml",
"Volume": "WidgetSettings/VolumeSettings.qml",
"WiFi": "WidgetSettings/WiFiSettings.qml",
"Workspace": "WidgetSettings/WorkspaceSettings.qml",
"Taskbar": "WidgetSettings/TaskbarSettings.qml",
"Tray": "WidgetSettings/TraySettings.qml"
"Workspace": "WidgetSettings/WorkspaceSettings.qml"
})
property var widgetMetadata: ({
@@ -188,11 +188,9 @@ Singleton {
},
"TaskbarGrouped": {
"allowUserSettings": true,
"showWorkspaceNumbers": true,
"showNumbersOnlyWhenOccupied": true,
"labelMode": "index",
"hideUnoccupied": false,
"characterCount": 2,
"labelMode": "index",
"showLabelsOnlyWhenOccupied": true,
"colorizeIcons": false
},
"Tray": {