From 3f700e5d0c81bd68dfe94030c880f3b1dbfaea54 Mon Sep 17 00:00:00 2001 From: "j.spijker@ultimaker.com" Date: Tue, 2 Nov 2021 14:33:53 +0100 Subject: [PATCH] Only show Footer when the packagelist is paginated It doesn't make sense to show a footer when items are retrieved in one go. Except when an error occurs. Contributes to CURA-8558 --- plugins/Marketplace/LocalPackageList.py | 2 ++ plugins/Marketplace/PackageList.py | 5 +++++ plugins/Marketplace/resources/qml/Packages.qml | 3 ++- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/plugins/Marketplace/LocalPackageList.py b/plugins/Marketplace/LocalPackageList.py index f71c5e4f06..44eaac9a0d 100644 --- a/plugins/Marketplace/LocalPackageList.py +++ b/plugins/Marketplace/LocalPackageList.py @@ -5,6 +5,7 @@ from PyQt5.QtCore import pyqtSlot, Qt from typing import TYPE_CHECKING from UM.i18n import i18nCatalog +from UM.Logger import Logger from cura.CuraApplication import CuraApplication @@ -23,6 +24,7 @@ class LocalPackageList(PackageList): def __init__(self, parent: "QObject" = None) -> None: super().__init__(parent) self._application = CuraApplication.getInstance() + self._has_footer = False @pyqtSlot() def updatePackages(self) -> None: diff --git a/plugins/Marketplace/PackageList.py b/plugins/Marketplace/PackageList.py index 00532313f0..de07e5e2fb 100644 --- a/plugins/Marketplace/PackageList.py +++ b/plugins/Marketplace/PackageList.py @@ -22,6 +22,7 @@ class PackageList(ListModel): self.addRoleName(self.PackageRole, "package") self._is_loading = False self._has_more = False + self._has_footer = True @pyqtSlot() def updatePackages(self) -> None: @@ -85,3 +86,7 @@ class PackageList(ListModel): :return: An error message, if any, or an empty string if everything went okay. """ return self._error_message + + @pyqtProperty(bool, constant = True) + def hasFooter(self) -> bool: + return self._has_footer diff --git a/plugins/Marketplace/resources/qml/Packages.qml b/plugins/Marketplace/resources/qml/Packages.qml index e5414e3f67..8ab241e784 100644 --- a/plugins/Marketplace/resources/qml/Packages.qml +++ b/plugins/Marketplace/resources/qml/Packages.qml @@ -71,7 +71,8 @@ ScrollView footer: Item { width: parent.width - height: UM.Theme.getSize("card").height + packagesListview.spacing + height: model.hasFooter || packages.model.errorMessage != "" ? UM.Theme.getSize("card").height + packagesListview.spacing : 0 + visible: model.hasFooter || packages.model.errorMessage != "" Button { id: loadMoreButton