settings: fix some inconsistencies

dash: no header for disabled tabs
This commit is contained in:
bbedward
2026-09-24 10:00:25 -04:00
parent 1c61c26d46
commit 4949c2fbbe
9 changed files with 737 additions and 720 deletions
Generated
+3 -3
View File
@@ -3,11 +3,11 @@
"dank-qml-common": {
"flake": false,
"locked": {
"lastModified": 1790214571,
"narHash": "sha256-rlwViEfbY6cxb5u/cvvr2UIcusqHoVgXabYLhs/HYJ4=",
"lastModified": 1790258284,
"narHash": "sha256-tk2rCsMS6jstnDXn9vt/+F3LoKrNpPWxyfBPtQ63Z28=",
"owner": "AvengeMedia",
"repo": "dank-qml-common",
"rev": "191aa8878faacc1d10948f87ba42cd40535e91ce",
"rev": "4b9a18dc9cce81731d266ba1e89c75786776ba75",
"type": "github"
},
"original": {
+8 -19
View File
@@ -54,7 +54,8 @@ DankPopout {
readonly property var orderedTabIds: DashRegistry.visibleTabIds
readonly property int currentTabIndex: orderedTabIds.indexOf(currentTabId)
readonly property bool showTabs: orderedTabIds.length > 1 && currentTabIndex >= 0 && detailTabId === ""
readonly property bool showBack: detailTabId !== "" && currentTabIndex >= 0
readonly property bool canReturn: detailTabId !== "" && currentTabIndex >= 0
readonly property bool showHeader: detailTabId === "" || editMode
readonly property int navigationEdge: {
switch (SettingsData.dashTabPosition) {
case "left":
@@ -109,7 +110,7 @@ DankPopout {
}
function closeDetail() {
if (!showBack) {
if (!canReturn) {
dashVisible = false;
return;
}
@@ -254,7 +255,7 @@ DankPopout {
implicitWidth: root.popupWidth
implicitHeight: horizontalChromeHeight + pages.implicitHeight + DashMetrics.contentPadding * 2
readonly property real horizontalChromeHeight: root.verticalNavigation ? 0 : (root.showTabs ? tabBar.implicitHeight : Theme.minimumTouchTargetSize) + DashMetrics.contentGap
readonly property real horizontalChromeHeight: root.verticalNavigation || !root.showHeader ? 0 : (root.showTabs ? tabBar.implicitHeight : Theme.minimumTouchTargetSize) + DashMetrics.contentGap
readonly property bool ready: pages.ready
readonly property bool navigationFocused: tabBar.activeFocus
focus: true
@@ -303,7 +304,7 @@ DankPopout {
}
function headerFocusTargets() {
const targets = root.editMode ? pageActions.focusTargets : [backButton, tabBar, pageTitle.focusTarget];
const targets = root.editMode ? pageActions.focusTargets : [tabBar, pageTitle.focusTarget];
return targets.filter(item => item.visible && item.enabled);
}
@@ -318,7 +319,7 @@ DankPopout {
emptySettings.forceActiveFocus(Qt.OtherFocusReason);
return;
}
for (const target of [backButton, tabBar, pageTitle.focusTarget])
for (const target of [tabBar, pageTitle.focusTarget])
target.focus = false;
pageActions.clearFocus();
if (pages.currentHost)
@@ -608,6 +609,7 @@ DankPopout {
Item {
id: headerRow
visible: root.showHeader
enabled: !tabOptions.shown && !pageActions.menuOpen
x: root.verticalNavigation && root.navigationEdge === SettingsData.Right ? parent.width - width : 0
@@ -636,23 +638,10 @@ DankPopout {
}
}
DankActionButton {
id: backButton
x: I18n.isRtl ? parent.width - width : 0
anchors.verticalCenter: parent.verticalCenter
buttonSize: Theme.buttonHeightS
iconName: I18n.isRtl ? "arrow_forward" : "arrow_back"
tooltipText: I18n.tr("Back")
visible: root.showBack && !root.editMode
onClicked: root.closeDetail()
}
DashPageTitle {
id: pageTitle
readonly property real backWidth: root.showBack ? backButton.width + Theme.spacingS : 0
x: I18n.isRtl ? 0 : backWidth
anchors.verticalCenter: parent.verticalCenter
width: Math.max(0, parent.width - backWidth)
width: parent.width
height: implicitHeight
entryId: root.activeTabId
visible: !root.showTabs && !root.editMode
+4 -1
View File
@@ -107,7 +107,10 @@ FocusScope {
SettingsReorderList {
id: tabList
model: root.tabs
model: ScriptModel {
values: root.tabs
objectProp: "id"
}
onReordered: indices => SettingsData.setDashTabOrder(indices.map(i => root.tabs[i].id))
delegate: SettingsReorderRow {
@@ -323,12 +323,11 @@ Item {
SettingsToggleRow {
settingKey: "displaySnapToEdge"
visible: monitorCanvas.filteredOutputs.length > 1
text: I18n.tr("Snap", "verb, toggle to snap monitors to edges when arranging")
description: I18n.tr("Dragged displays line up with neighboring edges without overlapping", "display arrangement snap toggle description")
checked: SettingsData.displaySnapToEdge
onToggled: checked => {
SettingsData.displaySnapToEdge = checked;
SettingsData.saveSettings();
}
onToggled: checked => SettingsData.set("displaySnapToEdge", checked)
}
SettingsButtonGroupRow {
@@ -103,6 +103,7 @@ Item {
resetKeys: ["smartAutoHide"]
tags: ["dock", "smart", "autohide", "windows", "overlap", "intelligent", "floating"]
text: I18n.tr("Smart auto-hide")
description: I18n.tr("Hides only while a window overlaps the dock", "dock smart auto-hide toggle description")
visible: CompositorService.supportsSmartDock
checked: dock.config?.smartAutoHide ?? false
onToggled: checked => {
@@ -483,7 +483,6 @@ Item {
settingKey: "pluginVisibility"
property var allLauncherPlugins: {
SettingsData.launcherPluginVisibility;
SettingsData.launcherPluginOrder;
SettingsData.dankLauncherV2IncludeFilesInAll;
SettingsData.dankLauncherV2IncludeFoldersInAll;
File diff suppressed because it is too large Load Diff
@@ -3986,15 +3986,20 @@
"floating",
"general",
"hide",
"hides",
"intelligent",
"launcher bar",
"overlap",
"overlaps",
"panel",
"smart",
"taskbar",
"while",
"window",
"windows"
],
"parentLabel": "Dock",
"description": "Hides only while a window overlaps the dock",
"conditionKey": "smartDockCapable"
},
{
@@ -4009,16 +4014,21 @@
"general",
"hidden",
"hide",
"hides",
"hover",
"launcher bar",
"overlaps",
"panel",
"show",
"taskbar",
"visibility",
"visible"
"visible",
"while",
"window"
],
"parentLabel": "Dock",
"icon": "visibility_off"
"icon": "visibility_off",
"description": "Hides only while a window overlaps the dock"
},
{
"section": "barNoBackground",
@@ -6087,8 +6097,7 @@
"wallpaper",
"wallpaper colors"
],
"parentLabel": "Wallpaper & colors",
"icon": "download"
"parentLabel": "Wallpaper & colors"
},
{
"section": "matugenSourceMode",
@@ -10077,17 +10086,24 @@
"configuration",
"configure",
"displays",
"dragged",
"edges",
"line",
"monitor",
"monitors",
"neighboring",
"output",
"outputs",
"overlapping",
"resolution",
"screen",
"screens",
"setup"
"setup",
"without"
],
"parentLabel": "Displays",
"icon": "monitor"
"icon": "monitor",
"description": "Dragged displays line up with neighboring edges without overlapping"
},
{
"section": "_tab_24",