[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [plasma-desktop] applets/kickoff/package/contents/ui: [Kickoff] Lazy load more
From:       Kai Uwe Broulik <kde () privat ! broulik ! de>
Date:       2016-09-05 10:03:11
Message-ID: E1bgqkB-0006cF-MZ () code ! kde ! org
[Download RAW message or body]

Git commit 1ff59def8c6dca908855c32d49f6dbce671e0bc0 by Kai Uwe Broulik.
Committed on 05/09/2016 at 10:02.
Pushed by broulik into branch 'master'.

[Kickoff] Lazy load more

Neither the apps model nor favorites model is needed initially.
Move them to the fullRepresentation so they're only loaded as needed.

Differential Revision: https://phabricator.kde.org/D2656

M  +41   -0    applets/kickoff/package/contents/ui/FullRepresentation.qml
M  +16   -47   applets/kickoff/package/contents/ui/Kickoff.qml

http://commits.kde.org/plasma-desktop/1ff59def8c6dca908855c32d49f6dbce671e0bc0

diff --git a/applets/kickoff/package/contents/ui/FullRepresentation.qml \
b/applets/kickoff/package/contents/ui/FullRepresentation.qml index 8ac029c..de597be \
                100644
--- a/applets/kickoff/package/contents/ui/FullRepresentation.qml
+++ b/applets/kickoff/package/contents/ui/FullRepresentation.qml
@@ -27,6 +27,8 @@ import org.kde.plasma.components 2.0 as PlasmaComponents
 import org.kde.plasma.extras 2.0 as PlasmaExtras
 import org.kde.kquickcontrolsaddons 2.0
 
+import org.kde.plasma.private.kicker 0.1 as Kicker
+
 Item {
     id: root
     Layout.minimumWidth: units.gridUnit * 26
@@ -36,6 +38,8 @@ Item {
     property bool switchTabsOnHover: plasmoid.configuration.switchTabsOnHover
     property Item currentView: mainTabGroup.currentTab.decrementCurrentIndex ? \
mainTabGroup.currentTab : mainTabGroup.currentTab.item  
+    property QtObject globalFavorites: rootModelFavorites
+
     state: "Normal"
     focus: true
 
@@ -47,6 +51,43 @@ Item {
         root.state = "Normal";
     }
 
+    Kicker.AppsModel {
+        id: rootModel
+
+        appletInterface: plasmoid
+
+        appNameFormat: plasmoid.configuration.showAppsByName ? 0 : 1
+        flat: false
+        showSeparators: false
+
+        favoritesModel: Kicker.FavoritesModel {
+            id: rootModelFavorites
+            favorites: plasmoid.configuration.favorites
+
+            onFavoritesChanged: {
+                plasmoid.configuration.favorites = favorites;
+            }
+        }
+    }
+
+    Kicker.RunnerModel {
+        id: runnerModel
+
+        appletInterface: plasmoid
+
+        runners: {
+            var runners = ["services", "places"];
+
+            if (plasmoid.configuration.useExtraRunners) {
+                runners = runners.concat(plasmoid.configuration.runners);
+            }
+            return runners;
+        }
+        mergeResults: true
+
+        favoritesModel: globalFavorites
+    }
+
     PlasmaCore.DataSource {
         id: pmSource
         engine: "powermanagement"
diff --git a/applets/kickoff/package/contents/ui/Kickoff.qml \
b/applets/kickoff/package/contents/ui/Kickoff.qml index 00e3d8a..c77c4de 100644
--- a/applets/kickoff/package/contents/ui/Kickoff.qml
+++ b/applets/kickoff/package/contents/ui/Kickoff.qml
@@ -40,61 +40,30 @@ Item {
 
     Plasmoid.icon: plasmoid.configuration.icon
 
-    property QtObject globalFavorites: rootModelFavorites
+    Plasmoid.compactRepresentation: MouseArea {
+        hoverEnabled: true
+        onClicked: plasmoid.expanded = !plasmoid.expanded
 
-    property Item dragSource: null
-
-    Kicker.AppsModel {
-        id: rootModel
-
-        appletInterface: plasmoid
-
-        appNameFormat: plasmoid.configuration.showAppsByName ? 0 : 1
-        flat: false
-        showSeparators: false
-
-        favoritesModel: Kicker.FavoritesModel {
-            id: rootModelFavorites
-
-            Component.onCompleted: {
-                favorites = plasmoid.configuration.favorites;
-            }
+        DropArea {
+            id: compactDragArea
+            anchors.fill: parent
         }
-    }
 
-    Connections {
-        target: globalFavorites
-
-        onFavoritesChanged: {
-            plasmoid.configuration.favorites = target.favorites;
+        Timer {
+            id: expandOnDragTimer
+            interval: 250
+            running: compactDragArea.containsDrag
+            onTriggered: plasmoid.expanded = true
         }
-    }
 
-    Connections {
-        target: plasmoid.configuration
-
-        onFavoritesChanged: {
-            globalFavorites.favorites = plasmoid.configuration.favorites;
+        PlasmaCore.IconItem {
+            anchors.fill: parent
+            source: plasmoid.icon
+            active: parent.containsMouse || compactDragArea.containsDrag
         }
     }
 
-    Kicker.RunnerModel {
-        id: runnerModel
-
-        appletInterface: plasmoid
-
-        runners: {
-            var runners = ["services", "places"];
-
-            if (plasmoid.configuration.useExtraRunners) {
-                runners = runners.concat(plasmoid.configuration.runners);
-            }
-            return runners;
-        }
-        mergeResults: true
-
-        favoritesModel: globalFavorites
-    }
+    property Item dragSource: null
 
     Kicker.DragHelper {
         id: dragHelper


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic