diff --git a/applets/taskmanager/package/contents/code/layout.js b/applets/taskmanager/package/contents/code/layout.js --- a/applets/taskmanager/package/contents/code/layout.js +++ b/applets/taskmanager/package/contents/code/layout.js @@ -117,9 +117,13 @@ } else { return tasks.height + horizontalMargins(); } - } else { - return Math.floor(preferredMinWidth() * 1.6); } + + if (plasmoid.configuration.groupingStrategy != 0 && !plasmoid.configuration.groupPopups) { + return preferredMinWidth(); + } + + return Math.floor(preferredMinWidth() * 1.6); } function preferredMinHeight() { diff --git a/applets/taskmanager/package/contents/config/main.xml b/applets/taskmanager/package/contents/config/main.xml --- a/applets/taskmanager/package/contents/config/main.xml +++ b/applets/taskmanager/package/contents/config/main.xml @@ -21,6 +21,9 @@ 1 + + true + true diff --git a/applets/taskmanager/package/contents/ui/ConfigGeneral.qml b/applets/taskmanager/package/contents/ui/ConfigGeneral.qml --- a/applets/taskmanager/package/contents/ui/ConfigGeneral.qml +++ b/applets/taskmanager/package/contents/ui/ConfigGeneral.qml @@ -37,6 +37,7 @@ property alias cfg_maxStripes: maxStripes.value property alias cfg_groupingStrategy: groupingStrategy.currentIndex property alias cfg_middleClickAction: middleClickAction.currentIndex + property alias cfg_groupPopups: groupPopups.checked property alias cfg_onlyGroupWhenFull: onlyGroupWhenFull.checked property alias cfg_sortingStrategy: sortingStrategy.currentIndex property alias cfg_showOnlyCurrentScreen: showOnlyCurrentScreen.checked @@ -141,6 +142,7 @@ model: [i18n("Do Not Sort"), i18n("Manually"), i18n("Alphabetically"), i18n("By Desktop"), i18n("By Activity")] } + Label { Layout.fillWidth: true Layout.row: 1 @@ -156,14 +158,32 @@ Layout.fillWidth: true model: [i18n("Do Not Group"), i18n("By Program Name")] } + CheckBox { - id: onlyGroupWhenFull + id: groupPopups Layout.column: 1 Layout.row: 2 Layout.columnSpan: 2 - text: i18n("Only when the task manager is full") + text: i18n("Open groups in popups") enabled: groupingStrategy.currentIndex > 0 } + + Item { + width: childrenRect.width + height: childrenRect.height + + Layout.column: 1 + Layout.row: 3 + Layout.columnSpan: 2 + + CheckBox { + id: onlyGroupWhenFull + anchors.left: parent.left + anchors.leftMargin: units.gridUnit + text: i18n("Only group when the task manager is full") + enabled: groupingStrategy.currentIndex > 0 && groupPopups.checked + } + } } } diff --git a/applets/taskmanager/package/contents/ui/main.qml b/applets/taskmanager/package/contents/ui/main.qml --- a/applets/taskmanager/package/contents/ui/main.qml +++ b/applets/taskmanager/package/contents/ui/main.qml @@ -97,6 +97,7 @@ groupMode: iconsOnly ? TaskManager.TasksModel.GroupApplication : sortModeEnumValue(plasmoid.configuration.groupingStrategy) + groupInline: !plasmoid.configuration.groupPopups groupingWindowTasksThreshold: (plasmoid.configuration.onlyGroupWhenFull && !iconsOnly ? LayoutManager.optimumCapacity(width, height) + 1 : -1)