Revert "Moved qml pages of toolbox to a loader"

This reverts commit 838949dac7.
This commit is contained in:
Jaime van Kessel 2018-12-06 14:12:35 +01:00
parent 2602d5bf02
commit 54def4edee
2 changed files with 62 additions and 52 deletions

View file

@ -44,31 +44,36 @@ Window
top: header.bottom top: header.bottom
bottom: footer.top bottom: footer.top
} }
// TODO: This could be improved using viewFilter instead of viewCategory
Loader ToolboxLoadingPage
{ {
anchors.fill:parent id: viewLoading
source: visible: toolbox.viewCategory != "installed" && toolbox.viewPage == "loading"
{ }
if(toolbox.viewCategory == "installed") ToolboxErrorPage
{ {
return "ToolboxInstalledPage.qml" id: viewErrored
} visible: toolbox.viewCategory != "installed" && toolbox.viewPage == "errored"
}
switch (toolbox.viewPage) ToolboxDownloadsPage
{ {
case "loading": id: viewDownloads
return "ToolboxLoadingPage.qml" visible: toolbox.viewCategory != "installed" && toolbox.viewPage == "overview"
case "errored": }
return "ToolboxErrorPage.qml" ToolboxDetailPage
case "overview": {
return "ToolboxDownloadsPage.qml" id: viewDetail
case "detail": visible: toolbox.viewCategory != "installed" && toolbox.viewPage == "detail"
return "ToolboxDetailPage.qml" }
case "author": ToolboxAuthorPage
return "ToolboxAuthorPage.qml" {
} id: viewAuthor
} visible: toolbox.viewCategory != "installed" && toolbox.viewPage == "author"
}
ToolboxInstalledPage
{
id: installedPluginList
visible: toolbox.viewCategory == "installed"
} }
} }
@ -90,7 +95,7 @@ Window
licenseDialog.show(); licenseDialog.show();
} }
} }
ToolboxLicenseDialog ToolboxLicenseDialog
{ {
id: licenseDialog id: licenseDialog

View file

@ -622,39 +622,44 @@ class Toolbox(QObject, Extension):
if reply.operation() == QNetworkAccessManager.GetOperation: if reply.operation() == QNetworkAccessManager.GetOperation:
for response_type, url in self._request_urls.items(): for response_type, url in self._request_urls.items():
if reply.url() != url: if reply.url() == url:
continue if reply.attribute(QNetworkRequest.HttpStatusCodeAttribute) == 200:
try:
json_data = json.loads(bytes(reply.readAll()).decode("utf-8"))
if reply.attribute(QNetworkRequest.HttpStatusCodeAttribute) == 200: # Check for errors:
try: if "errors" in json_data:
json_data = json.loads(bytes(reply.readAll()).decode("utf-8")) for error in json_data["errors"]:
except json.decoder.JSONDecodeError: Logger.log("e", "%s", error["title"])
Logger.log("w", "Received invalid JSON for %s.", response_type) return
break
# Check for errors: # Create model and apply metadata:
if "errors" in json_data: if not self._models[response_type]:
for error in json_data["errors"]: Logger.log("e", "Could not find the %s model.", response_type)
Logger.log("e", "%s", error["title"]) break
return
self._server_response_data[response_type] = json_data["data"]
self._models[response_type].setMetadata(self._server_response_data[response_type])
self._server_response_data[response_type] = json_data["data"] if response_type is "packages":
self._models[response_type].setMetadata(json_data["data"]) self._models[response_type].setFilter({"type": "plugin"})
self.reBuildMaterialsModels()
self.reBuildPluginsModels()
elif response_type is "authors":
self._models[response_type].setFilter({"package_types": "material"})
self._models[response_type].setFilter({"tags": "generic"})
if response_type is "packages": self.metadataChanged.emit()
self._models["packages"].setFilter({"type": "plugin"})
self.reBuildMaterialsModels()
self.reBuildPluginsModels()
elif response_type is "authors":
self._models["authors"].setFilter({"tags": "generic"})
self.metadataChanged.emit() if self.isLoadingComplete():
self.setViewPage("overview")
if self.isLoadingComplete(): except json.decoder.JSONDecodeError:
self.setViewPage("overview") Logger.log("w", "Received invalid JSON for %s.", response_type)
else: break
self.setViewPage("errored") else:
self.resetDownload() self.setViewPage("errored")
self.resetDownload()
else: else:
# Ignore any operation that is not a get operation # Ignore any operation that is not a get operation
pass pass