Move most models out of dictionary

CURA-6006
This commit is contained in:
Jaime van Kessel 2018-12-05 14:03:32 +01:00
parent 07d210483c
commit a52f866f81

View file

@ -70,21 +70,25 @@ class Toolbox(QObject, Extension):
self._server_response_data = { self._server_response_data = {
"authors": [], "authors": [],
"packages": [], "packages": [],
"plugins_installed": [],
"materials_installed": []
} # type: Dict[str, List[Any]] } # type: Dict[str, List[Any]]
# Models: # Models:
self._models = { self._models = {
"authors": AuthorsModel(self), "authors": AuthorsModel(self),
"packages": PackagesModel(self), "packages": PackagesModel(self),
"plugins_showcase": PackagesModel(self),
"plugins_available": PackagesModel(self),
"plugins_installed": PackagesModel(self),
"materials_showcase": AuthorsModel(self),
"materials_available": AuthorsModel(self),
"materials_installed": PackagesModel(self),
"materials_generic": PackagesModel(self)
} # type: Dict[str, ListModel] } # type: Dict[str, ListModel]
self._plugins_showcase_model = PackagesModel(self)
self._plugins_available_model = PackagesModel(self)
self._plugins_installed_model = PackagesModel(self)
self._materials_showcase_model = AuthorsModel(self)
self._materials_available_model = AuthorsModel(self)
self._materials_installed_model = PackagesModel(self)
self._materials_generic_model = PackagesModel(self)
# These properties are for keeping track of the UI state: # These properties are for keeping track of the UI state:
# ---------------------------------------------------------------------- # ----------------------------------------------------------------------
# View category defines which filter to use, and therefore effectively # View category defines which filter to use, and therefore effectively
@ -302,12 +306,11 @@ class Toolbox(QObject, Extension):
self._old_plugin_metadata = {k: v for k, v in self._old_plugin_metadata.items() if k in self._old_plugin_ids} self._old_plugin_metadata = {k: v for k, v in self._old_plugin_metadata.items() if k in self._old_plugin_ids}
self._server_response_data["plugins_installed"] = all_packages["plugin"] + list(self._old_plugin_metadata.values()) self._server_response_data["plugins_installed"] = all_packages["plugin"] + list(self._old_plugin_metadata.values())
self._models["plugins_installed"].setMetadata(self._server_response_data["plugins_installed"]) self._plugins_installed_model.setMetadata(self._server_response_data["plugins_installed"])
self.metadataChanged.emit() self.metadataChanged.emit()
if "material" in all_packages: if "material" in all_packages:
self._server_response_data["materials_installed"] = all_packages["material"] self._server_response_data["materials_installed"] = all_packages["material"]
# TODO: ADD MATERIALS HERE ONCE MATERIALS PORTION OF TOOLBOX IS LIVE self._materials_installed_model.setMetadata(all_packages["material"])
self._models["materials_installed"].setMetadata(self._server_response_data["materials_installed"])
self.metadataChanged.emit() self.metadataChanged.emit()
@pyqtSlot(str) @pyqtSlot(str)
@ -751,31 +754,31 @@ class Toolbox(QObject, Extension):
@pyqtProperty(QObject, constant=True) @pyqtProperty(QObject, constant=True)
def pluginsShowcaseModel(self) -> PackagesModel: def pluginsShowcaseModel(self) -> PackagesModel:
return cast(PackagesModel, self._models["plugins_showcase"]) return self._plugins_showcase_model
@pyqtProperty(QObject, constant=True) @pyqtProperty(QObject, constant=True)
def pluginsAvailableModel(self) -> PackagesModel: def pluginsAvailableModel(self) -> PackagesModel:
return cast(PackagesModel, self._models["plugins_available"]) return self._plugins_available_model
@pyqtProperty(QObject, constant=True) @pyqtProperty(QObject, constant=True)
def pluginsInstalledModel(self) -> PackagesModel: def pluginsInstalledModel(self) -> PackagesModel:
return cast(PackagesModel, self._models["plugins_installed"]) return self._plugins_installed_model
@pyqtProperty(QObject, constant=True) @pyqtProperty(QObject, constant=True)
def materialsShowcaseModel(self) -> AuthorsModel: def materialsShowcaseModel(self) -> AuthorsModel:
return cast(AuthorsModel, self._models["materials_showcase"]) return self._materials_showcase_model
@pyqtProperty(QObject, constant=True) @pyqtProperty(QObject, constant=True)
def materialsAvailableModel(self) -> AuthorsModel: def materialsAvailableModel(self) -> AuthorsModel:
return cast(AuthorsModel, self._models["materials_available"]) return self._materials_available_model
@pyqtProperty(QObject, constant=True) @pyqtProperty(QObject, constant=True)
def materialsInstalledModel(self) -> PackagesModel: def materialsInstalledModel(self) -> PackagesModel:
return cast(PackagesModel, self._models["materials_installed"]) return self._materials_installed_model
@pyqtProperty(QObject, constant=True) @pyqtProperty(QObject, constant=True)
def materialsGenericModel(self) -> PackagesModel: def materialsGenericModel(self) -> PackagesModel:
return cast(PackagesModel, self._models["materials_generic"]) return self._materials_generic_model
# Filter Models: # Filter Models:
# -------------------------------------------------------------------------- # --------------------------------------------------------------------------
@ -830,9 +833,9 @@ class Toolbox(QObject, Extension):
processed_authors.append(author["author_id"]) processed_authors.append(author["author_id"])
self._models["materials_showcase"].setMetadata(materials_showcase_metadata) self._materials_showcase_model.setMetadata(materials_showcase_metadata)
self._models["materials_available"].setMetadata(materials_available_metadata) self._materials_available_model.setMetadata(materials_available_metadata)
self._models["materials_generic"].setMetadata(materials_generic_metadata) self._materials_generic_model.setMetadata(materials_generic_metadata)
def reBuildPluginsModels(self) -> None: def reBuildPluginsModels(self) -> None:
plugins_showcase_metadata = [] plugins_showcase_metadata = []
@ -845,5 +848,5 @@ class Toolbox(QObject, Extension):
else: else:
plugins_available_metadata.append(item) plugins_available_metadata.append(item)
self._models["plugins_showcase"].setMetadata(plugins_showcase_metadata) self._plugins_showcase_model.setMetadata(plugins_showcase_metadata)
self._models["plugins_available"].setMetadata(plugins_available_metadata) self._plugins_available_model.setMetadata(plugins_available_metadata)