[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#858702: unblock: plasma-desktop/4:5.8.6-1



Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
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 <maxy@debian.org>  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 <maxy@debian.org>  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 to: