Files
DankMaterialShell/quickshell/Modules/Settings/RunningAppsTab.qml
T
bbedward 1142390724 settings: add + item name on every creation fab
settings: stop repeating the page title as the first card label
translations: index untitled cards by their page, not a nested row

fixes #3604
fixes #3609
2026-09-28 14:38:43 -04:00

83 lines
3.4 KiB
QML

import QtQuick
import qs.Common
import qs.Widgets
import qs.Modules.Settings.Widgets
Item {
id: root
SettingsPage {
id: mainColumn
SettingsCard {
width: parent.width
iconName: "find_replace"
title: I18n.tr("App ID substitutions")
settingKey: "appIdSubstitutions"
tags: ["app", "icon", "substitution", "replacement", "pattern", "window", "class", "regex"]
headerActions: DankActionButton {
iconName: "restart_alt"
tooltipText: I18n.tr("Reset to default")
visible: JSON.stringify(SettingsData.appIdSubstitutions) !== JSON.stringify(SettingsData.getDefaultAppIdSubstitutions())
iconColor: Theme.surfaceVariantText
onClicked: SettingsData.resetAppIdSubstitutions()
}
SettingsRow {
subtitle: I18n.tr("Map window class names to icon names for proper icon display")
}
Repeater {
model: SettingsData.appIdSubstitutions
delegate: SettingsGroup {
id: substitutionGroup
required property var modelData
required property int index
readonly property bool isSettingsRow: true
readonly property bool transparentSlot: true
SettingsTextFieldRow {
id: patternField
leftIconName: "filter_list"
text: I18n.tr("Pattern", "noun, text field label for a match or filter pattern")
value: substitutionGroup.modelData.pattern
onEditingFinished: value => SettingsData.updateAppIdSubstitution(substitutionGroup.index, value, replacementField.value, substitutionGroup.modelData.type)
actions: DankActionButton {
iconName: "delete"
iconColor: Theme.error
Accessible.name: I18n.tr("Remove")
onClicked: SettingsData.removeAppIdSubstitution(substitutionGroup.index)
}
}
SettingsTextFieldRow {
id: replacementField
leftIconName: "swap_horiz"
text: I18n.tr("Replacement", "text field label, replacement for the matched app name pattern")
value: substitutionGroup.modelData.replacement
onEditingFinished: value => SettingsData.updateAppIdSubstitution(substitutionGroup.index, patternField.value, value, substitutionGroup.modelData.type)
}
SettingsDropdownRow {
text: I18n.tr("Type")
currentValue: substitutionGroup.modelData.type
options: ["exact", "contains", "regex"]
onValueChanged: value => SettingsData.updateAppIdSubstitution(substitutionGroup.index, substitutionGroup.modelData.pattern, substitutionGroup.modelData.replacement, value)
}
}
}
}
SettingsFabBar {
DankFab {
text: I18n.tr("Add substitution")
iconName: "add"
onClicked: SettingsData.addAppIdSubstitution("", "", "exact")
}
}
}
}