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
This commit is contained in:
j.spijker@ultimaker.com 2021-11-02 14:33:53 +01:00 committed by Jelle Spijker
parent c4c99f6657
commit 3f700e5d0c
No known key found for this signature in database
GPG key ID: 6662DC033BE6B99A
3 changed files with 9 additions and 1 deletions

View file

@ -5,6 +5,7 @@ from PyQt5.QtCore import pyqtSlot, Qt
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
from UM.i18n import i18nCatalog from UM.i18n import i18nCatalog
from UM.Logger import Logger
from cura.CuraApplication import CuraApplication from cura.CuraApplication import CuraApplication
@ -23,6 +24,7 @@ class LocalPackageList(PackageList):
def __init__(self, parent: "QObject" = None) -> None: def __init__(self, parent: "QObject" = None) -> None:
super().__init__(parent) super().__init__(parent)
self._application = CuraApplication.getInstance() self._application = CuraApplication.getInstance()
self._has_footer = False
@pyqtSlot() @pyqtSlot()
def updatePackages(self) -> None: def updatePackages(self) -> None:

View file

@ -22,6 +22,7 @@ class PackageList(ListModel):
self.addRoleName(self.PackageRole, "package") self.addRoleName(self.PackageRole, "package")
self._is_loading = False self._is_loading = False
self._has_more = False self._has_more = False
self._has_footer = True
@pyqtSlot() @pyqtSlot()
def updatePackages(self) -> None: 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: An error message, if any, or an empty string if everything went okay.
""" """
return self._error_message return self._error_message
@pyqtProperty(bool, constant = True)
def hasFooter(self) -> bool:
return self._has_footer

View file

@ -71,7 +71,8 @@ ScrollView
footer: Item footer: Item
{ {
width: parent.width 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 Button
{ {
id: loadMoreButton id: loadMoreButton