Browse Source

CURA-5035 Simplify selection

Ian Paschal 6 years ago
parent
commit
f2301eec31

+ 1 - 1
plugins/Toolbox/resources/qml/ToolboxAuthorPage.qml

@@ -9,7 +9,7 @@ import UM 1.1 as UM
 Item
 {
     id: base
-    property var details: toolbox.authorsModel.items[0]
+    property var details: toolbox.viewSelection
     anchors.fill: parent
     ToolboxBackColumn
     {

+ 1 - 1
plugins/Toolbox/resources/qml/ToolboxDetailPage.qml

@@ -9,7 +9,7 @@ import UM 1.1 as UM
 Item
 {
     id: base
-    property var details: toolbox.packagesModel.items[0]
+    property var details: toolbox.viewSelection
     anchors.fill: parent
     width: parent.width
     ToolboxBackColumn

+ 2 - 9
plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml

@@ -88,22 +88,15 @@ Item
         }
         onClicked:
         {
+            toolbox.viewSelection = model
             switch(toolbox.viewCategory)
             {
                 case "material":
-                    console.log("OKAY FILTER BY AUTHOR", model.name)
-                    toolbox.viewSelection = model.name
                     toolbox.viewPage = "author"
-                    console.log(toolbox)
-                    var name = model.name
-                    toolbox.filterModelByProp("authors", "name", name)
-                    toolbox.filterModelByProp("packages", "author_name", name)
-                    console.log(toolbox)
+                    toolbox.filterModelByProp("packages", "author_name", model.name)
                     break
                 default:
-                    toolbox.viewSelection = model.id
                     toolbox.viewPage = "detail"
-                    toolbox.filterModelByProp("authors", "name", model.author_name)
                     toolbox.filterModelByProp("packages", "id", model.id)
                     break
             }

+ 1 - 4
plugins/Toolbox/resources/qml/ToolboxDownloadsShowcaseTile.qml

@@ -64,18 +64,15 @@ Item
         anchors.fill: parent
         onClicked:
         {
+            toolbox.viewSelection = model
             switch(toolbox.viewCategory)
             {
                 case "material":
-                    toolbox.viewSelection = model.name
                     toolbox.viewPage = "author"
-                    toolbox.filterModelByProp("authors", "name", model.name)
                     toolbox.filterModelByProp("packages", "author_name", model.name)
                     break
                 default:
-                    toolbox.viewSelection = model.id
                     toolbox.viewPage = "detail"
-                    toolbox.filterModelByProp("authors", "name", model.author_name)
                     toolbox.filterModelByProp("packages", "id", model.id)
                     break
             }

+ 0 - 2
plugins/Toolbox/resources/qml/ToolboxHeader.qml

@@ -28,7 +28,6 @@ Item
             onClicked:
             {
                 toolbox.filterModelByProp("packages", "type", "plugin")
-                toolbox.filterModelByProp("authors", "type", "plugin")
                 toolbox.viewCategory = "plugin"
                 toolbox.viewPage = "overview"
             }
@@ -39,7 +38,6 @@ Item
             active: toolbox.viewCategory == "material"
             onClicked:
             {
-                toolbox.filterModelByProp("packages", "type", "material")
                 toolbox.filterModelByProp("authors", "type", "material")
                 toolbox.viewCategory = "material"
                 toolbox.viewPage = "overview"

+ 6 - 4
plugins/Toolbox/src/Toolbox.py

@@ -122,7 +122,7 @@ class Toolbox(QObject, Extension):
         # View selection defines what is currently selected and should be
         # used in filtering. This could be an author name (if _view_page is set
         # to "author" or a plugin name if it is set to "detail").
-        self._view_selection = ""
+        self._view_selection = None
 
         # Active package refers to which package is currently being downloaded,
         # installed, or otherwise modified.
@@ -553,11 +553,13 @@ class Toolbox(QObject, Extension):
     def viewPage(self) -> str:
         return self._view_page
 
-    def setViewSelection(self, selection: str = ""):
+    def setViewSelection(self, selection: dict):
+        selection.setParent(self)
         self._view_selection = selection
         self.viewChanged.emit()
-    @pyqtProperty(str, fset = setViewSelection, notify = viewChanged)
-    def viewSelection(self) -> str:
+    @pyqtProperty(QObject, fset = setViewSelection, notify = viewChanged)
+    def viewSelection(self) -> dict:
+        print(dir(self._view_selection))
         return self._view_selection