diff --git a/plugins/Toolbox/resources/qml/ToolboxAuthorPage.qml b/plugins/Toolbox/resources/qml/ToolboxAuthorPage.qml index 2c723ce4d6..a19ab513eb 100644 --- a/plugins/Toolbox/resources/qml/ToolboxAuthorPage.qml +++ b/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 { diff --git a/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml b/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml index cdd15f2ce4..ab2debbfe9 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml +++ b/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 diff --git a/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml b/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml index 60183eadbe..20124100ba 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml +++ b/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 } diff --git a/plugins/Toolbox/resources/qml/ToolboxDownloadsShowcaseTile.qml b/plugins/Toolbox/resources/qml/ToolboxDownloadsShowcaseTile.qml index dbe56dbd9d..4cc2a01c61 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDownloadsShowcaseTile.qml +++ b/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 } diff --git a/plugins/Toolbox/resources/qml/ToolboxHeader.qml b/plugins/Toolbox/resources/qml/ToolboxHeader.qml index 12dd1b36f0..75740982d9 100644 --- a/plugins/Toolbox/resources/qml/ToolboxHeader.qml +++ b/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" diff --git a/plugins/Toolbox/src/Toolbox.py b/plugins/Toolbox/src/Toolbox.py index 38d333d4eb..fdc089ae2d 100644 --- a/plugins/Toolbox/src/Toolbox.py +++ b/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