* 0001-Fix-editing-items-in-SimpleFavoritesModel.patch OBS-URL: https://build.opensuse.org/package/show/KDE:Frameworks5/plasma5-workspace?expand=0&rev=353
174 lines
6.6 KiB
Diff
174 lines
6.6 KiB
Diff
From f078b1272d84f6b9271377900875d39f7d9fda84 Mon Sep 17 00:00:00 2001
|
|
From: Fabian Vogt <fabian@ritter-vogt.de>
|
|
Date: Sat, 7 Oct 2017 14:30:52 +0200
|
|
Subject: [PATCH] Fix editing items in SimpleFavoritesModel
|
|
|
|
Summary:
|
|
tools.js is supposed to support both KaStatsFavoritesModel (used for
|
|
favorite applications) and SimpleFavoritesModel (used for system actions,
|
|
like poweroff/reboot/logout). The latter did not work though, as tools.js
|
|
unconditionally calls methods only present in KaStatsFavoritesModel.
|
|
This commit makes KaStatsFavoritesModel API compatible to SimpleFavoritesModel
|
|
and changes the relevant code in tools.js to support both.
|
|
|
|
Additionally, this syncs applets/kickoff/package/contents/code/tools.js again.
|
|
|
|
BUG: 385463
|
|
|
|
Test Plan:
|
|
Before this patch it wasn't possible to remove system actions from
|
|
the favorites bar.
|
|
|
|
Reviewers: #plasma
|
|
|
|
Subscribers: plasma-devel
|
|
|
|
Tags: #plasma
|
|
|
|
Differential Revision: https://phabricator.kde.org/D8178
|
|
---
|
|
applets/kicker/package/contents/code/tools.js | 12 ++++++------
|
|
applets/kicker/plugin/kastatsfavoritesmodel.cpp | 4 ++--
|
|
applets/kickoff/package/contents/code/tools.js | 24 +++++++++++++-----------
|
|
3 files changed, 21 insertions(+), 19 deletions(-)
|
|
|
|
diff --git a/applets/kicker/package/contents/code/tools.js b/applets/kicker/package/contents/code/tools.js
|
|
index c6fc3d9f..df3a3444 100644
|
|
--- a/applets/kicker/package/contents/code/tools.js
|
|
+++ b/applets/kicker/package/contents/code/tools.js
|
|
@@ -44,9 +44,9 @@ function createFavoriteActions(favoriteModel, favoriteId) {
|
|
return null;
|
|
}
|
|
|
|
- var activities = favoriteModel.activities.runningActivities;
|
|
|
|
- if (activities.length <= 1) {
|
|
+ if (favoriteModel.activities === undefined ||
|
|
+ favoriteModel.activities.runningActivities.length <= 1) {
|
|
var action = {};
|
|
|
|
if (favoriteModel.isFavorite(favoriteId)) {
|
|
@@ -70,6 +70,8 @@ function createFavoriteActions(favoriteModel, favoriteId) {
|
|
|
|
var linkedActivities = favoriteModel.linkedActivitiesFor(favoriteId);
|
|
|
|
+ var activities = favoriteModel.activities.runningActivities;
|
|
+
|
|
// Adding the item to link/unlink to all activities
|
|
|
|
var linkedToAllActivities =
|
|
@@ -180,12 +182,10 @@ function handleFavoriteAction(actionId, actionArgument) {
|
|
|
|
if (actionId == "_kicker_favorite_remove") {
|
|
console.log("Removing from all activities");
|
|
- favoriteModel.removeFavoriteFrom(favoriteId, ":any");
|
|
-
|
|
+ favoriteModel.removeFavorite(favoriteId);
|
|
} else if (actionId == "_kicker_favorite_add") {
|
|
console.log("Adding to global activity");
|
|
- favoriteModel.addFavoriteTo(favoriteId, ":global");
|
|
-
|
|
+ favoriteModel.addFavorite(favoriteId);
|
|
} else if (actionId == "_kicker_favorite_remove_from_activity") {
|
|
console.log("Removing from a specific activity");
|
|
favoriteModel.removeFavoriteFrom(favoriteId, actionArgument.favoriteActivity);
|
|
diff --git a/applets/kicker/plugin/kastatsfavoritesmodel.cpp b/applets/kicker/plugin/kastatsfavoritesmodel.cpp
|
|
index 787a6676..da89c0ac 100644
|
|
--- a/applets/kicker/plugin/kastatsfavoritesmodel.cpp
|
|
+++ b/applets/kicker/plugin/kastatsfavoritesmodel.cpp
|
|
@@ -570,13 +570,13 @@ void KAStatsFavoritesModel::portOldFavorites(const QStringList &ids)
|
|
void KAStatsFavoritesModel::addFavorite(const QString &id, int index)
|
|
{
|
|
DEBUG << "addFavorite" << id << index << " -->";
|
|
- addFavoriteTo(id, Activity::current(), index);
|
|
+ addFavoriteTo(id, QStringLiteral(":global"));
|
|
}
|
|
|
|
void KAStatsFavoritesModel::removeFavorite(const QString &id)
|
|
{
|
|
DEBUG << "removeFavorite" << id << " -->";
|
|
- removeFavoriteFrom(id, Activity::current());
|
|
+ removeFavoriteFrom(id, QStringLiteral(":any"));
|
|
}
|
|
|
|
void KAStatsFavoritesModel::addFavoriteTo(const QString &id, const QString &activityId, int index)
|
|
diff --git a/applets/kickoff/package/contents/code/tools.js b/applets/kickoff/package/contents/code/tools.js
|
|
index 545d7aff..df3a3444 100644
|
|
--- a/applets/kickoff/package/contents/code/tools.js
|
|
+++ b/applets/kickoff/package/contents/code/tools.js
|
|
@@ -29,6 +29,7 @@ function fillActionMenu(actionMenu, actionList, favoriteModel, favoriteId) {
|
|
if (actionList && actionList.length > 0) {
|
|
var separator = { "type": "separator" };
|
|
actionList.unshift(separator);
|
|
+ // actionList = actions.concat(actionList); // this crashes Qt O.o
|
|
actionList.unshift.apply(actionList, actions);
|
|
} else {
|
|
actionList = actions;
|
|
@@ -39,18 +40,13 @@ function fillActionMenu(actionMenu, actionList, favoriteModel, favoriteId) {
|
|
}
|
|
|
|
function createFavoriteActions(favoriteModel, favoriteId) {
|
|
- // Don't allow changes to favorites when system is immutable.
|
|
- if (plasmoid.immutability === PlasmaCore.Types.SystemImmutable) {
|
|
- return null;
|
|
- }
|
|
-
|
|
if (favoriteModel === null || !favoriteModel.enabled || favoriteId == null) {
|
|
return null;
|
|
}
|
|
|
|
- var activities = favoriteModel.activities.runningActivities;
|
|
|
|
- if (activities.length <= 1) {
|
|
+ if (favoriteModel.activities === undefined ||
|
|
+ favoriteModel.activities.runningActivities.length <= 1) {
|
|
var action = {};
|
|
|
|
if (favoriteModel.isFavorite(favoriteId)) {
|
|
@@ -74,6 +70,8 @@ function createFavoriteActions(favoriteModel, favoriteId) {
|
|
|
|
var linkedActivities = favoriteModel.linkedActivitiesFor(favoriteId);
|
|
|
|
+ var activities = favoriteModel.activities.runningActivities;
|
|
+
|
|
// Adding the item to link/unlink to all activities
|
|
|
|
var linkedToAllActivities =
|
|
@@ -165,25 +163,29 @@ function triggerAction(model, index, actionId, actionArgument) {
|
|
|
|
if (closeRequested) {
|
|
plasmoid.expanded = false;
|
|
+
|
|
+ return true;
|
|
}
|
|
+
|
|
+ return false;
|
|
}
|
|
|
|
function handleFavoriteAction(actionId, actionArgument) {
|
|
var favoriteId = actionArgument.favoriteId;
|
|
var favoriteModel = actionArgument.favoriteModel;
|
|
|
|
+ console.log(actionId);
|
|
+
|
|
if (favoriteModel === null || favoriteId == null) {
|
|
return null;
|
|
}
|
|
|
|
if (actionId == "_kicker_favorite_remove") {
|
|
console.log("Removing from all activities");
|
|
- favoriteModel.removeFavoriteFrom(favoriteId, ":any");
|
|
-
|
|
+ favoriteModel.removeFavorite(favoriteId);
|
|
} else if (actionId == "_kicker_favorite_add") {
|
|
console.log("Adding to global activity");
|
|
- favoriteModel.addFavoriteTo(favoriteId, ":global");
|
|
-
|
|
+ favoriteModel.addFavorite(favoriteId);
|
|
} else if (actionId == "_kicker_favorite_remove_from_activity") {
|
|
console.log("Removing from a specific activity");
|
|
favoriteModel.removeFavoriteFrom(favoriteId, actionArgument.favoriteActivity);
|
|
--
|
|
2.14.1
|
|
|