CURA-5137 Adding a loading page while the data is not yet ready.

This commit is contained in:
Diego Prado Gesto 2018-04-04 18:20:49 +02:00
parent 20feabbb06
commit 2fe2c71754
2 changed files with 17 additions and 9 deletions

View file

@ -14,6 +14,7 @@ import UM 1.1 as UM
Window
{
id: base
property bool dataReady: manager.dataReady
title: catalog.i18nc("@title:tab", "Toolbox");
modality: Qt.ApplicationModal
width: 800 * screenScaleFactor
@ -40,20 +41,25 @@ Window
top: topBar.bottom
bottom: bottomBar.top
}
ToolboxLoading
{
id: loading
visible: !dataReady && manager.currentView != "installed"
}
ToolboxDownloadsPage
{
id: viewDownloads
visible: manager.currentView != "installed" && manager.detailView == ""
visible: dataReady && manager.currentView != "installed" && manager.detailView == ""
}
ToolboxDetailsPage
{
id: viewDetail
visible: manager.currentView != "installed" && manager.detailView != ""
visible: dataReady && manager.currentView != "installed" && manager.detailView != ""
}
ToolboxInstalledPage
{
id: installedPluginList
visible: manager.currentView == "installed"
visible: dataReady && manager.currentView == "installed"
}
}
ToolboxShadow

View file

@ -48,7 +48,7 @@ class Toolbox(QObject, Extension):
# Nowadays can be 'plugins', 'materials' or 'installed'
self._current_view = "plugins"
self._detail_view = False
self._detail_view = ""
self._restart_required = False
@ -291,18 +291,17 @@ class Toolbox(QObject, Extension):
def setCurrentView(self, view = "plugins"):
self._current_view = view
self._detail_view = False
self.viewChanged.emit()
@pyqtProperty(str, fset = setCurrentView, notify = viewChanged)
def currentView(self):
return self._current_view
def setDetailView(self, item = False):
self._detail_view = item
def setDetailView(self, detail_view = ""):
self._detail_view = detail_view
self.detailViewChanged.emit()
@pyqtProperty(bool, fset = setDetailView, notify = detailViewChanged)
@pyqtProperty(str, fset = setDetailView, notify = detailViewChanged)
def detailView(self):
return self._detail_view
@ -328,6 +327,10 @@ class Toolbox(QObject, Extension):
def packagesModel(self):
return self._packages_model
@pyqtProperty(bool, notify = packagesMetadataChanged)
def dataReady(self):
return self._packages_model is not None
def _checkCanUpgrade(self, id, version):
# TODO: This could maybe be done more efficiently using a dictionary...
@ -392,7 +395,6 @@ class Toolbox(QObject, Extension):
if not self._packages_model:
self._packages_model = CuraPackageModel()
self._packages_model.setPackagesMetaData(self._packages_metadata)
# self._plugin_registry.addExternalPlugins(self._packages_metadata)
self.packagesMetadataChanged.emit()
except json.decoder.JSONDecodeError:
Logger.log("w", "Received an invalid print job state message: Not valid JSON.")