[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [plasma-desktop] applets/taskmanager/package/contents/ui: Replaced the launcher pinning action with
From: Ivan Čukić <ivan.cukic () kde ! org>
Date: 2016-10-21 15:17:39
Message-ID: E1bxbZj-00089n-I8 () code ! kde ! org
[Download RAW message or body]
Git commit e69643e039f0e228da358b30b6d98bc94867be00 by Ivan Čukić.
Committed on 21/10/2016 at 15:17.
Pushed by ivan into branch 'master'.
Replaced the launcher pinning action with a per-activity meny
Reviewers: mart, hein, #plasma
Reviewed By: mart, hein, #plasma
Subscribers: broulik, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D3106
M +86 -1 applets/taskmanager/package/contents/ui/ContextMenu.qml
http://commits.kde.org/plasma-desktop/e69643e039f0e228da358b30b6d98bc94867be00
diff --git a/applets/taskmanager/package/contents/ui/ContextMenu.qml \
b/applets/taskmanager/package/contents/ui/ContextMenu.qml index 1cbf252..5377e9c \
100644
--- a/applets/taskmanager/package/contents/ui/ContextMenu.qml
+++ b/applets/taskmanager/package/contents/ui/ContextMenu.qml
@@ -45,6 +45,8 @@ PlasmaComponents.ContextMenu {
onStatusChanged: {
if (visualParent && visualParent.m.LauncherUrlWithoutIcon != null && status \
== PlasmaComponents.DialogStatus.Open) {
launcherToggleAction.checked = \
(tasksModel.launcherPosition(visualParent.m.LauncherUrlWithoutIcon) != -1); + \
activitiesDesktopsMenu.refresh(); +
} else if (status == PlasmaComponents.DialogStatus.Closed) {
menu.destroy();
}
@@ -394,7 +396,11 @@ PlasmaComponents.ContextMenu {
PlasmaComponents.MenuItem {
id: launcherToggleAction
- visible: (visualParent && visualParent.m.IsLauncher !== true && \
visualParent.m.IsStartup !== true) && plasmoid.immutability !== \
PlasmaCore.Types.SystemImmutable + visible: visualParent
+ && visualParent.m.IsLauncher !== true
+ && visualParent.m.IsStartup !== true
+ && plasmoid.immutability !== PlasmaCore.Types.SystemImmutable
+ && (activityInfo.numberOfRunningActivities < 2)
enabled: visualParent && visualParent.m.LauncherUrlWithoutIcon != ""
@@ -412,6 +418,85 @@ PlasmaComponents.ContextMenu {
}
PlasmaComponents.MenuItem {
+ id: showLauncherInActivitiesItem
+
+ text: i18n("&Show A Launcher When Not Running")
+
+ visible: visualParent
+ && visualParent.m.IsLauncher !== true
+ && visualParent.m.IsStartup !== true
+ && plasmoid.immutability !== PlasmaCore.Types.SystemImmutable
+ && (activityInfo.numberOfRunningActivities >= 2)
+
+ Connections {
+ target: activityInfo
+ onNumberOfRunningActivitiesChanged: activitiesDesktopsMenu.refresh()
+ }
+
+ PlasmaComponents.ContextMenu {
+ id: activitiesLaunchersMenu
+ visualParent: showLauncherInActivitiesItem.action
+
+ function refresh() {
+ clearMenuItems();
+
+ if (menu.visualParent === null) return;
+
+ var createNewItem = function(id, title, url, activities) {
+ var result = menu.newMenuItem(activitiesLaunchersMenu);
+ result.text = title;
+
+ result.visible = true;
+ result.checkable = true;
+
+ result.checked = activities.some(function(activity) { return \
activity === id }); +
+ result.clicked.connect(
+ function() {
+ if (result.checked) {
+ tasksModel.requestAddLauncherToActivity(url, id);
+ } else {
+ tasksModel.requestRemoveLauncherFromActivity(url, \
id); + }
+ }
+ );
+
+ return result;
+ }
+
+ if (menu.visualParent === null) return;
+
+ var url = menu.visualParent.m.LauncherUrlWithoutIcon;
+
+ var activities = tasksModel.launcherActivities(url);
+
+ var NULL_UUID = "00000000-0000-0000-0000-000000000000";
+
+ createNewItem(NULL_UUID, i18n("On All Activities"), url, \
activities); +
+ if (activityInfo.numberOfRunningActivities <= 1) {
+ return;
+ }
+
+ createNewItem(activityInfo.currentActivity, i18n("On The Current \
Activity"), url, activities); +
+ menu.newSeparator(activitiesLaunchersMenu);
+
+ var runningActivities = activityInfo.runningActivities();
+
+ runningActivities.forEach(function(id) {
+ createNewItem(id, activityInfo.activityName(id), url, \
activities); + });
+ }
+
+ Component.onCompleted: {
+ menu.onVisualParentChanged.connect(refresh);
+ refresh();
+ }
+ }
+ }
+
+ PlasmaComponents.MenuItem {
visible: (visualParent && visualParent.m.IsLauncher === true) && \
plasmoid.immutability !== PlasmaCore.Types.SystemImmutable
text: i18n("Remove Launcher")
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic