summaryrefslogtreecommitdiff
path: root/raveos-hyprland-theme/theme-data/dms/Modules/Settings/RunningAppsTab.qml
diff options
context:
space:
mode:
authorNippy <nippy@rp1.hu>2026-05-08 19:50:49 +0200
committerNippy <nippy@rp1.hu>2026-05-08 19:50:49 +0200
commit3462bcc46ecf74f576ea4397f16492c16bd75b10 (patch)
treec5ab7aef4498647e057bda8d49c11e5f9dda74c9 /raveos-hyprland-theme/theme-data/dms/Modules/Settings/RunningAppsTab.qml
parent56616f693b4f263cbf0d47da43b67424efa6022d (diff)
downloadRaveOS-PKGBUILD-3462bcc46ecf74f576ea4397f16492c16bd75b10.tar.gz
RaveOS-PKGBUILD-3462bcc46ecf74f576ea4397f16492c16bd75b10.zip
raveos update
Diffstat (limited to 'raveos-hyprland-theme/theme-data/dms/Modules/Settings/RunningAppsTab.qml')
-rw-r--r--raveos-hyprland-theme/theme-data/dms/Modules/Settings/RunningAppsTab.qml175
1 files changed, 175 insertions, 0 deletions
diff --git a/raveos-hyprland-theme/theme-data/dms/Modules/Settings/RunningAppsTab.qml b/raveos-hyprland-theme/theme-data/dms/Modules/Settings/RunningAppsTab.qml
new file mode 100644
index 0000000..022e131
--- /dev/null
+++ b/raveos-hyprland-theme/theme-data/dms/Modules/Settings/RunningAppsTab.qml
@@ -0,0 +1,175 @@
+import QtQuick
+import qs.Common
+import qs.Widgets
+import qs.Modules.Settings.Widgets
+
+Item {
+ id: root
+
+ DankFlickable {
+ anchors.fill: parent
+ clip: true
+ contentHeight: mainColumn.height + Theme.spacingXL
+ contentWidth: width
+
+ Column {
+ id: mainColumn
+ topPadding: 4
+ width: Math.min(550, parent.width - Theme.spacingL * 2)
+ anchors.horizontalCenter: parent.horizontalCenter
+ spacing: Theme.spacingXL
+
+ 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 {
+ buttonSize: 36
+ iconName: "restart_alt"
+ iconSize: 20
+ visible: JSON.stringify(SettingsData.appIdSubstitutions) !== JSON.stringify(SettingsData.getDefaultAppIdSubstitutions())
+ backgroundColor: Theme.surfaceContainer
+ iconColor: Theme.surfaceVariantText
+ onClicked: SettingsData.resetAppIdSubstitutions()
+ },
+ DankActionButton {
+ buttonSize: 36
+ iconName: "add"
+ iconSize: 20
+ backgroundColor: Theme.surfaceContainer
+ iconColor: Theme.primary
+ onClicked: SettingsData.addAppIdSubstitution("", "", "exact")
+ }
+ ]
+
+ Column {
+ width: parent.width
+ spacing: Theme.spacingS
+
+ StyledText {
+ text: I18n.tr("Map window class names to icon names for proper icon display")
+ font.pixelSize: Theme.fontSizeSmall
+ color: Theme.surfaceVariantText
+ wrapMode: Text.WordWrap
+ width: parent.width
+ bottomPadding: Theme.spacingS
+ }
+
+ Repeater {
+ model: SettingsData.appIdSubstitutions
+
+ delegate: Rectangle {
+ id: subItem
+ width: parent.width
+ height: subColumn.implicitHeight + Theme.spacingM
+ radius: Theme.cornerRadius
+ color: Theme.withAlpha(Theme.surfaceContainer, 0.5)
+
+ Column {
+ id: subColumn
+ anchors.fill: parent
+ anchors.margins: Theme.spacingS
+ spacing: Theme.spacingS
+
+ Row {
+ width: parent.width
+ spacing: Theme.spacingS
+
+ Column {
+ width: (parent.width - deleteBtn.width - Theme.spacingS) / 2
+ spacing: 2
+
+ StyledText {
+ text: I18n.tr("Pattern")
+ font.pixelSize: Theme.fontSizeSmall - 1
+ color: Theme.surfaceVariantText
+ }
+
+ DankTextField {
+ id: patternField
+ width: parent.width
+ text: modelData.pattern
+ font.pixelSize: Theme.fontSizeSmall
+ onEditingFinished: SettingsData.updateAppIdSubstitution(index, text, replacementField.text, modelData.type)
+ }
+ }
+
+ Column {
+ width: (parent.width - deleteBtn.width - Theme.spacingS) / 2
+ spacing: 2
+
+ StyledText {
+ text: I18n.tr("Replacement")
+ font.pixelSize: Theme.fontSizeSmall - 1
+ color: Theme.surfaceVariantText
+ }
+
+ DankTextField {
+ id: replacementField
+ width: parent.width
+ text: modelData.replacement
+ font.pixelSize: Theme.fontSizeSmall
+ onEditingFinished: SettingsData.updateAppIdSubstitution(index, patternField.text, text, modelData.type)
+ }
+ }
+
+ Item {
+ id: deleteBtn
+ width: 32
+ height: 40
+ anchors.verticalCenter: parent.verticalCenter
+
+ Rectangle {
+ anchors.fill: parent
+ radius: Theme.cornerRadius
+ color: deleteArea.containsMouse ? Theme.withAlpha(Theme.error, 0.2) : "transparent"
+ }
+
+ DankIcon {
+ anchors.centerIn: parent
+ name: "delete"
+ size: 18
+ color: deleteArea.containsMouse ? Theme.error : Theme.surfaceVariantText
+ }
+
+ MouseArea {
+ id: deleteArea
+ anchors.fill: parent
+ hoverEnabled: true
+ cursorShape: Qt.PointingHandCursor
+ onClicked: SettingsData.removeAppIdSubstitution(index)
+ }
+ }
+ }
+
+ Column {
+ width: 120
+ spacing: 2
+
+ StyledText {
+ text: I18n.tr("Type")
+ font.pixelSize: Theme.fontSizeSmall - 1
+ color: Theme.surfaceVariantText
+ }
+
+ DankDropdown {
+ width: parent.width
+ compactMode: true
+ dropdownWidth: 120
+ currentValue: modelData.type
+ options: ["exact", "contains", "regex"]
+ onValueChanged: value => SettingsData.updateAppIdSubstitution(index, modelData.pattern, modelData.replacement, value)
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}