Package: release.debian.org
Severity: normal
User: [email protected]
Usertags: unblock

Dear release team,

KDE Plasma 5.8 is an LTS release that I consider fit to be updated in stretch. 
This particular request is for plasma-desktop 5.8.6.

The fixes included in the plasma-desktop 5.8.6 release are:
 translation updates
 18 fixes
 + [Containment Appearance] Make sure to always load a config view (76ac242)
   KDE#360862
 + [Task Manager] Parent QAction to "parent" instead of "this" (58e932c)
   This ensures the QAction is disposed of once the menu gets destroyed rather
   than accumulating forever
 + [Panel Containment] Explicitly bind visible on both the container and the
   applet (d674ede)
 + [Folder View] Set current index to start of selection range when performing
   rectangle selection (2b9e0e7) KDE#374030
 + [Folder View] Fix Enter/Return not running non-dir items in list view mode
   (c94dc90)
 + Clean up after a window delegate drag exits the window (180e107)
   KDE#373920
 + [Folder View] Fix right click erroneously opening files (d2fde36)
   KDE#360219
 + [kcm/lookandfeel] fix binding loop (05920ab) KDE#374786
 + [Containment] Fix crash during crash acrobatics. (fc8ce43) KDE#365206
 + [kcm] Fix reset logic (be4cff0e)
 + Fix Plasmoid.busy visualization in desktop containment (37a5d9f)
 + Fix clearing selection when rectangle selection contains no items
   (3568d8e db0723a 84fadc3)
 + [Folder View] show script execution prompt when clicking item
   (771e57f b088e45) KDE#375793
   Don't show it in the Desktop
 + Revamp (Activity) Pager wheel handling (fff65ad) KDE#375769
 + [Solid Device Actions KCM] Encode action file name (acae381) KDE#344534
 + Fix crash when invoking Present Windows with the group dialog open (6148911)
   KDE#376205 KDE#376234
 + remove get new looks button from 5.8 (4e0bb53)
 + Use icon center for vertical hitscan on drop (c9a7741)

And from 5.8.5 release we have 13 more fixes:
 + Fix config dialogs in ltr mode (e18109e) KDE#372721
 + Publish delegate geometry when ChildCount increases (04a7589) KDE#372699
   (A change in plasma-workspace is also needed to actually use this fix)
 + Check whether the KServe is still valid before running (4f3510b) KDE#372810
 + Fix "Move to Current Desktop" action moving to all desktops instead
   (039ab6a) KDE#372873
 + Fix flickering when loading kcms (ee2ec66 d9d52a3)
 + [Folder View] Clear hover state when mouse leaves view (7585f29 e80a4b8)
   KDE#373255 KDE#374291
 + [Kicker] Hide "Edit Applications..." context menu entry if system immutable
   (00d160a)
 + Fix 2 RTL bugs (4fada5b) KDE#364778 KDE#372717
 + [taskmanager] Limit GroupDialog size, stop highlightwindow effect when it
   shown, increase items readability (aeec4ae)
 + ensure results are sorted by relevance (7c00be1)
 + [pager] Larger icons and stack windows above label item (9d45aa5)
   KDE#373778
 + [Kicker] Support drag from bookmarks runner (47ce959)
 + [Folder View] Workaround QML Text layouting glitch (980f3aa)

No relevant changes on the Debian side.

The full debdiff is 4.6M, that's mostly changes in the po files, I publishing 
it in:
 https://freak.gnuservers.com.ar/~maxy/debian/plasma-desktop_5.8.6_unblock/
together with the upstream gitlog between the 5.8.4 and the 5.8.6 versions 
(131K). I'm attaching a debdiff without the po changes (89K).

I haven't uploaded plasma-desktop 4:5.8.6-1, but I would like to upload it if 
this gets approved.

Please unblock package plasma-desktop

Happy hacking,

unblock plasma-desktop/4:5.8.6-1

-- System Information:
Debian Release: 9.0
  APT prefers unstable-debug
  APT policy: (500, 'unstable-debug'), (500, 'testing-debug'), (500, 
'testing'), (500, 'stable'), (50, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386, armhf

Kernel: Linux 4.9.0-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Init: systemd (via /run/systemd/system)
diff -Nru --exclude po 
plasma-desktop-5.8.4/applets/kicker/package/contents/ui/ConfigGeneral.qml 
plasma-desktop-5.8.6/applets/kicker/package/contents/ui/ConfigGeneral.qml
--- plasma-desktop-5.8.4/applets/kicker/package/contents/ui/ConfigGeneral.qml   
2016-11-22 11:22:10.000000000 +0100
+++ plasma-desktop-5.8.6/applets/kicker/package/contents/ui/ConfigGeneral.qml   
2017-02-21 13:09:30.000000000 +0100
@@ -46,6 +46,7 @@
     property alias cfg_alignResultsToBottom: alignResultsToBottom.checked
 
     ColumnLayout {
+        anchors.left: parent.left
         GroupBox {
             Layout.fillWidth: true
 
diff -Nru --exclude po 
plasma-desktop-5.8.4/applets/kicker/package/contents/ui/DashboardRepresentation.qml
 
plasma-desktop-5.8.6/applets/kicker/package/contents/ui/DashboardRepresentation.qml
--- 
plasma-desktop-5.8.4/applets/kicker/package/contents/ui/DashboardRepresentation.qml
 2016-11-22 11:22:10.000000000 +0100
+++ 
plasma-desktop-5.8.6/applets/kicker/package/contents/ui/DashboardRepresentation.qml
 2017-02-21 13:09:30.000000000 +0100
@@ -88,6 +88,9 @@
         anchors.fill: parent
 
         acceptedButtons: Qt.LeftButton | Qt.RightButton
+        
+        LayoutMirroring.enabled: Qt.application.layoutDirection == 
Qt.RightToLeft
+        LayoutMirroring.childrenInherit: true
 
         Connections {
             target: kicker
diff -Nru --exclude po 
plasma-desktop-5.8.4/applets/kicker/package/contents/ui/main.qml 
plasma-desktop-5.8.6/applets/kicker/package/contents/ui/main.qml
--- plasma-desktop-5.8.4/applets/kicker/package/contents/ui/main.qml    
2016-11-22 11:22:10.000000000 +0100
+++ plasma-desktop-5.8.6/applets/kicker/package/contents/ui/main.qml    
2017-02-21 13:09:30.000000000 +0100
@@ -248,7 +248,9 @@
         windowSystem.focusOut.connect(enableHideOnWindowDeactivate);
         plasmoid.hideOnWindowDeactivate = true;
 
-        plasmoid.setAction("menuedit", i18n("Edit Applications..."));
+        if (plasmoid.immutability !== PlasmaCore.Types.SystemImmutable) {
+            plasmoid.setAction("menuedit", i18n("Edit Applications..."));
+        }
 
         updateSvgMetrics();
         theme.themeChanged.connect(updateSvgMetrics);
diff -Nru --exclude po 
plasma-desktop-5.8.4/applets/kicker/package/contents/ui/MenuRepresentation.qml 
plasma-desktop-5.8.6/applets/kicker/package/contents/ui/MenuRepresentation.qml
--- 
plasma-desktop-5.8.4/applets/kicker/package/contents/ui/MenuRepresentation.qml  
    2016-11-22 11:22:10.000000000 +0100
+++ 
plasma-desktop-5.8.6/applets/kicker/package/contents/ui/MenuRepresentation.qml  
    2017-02-21 13:09:30.000000000 +0100
@@ -60,7 +60,7 @@
         spacing: units.smallSpacing
 
         LayoutMirroring.enabled: ((plasmoid.location == 
PlasmaCore.Types.RightEdge)
-            || (Qt.application.layoutDirection == Qt.RightToLeft))
+            || (Qt.application.layoutDirection == Qt.RightToLeft && 
plasmoid.location != PlasmaCore.Types.LeftEdge))
 
         PlasmaCore.FrameSvgItem {
             id: sideBar
@@ -351,8 +351,8 @@
         },
         State {
             name: "right"
-            when: (plasmoid.location == PlasmaCore.Types.RightEdge
-                || (plasmoid.location != PlasmaCore.Types.RightEdge && 
mainRow.LayoutMirroring.enabled))
+            when: (plasmoid.location == PlasmaCore.Types.RightEdge && 
Qt.application.layoutDirection == Qt.LeftToRight)
+                || (plasmoid.location == PlasmaCore.Types.LeftEdge && 
Qt.application.layoutDirection == Qt.RightToLeft)
 
             AnchorChanges {
                 target: searchField
diff -Nru --exclude po 
plasma-desktop-5.8.4/applets/kicker/package/metadata.desktop 
plasma-desktop-5.8.6/applets/kicker/package/metadata.desktop
--- plasma-desktop-5.8.4/applets/kicker/package/metadata.desktop        
2016-11-22 11:22:10.000000000 +0100
+++ plasma-desktop-5.8.6/applets/kicker/package/metadata.desktop        
2017-02-21 13:09:30.000000000 +0100
@@ -73,7 +73,7 @@
 Comment[nb]=En starter basert på oppsprettmenyer i kaskade
 Comment[nds]=En Oproper, de op en Boom ut Opdukmenüs opbuut
 Comment[nl]=Een starter gebaseerd op achter elkaar liggende popup-menu's
-Comment[nn]=Ein startar basert på overlappande sprettoppmenyar
+Comment[nn]=Ein startar basert på menyhierarki
 Comment[pl]=Aktywator oparty na kaskadowych menu podręcznych
 Comment[pt]=Um módulo de lançamento com base em menus em cascata
 Comment[pt_BR]=Um lançador com base em menus em cascata
diff -Nru --exclude po plasma-desktop-5.8.4/applets/kicker/plugin/appentry.cpp 
plasma-desktop-5.8.6/applets/kicker/plugin/appentry.cpp
--- plasma-desktop-5.8.4/applets/kicker/plugin/appentry.cpp     2016-11-22 
11:22:10.000000000 +0100
+++ plasma-desktop-5.8.6/applets/kicker/plugin/appentry.cpp     2017-02-21 
13:09:30.000000000 +0100
@@ -210,6 +210,10 @@
 
 bool AppEntry::run(const QString& actionId, const QVariant &argument)
 {
+    if (!m_service->isValid()) {
+        return false;
+    }
+
     if (actionId.isEmpty()) {
         quint32 timeStamp = 0;
 
diff -Nru --exclude po 
plasma-desktop-5.8.4/applets/kicker/plugin/containmentinterface.cpp 
plasma-desktop-5.8.6/applets/kicker/plugin/containmentinterface.cpp
--- plasma-desktop-5.8.4/applets/kicker/plugin/containmentinterface.cpp 
2016-11-22 11:22:10.000000000 +0100
+++ plasma-desktop-5.8.6/applets/kicker/plugin/containmentinterface.cpp 
2017-02-21 13:09:30.000000000 +0100
@@ -142,7 +142,7 @@
                 return;
             }
 
-            const QStringList &containmentProvides = 
containment->pluginInfo().property(QStringLiteral("X-Plasma-Provides")).value<QStringList>();
+            const QStringList &containmentProvides = 
KPluginMetaData::readStringList(containment->pluginMetaData().rawData(), 
QStringLiteral("X-Plasma-Provides"));
 
             if 
(containmentProvides.contains(QLatin1String("org.kde.plasma.filemanagement"))) {
                 QQuickItem* gObj = qobject_cast<QQuickItem 
*>(containment->property("_plasma_graphicObject").value<QObject *>());
diff -Nru --exclude po 
plasma-desktop-5.8.4/applets/kicker/plugin/runnermatchesmodel.cpp 
plasma-desktop-5.8.6/applets/kicker/plugin/runnermatchesmodel.cpp
--- plasma-desktop-5.8.4/applets/kicker/plugin/runnermatchesmodel.cpp   
2016-11-22 11:22:10.000000000 +0100
+++ plasma-desktop-5.8.6/applets/kicker/plugin/runnermatchesmodel.cpp   
2017-02-21 13:09:30.000000000 +0100
@@ -67,7 +67,7 @@
         }
     } else if (role == Kicker::UrlRole) {
         const QString &runnerId = match.runner()->id();
-        if (runnerId == QLatin1String("baloosearch")) {
+        if (runnerId == QLatin1String("baloosearch") || runnerId == 
QLatin1String("bookmarks")) {
             return QUrl(match.data().toString());
         } else if (runnerId == QLatin1String("recentdocuments")
                    || runnerId == QLatin1String("services")) {
@@ -155,6 +155,9 @@
         return true;
     } else if (actionId == QLatin1String("_kicker_jumpListAction")) {
         return KRun::run(argument.toString(), {}, nullptr, service ? 
service->name() : QString(), service ? service->icon() : QString());
+    } else if (actionId == QLatin1String("_kicker_recentDocument")
+        || actionId == QLatin1String("_kicker_forgetRecentDocuments")) {
+        return Kicker::handleRecentDocumentAction(service, actionId, argument);
     }
 
     if (!actionId.isEmpty()) {
diff -Nru --exclude po 
plasma-desktop-5.8.4/applets/kicker/plugin/runnermodel.cpp 
plasma-desktop-5.8.6/applets/kicker/plugin/runnermodel.cpp
--- plasma-desktop-5.8.4/applets/kicker/plugin/runnermodel.cpp  2016-11-22 
11:22:10.000000000 +0100
+++ plasma-desktop-5.8.6/applets/kicker/plugin/runnermodel.cpp  2017-02-21 
13:09:30.000000000 +0100
@@ -225,6 +225,12 @@
         it.value().append(match);
     }
 
+    // Sort matches for all runners in descending order. This allows the best
+    // match to win whilest preserving order between runners.
+    for (auto &list : matchesForRunner) {
+        qSort(list.begin(), list.end(), qGreater<Plasma::QueryMatch>());
+    }
+
     if (m_mergeResults) {
         RunnerMatchesModel *matchesModel = nullptr;
 
diff -Nru --exclude po 
plasma-desktop-5.8.4/applets/pager/package/contents/ui/configGeneral.qml 
plasma-desktop-5.8.6/applets/pager/package/contents/ui/configGeneral.qml
--- plasma-desktop-5.8.4/applets/pager/package/contents/ui/configGeneral.qml    
2016-11-22 11:22:10.000000000 +0100
+++ plasma-desktop-5.8.6/applets/pager/package/contents/ui/configGeneral.qml    
2017-02-21 13:09:30.000000000 +0100
@@ -81,6 +81,7 @@
     }
 
     Layouts.GridLayout {
+        anchors.left: parent.left
         columns: 2
         QtControls.Label {
             text: i18n("Display:")
diff -Nru --exclude po 
plasma-desktop-5.8.4/applets/pager/package/contents/ui/main.qml 
plasma-desktop-5.8.6/applets/pager/package/contents/ui/main.qml
--- plasma-desktop-5.8.4/applets/pager/package/contents/ui/main.qml     
2016-11-22 11:22:10.000000000 +0100
+++ plasma-desktop-5.8.6/applets/pager/package/contents/ui/main.qml     
2017-02-21 13:09:30.000000000 +0100
@@ -51,9 +51,13 @@
 
     property int dragSwitchDesktopId: -1
 
+    property int wheelDelta: 0
+
     anchors.fill: parent
     acceptedButtons: Qt.NoButton
 
+    hoverEnabled: true
+
     function colorWithAlpha(color, alpha) {
         return Qt.rgba(color.r, color.g, color.b, alpha)
     }
@@ -89,11 +93,39 @@
         service.startOperationCall(operation)
     }
 
+    onContainsMouseChanged: {
+        if (!containsMouse && dragging) {
+            // Somewhat heavy-handed way to clean up after a window delegate 
drag
+            // exits the window.
+            pagerModel.refresh();
+        }
+    }
+
     onWheel: {
-        if (wheel.angleDelta.y > 0 || wheel.angleDelta.x > 0) {
-            pagerModel.changePage((repeater.count + pagerModel.currentPage - 
2) % repeater.count);
-        } else {
-            pagerModel.changePage(pagerModel.currentPage % repeater.count);
+        // Magic number 120 for common "one click, see:
+        // 
http://qt-project.org/doc/qt-5/qml-qtquick-wheelevent.html#angleDelta-prop
+        wheelDelta += wheel.angleDelta.y || wheel.angleDelta.x;
+
+        var increment = 0;
+
+        while (wheelDelta >= 120) {
+            wheelDelta -= 120;
+            increment++;
+        }
+
+        while (wheelDelta <= -120) {
+            wheelDelta += 120;
+            increment--;
+        }
+
+        while (increment != 0) {
+            if (increment < 0) {
+                pagerModel.changePage((pagerModel.currentPage + 1) % 
repeater.count);
+            } else {
+                pagerModel.changePage((repeater.count + pagerModel.currentPage 
- 1) % repeater.count);
+            }
+
+            increment += (increment < 0) ? 1 : -1;
         }
     }
 
@@ -151,6 +183,8 @@
 
             horizontalAlignment: Text.AlignHCenter
             verticalAlignment: Text.AlignVCenter
+
+            z: 0 // Below windows and FrameSvg
         }
     }
 
@@ -160,8 +194,8 @@
         PlasmaCore.IconItem {
             anchors.centerIn: parent
 
-            height: parent.width / 2
-            width: parent.height / 2
+            height: Math.min(units.iconSizes.small, parent.height - 
(units.smallSpacing * 2))
+            width: Math.min(units.iconSizes.small, parent.width - 
(units.smallSpacing * 2))
 
             property var model: null
 
@@ -175,7 +209,7 @@
         id: dragTimer
         interval: 1000
         onTriggered: {
-            if (dragSwitchDesktopId != -1 && dragSwitchDesktopId !== 
pagerModel.currentPage - 1) {
+            if (dragSwitchDesktopId != -1 && dragSwitchDesktopId !== 
pagerModel.currentPage) {
                 pagerModel.changePage(dragSwitchDesktopId);
             }
         }
@@ -188,6 +222,8 @@
         rows: effectiveRows
         columns: effectiveColumns
 
+        z: 1
+
         readonly property int effectiveRows: {
             if (!pagerModel.count) {
                 return 1;
@@ -246,7 +282,7 @@
                 id: desktop
 
                 property int desktopId: index
-                property bool active: isActivityPager ? (index == 
pagerModel.currentPage) : (index + 1 == pagerModel.currentPage)
+                property bool active: (index == pagerModel.currentPage)
 
                 mainText: model.display
                 // our ToolTip has maximumLineCount of 8 which doesn't fit but 
QML doesn't
@@ -315,7 +351,7 @@
                     id: desktopFrame
 
                     anchors.fill: parent
-                    z: 1 // to make sure that the FrameSvg will be placed on 
top of the windows
+                    z: 2 // Above optional label item and windows
                     imagePath: "widgets/pager"
                     prefix: (desktopMouseArea.enabled && 
desktopMouseArea.containsMouse) || (root.dragging && root.dragId == desktopId) ?
                                 "hover" : (desktop.active ? "active" : 
"normal")
@@ -356,6 +392,7 @@
                     height: desktop.height - 2 * y
                     clip: true
 
+                    z: 1 // Between optional label item and FrameSvg
 
                     Repeater {
                         id: windowRectRepeater
@@ -367,7 +404,7 @@
                         Rectangle {
                             id: windowRect
 
-                            z: model.StackingOrder
+                            z: 1 + model.StackingOrder
 
                             property rect geometry: model.Geometry
                             property int windowId: model.LegacyWinIdList[0]
diff -Nru --exclude po plasma-desktop-5.8.4/applets/pager/plugin/pagermodel.cpp 
plasma-desktop-5.8.6/applets/pager/plugin/pagermodel.cpp
--- plasma-desktop-5.8.4/applets/pager/plugin/pagermodel.cpp    2016-11-22 
11:22:10.000000000 +0100
+++ plasma-desktop-5.8.6/applets/pager/plugin/pagermodel.cpp    2017-02-21 
13:09:30.000000000 +0100
@@ -351,7 +351,7 @@
 int PagerModel::currentPage() const
 {
     if (d->pagerType == VirtualDesktops) {
-        return d->virtualDesktopInfo->currentDesktop();
+        return d->virtualDesktopInfo->currentDesktop() - 1;
     } else {
         return 
d->activityInfo->runningActivities().indexOf(d->activityInfo->currentActivity());
     }
@@ -518,16 +518,15 @@
 #endif
 }
 
-void PagerModel::changePage(int itemId)
+void PagerModel::changePage(int page)
 {
+
 #if HAVE_X11
     if (!KWindowSystem::isPlatformX11()) {
         return;
     }
 
-    const int targetId = (d->pagerType == VirtualDesktops) ? itemId + 1 : 
itemId;
-
-    if (currentPage() == targetId) {
+    if (currentPage() == page) {
         if (d->showDesktop) {
             
QDBusConnection::sessionBus().asyncCall(QDBusMessage::createMethodCall(QLatin1String("org.kde.plasmashell"),
                 QLatin1String("/PlasmaShell"),
@@ -536,16 +535,16 @@
         }
     } else {
         if (d->pagerType == VirtualDesktops) {
-            KWindowSystem::setCurrentDesktop(targetId);
+            KWindowSystem::setCurrentDesktop(page + 1);
         } else {
             const QStringList &runningActivities = 
d->activityInfo->runningActivities();
-
-            if (targetId < runningActivities.length()) {
+            if (page < runningActivities.length()) {
                 KActivities::Controller activitiesController;
-                
activitiesController.setCurrentActivity(runningActivities.at(targetId));
+                
activitiesController.setCurrentActivity(runningActivities.at(page));
             }
         }
     }
+
 #else
     Q_UNUSED(itemId)
 #endif
diff -Nru --exclude po plasma-desktop-5.8.4/applets/pager/plugin/pagermodel.h 
plasma-desktop-5.8.6/applets/pager/plugin/pagermodel.h
--- plasma-desktop-5.8.4/applets/pager/plugin/pagermodel.h      2016-11-22 
11:22:10.000000000 +0100
+++ plasma-desktop-5.8.6/applets/pager/plugin/pagermodel.h      2017-02-21 
13:09:30.000000000 +0100
@@ -101,7 +101,7 @@
 
     Q_INVOKABLE void moveWindow(int window, double x, double y, int 
targetItemId, int sourceItemId,
         qreal widthScaleFactor, qreal heightScaleFactor);
-    Q_INVOKABLE void changePage(int itemId);
+    Q_INVOKABLE void changePage(int page);
     Q_INVOKABLE void drop(QMimeData *mimeData, int itemId);
     Q_INVOKABLE void addDesktop();
     Q_INVOKABLE void removeDesktop();
diff -Nru --exclude po 
plasma-desktop-5.8.4/applets/taskmanager/package/contents/ui/ConfigGeneral.qml 
plasma-desktop-5.8.6/applets/taskmanager/package/contents/ui/ConfigGeneral.qml
--- 
plasma-desktop-5.8.4/applets/taskmanager/package/contents/ui/ConfigGeneral.qml  
    2016-11-22 11:22:10.000000000 +0100
+++ 
plasma-desktop-5.8.6/applets/taskmanager/package/contents/ui/ConfigGeneral.qml  
    2017-02-21 13:09:30.000000000 +0100
@@ -47,6 +47,7 @@
     property alias cfg_showOnlyMinimized: showOnlyMinimized.checked
 
     ColumnLayout {
+        anchors.left: parent.left
         GroupBox {
             Layout.fillWidth: true
 
diff -Nru --exclude po 
plasma-desktop-5.8.4/applets/taskmanager/package/contents/ui/ContextMenu.qml 
plasma-desktop-5.8.6/applets/taskmanager/package/contents/ui/ContextMenu.qml
--- 
plasma-desktop-5.8.4/applets/taskmanager/package/contents/ui/ContextMenu.qml    
    2016-11-22 11:22:10.000000000 +0100
+++ 
plasma-desktop-5.8.6/applets/taskmanager/package/contents/ui/ContextMenu.qml    
    2017-02-21 13:09:30.000000000 +0100
@@ -217,7 +217,7 @@
                     return menu.visualParent && 
menu.visualParent.m.VirtualDesktop != virtualDesktopInfo.currentDesktop;
                 });
                 menuItem.clicked.connect(function() {
-                    
tasksModel.requestVirtualDesktop(menu.visualParent.modelIndex(), 0);
+                    
tasksModel.requestVirtualDesktop(menu.visualParent.modelIndex(), 
virtualDesktopInfo.currentDesktop);
                 });
 
                 menuItem = menu.newMenuItem(virtualDesktopsMenu);
diff -Nru --exclude po 
plasma-desktop-5.8.4/applets/taskmanager/package/contents/ui/GroupDialog.qml 
plasma-desktop-5.8.6/applets/taskmanager/package/contents/ui/GroupDialog.qml
--- 
plasma-desktop-5.8.4/applets/taskmanager/package/contents/ui/GroupDialog.qml    
    2016-11-22 11:22:10.000000000 +0100
+++ 
plasma-desktop-5.8.6/applets/taskmanager/package/contents/ui/GroupDialog.qml    
    2017-02-21 13:09:30.000000000 +0100
@@ -18,6 +18,7 @@
  ***************************************************************************/
 
 import QtQuick 2.0
+import QtQuick.Window 2.2
 
 import org.kde.plasma.core 2.0 as PlasmaCore
 import org.kde.draganddrop 2.0
@@ -33,6 +34,9 @@
     hideOnWindowDeactivate: true
     location: plasmoid.location
 
+    property int preferredWidth: Screen.width / (3 * Screen.devicePixelRatio)
+    property int preferredHeight: Screen.height / (2 * Screen.devicePixelRatio)
+
     mainItem: Item {
         MouseHandler {
             id: mouseHandler
@@ -136,6 +140,9 @@
         } else {
             var task;
             var maxWidth = 0;
+            var maxHeight = 0;
+
+            backend.cancelHighlightWindows();
 
             for (var i = 0; i < taskList.children.length - 1; ++i) {
                 task = taskList.children[i];
@@ -147,11 +154,11 @@
                 task.textWidthChanged.connect(updateSize);
             }
 
-            maxWidth += LayoutManager.horizontalMargins() + 
units.iconSizes.small + 6;
+            maxWidth += LayoutManager.horizontalMargins() + 
units.iconSizes.medium + 2 * units.smallSpacing;
+            maxHeight = groupRepeater.count * (LayoutManager.verticalMargins() 
+ Math.max(theme.mSize(theme.defaultFont).height, units.iconSizes.medium));
 
-            // TODO: Properly derive limits from work area size (screen size 
sans struts).
-            mainItem.width = Math.min(maxWidth, (tasks.vertical ? 640 - 
tasks.width : Math.max(tasks.width, 640)) - 20);
-            mainItem.height = groupRepeater.count * 
(LayoutManager.verticalMargins() + 
Math.max(theme.mSize(theme.defaultFont).height, units.iconSizes.small));
+            mainItem.height = Math.min(preferredHeight, maxHeight);
+            mainItem.width = Math.min(preferredWidth, (tasks.vertical ? 
Math.max(maxWidth, tasks.width) : Math.min(maxWidth, tasks.width)));
         }
     }
 }
diff -Nru --exclude po 
plasma-desktop-5.8.4/applets/taskmanager/package/contents/ui/main.qml 
plasma-desktop-5.8.6/applets/taskmanager/package/contents/ui/main.qml
--- plasma-desktop-5.8.4/applets/taskmanager/package/contents/ui/main.qml       
2016-11-22 11:22:10.000000000 +0100
+++ plasma-desktop-5.8.6/applets/taskmanager/package/contents/ui/main.qml       
2017-02-21 13:09:30.000000000 +0100
@@ -41,6 +41,12 @@
 
     Plasmoid.preferredRepresentation: Plasmoid.fullRepresentation
 
+    Plasmoid.onUserConfiguringChanged: {
+        if (plasmoid.userConfiguring) {
+            groupDialog.visible = false;
+        }
+    }
+
     Layout.fillWidth: true
     Layout.fillHeight:true
     Layout.minimumWidth: tasks.vertical ? 0 : LayoutManager.preferredMinWidth()
@@ -104,7 +110,7 @@
         }
 
         groupMode: iconsOnly ? TaskManager.TasksModel.GroupApplication
-            : sortModeEnumValue(plasmoid.configuration.groupingStrategy)
+            : groupModeEnumValue(plasmoid.configuration.groupingStrategy)
         groupInline: !plasmoid.configuration.groupPopups
         groupingWindowTasksThreshold: 
(plasmoid.configuration.onlyGroupWhenFull && !iconsOnly
             ? LayoutManager.optimumCapacity(width, height) + 1 : -1)
@@ -171,6 +177,7 @@
 
         taskManagerItem: tasks
         toolTipItem: toolTipDelegate
+        groupDialog: groupDialog
         highlightWindows: plasmoid.configuration.highlightWindows
 
         onAddLauncher: {
diff -Nru --exclude po 
plasma-desktop-5.8.4/applets/taskmanager/package/contents/ui/Task.qml 
plasma-desktop-5.8.6/applets/taskmanager/package/contents/ui/Task.qml
--- plasma-desktop-5.8.4/applets/taskmanager/package/contents/ui/Task.qml       
2016-11-22 11:22:10.000000000 +0100
+++ plasma-desktop-5.8.6/applets/taskmanager/package/contents/ui/Task.qml       
2017-02-21 13:09:30.000000000 +0100
@@ -32,7 +32,7 @@
     id: task
 
     width: groupDialog.mainItem.width
-    height: Math.max(theme.mSize(theme.defaultFont).height, 
units.iconSizes.small) + LayoutManager.verticalMargins()
+    height: Math.max(theme.mSize(theme.defaultFont).height, 
units.iconSizes.medium) + LayoutManager.verticalMargins()
 
     visible: false
 
@@ -44,6 +44,8 @@
     property int itemIndex: index
     property bool inPopup: false
     property bool isWindow: model.IsWindow === true
+    property int childCount: model.ChildCount != undefined ? model.ChildCount 
: 0
+    property int previousChildCount: 0
     property alias textWidth: label.implicitWidth
     property bool pressed: false
     property int pressX: -1
@@ -63,6 +65,14 @@
         }
     }
 
+    onChildCountChanged: {
+        if (childCount > previousChildCount) {
+            tasksModel.requestPublishDelegateGeometry(modelIndex(), 
backend.globalRect(task), task);
+        }
+
+        previousChildCount = childCount;
+    }
+
     onItemIndexChanged: {
         if (!inPopup && !tasks.vertical
             && (LayoutManager.calculateStripes() > 1 || 
!plasmoid.configuration.separateLaunchers)) {
@@ -111,6 +121,8 @@
             } else if (mouse.button == Qt.LeftButton) {
                 TaskTools.activateTask(modelIndex(), model, mouse.modifiers);
             }
+
+            backend.cancelHighlightWindows();
         }
 
         pressed = false;
diff -Nru --exclude po 
plasma-desktop-5.8.4/applets/taskmanager/package/contents/ui/ToolTipWindowMouseArea.qml
 
plasma-desktop-5.8.6/applets/taskmanager/package/contents/ui/ToolTipWindowMouseArea.qml
--- 
plasma-desktop-5.8.4/applets/taskmanager/package/contents/ui/ToolTipWindowMouseArea.qml
     2016-11-22 11:22:10.000000000 +0100
+++ 
plasma-desktop-5.8.6/applets/taskmanager/package/contents/ui/ToolTipWindowMouseArea.qml
     2017-02-21 13:09:30.000000000 +0100
@@ -53,6 +53,9 @@
         visible: parent.containsMouse && winId != 0
         tooltip: i18nc("close this window", "Close")
 
-        onClicked: tasksModel.requestClose(modelIndex);
+        onClicked: {
+            backend.cancelHighlightWindows();
+            tasksModel.requestClose(modelIndex);
+        }
     }
 }
diff -Nru --exclude po 
plasma-desktop-5.8.4/applets/taskmanager/plugin/backend.cpp 
plasma-desktop-5.8.6/applets/taskmanager/plugin/backend.cpp
--- plasma-desktop-5.8.4/applets/taskmanager/plugin/backend.cpp 2016-11-22 
11:22:10.000000000 +0100
+++ plasma-desktop-5.8.6/applets/taskmanager/plugin/backend.cpp 2017-02-21 
13:09:30.000000000 +0100
@@ -88,6 +88,20 @@
     }
 }
 
+QQuickWindow *Backend::groupDialog() const
+{
+    return m_groupDialog;
+}
+
+void Backend::setGroupDialog(QQuickWindow *dialog)
+{
+    if (dialog != m_groupDialog) {
+        m_groupDialog = dialog;
+
+        emit groupDialogChanged();
+    }
+}
+
 bool Backend::highlightWindows() const
 {
     return m_highlightWindows;
@@ -142,7 +156,7 @@
             continue;
         }
 
-        QAction *action = new QAction(this);
+        QAction *action = new QAction(parent);
         action->setText(name);
         action->setIcon(QIcon::fromTheme(actionGroup.readEntry("Icon")));
         action->setProperty("exec", exec);
@@ -204,7 +218,7 @@
             continue;
         }
 
-        QAction *action = new QAction(this);
+        QAction *action = new QAction(parent);
         action->setText(url.fileName());
         action->setIcon(QIcon::fromTheme(fileItem.iconName(), 
QIcon::fromTheme("unknown")));
         action->setProperty("agent", storageId);
@@ -219,7 +233,7 @@
     }
 
     if (actionCount > 0) {
-        QAction *action = new QAction(this);
+        QAction *action = new QAction(parent);
         action->setText(i18n("Forget Recent Documents"));
         action->setProperty("agent", storageId);
         connect(action, &QAction::triggered, this, 
&Backend::handleRecentDocumentAction);
@@ -324,6 +338,10 @@
 
 void Backend::presentWindows(const QVariant &_winIds)
 {
+    if (!m_taskManagerItem || !m_taskManagerItem->window()) {
+        return;
+    }
+
     QList<WId> winIds;
 
     const QVariantList &_winIdsList = _winIds.toList();
@@ -377,6 +395,12 @@
     return urls;
 }
 
+void Backend::cancelHighlightWindows()
+{
+    m_windowsToHighlight.clear();
+    updateWindowHighlight();
+}
+
 void Backend::windowsHovered(const QVariant &_winIds, bool hovered)
 {
     m_windowsToHighlight.clear();
@@ -421,5 +445,9 @@
         windows.append(m_toolTipItem->window()->winId());
     }
 
+    if (windows.count() && m_groupDialog) {
+        windows.append(m_groupDialog->winId());
+    }
+
     KWindowEffects::highlightWindows(m_panelWinId, windows);
 }
diff -Nru --exclude po 
plasma-desktop-5.8.4/applets/taskmanager/plugin/backend.h 
plasma-desktop-5.8.6/applets/taskmanager/plugin/backend.h
--- plasma-desktop-5.8.4/applets/taskmanager/plugin/backend.h   2016-11-22 
11:22:10.000000000 +0100
+++ plasma-desktop-5.8.6/applets/taskmanager/plugin/backend.h   2017-02-21 
13:09:30.000000000 +0100
@@ -41,6 +41,7 @@
 
     Q_PROPERTY(QQuickItem* taskManagerItem READ taskManagerItem WRITE 
setTaskManagerItem NOTIFY taskManagerItemChanged)
     Q_PROPERTY(QQuickItem* toolTipItem READ toolTipItem WRITE setToolTipItem 
NOTIFY toolTipItemChanged)
+    Q_PROPERTY(QQuickWindow* groupDialog READ groupDialog WRITE setGroupDialog 
NOTIFY groupDialogChanged)
     Q_PROPERTY(bool highlightWindows READ highlightWindows WRITE 
setHighlightWindows NOTIFY highlightWindowsChanged)
 
     public:
@@ -62,6 +63,9 @@
         QQuickItem *toolTipItem() const;
         void setToolTipItem(QQuickItem *item);
 
+        QQuickWindow *groupDialog() const;
+        void setGroupDialog(QQuickWindow *dialog);
+
         bool highlightWindows() const;
         void setHighlightWindows(bool highlight);
 
@@ -79,6 +83,8 @@
 
         Q_INVOKABLE QList<QUrl> jsonArrayToUrlList(const QJsonArray &array) 
const;
 
+        Q_INVOKABLE void cancelHighlightWindows();
+
     public Q_SLOTS:
         void presentWindows(const QVariant &winIds);
         void windowsHovered(const QVariant &winIds, bool hovered);
@@ -86,6 +92,7 @@
     Q_SIGNALS:
         void taskManagerItemChanged() const;
         void toolTipItemChanged() const;
+        void groupDialogChanged() const;
         void highlightWindowsChanged() const;
         void addLauncher(const QUrl &url) const;
 
@@ -99,6 +106,7 @@
 
         QQuickItem *m_taskManagerItem;
         QQuickItem *m_toolTipItem;
+        QQuickWindow *m_groupDialog;
         WId m_panelWinId;
         bool m_highlightWindows;
         QList<WId> m_windowsToHighlight;
diff -Nru --exclude po plasma-desktop-5.8.4/CMakeLists.txt 
plasma-desktop-5.8.6/CMakeLists.txt
--- plasma-desktop-5.8.4/CMakeLists.txt 2016-11-22 11:23:26.000000000 +0100
+++ plasma-desktop-5.8.6/CMakeLists.txt 2017-02-21 13:10:39.000000000 +0100
@@ -1,5 +1,5 @@
 project(plasma-desktop)
-set(PROJECT_VERSION "5.8.4")
+set(PROJECT_VERSION "5.8.6")
 set(PROJECT_VERSION_MAJOR 5)
 
 cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR)
@@ -71,7 +71,7 @@
 # a proper framework. Hence the strange versioning.
 # This will be fixed with Plasma 5.2, as Baloo should have
 # become a framework by then
-find_package(KF5Baloo "5.1.90")
+find_package(KF5Baloo "5.24")
 set_package_properties(KF5Baloo PROPERTIES DESCRIPTION "File Searching"
                        TYPE REQUIRED
                        PURPOSE "Needed to build to File Search KCM"
diff -Nru --exclude po 
plasma-desktop-5.8.4/containments/desktop/package/contents/ui/AppletAppearance.qml
 
plasma-desktop-5.8.6/containments/desktop/package/contents/ui/AppletAppearance.qml
--- 
plasma-desktop-5.8.4/containments/desktop/package/contents/ui/AppletAppearance.qml
  2016-11-22 11:22:10.000000000 +0100
+++ 
plasma-desktop-5.8.6/containments/desktop/package/contents/ui/AppletAppearance.qml
  2017-02-21 13:09:30.000000000 +0100
@@ -184,13 +184,7 @@
             }
             Connections {
                 target: applet
-                onBusyChanged: {
-                    if (applet.busy) {
-                        busyLoader.source = "BusyOverlay.qml"
-                    } else if (busyLoader.item && typeof(busyLoader.item) != 
"undefined") {
-                        busyLoader.item.disappear();
-                    }
-                }
+
                 onBackgroundHintsChanged: {
 //                     print("plasmoid.backgroundHintsChanged");
                     updateBackgroundHints();
@@ -300,7 +294,7 @@
 
                     applet.parent = appletContainer;
                     applet.anchors.fill = appletContainer;
-                    
+
                     updateBackgroundHints();
                 }
                 Connections {
@@ -329,8 +323,15 @@
                 }
                 Loader {
                     id: busyLoader
+
                     anchors.centerIn: parent
+
                     z: appletContainer.z + 1
+
+                    active: applet.busy
+
+                    source: "BusyOverlay.qml"
+                    asynchronous: true
                 }
 
                 Component.onCompleted: PlasmaExtras.AppearAnimation {
diff -Nru --exclude po 
plasma-desktop-5.8.4/containments/desktop/package/contents/ui/FolderViewLayer.qml
 
plasma-desktop-5.8.6/containments/desktop/package/contents/ui/FolderViewLayer.qml
--- 
plasma-desktop-5.8.4/containments/desktop/package/contents/ui/FolderViewLayer.qml
   2016-11-22 11:22:10.000000000 +0100
+++ 
plasma-desktop-5.8.6/containments/desktop/package/contents/ui/FolderViewLayer.qml
   2017-02-21 13:09:30.000000000 +0100
@@ -226,10 +226,14 @@
         Item {
             id: label
 
+            // If we bind height to visible, it will be invisible initially 
(since "visible"
+            // propagates recursively) and that confuses the Label, hence the 
temp property.
+            readonly property bool active: (plasmoid.configuration.labelMode 
!= 0)
+
             width: parent.width
-            height: visible ? labelHeight : 0
+            height: active ? labelHeight : 0
 
-            visible: (plasmoid.configuration.labelMode != 0)
+            visible: active
 
             property Item windowPin: null
 
diff -Nru --exclude po 
plasma-desktop-5.8.4/containments/desktop/package/contents/ui/FolderView.qml 
plasma-desktop-5.8.6/containments/desktop/package/contents/ui/FolderView.qml
--- 
plasma-desktop-5.8.4/containments/desktop/package/contents/ui/FolderView.qml    
    2016-11-22 11:22:10.000000000 +0100
+++ 
plasma-desktop-5.8.6/containments/desktop/package/contents/ui/FolderView.qml    
    2017-02-21 13:09:30.000000000 +0100
@@ -233,7 +233,7 @@
         onClicked: {
             clearPressState();
 
-            if (mouse.buttons & Qt.RightButton ||
+            if (mouse.button === Qt.RightButton ||
                 childAt(mouse.x, mouse.y) == editor) {
                 return;
             }
@@ -321,6 +321,7 @@
                     pressedItem.toolTip.hideToolTip();
                     dragX = mouse.x;
                     dragY = mouse.y;
+                    gridView.verticalDropHitscanOffset = 
pressedItem.iconArea.y + (pressedItem.iconArea.height / 2)
                     dir.dragSelected(mouse.x, mouse.y);
                     dragX = -1;
                     dragY = -1;
@@ -343,6 +344,10 @@
         onContainsMouseChanged: {
             if (!containsMouse && !main.rubberBand) {
                 clearPressState();
+
+                if (gridView.hoveredItem && !gridView.hoveredItem.popupDialog) 
{
+                    gridView.hoveredItem = null;
+                }
             }
         }
 
@@ -392,6 +397,7 @@
                 property bool isRootView: false
 
                 property int iconSize: makeIconSize()
+                property int verticalDropHitscanOffset: 0
 
                 property Item hoveredItem: null
 
@@ -479,7 +485,7 @@
                         scrollDown = false;
                     }
 
-                    // Update rubberband geomety.
+                    // Update rubberband geometry.
                     if (main.rubberBand) {
                         var rB = main.rubberBand;
 
@@ -557,9 +563,18 @@
                 }
 
                 onCachedRectangleSelectionChanged: {
-                    if (cachedRectangleSelection) {
-                        dir.updateSelection(cachedRectangleSelection, 
gridView.ctrlPressed);
+                    if (cachedRectangleSelection == null) {
+                        return;
+                    }
+
+                    if (cachedRectangleSelection.length) {
+                        // Set current index to start of selection.
+                        // cachedRectangleSelection is pre-sorted.
+                        currentIndex = cachedRectangleSelection[0];
                     }
+
+                    
dir.updateSelection(cachedRectangleSelection.map(positioner.map),
+                        gridView.ctrlPressed);
                 }
 
                 function makeIconSize() {
@@ -632,7 +647,7 @@
                                         item.iconArea.width, 
item.iconArea.height);
 
                                     if (main.rubberBand.intersects(iconRect)) {
-                                        indices.push(positioner.map(index));
+                                        indices.push(index);
                                         continue;
                                     }
 
@@ -640,12 +655,12 @@
                                         item.labelArea.width, 
item.labelArea.height);
 
                                     if (main.rubberBand.intersects(labelRect)) 
{
-                                        indices.push(positioner.map(index));
+                                        indices.push(index);
                                         continue;
                                     }
                                 } else {
                                     // Otherwise be content with the cell 
intersection.
-                                    indices.push(positioner.map(index));
+                                    indices.push(index);
                                 }
                             }
                         }
@@ -659,7 +674,7 @@
 
                 Keys.onReturnPressed: {
                     if (currentIndex != -1 && dir.hasSelection()) {
-                        var func = root.useListViewMode ? dir.cd : dir.run;
+                        var func = root.useListViewMode && currentItem.isDir ? 
dir.cd : dir.run;
                         func(positioner.map(currentIndex));
                     }
                 }
@@ -889,7 +904,7 @@
                     }
 
                     itemX = dropPos.x + offset.x + (listener.dragX % 
cellWidth) + (cellWidth / 2);
-                    itemY = dropPos.y + offset.y + (listener.dragY % 
cellHeight) + (cellHeight / 2);
+                    itemY = dropPos.y + offset.y + (listener.dragY % 
cellHeight) + gridView.verticalDropHitscanOffset;
 
                     if (gridView.effectiveLayoutDirection == Qt.RightToLeft) {
                         itemX -= (rows ? gridView.contentX : gridView.originX);
diff -Nru --exclude po 
plasma-desktop-5.8.4/containments/desktop/plugins/folder/foldermodel.cpp 
plasma-desktop-5.8.6/containments/desktop/plugins/folder/foldermodel.cpp
--- plasma-desktop-5.8.4/containments/desktop/plugins/folder/foldermodel.cpp    
2016-11-22 11:22:10.000000000 +0100
+++ plasma-desktop-5.8.6/containments/desktop/plugins/folder/foldermodel.cpp    
2017-02-21 13:09:30.000000000 +0100
@@ -509,7 +509,12 @@
         url.setScheme(QStringLiteral("file"));
     }
 
-    new KRun(url, 0);
+    KRun *run = new KRun(url, 0);
+    // On desktop:/ we want to be able to run .desktop files right away,
+    // otherwise ask for security reasons. We also don't use the targetUrl()
+    // from above since we don't want the resolved /home/foo/Desktop URL.
+    run->setShowScriptExecutionPrompt(item.url().scheme() != 
QLatin1String("desktop")
+                                   || 
item.url().adjusted(QUrl::RemoveFilename).path() != QLatin1String("/"));
 }
 
 void FolderModel::rename(int row, const QString& name)
@@ -723,6 +728,12 @@
 
 void FolderModel::dragSelected(int x, int y)
 {
+    if (m_dragInProgress) {
+        return;
+    }
+
+    m_dragInProgress = true;
+
     // Avoid starting a drag synchronously in a mouse handler or interferes 
with
     // child event filtering in parent items (and thus e.g. press-and-hold 
hand-
     // ling in a containment).
@@ -734,6 +745,7 @@
 void FolderModel::dragSelectedInternal(int x, int y)
 {
     if (!m_viewAdapter || !m_selectionModel->hasSelection()) {
+        m_dragInProgress = false;
         return;
     }
 
@@ -760,7 +772,6 @@
     drag->setMimeData(m_dirModel->mimeData(sourceDragIndexes));
 
     item->grabMouse();
-    m_dragInProgress = true;
     drag->exec(supportedDragActions());
     m_dragInProgress = false;
     item->ungrabMouse();
diff -Nru --exclude po 
plasma-desktop-5.8.4/containments/panel/contents/ui/main.qml 
plasma-desktop-5.8.6/containments/panel/contents/ui/main.qml
--- plasma-desktop-5.8.4/containments/panel/contents/ui/main.qml        
2016-11-22 11:22:10.000000000 +0100
+++ plasma-desktop-5.8.6/containments/panel/contents/ui/main.qml        
2017-02-21 13:09:30.000000000 +0100
@@ -54,20 +54,27 @@
 
 //BEGIN functions
 function addApplet(applet, x, y) {
+    // don't show applet if it choses to be hidden but still make it
+    // accessible in the panelcontroller
+    // Due to the nature of how "visible" propagates in QML, we need to
+    // explicitly set it on the container (so the Layout ignores it)
+    // as well as the applet (so it reliably knows about), otherwise it can
+    // happen that an applet erroneously thinks it's visible, or suddenly
+    // starts thinking that way on teardown (virtual desktop pager)
+    // leading to crashes
+    var visibleBinding = Qt.binding(function() {
+        return applet.status !== PlasmaCore.Types.HiddenStatus || 
(!plasmoid.immutable && plasmoid.userConfiguring);
+    })
+
     var container = appletContainerComponent.createObject(root, {
         applet: applet,
-
-        // don't show applet if it choses to be hidden but still make it
-        // accessible in the panelcontroller
-        visible: Qt.binding(function() {
-            return applet.status !== PlasmaCore.Types.HiddenStatus || 
(!plasmoid.immutable && plasmoid.userConfiguring)
-        })
+        visible: visibleBinding
     });
 
     applet.parent = container;
     applet.anchors.fill = container;
 
-    applet.visible = true;
+    applet.visible = visibleBinding;
 
     // Is there a DND placeholder? Replace it!
     if (dndSpacer.parent === currentLayout) {
diff -Nru --exclude po plasma-desktop-5.8.4/debian/changelog 
plasma-desktop-5.8.6/debian/changelog
--- plasma-desktop-5.8.4/debian/changelog       2016-11-23 18:37:45.000000000 
+0100
+++ plasma-desktop-5.8.6/debian/changelog       2017-03-25 12:26:47.000000000 
+0100
@@ -1,3 +1,15 @@
+plasma-desktop (4:5.8.6-1) unstable; urgency=medium
+
+  * New upstream release (5.8.6)
+
+ -- Maximiliano Curia <[email protected]>  Sat, 25 Mar 2017 12:26:47 +0100
+
+plasma-desktop (4:5.8.5-1) experimental; urgency=medium
+
+  * New upstream release (5.8.5).
+
+ -- Maximiliano Curia <[email protected]>  Fri, 30 Dec 2016 18:46:20 +0100
+
 plasma-desktop (4:5.8.4-1) unstable; urgency=medium
 
   * New upstream release (5.8.4)
diff -Nru --exclude po 
plasma-desktop-5.8.4/desktoppackage/contents/configuration/ConfigurationContainmentAppearance.qml
 
plasma-desktop-5.8.6/desktoppackage/contents/configuration/ConfigurationContainmentAppearance.qml
--- 
plasma-desktop-5.8.4/desktoppackage/contents/configuration/ConfigurationContainmentAppearance.qml
   2016-11-22 11:22:10.000000000 +0100
+++ 
plasma-desktop-5.8.6/desktoppackage/contents/configuration/ConfigurationContainmentAppearance.qml
   2017-02-21 13:09:30.000000000 +0100
@@ -134,7 +134,10 @@
             left: parent.left;
             right: parent.right;
         }
-        property string sourceFile
+        // Bug 360862: if wallpaper has no config, sourceFile will be ""
+        // so we wouldn't load emptyConfig and break all over the place
+        // hence set it to some random value initially
+        property string sourceFile: "tbd"
         onSourceFileChanged: {
             if (sourceFile) {
                 var props = {}
diff -Nru --exclude po plasma-desktop-5.8.4/doc/CMakeLists.txt 
plasma-desktop-5.8.6/doc/CMakeLists.txt
--- plasma-desktop-5.8.4/doc/CMakeLists.txt     2016-11-22 11:23:26.000000000 
+0100
+++ plasma-desktop-5.8.6/doc/CMakeLists.txt     2017-02-21 13:10:39.000000000 
+0100
@@ -1,9 +1,9 @@
-add_subdirectory(en)
-add_subdirectory(de)
-add_subdirectory(it)
-add_subdirectory(sv)
-add_subdirectory(nl)
-add_subdirectory(pt_BR)
 add_subdirectory(uk)
 add_subdirectory(cs)
+add_subdirectory(pt_BR)
+add_subdirectory(sv)
 add_subdirectory(ru)
+add_subdirectory(de)
+add_subdirectory(nl)
+add_subdirectory(it)
+add_subdirectory(en)
diff -Nru --exclude po plasma-desktop-5.8.4/doc/de/plasma-desktop/index.docbook 
plasma-desktop-5.8.6/doc/de/plasma-desktop/index.docbook
--- plasma-desktop-5.8.4/doc/de/plasma-desktop/index.docbook    2016-11-22 
11:23:18.000000000 +0100
+++ plasma-desktop-5.8.6/doc/de/plasma-desktop/index.docbook    2017-02-21 
13:10:31.000000000 +0100
@@ -56,9 +56,9 @@
 >&FDLNotice;</legalnotice>
 
 <date
->2015-07-22</date>
+>2016-08-21</date>
 <releaseinfo
->Plasma 5.4</releaseinfo>
+>Plasma 5.7</releaseinfo>
 
 <abstract>
 <para
@@ -154,8 +154,8 @@
   <mediaobjectco>
     <imageobjectco>
       <areaspec units="other" otherunits="imagemap">
-        <area id="im1" linkends="panel-kickoff" coords="0,519,31,551"/> <!-- 
#1 kickoff launcher #-->
-        <area id="im2" linkends="panel-kickoff" coords="0,735,30,598"/><!-- #1 
kickoff launcher icon -->
+        <area id="im1" linkends="panel-launcher" coords="0,519,31,551"/> <!-- 
#1 kickoff launcher #-->
+        <area id="im2" linkends="panel-launcher" coords="0,735,30,598"/><!-- 
#1 kickoff launcher icon -->
         <!--area linkends="FIXME" coords="37,483,69,516"/--><!-- #2 panel 
icons # -->
         <!--area linkends="FIXME" coords="23,558,83,597"/--><!-- #2 panel 
icons red box -->
         <!--area linkends="FIXME" coords="97,666,137,707"/--><!-- #3 pager # 
-->
@@ -166,13 +166,13 @@
         <area id="im6" linkends="panel-system-tray" 
coords="618,557,728,598"/><!-- #5 system tray red box -->
         <area id="im7" linkends="panel-digital-clock" 
coords="739,534,772,566"/><!-- #6 clock # -->
         <area id="im8" linkends="panel-digital-clock" 
coords="729,573,781,598"/><!-- #6 clock plasmoid -->
-        <area id="im9" linkends="toolboxes" coords="750,477,782,508"/><!-- #7 
panel cashew # -->
-        <area id="im10" linkends="toolboxes" coords="783,573,800,598"/><!-- #7 
panel cashew icon --> 
+        <area id="im9" linkends="panel-toolbox" coords="750,477,782,508"/><!-- 
#7 panel cashew # -->
+        <area id="im10" linkends="panel-toolbox" 
coords="783,573,800,598"/><!-- #7 panel cashew icon --> 
         <!--area linkends="FIXME" coords="733,11,765,44"/--><!-- #8 desktop 
cashew # -->
         <!--area linkends="FIXME" coords="772,0,800,25"/--><!-- #8 desktop 
cashew icon -->
         <!--area linkends="FIXME" coords="374,88,406,119"/--><!-- #9 folder 
view # -->
         <!--area linkends="FIXME" coords="10,18,361,204"/--><!-- #9 folder 
view plasmoid -->
-       <area id = "im11" linkends="panel-kickoff" coords="0,665,40,707"/> <!-- 
#1 kickoff launcher #-->
+       <area id = "im11" linkends="panel-launcher" coords="0,665,40,707"/> 
<!-- #1 kickoff launcher #-->
       </areaspec>
     <imageobject>
       <imagedata fileref="plasma-desktop-annotated.png" format="PNG"/>
@@ -184,7 +184,7 @@
 <orderedlist>
 <listitem
 ><para
->Der Programmstarter. Normalerweise ist das <link linkend="panel-kickoff"
+>Der Programmstarter. Normalerweise ist das <link linkend="panel-launcher"
 >Anwendungs-Starter</link
 >.</para
 ></listitem>
@@ -216,13 +216,15 @@
 ></listitem>
 <listitem
 ><para
->Der <link linkend="toolboxes"
+>Der <link linkend="panel-toolbox"
 >Werkzeugkasten der Kontrollleiste</link
 ></para
 ></listitem>
 <listitem
 ><para
->Der Werkzeugkastens für die Arbeitsfläche</para
+>Der <link linkend="desktop"
+>Werkzeugkasten der Kontrollleiste</link
+></para
 ></listitem>
 <listitem
 ><para
@@ -237,7 +239,27 @@
 <title
 >Die Kontrollleiste</title>
 
-<para id="panel-kickoff"
+<para
+>Die Kontrollleiste beinhaltet einige &plasma;-Miniprogramme. Links finden Sie 
dort den Anwendungsstarter.</para>
+
+<sect2 id="panel-launcher">
+<title
+>Anwendungsstarter</title>
+
+<screenshot>
+<screeninfo
+>Anwendungsstarter</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="application-launcher.png" format="PNG"/>
+    </imageobject>
+      <textobject>
+      <phrase
+>Anwendungsstarter</phrase>
+    </textobject>
+  </mediaobject>
+</screenshot>
+<para
 >Die Kontrollleiste beinhaltet einige &plasma;-Miniprogramme. Von Links an 
 >finden Sie dort den Programmstarter. Mit ihm können Sie unter anderem 
 >Anwendungen starten, kürzlich verwendete Dateien öffnen, KDE beenden und den 
 >Rechner herunterfahren. Das Layout von &kickoff; ist auf den 
 >Hauptanwendungszweck optimiert: das Starten von Anwendungen. Das 
 >Voreingestellte Unterfenster <guilabel
 >Favoriten</guilabel
 > enthält die meist verwendeten Einträge. Zu Beginn werden Sie wahrscheinlich 
 > hauptsächlich im Unterfenster <guilabel
@@ -250,11 +272,60 @@
 >entsperrt</quote
 > werden. Klicken Sie dazu mit der &RMBn; auf die Arbeitsfläche und wählen Sie 
 > aus dem Menü <guilabel
 >Miniprogramme entsperren</guilabel
->. Vielleicht bevorzugen Sie statt dem neuen Kickoff-Menüstil eher das 
traditionelle Startmenü? Dann klicken Sie mit der &RMBn; auf den Start-Knopf 
und wählen aus dem Menü <guimenuitem
+>.</para>
+</sect2>
+
+<sect2 id="panel-menu">
+<title
+>Anwendungsmenü</title>
+
+<para
+>Vielleicht bevorzugen Sie eher das traditionelle Startmenü? Dann klicken Sie 
mit der &RMBn; auf den Start-Knopf und wählen aus dem Menü <guimenuitem
 >Alternativen</guimenuitem
 >. </para>
+<screenshot>
+<screeninfo
+>Anwendungsmenü</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="application-menu.png" format="PNG"/>
+    </imageobject>
+      <textobject>
+      <phrase
+>Anwendungsmenü</phrase>
+    </textobject>
+  </mediaobject>
+</screenshot>
+</sect2>
 
-<para id="panel-taskbar"
+<sect2 id="panel-launcher-settings">
+<title
+>Einstellungen des Anwendungs-Starters</title>
+
+<para
+>Möchten Sie die Einstellungen für das Anwendungsmenü ändern, klicken Sie mit 
der &RMBn; auf den Menüknopf und wählen Sie dann <guimenuitem
+>Einstellungen für Anwendungsmenü</guimenuitem
+>. </para>
+<screenshot>
+<screeninfo
+>Einstellungen des Anwendungs-Starters</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="application-launcher-settings.png" format="PNG"/>
+    </imageobject>
+      <textobject>
+      <phrase
+>Einstellungen des Anwendungs-Starters</phrase>
+    </textobject>
+  </mediaobject>
+</screenshot>
+</sect2>
+
+<sect2 id="panel-taskbar">
+<title
+>Fensterleiste</title>
+
+<para
 >Die Fensterleiste ist ein weiteres Element in der Kontrollleiste. In diesem 
 >Bereich werden alle offenen Fenster aller Arbeitsfläche angezeigt. Klicken 
 >Sie mit der rechten Maustaste auf den Umschalter, dann können Sie mit der 
 >Einstellung <guimenuitem
 >Nur Fenster der aktuellen Arbeitsfläche anzeigen</guimenuitem
 > festlegen, dass nur die Fenster auf der aktuellen Arbeitsfläche angezeigt 
 > werden. Die Textgröße von Fenstereinträgen in der Fensterleiste ist 
 > einstellbar. Sie finden diese Einstellung in den &systemsettings; unter 
 > <menuchoice
@@ -277,8 +348,13 @@
   </mediaobject>
 </screenshot>
 </para>
+</sect2>
+
+<sect2 id="panel-system-tray">
+<title
+>Systemabschnitt der Kontrollleiste</title>
 
-<para id="panel-system-tray"
+<para
 >Ein anderes Standard-Element in der Kontrollleiste ist der  <application
 >Systembereich der Kontrollleiste</application
 >. Dieser dient herkömmlichen Programmen als Andockbereich. Mit einem 
 >Rechtsklick auf den <application
@@ -297,7 +373,13 @@
     </textobject>
   </mediaobject>
 </screenshot>
-<para id="device-notifier"
+</sect2>
+
+<sect2 id="device-notifier">
+<title
+>Geräteüberwachung</title>
+
+<para
 >Ein Standardsymbol im Systemabschnitt der Kontrollleiste ist die <application
 >Geräteüberwachung</application
 >. Wenn Sie beispielsweise eine <acronym
@@ -357,6 +439,11 @@
 >Es gibt auch ein kleines Symbol, das rechts neben jedem Eintrag angezeigt 
 >wird. Es zeigt an, ob das Gerät derzeit eingebunden ist oder nicht. Nur wenn 
 >ein Gerät nicht eingebunden ist, kann es sicher physikalisch vom Rechner 
 >getrennt werden. Wenn man auf das Symbol klickt, wird das Gerät getrennt 
 >und/oder das Medium ausgeworfen, wenn es gerade eingebunden ist. Anderenfalls 
 >wird das Gerät eingebunden. Beachten Sie, dass das Trennen/Auswerfen 
 >möglicherweise misslingt, wenn noch Dateien geöffnet sind, &eg; weil der 
 >Kopiervorgang einer großen Datei noch nicht abgeschlossen ist. In den meisten 
 >Fällen können Sie etwas warten und es noch einmal probieren. Wenn das Trennen 
 >erfolgreich war, wird das durch ein Symbol in der <guilabel
 >Geräteüberwachung</guilabel
 >  angezeigt. </para>
+</sect2>
+
+<sect2 id="panel-hidden">
+<title
+>Ausgeblendete Einträge</title>
 
 <para
 >Üblicherweise enthält der Systemabschnitt der Kontrollleiste weiter Elemente 
 >wie &klipper;, &kmix; &etc;</para>
@@ -369,8 +456,13 @@
 ><imagedata fileref="system-tray-up-arrow.png" format="PNG"/> </imageobject
 ></inlinemediaobject
 >. Dann können Sie die Miniprogramme mit der &LMBn; starten oder mit der 
 >&RMBn; den Einrichtungsdialog öffnen.</para>
+</sect2>
 
-<para id="panel-digital-clock"
+<sect2 id="panel-digital-clock">
+<title
+>Digitale Uhr</title>
+
+<para
 >Ganz rechts in der Kontrollleiste befindet sich die <application
 >digitale Uhr</application
 >. Die Uhr kann die Zeit in verschiedenen Zeitzonen darstellen; ebenso ist die 
 >Größe der Uhr einstellbar. Normalerweise passt sich die Uhr der Größe ihres 
 >Containers an (in diesem Fall der Kontrollleiste). Wenn Sie einstellen, dass 
 >neben der Uhrzeit auch das Datum angezeigt werden soll, so wird dieses mit 
 >der Schrift des Typs <guimenuitem
@@ -378,6 +470,11 @@
 > aus den Systemeinstellungen unter <guilabel
 >Schriftarten</guilabel
 > angezeigt. Der restliche verfügbare Platz wird zur Anzeige der Uhrzeit 
 > verwendet. Schlussendlich entscheiden Sie, wie viele Informationen die Uhr 
 > anzeigen soll und ob es Ihnen so gefällt. Wenn Sie mehr Informationen 
 > anzeigen lassen möchten, so vergrößern Sie bei Bedarf die Kontrollleiste, 
 > oder verschieben Sie die Uhr auf die Arbeitsfläche, wo sie mehr Platz 
 > einnehmen kann. </para>
+</sect2>
+
+<sect2 id="panel-pager">
+<title
+>Arbeitsflächen-Umschalter</title>
 
 <para
 >Als weiteres optionales Symbol finden Sie den <application
@@ -389,7 +486,7 @@
 > ändern, so ändern Sie gleichzeitig auch das Aussehen der Effekte und 
 > Animationen beim Arbeitsflächen-Wechsel. Bei großen Ansichten des 
 > Arbeitsflächen-Umschalters ist es oft sinnvoll, die Einstellung <guimenuitem
 >Fenstersymbole anzeigen</guimenuitem
 > zu aktivieren. </para>
-
+</sect2>
 <!-- other items in a kde compiled from sources -->
 <!-- Activity Manager -->
 <!-- Notifications -->
@@ -397,9 +494,9 @@
 
 </sect1>
 
-<sect1 id="toolboxes">
+<sect1 id="panel-toolbox">
 <title
->Die Kontrollleisten-Einstellungen</title>
+>Werkzeugkasten der Kontrollleiste</title>
 
 <para
 >Wenn Ihre Plasma-Miniprogramme entsperrt sind (klicken Sie dazu mit der 
 >&RMBn; auf die Arbeitsfläche und wählen Sie den passenden Menüeintrag oder 
 >die Kurzwahl <keycombo action="simul"
@@ -408,9 +505,7 @@
 ></keycombo
 >, <keycap
 >L</keycap
->, wenn keine Anwendung den Fokus hat), erscheint an der rechten Seite der 
Kontrollleiste das &plasma;-Logo (es sieht aus wie eine <quote
->Cashewnuss</quote
->). Klicken Sie darauf, so öffnet sich der Einstellungsbereich der 
Kontrollleiste.</para>
+>, wenn keine Anwendung den Fokus hat), erscheint an der rechten Seite der 
Kontrollleiste das &plasma;-Logo. Klicken Sie darauf, so öffnet sich der 
Einstellungsbereich der Kontrollleiste.</para>
 
 <screenshot>
 <screeninfo
@@ -464,6 +559,10 @@
 
 <para
 >Mit einem Rechtsklick auf die Arbeitsfläche erhalten Sie außerdem die 
 >Möglichkeit, das verwendete Hintergrundbild und das Layout einzustellen. 
 >Zusätzliche Hintergrundbilder können Sie über das Internet herunterladen. 
 ></para>
+<para
+>Auf der Seite <guilabel
+>Optimierungen</guilabel
+> können Sie einstellen, ob der Werkzeugkasten für die Arbeitsfläche 
ausgeblendet wird und wie Miniprogramme behandelt werden. </para>
 
 <screenshot>
 <screeninfo
@@ -497,15 +596,56 @@
 
 </sect1>
 
+<sect1 id="folder-view">
+<title
+>Ordneransicht</title>
+<para
+>Das Miniprogramm <guilabel
+>Ordneransicht</guilabel
+> kann benutzt werden, um Einträge eines Ordners wie Dateien und Unterordner 
anzuzeigen. In der Voreinstellung wird der Ordner <filename class="directory"
+>$<envar
+>HOME</envar
+>/Desktop</filename
+> angezeigt. </para>
+<para
+>Sie können einstellen, ob alle Dateien angezeigt werden oder die Ansicht mit 
regulären Ausdrücken, &eg; alle Dateien mit einer bestimmten Erweiterung) oder 
nach Dateityp, &eg; nur Bilder, filtern. </para>
+<para
+>In diesem Miniprogramm sind auch einfache Dateiverwaltungsaufgaben möglich, 
zum Beispiel Verschieben, Kopieren, Ausschneiden und Einfügen. Sie können 
beliebig viele Ordneransichten auf Ihrer Arbeitsfläche verwenden. </para>
+
+<screenshot>
+<screeninfo
+>Ordneransicht</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="folder-view.png" format="PNG"/>
+    </imageobject>
+      <textobject>
+      <phrase
+>Ordneransicht</phrase>
+    </textobject>
+  </mediaobject>
+</screenshot>
+
+<para
+>Wenn Sie das Layout <guilabel
+>Ordneransicht</guilabel
+> in den <guilabel
+>Einstellungen für die Arbeitsfläche</guilabel
+> auswählen, wird die gesamte Arbeitsfläche als Ordneransicht verwendet. 
</para>
+</sect1>
+
 <sect1 id="krunner">
 <title
 >&krunner;</title>
-
 <para
 >&krunner; ist eine vielfältige Mini-Befehlszeile. Hiermit können Sie 
 >Programme starten, Webseiten und Lesezeichen aufrufen, den Rechner 
 >durchsuchen, einfache Berechnungen durchführen und vieles mehr. Die 
 >Mini-Befehlszeile wird über die Tastenkombination <keycombo action="simul"
 >&Alt;<keycap
 >Leertaste</keycap
 ></keycombo
+> oder <keycombo action="simul"
+>&Alt;<keysym
+>F2</keysym
+></keycombo
 > aufgerufen und es öffnet sich der &krunner;-Dialog. Beginnen Sie einfach 
 > damit, etwas einzugeben, und &krunner; wird mit der Suche nach passenden 
 > Anwendungen beginnen, sobald Sie mehr als zwei Zeichen eingegeben haben. 
 > Öffnen Sie den Einstellungen-Dialog von &krunner;, um mehr über die 
 > vielfältigen Möglichkeiten durch Erweiterungen zu erfahren. Wenn &krunner; 
 > Ihnen die Suchergebnisse präsentiert, können Sie mit der Tabulator- und den 
 > Pfeiltasten durch sie navigieren. </para>
 <!-- whitout tab no arrow keys-->
 <screenshot>
@@ -532,15 +672,48 @@
 > zu öffnen, in dem Sie einstellen können, welche Art der Suche in &krunner; 
 > benutzt wird. </para>
 
 <para
+>&krunner; unterstützt <quote
+>Arbeitsflächen-Aktionen</quote
+>, d. h. zusätzliche Aktionen von Anwendungen für häufig benutzte Aufgaben 
oder von der Fensterleiste. Das sind zum Beispiel Aktionen wie das Öffnen eines 
<guilabel
+>Neues Privaten Fensters</guilabel
+> im Webbrowser, <guilabel
+>E-Mail schreiben</guilabel
+> ohne zuerst das E-Mail-Programm zu starten oder Aktionen von &spectacle;. 
</para>
+
+<screenshot>
+<screeninfo
+>Arbeitsflächen-Aktionen in &krunner;</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="krunner-desktop-actions.png" format="PNG"/>
+    </imageobject>
+      <textobject>
+      <phrase
+>Arbeitsflächen-Aktionen in &krunner;</phrase>
+    </textobject>
+  </mediaobject>
+</screenshot>
+
+<para
+>Wenn Sie die Taste <keysym
+>Pfeil runter</keysym
+> in einem leeren &krunner; drücken, dann wird der Verlauf der zuletzt 
gewählten Einträge angezeigt. Nach der Ausführung eines Suchergebnisses wird 
dieser Eintrag in der Liste als erstes Element verschoben, so dass wiederholt 
benutzte Befehle immer in der Liste bleiben. </para>
+<para
+>Entfernen Sie einzelne Einträge in der Liste mit dem Knopf <inlinemediaobject
+><imageobject
+><imagedata fileref="remove.png" format="PNG"/> </imageobject
+></inlinemediaobject
+> oder löschen Sie den gesamten Verlauf in den Einstellungen von &krunner;. 
</para>
+
+<para
 >Wenn Sie wissen möchten, was in Ihrem System vorgeht, so starten Sie mal die 
 ><guibutton
 >Systemüberwachung</guibutton
 > mit dem Kurzbefehl <keycombo action="simul"
 >&Ctrl;&Esc;</keycombo
 >. Sie erhalten eine Liste der Fenster und laufenden Prozesse auf Ihrem 
 >Rechner und haben die Möglichkeit, deren Ausgaben zu überwachen oder Prozesse 
 >zu beenden. </para>
-
 </sect1>
 
-<sect1 id="zooming-user-interface">
+<sect1 id="activities-interface">
 <title
 >Aktivitäten</title>
 
@@ -582,24 +755,6 @@
 
 </sect1>
 
-<!-- print shortcuts settings dialog in branch 4.7)
-Shortcuts for Plasma Desktop Shell
-Action          Shortcut      Global
-Activities ...  Alt+D, Alt+A  Meta+Q
-Activities ...  Alt+D, Alt+A  Meta+Q
-Activity Settings Alt+D, Alt+S
-Add Widgets ...   Alt+D, A
-Lock Widgets      Alt+D, L
-Lock Widgets      Alt+D, L
-Next Widget       Alt+D, N
-Previous Widget   Alt+D, P
-Remove this Activity  Alt+D, Alt+R
-Remove this Widget    Alt+D, R
-Run the Associated Application  Alt+D, T
-Run the Associated Application  Alt+D, T
-Widget Settings   Alt+D, S
-Why these duplicated entries?
--->
 <sect1 id="shortcuts">
 <title
 >Kurzbefehle</title>
@@ -665,37 +820,36 @@
 ></listitem>
 </varlistentry>
 
-<!-- zoom still valid in 4.7?
 <varlistentry>
 <term
 ><keycombo action="simul"
->&Alt;<keycap
->D</keycap
+><keysym
+>Meta</keysym
+><keycap
+>=</keycap
 ></keycombo
->, <keycap
->-</keycap
 ></term>
 <listitem
 ><para
->Zoom out</para
+>Verkleinern</para
 ></listitem>
 </varlistentry>
 
 <varlistentry>
 <term
 ><keycombo action="simul"
->&Alt;<keycap
->D</keycap
+><keysym
+>Meta</keysym
+><keycap
+>-</keycap
 ></keycombo
->, <keycap
->+</keycap
 ></term>
 <listitem
 ><para
->Zoom in</para
+>Vergrößern</para
 ></listitem>
 </varlistentry>
--->
+
 <varlistentry>
 <term
 ><keycombo action="simul"
@@ -788,8 +942,9 @@
 ></term>
 <listitem
 ><para
->Aktivitäten einrichten</para
-></listitem>
+>Arbeitsflächen-Einstellungen</para
+></listitem
+> <!--FIXME also Panel Settings?-->
 </varlistentry>
 
 <varlistentry>
@@ -827,7 +982,7 @@
 ></term>
 <listitem
 ><para
->Übersichtsseite anzeigen</para
+>Arbeitsfläche anzeigen</para
 ></listitem>
 </varlistentry>
 
@@ -846,55 +1001,21 @@
 ></listitem>
 </varlistentry>
 
-<!-- still valid in 4.7?
 <varlistentry>
 <term
 ><keycombo action="simul"
->&Ctrl;<keycap
->]</keycap
-></keycombo
-></term>
-<listitem
-><para
->Next containment</para
-></listitem>
-</varlistentry>
-
-<varlistentry>
-<term
-><keycombo action="simul"
->&Ctrl;<keycap
->[</keycap
-></keycombo
+><keysym
+>Meta</keysym
+>&Tab;</keycombo
 ></term>
 <listitem
 ><para
->Previous containment</para
+>Öffnet die Aktivitätenleiste</para
 ></listitem>
 </varlistentry>
 
-<varlistentry>
-<term>
-<keycombo action="simul">
-&Shift;&Ctrl;<keycap
->S</keycap>
-</keycombo>
-</term>
-<listitem
-><para
->Containment settings</para
-></listitem>
-</varlistentry>
--->
 </variablelist>
 
-<para
->Um diese Kurzbefehle zu ändern, klicken Sie mit der &LMBn; auf den <guilabel
->Werkzeugkasten</guilabel
-> der Arbeitsfläche, das Symbol in der oberen rechten Ecke der Arbeitsfläche. 
Wählen Sie dann <guilabel
->Tastenkürzel einrichten</guilabel
->.</para>
-
 </sect1>
 
 </chapter>
diff -Nru --exclude po 
plasma-desktop-5.8.4/imports/activitymanager/sortedactivitiesmodel.cpp 
plasma-desktop-5.8.6/imports/activitymanager/sortedactivitiesmodel.cpp
--- plasma-desktop-5.8.4/imports/activitymanager/sortedactivitiesmodel.cpp      
2016-11-22 11:22:10.000000000 +0100
+++ plasma-desktop-5.8.6/imports/activitymanager/sortedactivitiesmodel.cpp      
2017-02-21 13:09:30.000000000 +0100
@@ -20,6 +20,9 @@
 // Self
 #include "sortedactivitiesmodel.h"
 
+// C++
+#include <functional>
+
 // Qt
 #include <QColor>
 #include <QObject>
diff -Nru --exclude po plasma-desktop-5.8.4/kcms/colors/colors.desktop 
plasma-desktop-5.8.6/kcms/colors/colors.desktop
--- plasma-desktop-5.8.4/kcms/colors/colors.desktop     2016-11-22 
11:22:10.000000000 +0100
+++ plasma-desktop-5.8.6/kcms/colors/colors.desktop     2017-02-21 
13:09:30.000000000 +0100
@@ -105,51 +105,19 @@
 Name[zh_TW]=顏色
 
 Comment=Application Color Scheme
-Comment[ar]=مخطّط ألوان التّطبيقات
-Comment[ast]=Esquema de colores d'aplicaciones
-Comment[bs]=Šema boja aplikacije
 Comment[ca]=Esquema de color de les aplicacions
-Comment[ca@valencia]=Esquema de color de les aplicacions
-Comment[cs]=Barevný motiv aplikací
-Comment[da]=Farvetema for programmer
-Comment[de]=Farbschema für Anwendungen
-Comment[el]=Θέμα χρωμάτων εφαρμογών
-Comment[en_GB]=Application Colour Scheme
-Comment[es]=Esquema de color de las aplicaciones
-Comment[et]=Rakenduste värviskeem
-Comment[fi]=Ohjelmien väriteema
-Comment[fr]=Thème de couleur des applications
-Comment[gl]=Esquema de cores do programa
-Comment[he]=ערכות צבעי אפליקציות
-Comment[hu]=Alkalmazások színsémája
-Comment[id]=Skema Warna Aplikasi
-Comment[is]=Litastef forrits
+Comment[es]=Esquema de color de la aplicación
 Comment[it]=Schema di colore delle applicazioni
-Comment[ja]=アプリケーションカラースキーム
-Comment[ko]=프로그램 색 배열
-Comment[lt]=Programos spalvų schema
-Comment[mr]=अनुप्रयोग रंग शैली
 Comment[nb]=Fargeoppsett for program
-Comment[nds]=Programm-Klöörschema
-Comment[nl]=Kleurenschema van toepassing
 Comment[nn]=Fargeoppsett for program
-Comment[pa]=ਐਪਲੀਕੇਸ਼ਨ ਰੰਗ ਸਕੀਮ
-Comment[pl]=Zestaw kolorów programów
-Comment[pt]=Esquema de Cores das Aplicações
-Comment[pt_BR]=Esquema de cores dos aplicativos
-Comment[ru]=Цветовая схема для приложений
-Comment[sk]=Farebná schéma aplikácie
-Comment[sl]=Barvne sheme programov
+Comment[pt]=Esquema de Cores da Aplicação
 Comment[sr]=Шема боја у програмима
 Comment[sr@ijekavian]=Шема боја у програмима
 Comment[sr@ijekavianlatin]=Šema boja u programima
 Comment[sr@latin]=Šema boja u programima
 Comment[sv]=Färgschema för program
-Comment[tr]=Uygulama Renk Şeması
 Comment[uk]=Схема кольорів програм
 Comment[x-test]=xxApplication Color Schemexx
-Comment[zh_CN]=应用程序配色
-Comment[zh_TW]=應用程式色彩機制
 
 X-KDE-Keywords=colors,colours,scheme,contrast,Widget colors,Color Scheme,color 
style,color theme
 X-KDE-Keywords[ar]=لون,ألوان,مخطّط,مخطط,تباين,ألوان الودجات,مخطّط ألوان,مخطط 
ألوان,نمط اللون,سمة اللون
diff -Nru --exclude po 
plasma-desktop-5.8.4/kcms/colors/org.kde.kcolorschemeeditor.desktop 
plasma-desktop-5.8.6/kcms/colors/org.kde.kcolorschemeeditor.desktop
--- plasma-desktop-5.8.4/kcms/colors/org.kde.kcolorschemeeditor.desktop 
2016-11-22 11:22:10.000000000 +0100
+++ plasma-desktop-5.8.6/kcms/colors/org.kde.kcolorschemeeditor.desktop 
2017-02-21 13:09:30.000000000 +0100
@@ -10,15 +10,21 @@
 GenericName[es]=Editor de esquemas de color
 GenericName[et]=Värviskeemi redaktor
 GenericName[fi]=Väriteemamuokkain
+GenericName[fr]=Éditeur de schémas de couleurs
 GenericName[it]=Editor dello schema di colore
 GenericName[ko]=색 배열 편집기
 GenericName[nl]=Bewerker van kleurenschema
 GenericName[nn]=Rediger fargeoppsett
 GenericName[pl]=Edytor zestawu kolorów
 GenericName[pt]=Editor de esquemas de cores
+GenericName[pt_BR]=Editor de esquema de cores
 GenericName[ru]=Редактор цветовых схем
 GenericName[sk]=Editor farebnej schémy
 GenericName[sl]=Urejevalnik barvnih shem
+GenericName[sr]=Уређивач шема боја
+GenericName[sr@ijekavian]=Уређивач шема боја
+GenericName[sr@ijekavianlatin]=Uređivač šema boja
+GenericName[sr@latin]=Uređivač šema boja
 GenericName[sv]=Färgschemaeditor
 GenericName[uk]=Редактор схем кольорів
 GenericName[x-test]=xxColor scheme editorxx
@@ -35,15 +41,21 @@
 Name[es]=KColorSchemeEditor
 Name[et]=KColorSchemeEditor
 Name[fi]=KColorSchemeEditor
+Name[fr]=Éditeur de schémas de couleurs
 Name[it]=KColorSchemeEditor
 Name[ko]=KColorSchemeEditor
 Name[nl]=KColorSchemeEditor
 Name[nn]=KColorSchemeEditor
 Name[pl]=KColorSchemeEditor
 Name[pt]=KColorSchemeEditor
+Name[pt_BR]=KColorSchemeEditor
 Name[ru]=KColorSchemeEditor
 Name[sk]=KColorSchemeEditor
 Name[sl]=KColorSchemeEditor
+Name[sr]=К‑уређивач‑шеме‑боја
+Name[sr@ijekavian]=К‑уређивач‑шеме‑боја
+Name[sr@ijekavianlatin]=K‑uređivač‑šeme‑boja
+Name[sr@latin]=K‑uređivač‑šeme‑boja
 Name[sv]=Färgschemaeditor
 Name[uk]=KColorSchemeEditor
 Name[x-test]=xxKColorSchemeEditorxx
@@ -60,15 +72,21 @@
 Comment[es]=Editor de esquemas de color de Plasma
 Comment[et]=Plasma värviskeemi redaktor
 Comment[fi]=Plasma-väriteemamuokkain
+Comment[fr]=Éditeur de schémas de couleurs de Plasma
 Comment[it]=Editor dello schema di colore di Plasma
 Comment[ko]=Plasma 색 배열 편집기
 Comment[nl]=Bewerker van kleurenschema van Plasma
 Comment[nn]=Redigering av fargeoppsett for Plasma
 Comment[pl]=Edytor zestawu kolorów
 Comment[pt]=Editor de esquemas de cores do Plasma
+Comment[pt_BR]=Editor de esquema de cores do Plasma
 Comment[ru]=Редактор цветовых схем для Plasma
 Comment[sk]=Editor farebnej schémy Plasma
 Comment[sl]=Urejevalnik barvnih shem za Plasmo
+Comment[sr]=Плазма уређивач шема боја
+Comment[sr@ijekavian]=Плазма уређивач шема боја
+Comment[sr@ijekavianlatin]=Plasma uređivač šema boja
+Comment[sr@latin]=Plasma uređivač šema boja
 Comment[sv]=Plasma färgschemaeditor
 Comment[uk]=Редактор схем кольорів Плазми
 Comment[x-test]=xxPlasma color scheme editorxx
diff -Nru --exclude po 
plasma-desktop-5.8.4/kcms/componentchooser/componentservices/kcm_filemanager.desktop
 
plasma-desktop-5.8.6/kcms/componentchooser/componentservices/kcm_filemanager.desktop
--- 
plasma-desktop-5.8.4/kcms/componentchooser/componentservices/kcm_filemanager.desktop
        2016-11-22 11:22:10.000000000 +0100
+++ 
plasma-desktop-5.8.6/kcms/componentchooser/componentservices/kcm_filemanager.desktop
        2017-02-21 13:09:30.000000000 +0100
@@ -61,7 +61,7 @@
 Comment[cs]=Na tomto místě si můžete nastavit výchozího správce souborů. 
Položky v hlavní nabídce K a všechny aplikace, ve kterých lze otevřít složky, 
budou tohoto správce používat.
 Comment[csb]=Tuwò mòżne wëbrac domëslnegò menadżera lopków. Wpisënczi w K menu 
ë wszëtczé programë KDE, w jaczich mòżesz òtmëkac katalodżi, bãdą ùżëwac tegò 
menadżera.
 Comment[da]=Her kan du indstille din standard filhåndtering. Punkter i 
K-menuen og alle KDE-programmer hvori du kan åbne mapper, vil bruge denne 
filhåndtering.
-Comment[de]=Hier können Sie Ihren Standard-Dateimanager festlegen. Die 
Menüeinträge im K-Menü und alle KDE-Programme, in denen Sie Ordner aufrufen 
können, verwenden diesen Dateimanager.
+Comment[de]=Hier können Sie Ihre Standard-Dateiverwaltung festlegen. Die 
Menüeinträge im K-Menü und alle KDE-Programme, in denen Sie Ordner aufrufen 
können, verwenden diese Dateiverwaltung.
 Comment[el]=Εδώ μπορείτε να διαμορφώσετε τον προκαθορισμένο διαχειριστή 
αρχείων. Οι καταχωρήσεις στο μενού Κ και όλες οι εφαρμογές του KDE στις οποίες 
μπορείτε να ανοίγετε φακέλους θα χρησιμοποιούν αυτόν τον διαχειριστή αρχείων.
 Comment[en_GB]=Here you can configure your default file manager. The entries 
in the K menu and all KDE applications in which you can open folders will use 
this file manager.
 Comment[eo]=Ĉi tie vi povas agordi vian aprioran dosieradministrilon. La eroj 
en la K-menuo kaj ĉiuj aplikaĵoj de KDE, en kiu vi povas malfermi dosierujojn, 
uzos ĉi tiun dosieradministrilon.
diff -Nru --exclude po plasma-desktop-5.8.4/kcms/desktoptheme/kcm.cpp 
plasma-desktop-5.8.6/kcms/desktoptheme/kcm.cpp
--- plasma-desktop-5.8.4/kcms/desktoptheme/kcm.cpp      2016-11-22 
11:22:10.000000000 +0100
+++ plasma-desktop-5.8.6/kcms/desktoptheme/kcm.cpp      2017-02-21 
13:09:30.000000000 +0100
@@ -164,6 +164,16 @@
     }
 }
 
+Q_INVOKABLE int KCMDesktopTheme::indexOf(const QString &themeName) const
+{
+    for (int i = 0; i < m_model->rowCount(); ++i) {
+        if (m_model->data(m_model->index(i, 0), PluginNameRole).toString() == 
themeName) {
+            return i;
+        }
+    }
+    return -1;
+}
+
 void KCMDesktopTheme::load()
 {
     m_pendingRemoval.clear();
diff -Nru --exclude po plasma-desktop-5.8.4/kcms/desktoptheme/kcm.h 
plasma-desktop-5.8.6/kcms/desktoptheme/kcm.h
--- plasma-desktop-5.8.4/kcms/desktoptheme/kcm.h        2016-11-22 
11:22:10.000000000 +0100
+++ plasma-desktop-5.8.6/kcms/desktoptheme/kcm.h        2017-02-21 
13:09:30.000000000 +0100
@@ -58,6 +58,8 @@
 
     Q_INVOKABLE void applyPlasmaTheme(QQuickItem *item, const QString 
&themeName);
 
+    Q_INVOKABLE int indexOf(const QString &themeName) const;
+
 Q_SIGNALS:
     void selectedPluginChanged(const QString &plugin);
     void showInfoMessage(const QString &infoMessage);
diff -Nru --exclude po 
plasma-desktop-5.8.4/kcms/desktoptheme/package/contents/ui/main.qml 
plasma-desktop-5.8.6/kcms/desktoptheme/package/contents/ui/main.qml
--- plasma-desktop-5.8.4/kcms/desktoptheme/package/contents/ui/main.qml 
2016-11-22 11:22:10.000000000 +0100
+++ plasma-desktop-5.8.6/kcms/desktoptheme/package/contents/ui/main.qml 
2017-02-21 13:09:30.000000000 +0100
@@ -48,6 +48,11 @@
                 cellWidth: Math.floor(grid.width / 
Math.max(Math.floor(grid.width / (units.gridUnit * 12)), 3))
                 cellHeight: cellWidth / 1.6
 
+                onCountChanged: {
+                    grid.currentIndex = kcm.indexOf(kcm.selectedPlugin);
+                    grid.positionViewAtIndex(grid.currentIndex, 
GridView.Visible)
+                }
+
                 delegate: Item {
                     property bool isLocal : model.isLocal
                     property string pluginName : model.pluginName
@@ -165,7 +170,7 @@
                 enabled: grid.currentItem && grid.currentItem.isLocal
                 onClicked: {
                     kcm.removeTheme(grid.currentItem.pluginName);
-                    updateSelectedPluginTimer.restart();
+                    kcm.selectedPlugin = grid.currentItem.pluginName
                 }
             }
 
@@ -188,12 +193,6 @@
     }
 
     Timer {
-        id: updateSelectedPluginTimer
-        interval: 100
-        onTriggered: kcm.selectedPlugin = grid.currentItem.pluginName
-    }
-
-    Timer {
         id: hideInfoMessageTimer
         interval: 20 * 1000
         onTriggered: {
diff -Nru --exclude po plasma-desktop-5.8.4/kcms/keys/keys.desktop 
plasma-desktop-5.8.6/kcms/keys/keys.desktop
--- plasma-desktop-5.8.4/kcms/keys/keys.desktop 2016-11-22 11:22:10.000000000 
+0100
+++ plasma-desktop-5.8.6/kcms/keys/keys.desktop 2017-02-21 13:09:30.000000000 
+0100
@@ -32,6 +32,7 @@
 Name[pa]=ਗਲੋਬਲ ਸ਼ਾਰਟਕੱਟ
 Name[pl]=Skróty globalne
 Name[pt]=Atalhos Globais
+Name[pt_BR]=Atalhos globais
 Name[ru]=Глобальные комбинации клавиш
 Name[sk]=Globálne skratky
 Name[sl]=Splošne bližnjice
diff -Nru --exclude po plasma-desktop-5.8.4/kcms/ksplash/kcm.cpp 
plasma-desktop-5.8.6/kcms/ksplash/kcm.cpp
--- plasma-desktop-5.8.4/kcms/ksplash/kcm.cpp   2016-11-22 11:22:10.000000000 
+0100
+++ plasma-desktop-5.8.6/kcms/ksplash/kcm.cpp   2017-02-21 13:09:30.000000000 
+0100
@@ -133,6 +133,7 @@
         row->setData(pkg.filePath("previews", QStringLiteral("splash.png")), 
ScreenhotRole);
         m_model->appendRow(row);
     }
+    setNeedsSave(false);
 }
 
 
diff -Nru --exclude po plasma-desktop-5.8.4/kcms/lookandfeel/kcm.cpp 
plasma-desktop-5.8.6/kcms/lookandfeel/kcm.cpp
--- plasma-desktop-5.8.4/kcms/lookandfeel/kcm.cpp       2016-11-22 
11:22:10.000000000 +0100
+++ plasma-desktop-5.8.6/kcms/lookandfeel/kcm.cpp       2017-02-21 
13:09:30.000000000 +0100
@@ -134,12 +134,23 @@
     const bool firstTime = m_selectedPlugin.isNull();
     m_selectedPlugin = plugin;
     emit selectedPluginChanged();
+    emit selectedPluginIndexChanged();
 
     if (!firstTime) {
         setNeedsSave(true);
     }
 }
 
+int KCMLookandFeel::selectedPluginIndex() const
+{
+    for (int i = 0; i < m_model->rowCount(); ++i) {
+        if (m_model->data(m_model->index(i, 0), PluginNameRole).toString() == 
m_selectedPlugin) {
+            return i;
+        }
+    }
+    return -1;
+}
+
 QList<Plasma::Package> KCMLookandFeel::availablePackages(const QString 
&component)
 {
     QList<Plasma::Package> packages;
@@ -230,6 +241,7 @@
 
         m_model->appendRow(row);
     }
+    setNeedsSave(false);
 }
 
 
diff -Nru --exclude po plasma-desktop-5.8.4/kcms/lookandfeel/kcm.h 
plasma-desktop-5.8.6/kcms/lookandfeel/kcm.h
--- plasma-desktop-5.8.4/kcms/lookandfeel/kcm.h 2016-11-22 11:22:10.000000000 
+0100
+++ plasma-desktop-5.8.6/kcms/lookandfeel/kcm.h 2017-02-21 13:09:30.000000000 
+0100
@@ -38,6 +38,7 @@
     Q_OBJECT
     Q_PROPERTY(QStandardItemModel *lookAndFeelModel READ lookAndFeelModel 
CONSTANT)
     Q_PROPERTY(QString selectedPlugin READ selectedPlugin WRITE 
setSelectedPlugin NOTIFY selectedPluginChanged)
+    Q_PROPERTY(int selectedPluginIndex READ selectedPluginIndex NOTIFY 
selectedPluginIndexChanged)
 
     Q_PROPERTY(bool applyColors READ applyColors WRITE setApplyColors NOTIFY 
applyColorsChanged)
     Q_PROPERTY(bool applyWidgetStyle READ applyWidgetStyle WRITE 
setApplyWidgetStyle NOTIFY applyWidgetStyleChanged)
@@ -74,6 +75,8 @@
     QString selectedPlugin() const;
     void setSelectedPlugin(const QString &plugin);
 
+    int selectedPluginIndex() const;
+
     //Setters of the various theme pieces
     void setWidgetStyle(const QString &style);
     void setColors(const QString &scheme, const QString &colorFile);
@@ -117,6 +120,7 @@
     void applyWindowSwitcherChanged();
     void applyDesktopSwitcherChanged();
     void resetDefaultLayoutChanged();
+    void selectedPluginIndexChanged();
 
 private:
     QDir cursorThemeDir(const QString &theme, const int depth);
diff -Nru --exclude po 
plasma-desktop-5.8.4/kcms/lookandfeel/package/contents/ui/main.qml 
plasma-desktop-5.8.6/kcms/lookandfeel/package/contents/ui/main.qml
--- plasma-desktop-5.8.4/kcms/lookandfeel/package/contents/ui/main.qml  
2016-11-22 11:22:10.000000000 +0100
+++ plasma-desktop-5.8.6/kcms/lookandfeel/package/contents/ui/main.qml  
2017-02-21 13:09:30.000000000 +0100
@@ -28,6 +28,7 @@
 import org.kde.kcm 1.0
 
 Item {
+    id: root
     implicitWidth: units.gridUnit * 20
     implicitHeight: units.gridUnit * 20
 
@@ -48,12 +49,17 @@
             GridView {
                 id: grid
                 model: kcm.lookAndFeelModel
-                cellWidth: Math.floor(grid.width / 
Math.max(Math.floor(grid.width / (units.gridUnit*12)), 3))
+                cellWidth: Math.floor(root.width / 
Math.max(Math.floor(root.width / (units.gridUnit*12)), 3)) - units.gridUnit
                 cellHeight: cellWidth / 1.6
 
+                onCountChanged: {
+                    grid.currentIndex = kcm.selectedPluginIndex;
+                    grid.positionViewAtIndex(grid.currentIndex, 
GridView.Visible)
+                }
                 delegate: Item {
                     width: grid.cellWidth
                     height: grid.cellHeight
+
                     Rectangle {
                         anchors {
                             fill: parent
@@ -63,15 +69,10 @@
                             target: kcm
                             onSelectedPluginChanged: {
                                 if (kcm.selectedPlugin == model.pluginName) {
-                                    makeCurrentTimer.pendingIndex = index
+                                    grid.currentIndex = index
                                 }
                             }
                         }
-                        Component.onCompleted: {
-                            if (kcm.selectedPlugin == model.pluginName) {
-                                makeCurrentTimer.pendingIndex = index
-                            }
-                        }
                         QIconItem {
                             id: icon
                             anchors.centerIn: parent
@@ -167,16 +168,6 @@
                         }
                     }
                 }
-                Timer {
-                    id: makeCurrentTimer
-                    interval: 100
-                    repeat: false
-                    property int pendingIndex
-                    onPendingIndexChanged: makeCurrentTimer.restart()
-                    onTriggered: {
-                        grid.currentIndex = pendingIndex
-                    }
-                }
             }
         }
         QtControls.Label {
@@ -203,12 +194,6 @@
             Item {
                 Layout.fillWidth: true
             }
-            QtControls.Button {
-                anchors.right: parent.right
-                text: i18n("Get New Looks...")
-                iconName: "get-hot-new-stuff"
-                onClicked: kcm.getNewStuff();
-            }
         }
     }
 
diff -Nru --exclude po plasma-desktop-5.8.4/kcms/solid_actions/SolidActions.cpp 
plasma-desktop-5.8.6/kcms/solid_actions/SolidActions.cpp
--- plasma-desktop-5.8.4/kcms/solid_actions/SolidActions.cpp    2016-11-22 
11:22:10.000000000 +0100
+++ plasma-desktop-5.8.6/kcms/solid_actions/SolidActions.cpp    2017-02-21 
13:09:30.000000000 +0100
@@ -28,6 +28,8 @@
 #include <KConfigGroup>
 #include <KStandardGuiItem>
 
+#include <KIO/Global>
+
 #include <QComboBox>
 #include <QPushButton>
 #include <QDebug>
@@ -119,6 +121,7 @@
     // Lets get a desktop file
     QString internalName = enteredName; // copy the name the user entered -> 
we will be making mods
     internalName.replace(QChar(' '), QChar('-'), Qt::CaseSensitive); // 
replace spaces with dashes
+    internalName = KIO::encodeFileName(internalName);
 
     QString filePath = 
QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + 
"/solid/actions/"; // Get the location on disk for "data"
     if (!QDir().exists(filePath)) {
diff -Nru --exclude po 
plasma-desktop-5.8.4/kcms/standard_actions/standard_actions.desktop 
plasma-desktop-5.8.6/kcms/standard_actions/standard_actions.desktop
--- plasma-desktop-5.8.4/kcms/standard_actions/standard_actions.desktop 
2016-11-22 11:22:10.000000000 +0100
+++ plasma-desktop-5.8.6/kcms/standard_actions/standard_actions.desktop 
2017-02-21 13:09:30.000000000 +0100
@@ -32,6 +32,7 @@
 Name[pa]=ਸਟੈਂਡਰਡ ਸ਼ਾਰਟਕੱਟ
 Name[pl]=Standardowe skróty
 Name[pt]=Atalhos-Padrão
+Name[pt_BR]=Atalhos padrão
 Name[ru]=Комбинации клавиш в приложениях
 Name[sk]=Štandardné skratky
 Name[sl]=Standardne bližnjice
diff -Nru --exclude po plasma-desktop-5.8.4/kcms/style/kcmstyle.notifyrc 
plasma-desktop-5.8.6/kcms/style/kcmstyle.notifyrc
--- plasma-desktop-5.8.4/kcms/style/kcmstyle.notifyrc   2016-11-22 
11:22:10.000000000 +0100
+++ plasma-desktop-5.8.6/kcms/style/kcmstyle.notifyrc   2017-02-21 
13:09:30.000000000 +0100
@@ -130,7 +130,7 @@
 Name[nn]=Menylinje er endra
 Name[pa]=ਮੇਨੂਬਾਰ ਬਦਲੀ
 Name[pl]=Pasek menu uległ zmianie
-Name[pt]=O menu foi alterado
+Name[pt]=Menu modificado
 Name[pt_BR]=Barra de menus alterada
 Name[ro]=Bara de meniu s-a schimbat
 Name[ru]=Панель меню изменена
@@ -179,7 +179,7 @@
 Comment[nn]=Endringar i innstillingane vil berre trå i kraft etter omstart av 
program
 Comment[pa]=ਸੈਟਿੰਗ ਕੇਵਲ ਐਪਲੀਕੇਸ਼ਨ ਮੁੜ-ਚਾਲੂ ਕਰਨ ਦੇ ਬਾਅਦ ਹੀ ਲਾਗੂ ਹੋਣਗੀਆਂ
 Comment[pl]=Zmiany będą widoczne dopiero po ponownym uruchomieniu programu
-Comment[pt]=As mudanças de configuração farão efeito ao reiniciar a aplicação
+Comment[pt]=As mudanças na configuração só farão efeito ao reiniciar a 
aplicação
 Comment[pt_BR]=As alterações na configuração somente terão efeito ao reiniciar 
o aplicativo
 Comment[ro]=Modificările opțiunilor vor intra în vigoare după repornirea 
aplicației
 Comment[ru]=Изменения параметров вступят в силу только после перезапуска 
приложения
diff -Nru --exclude po 
plasma-desktop-5.8.4/kcms/translations/translations.desktop 
plasma-desktop-5.8.6/kcms/translations/translations.desktop
--- plasma-desktop-5.8.4/kcms/translations/translations.desktop 2016-11-22 
11:22:10.000000000 +0100
+++ plasma-desktop-5.8.6/kcms/translations/translations.desktop 2017-02-21 
13:09:30.000000000 +0100
@@ -31,6 +31,7 @@
 Name[pa]=ਭਾਸ਼ਾ
 Name[pl]=Język
 Name[pt]=Língua
+Name[pt_BR]=Idioma
 Name[ru]=Язык
 Name[sk]=Jazyk
 Name[sl]=Jezik
diff -Nru --exclude po 
plasma-desktop-5.8.4/kcms/useraccount/kcm_useraccount.desktop 
plasma-desktop-5.8.6/kcms/useraccount/kcm_useraccount.desktop
--- plasma-desktop-5.8.4/kcms/useraccount/kcm_useraccount.desktop       
2016-11-22 11:22:10.000000000 +0100
+++ plasma-desktop-5.8.6/kcms/useraccount/kcm_useraccount.desktop       
2017-02-21 13:09:30.000000000 +0100
@@ -74,7 +74,7 @@
 
X-KDE-Keywords[nn]=passord,e-post,brukarnamn,organisasjon,namn,påloggingsbilete,fjes,ansikt,foto,ekkomodus
 X-KDE-Keywords[pa]=ਪਾਸਵਰਡ, ਈਮੇਲ,ਨਾਂ,ਸੰਗਠਨ,ਅਸਲ ਨਾਂ,ਲਾਗਇਨ,ਚਿੱਤਰ,ਚਿਹਰਾ,ਦੁਹਰਾਉਣ ਮੋਡ
 X-KDE-Keywords[pl]=hasło,email,nazwa,organizacja,rzeczywista nazwa,obraz 
loginu,twarz,tryb echo
-X-KDE-Keywords[pt]=senha,e-mail,nome,organização,nome verdadeiro,imagem de 
autenticação,cara,modo de eco
+X-KDE-Keywords[pt]=senha,e-mail,nome,organização,nome verdadeiro,imagem da 
conta,cara,modo do eco
 X-KDE-Keywords[pt_BR]=senha,e-mail,email,nome,organização,nome verdadeiro,nome 
real,imagem de autenticação,face,rosto,modo de eco
 X-KDE-Keywords[ru]=password,email,name,organization,realname,login 
image,face,echo mode,пароль,адрес электронной почты,аватара,электронная 
почта,почта,настоящее имя,имя,фотография,изображение пользователя,ввод 
пароля,организация,место работы,логин,изображение при входе,картинка при 
входе,картинка пользователя
 X-KDE-Keywords[sk]=heslo,e-mail,meno,organizácia,skutočné 
meno,obrázok,tvár,režim výpisu
@@ -119,7 +119,7 @@
 Comment[nn]=Brukarinformasjon, som passord, namn og e-postadresse
 Comment[pa]=ਵਰਤੋਂਕਾਰ ਜਾਣਕਾਰੀ ਜਿਵੇਂ ਕਿ ਪਾਸਵਰਡ, ਨਾਂ ਅਤੇ ਈ-ਮੇਲ
 Comment[pl]=Informacje o koncie użytkownika: hasło, imię i nazwisko, e-mail 
itd.
-Comment[pt]=Informações do utilizador, como a senha, o nome e o e-mail
+Comment[pt]=A informação do utilizador, como a senha, o nome e o e-mail
 Comment[pt_BR]=Informações do usuário, como a senha, nome e e-mail
 Comment[ru]=Сведения о пользователе, такие как пароль, имя и адрес электронной 
почты
 Comment[se]=Geavaheaddjedieđut nugo beassansátni, namma ja e-boasta
diff -Nru --exclude po plasma-desktop-5.8.4/org.kde.plasmashell.metainfo.xml 
plasma-desktop-5.8.6/org.kde.plasmashell.metainfo.xml
--- plasma-desktop-5.8.4/org.kde.plasmashell.metainfo.xml       2016-11-22 
11:22:10.000000000 +0100
+++ plasma-desktop-5.8.6/org.kde.plasmashell.metainfo.xml       2017-02-21 
13:09:30.000000000 +0100
@@ -33,23 +33,11 @@
   <name xml:lang="zh-CN">KDE Plasma 桌面</name>
   <name xml:lang="zh-TW">KDE Plasma 桌面</name>
   <summary>KDE's complete desktop experience. Simple by default, powerful when 
needed.</summary>
-  <summary xml:lang="ar">تجربة سطح مكتب كدي الكاملة. بسيط افتراضيًّا وفعّال 
عند الحاجة.</summary>
   <summary xml:lang="ca">Experiència completa d'escriptori del KDE. Senzilla 
per omissió, potent quan cal.</summary>
-  <summary xml:lang="ca-valencia">Experiència completa d'escriptori del KDE. 
Senzilla per omissió, potent quan cal.</summary>
-  <summary xml:lang="da">KDE's komplette desktop-oplevelse. Simpelt som 
standard, kraftfuldt når det behøves.</summary>
-  <summary xml:lang="el">Η πλήρης εμπειρία επιφάνειας εργασίας από το KDE. 
Προκαθορισμένα απλή, πανίσχυρη όταν χρειάζεται.</summary>
-  <summary xml:lang="en-GB">KDE's complete desktop experience. Simple by 
default, powerful when needed.</summary>
-  <summary xml:lang="es">Experiencia completa de escritorio de KDE. Sencillo 
por omisión, potente cuando es necesario.</summary>
-  <summary xml:lang="et">KDE täielik töölauakogemus. Vaikimisi lihtne, 
vajadusel kõiki vajadusi rahuldav</summary>
-  <summary xml:lang="fi">KDE:n täydellinen työpöytäkokemus. Oletuksena 
yksinkertainen, tarvittaessa tehokas.</summary>
+  <summary xml:lang="es">Experiencia completa del escritorio de KDE. Sencillo 
por omisión, potente cuando es necesario.</summary>
   <summary xml:lang="it">L'esperienza completa del desktop da KDE. Semplice 
nelle scelte predefinite, potente quando c'è bisogno.</summary>
-  <summary xml:lang="ko">KDE 데스크톱 사용자 환경입니다. 첫 시작은 간단하게, 필요할 때에는 
강력하게.</summary>
-  <summary xml:lang="nl">De complete bureaubladvaring van KDE. Standaard 
eenvoudig, krachtig indien nodig.</summary>
   <summary xml:lang="nn">Komplett KDE-oppleving. Enkel som standard og kraftig 
når nødvendig.</summary>
-  <summary xml:lang="pl">Całkowite wrażenie pulpitu KDE. Prosty z natury, 
zaawansowany gdy potrzeba.</summary>
   <summary xml:lang="pt">A experiência completa de trabalho do KDE. Simples 
por omissão, poderosa quando necessário.</summary>
-  <summary xml:lang="sk">Kompletná pracovná plocha KDE. Predvolene jednoduchá, 
pri potrebe silná.</summary>
-  <summary xml:lang="sl">KDE-jeva popolna namizna izkušnja. Privzeto 
preprosta, a tudi zmogljiva, če je to zahtevano.</summary>
   <summary xml:lang="sr">КДЕ‑ово потпуно искуство површи. Подразумевано 
једноставно, моћно кад затреба.</summary>
   <summary xml:lang="sr-Latn">KDE‑ovo potpuno iskustvo površi. Podrazumevano 
jednostavno, moćno kad zatreba.</summary>
   <summary xml:lang="sr-ijekavian">КДЕ‑ово потпуно искуство површи. 
Подразумевано једноставно, моћно кад затреба.</summary>
@@ -57,8 +45,6 @@
   <summary xml:lang="sv">KDE:s fullständiga skrivbordsupplevelse. Normalt 
enkel, kraftfull vid behov.</summary>
   <summary xml:lang="uk">Повноцінне стільничне середовище KDE. Типово просте, 
але потужне, якщо це потрібно.</summary>
   <summary xml:lang="x-test">xxKDE's complete desktop experience. Simple by 
default, powerful when needed.xx</summary>
-  <summary xml:lang="zh-CN">KDE 的完整桌面体验。默认简单,需要时强大。</summary>
-  <summary xml:lang="zh-TW">KDE 的完整桌面體驗。預設簡潔,需要時足夠強大。</summary>
   <url type="homepage">https://www.kde.org/workspaces/plasmadesktop/</url>
   <url 
type="bugtracker">https://bugs.kde.org/enter_bug.cgi?format=guided&amp;product=plasmashell</url>
   <project_group>KDE</project_group>

Reply via email to