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 @@ -42,6 +42,14 @@ + + + + + + + + 2 diff --git a/applets/taskmanager/package/contents/ui/ContextMenu.qml b/applets/taskmanager/package/contents/ui/ContextMenu.qml --- a/applets/taskmanager/package/contents/ui/ContextMenu.qml +++ b/applets/taskmanager/package/contents/ui/ContextMenu.qml @@ -632,6 +632,20 @@ separator: true } + PlasmaComponents.MenuItem { + visible: (plasmoid.pluginName != "org.kde.plasma.icontasks") && menu.get(atm.IsWindow) === true + + checkable: true + checked: menu.visualParent && menu.get(atm.IsPinned) === true + + text: i18n("Show the application icon only") + + onClicked: { + tasksModel.requestTogglePin(menu.modelIndex) + taskList.layout() + } + } + PlasmaComponents.MenuItem { visible: (plasmoid.configuration.groupingStrategy != 0) && menu.get(atm.IsWindow) === true diff --git a/applets/taskmanager/package/contents/ui/Task.qml b/applets/taskmanager/package/contents/ui/Task.qml --- a/applets/taskmanager/package/contents/ui/Task.qml +++ b/applets/taskmanager/package/contents/ui/Task.qml @@ -503,7 +503,7 @@ PlasmaComponents.Label { id: label - visible: (inPopup || !iconsOnly && model.IsLauncher !== true + visible: (inPopup || !iconsOnly && !model.IsPinned && model.IsLauncher !== true && (parent.width - iconBox.height - units.smallSpacing) >= (theme.mSize(theme.defaultFont).width * LayoutManager.minimumMColumns())) anchors { diff --git a/applets/taskmanager/package/contents/ui/code/layout.js b/applets/taskmanager/package/contents/ui/code/layout.js --- a/applets/taskmanager/package/contents/ui/code/layout.js +++ b/applets/taskmanager/package/contents/ui/code/layout.js @@ -220,7 +220,7 @@ adjustedWidth = width; if (!tasks.vertical && !tasks.iconsOnly && (plasmoid.configuration.separateLaunchers || stripes == 1)) { - if (item.m.IsLauncher === true + if (item.m.IsLauncher === true || item.m.IsPinned === true || (!plasmoid.configuration.separateLaunchers && item.m.IsStartup === true && item.m.HasLauncher === true)) { adjustedWidth = launcherWidth(); } else if (stripes > 1 && i == tasksModel.logicalLauncherCount) { 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 @@ -146,6 +146,14 @@ plasmoid.configuration.groupingLauncherUrlBlacklist = groupingLauncherUrlBlacklist; } + onPinAppIdListChanged: { + plasmoid.configuration.pinAppIdList = pinAppIdList; + } + + onPinLauncherUrlListChanged: { + plasmoid.configuration.pinLauncherUrlList = pinLauncherUrlList; + } + function sortModeEnumValue(index) { switch (index) { case 0: @@ -176,6 +184,8 @@ launcherList = plasmoid.configuration.launchers; groupingAppIdBlacklist = plasmoid.configuration.groupingAppIdBlacklist; groupingLauncherUrlBlacklist = plasmoid.configuration.groupingLauncherUrlBlacklist; + pinAppIdList = plasmoid.configuration.pinAppIdList; + pinLauncherUrlList = plasmoid.configuration.pinLauncherUrlList; // Only hook up view only after the above churn is done. taskRepeater.model = tasksModel; @@ -333,6 +343,8 @@ onLaunchersChanged: tasksModel.launcherList = plasmoid.configuration.launchers onGroupingAppIdBlacklistChanged: tasksModel.groupingAppIdBlacklist = plasmoid.configuration.groupingAppIdBlacklist; onGroupingLauncherUrlBlacklistChanged: tasksModel.groupingLauncherUrlBlacklist = plasmoid.configuration.groupingLauncherUrlBlacklist; + onPinAppIdListChanged: tasksModel.pinAppIdList = plasmoid.configuration.pinAppIdList; + onPinLauncherUrlListChanged: tasksModel.pinLauncherUrlList = plasmoid.configuration.pinLauncherUrlList; } TaskManagerApplet.DragHelper {