mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2025-12-06 05:25:41 -05:00
Support expanded mode on running apps
This commit is contained in:
@@ -43,6 +43,7 @@ Singleton {
|
|||||||
property var workspaceNameIcons: ({})
|
property var workspaceNameIcons: ({})
|
||||||
property bool clockCompactMode: false
|
property bool clockCompactMode: false
|
||||||
property bool focusedWindowCompactMode: false
|
property bool focusedWindowCompactMode: false
|
||||||
|
property bool runningAppsCompactMode: true
|
||||||
property string clockDateFormat: "ddd d"
|
property string clockDateFormat: "ddd d"
|
||||||
property string lockDateFormat: "dddd, MMMM d"
|
property string lockDateFormat: "dddd, MMMM d"
|
||||||
property int mediaSize: 1
|
property int mediaSize: 1
|
||||||
@@ -139,6 +140,8 @@ Singleton {
|
|||||||
showWorkspacePadding = settings.showWorkspacePadding !== undefined ? settings.showWorkspacePadding : false;
|
showWorkspacePadding = settings.showWorkspacePadding !== undefined ? settings.showWorkspacePadding : false;
|
||||||
workspaceNameIcons = settings.workspaceNameIcons !== undefined ? settings.workspaceNameIcons : ({});
|
workspaceNameIcons = settings.workspaceNameIcons !== undefined ? settings.workspaceNameIcons : ({});
|
||||||
clockCompactMode = settings.clockCompactMode !== undefined ? settings.clockCompactMode : false;
|
clockCompactMode = settings.clockCompactMode !== undefined ? settings.clockCompactMode : false;
|
||||||
|
focusedWindowCompactMode = settings.focusedWindowCompactMode !== undefined ? settings.focusedWindowCompactMode : false;
|
||||||
|
runningAppsCompactMode = settings.runningAppsCompactMode !== undefined ? settings.runningAppsCompactMode : true;
|
||||||
clockDateFormat = settings.clockDateFormat !== undefined ? settings.clockDateFormat : "ddd d";
|
clockDateFormat = settings.clockDateFormat !== undefined ? settings.clockDateFormat : "ddd d";
|
||||||
lockDateFormat = settings.lockDateFormat !== undefined ? settings.lockDateFormat : "dddd, MMMM d";
|
lockDateFormat = settings.lockDateFormat !== undefined ? settings.lockDateFormat : "dddd, MMMM d";
|
||||||
mediaSize = settings.mediaSize !== undefined ? settings.mediaSize : (settings.mediaCompactMode !== undefined ? (settings.mediaCompactMode ? 0 : 1) : 1);
|
mediaSize = settings.mediaSize !== undefined ? settings.mediaSize : (settings.mediaCompactMode !== undefined ? (settings.mediaCompactMode ? 0 : 1) : 1);
|
||||||
@@ -236,6 +239,8 @@ Singleton {
|
|||||||
"showWorkspacePadding": showWorkspacePadding,
|
"showWorkspacePadding": showWorkspacePadding,
|
||||||
"workspaceNameIcons": workspaceNameIcons,
|
"workspaceNameIcons": workspaceNameIcons,
|
||||||
"clockCompactMode": clockCompactMode,
|
"clockCompactMode": clockCompactMode,
|
||||||
|
"focusedWindowCompactMode": focusedWindowCompactMode,
|
||||||
|
"runningAppsCompactMode": runningAppsCompactMode,
|
||||||
"clockDateFormat": clockDateFormat,
|
"clockDateFormat": clockDateFormat,
|
||||||
"lockDateFormat": lockDateFormat,
|
"lockDateFormat": lockDateFormat,
|
||||||
"mediaSize": mediaSize,
|
"mediaSize": mediaSize,
|
||||||
@@ -335,6 +340,11 @@ Singleton {
|
|||||||
saveSettings();
|
saveSettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function setRunningAppsCompactMode(enabled) {
|
||||||
|
runningAppsCompactMode = enabled;
|
||||||
|
saveSettings();
|
||||||
|
}
|
||||||
|
|
||||||
function setClockDateFormat(format) {
|
function setClockDateFormat(format) {
|
||||||
clockDateFormat = format;
|
clockDateFormat = format;
|
||||||
saveSettings();
|
saveSettings();
|
||||||
|
|||||||
@@ -595,6 +595,8 @@ Item {
|
|||||||
SettingsData.setMediaSize(value)
|
SettingsData.setMediaSize(value)
|
||||||
} else if (widgetId === "focusedWindow") {
|
} else if (widgetId === "focusedWindow") {
|
||||||
SettingsData.setFocusedWindowCompactMode(value)
|
SettingsData.setFocusedWindowCompactMode(value)
|
||||||
|
} else if (widgetId === "runningApps") {
|
||||||
|
SettingsData.setRunningAppsCompactMode(value)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
onGpuSelectionChanged: (sectionId, widgetIndex, selectedIndex) => {
|
onGpuSelectionChanged: (sectionId, widgetIndex, selectedIndex) => {
|
||||||
@@ -640,6 +642,8 @@ Item {
|
|||||||
SettingsData.setMediaSize(value)
|
SettingsData.setMediaSize(value)
|
||||||
} else if (widgetId === "focusedWindow") {
|
} else if (widgetId === "focusedWindow") {
|
||||||
SettingsData.setFocusedWindowCompactMode(value)
|
SettingsData.setFocusedWindowCompactMode(value)
|
||||||
|
} else if (widgetId === "runningApps") {
|
||||||
|
SettingsData.setRunningAppsCompactMode(value)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
onGpuSelectionChanged: (sectionId, widgetIndex, selectedIndex) => {
|
onGpuSelectionChanged: (sectionId, widgetIndex, selectedIndex) => {
|
||||||
@@ -685,6 +689,8 @@ Item {
|
|||||||
SettingsData.setMediaSize(value)
|
SettingsData.setMediaSize(value)
|
||||||
} else if (widgetId === "focusedWindow") {
|
} else if (widgetId === "focusedWindow") {
|
||||||
SettingsData.setFocusedWindowCompactMode(value)
|
SettingsData.setFocusedWindowCompactMode(value)
|
||||||
|
} else if (widgetId === "runningApps") {
|
||||||
|
SettingsData.setRunningAppsCompactMode(value)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
onGpuSelectionChanged: (sectionId, widgetIndex, selectedIndex) => {
|
onGpuSelectionChanged: (sectionId, widgetIndex, selectedIndex) => {
|
||||||
|
|||||||
@@ -238,7 +238,7 @@ Column {
|
|||||||
|
|
||||||
Row {
|
Row {
|
||||||
spacing: Theme.spacingXS
|
spacing: Theme.spacingXS
|
||||||
visible: modelData.id === "clock" || modelData.id === "music" || modelData.id === "focusedWindow"
|
visible: modelData.id === "clock" || modelData.id === "music" || modelData.id === "focusedWindow" || modelData.id === "runningApps"
|
||||||
|
|
||||||
DankActionButton {
|
DankActionButton {
|
||||||
id: smallSizeButton
|
id: smallSizeButton
|
||||||
@@ -279,16 +279,18 @@ Column {
|
|||||||
DankActionButton {
|
DankActionButton {
|
||||||
id: compactModeButton
|
id: compactModeButton
|
||||||
buttonSize: 28
|
buttonSize: 28
|
||||||
visible: modelData.id === "clock" || modelData.id === "focusedWindow"
|
visible: modelData.id === "clock" || modelData.id === "focusedWindow" || modelData.id === "runningApps"
|
||||||
iconName: {
|
iconName: {
|
||||||
if (modelData.id === "clock") return SettingsData.clockCompactMode ? "zoom_out" : "zoom_in"
|
if (modelData.id === "clock") return SettingsData.clockCompactMode ? "zoom_out" : "zoom_in"
|
||||||
if (modelData.id === "focusedWindow") return SettingsData.focusedWindowCompactMode ? "zoom_out" : "zoom_in"
|
if (modelData.id === "focusedWindow") return SettingsData.focusedWindowCompactMode ? "zoom_out" : "zoom_in"
|
||||||
|
if (modelData.id === "runningApps") return SettingsData.runningAppsCompactMode ? "zoom_out" : "zoom_in"
|
||||||
return "zoom_in"
|
return "zoom_in"
|
||||||
}
|
}
|
||||||
iconSize: 16
|
iconSize: 16
|
||||||
iconColor: {
|
iconColor: {
|
||||||
if (modelData.id === "clock") return SettingsData.clockCompactMode ? Theme.primary : Theme.outline
|
if (modelData.id === "clock") return SettingsData.clockCompactMode ? Theme.primary : Theme.outline
|
||||||
if (modelData.id === "focusedWindow") return SettingsData.focusedWindowCompactMode ? Theme.primary : Theme.outline
|
if (modelData.id === "focusedWindow") return SettingsData.focusedWindowCompactMode ? Theme.primary : Theme.outline
|
||||||
|
if (modelData.id === "runningApps") return SettingsData.runningAppsCompactMode ? Theme.primary : Theme.outline
|
||||||
return Theme.outline
|
return Theme.outline
|
||||||
}
|
}
|
||||||
onClicked: {
|
onClicked: {
|
||||||
@@ -296,6 +298,8 @@ Column {
|
|||||||
root.compactModeChanged("clock", !SettingsData.clockCompactMode)
|
root.compactModeChanged("clock", !SettingsData.clockCompactMode)
|
||||||
} else if (modelData.id === "focusedWindow") {
|
} else if (modelData.id === "focusedWindow") {
|
||||||
root.compactModeChanged("focusedWindow", !SettingsData.focusedWindowCompactMode)
|
root.compactModeChanged("focusedWindow", !SettingsData.focusedWindowCompactMode)
|
||||||
|
} else if (modelData.id === "runningApps") {
|
||||||
|
root.compactModeChanged("runningApps", !SettingsData.runningAppsCompactMode)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,7 +16,14 @@ Rectangle {
|
|||||||
// The visual root for this window
|
// The visual root for this window
|
||||||
property Item windowRoot: (Window.window ? Window.window.contentItem : null)
|
property Item windowRoot: (Window.window ? Window.window.contentItem : null)
|
||||||
readonly property int windowCount: NiriService.windows.length
|
readonly property int windowCount: NiriService.windows.length
|
||||||
readonly property int calculatedWidth: windowCount > 0 ? windowCount * 24 + (windowCount - 1) * Theme.spacingXS + Theme.spacingS * 2 : 0
|
readonly property int calculatedWidth: {
|
||||||
|
if (windowCount === 0) return 0;
|
||||||
|
if (SettingsData.runningAppsCompactMode) {
|
||||||
|
return windowCount * 24 + (windowCount - 1) * Theme.spacingXS + Theme.spacingS * 2;
|
||||||
|
} else {
|
||||||
|
return windowCount * (24 + Theme.spacingXS + 120) + (windowCount - 1) * Theme.spacingXS + Theme.spacingS * 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
width: calculatedWidth
|
width: calculatedWidth
|
||||||
height: 30
|
height: 30
|
||||||
@@ -58,7 +65,7 @@ Rectangle {
|
|||||||
return appName + (windowTitle ? " • " + windowTitle : "");
|
return appName + (windowTitle ? " • " + windowTitle : "");
|
||||||
}
|
}
|
||||||
|
|
||||||
width: 24
|
width: SettingsData.runningAppsCompactMode ? 24 : (24 + Theme.spacingXS + 120)
|
||||||
height: 24
|
height: 24
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
@@ -85,7 +92,9 @@ Rectangle {
|
|||||||
IconImage {
|
IconImage {
|
||||||
id: iconImg
|
id: iconImg
|
||||||
|
|
||||||
anchors.centerIn: parent
|
anchors.left: parent.left
|
||||||
|
anchors.leftMargin: SettingsData.runningAppsCompactMode ? (parent.width - 18) / 2 : Theme.spacingXS
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
width: 18
|
width: 18
|
||||||
height: 18
|
height: 18
|
||||||
source: {
|
source: {
|
||||||
@@ -107,7 +116,9 @@ Rectangle {
|
|||||||
|
|
||||||
// Fallback text if no icon found
|
// Fallback text if no icon found
|
||||||
Text {
|
Text {
|
||||||
anchors.centerIn: parent
|
anchors.left: parent.left
|
||||||
|
anchors.leftMargin: SettingsData.runningAppsCompactMode ? (parent.width - 18) / 2 : Theme.spacingXS
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
visible: !iconImg.visible
|
visible: !iconImg.visible
|
||||||
text: {
|
text: {
|
||||||
if (!appId)
|
if (!appId)
|
||||||
@@ -124,6 +135,22 @@ Rectangle {
|
|||||||
font.weight: Font.Medium
|
font.weight: Font.Medium
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Window title text (only visible in expanded mode)
|
||||||
|
StyledText {
|
||||||
|
anchors.left: iconImg.right
|
||||||
|
anchors.leftMargin: Theme.spacingXS
|
||||||
|
anchors.right: parent.right
|
||||||
|
anchors.rightMargin: Theme.spacingS
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
visible: !SettingsData.runningAppsCompactMode
|
||||||
|
text: windowTitle
|
||||||
|
font.pixelSize: Theme.fontSizeMedium - 1
|
||||||
|
color: Theme.surfaceText
|
||||||
|
font.weight: Font.Medium
|
||||||
|
elide: Text.ElideRight
|
||||||
|
maximumLineCount: 1
|
||||||
|
}
|
||||||
|
|
||||||
MouseArea {
|
MouseArea {
|
||||||
id: mouseArea
|
id: mouseArea
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user