mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-07 06:57:28 -06:00
Added typing
Contributes to: CURA-8587
This commit is contained in:
parent
09709ede8b
commit
bd2f270803
3 changed files with 15 additions and 16 deletions
|
@ -9,11 +9,10 @@ from typing import Dict, Optional, TYPE_CHECKING
|
||||||
from UM.i18n import i18nCatalog
|
from UM.i18n import i18nCatalog
|
||||||
from UM.Qt.ListModel import ListModel
|
from UM.Qt.ListModel import ListModel
|
||||||
from UM.TaskManagement.HttpRequestScope import JsonDecoratorScope
|
from UM.TaskManagement.HttpRequestScope import JsonDecoratorScope
|
||||||
from UM.TaskManagement.HttpRequestManager import HttpRequestData , HttpRequestManager
|
from UM.TaskManagement.HttpRequestManager import HttpRequestData, HttpRequestManager
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
|
|
||||||
from cura.CuraApplication import CuraApplication
|
from cura.CuraApplication import CuraApplication
|
||||||
from cura.API.Account import Account
|
|
||||||
from cura import CuraPackageManager
|
from cura import CuraPackageManager
|
||||||
from cura.UltimakerCloud.UltimakerCloudScope import UltimakerCloudScope # To make requests to the Ultimaker API with correct authorization.
|
from cura.UltimakerCloud.UltimakerCloudScope import UltimakerCloudScope # To make requests to the Ultimaker API with correct authorization.
|
||||||
|
|
||||||
|
@ -36,7 +35,7 @@ class PackageList(ListModel):
|
||||||
def __init__(self, parent: Optional["QObject"] = None) -> None:
|
def __init__(self, parent: Optional["QObject"] = None) -> None:
|
||||||
super().__init__(parent)
|
super().__init__(parent)
|
||||||
self._manager: CuraPackageManager = CuraApplication.getInstance().getPackageManager()
|
self._manager: CuraPackageManager = CuraApplication.getInstance().getPackageManager()
|
||||||
self._account: Account = CuraApplication.getInstance().getCuraAPI().account
|
self._account = CuraApplication.getInstance().getCuraAPI().account
|
||||||
self._error_message = ""
|
self._error_message = ""
|
||||||
self.addRoleName(self.PackageRole, "package")
|
self.addRoleName(self.PackageRole, "package")
|
||||||
self._is_loading = False
|
self._is_loading = False
|
||||||
|
@ -113,7 +112,7 @@ class PackageList(ListModel):
|
||||||
:return: ``True`` if a Footer should be displayed in the ListView, e.q.: paginated lists, ``False`` Otherwise"""
|
:return: ``True`` if a Footer should be displayed in the ListView, e.q.: paginated lists, ``False`` Otherwise"""
|
||||||
return self._has_footer
|
return self._has_footer
|
||||||
|
|
||||||
def _connectManageButtonSignals(self, package):
|
def _connectManageButtonSignals(self, package: PackageModel) -> None:
|
||||||
package.installPackageTriggered.connect(self.installPackage)
|
package.installPackageTriggered.connect(self.installPackage)
|
||||||
package.uninstallPackageTriggered.connect(self.uninstallPackage)
|
package.uninstallPackageTriggered.connect(self.uninstallPackage)
|
||||||
package.updatePackageTriggered.connect(self.installPackage)
|
package.updatePackageTriggered.connect(self.installPackage)
|
||||||
|
@ -126,7 +125,7 @@ class PackageList(ListModel):
|
||||||
|
|
||||||
canInstallChanged = pyqtSignal(str, bool)
|
canInstallChanged = pyqtSignal(str, bool)
|
||||||
|
|
||||||
def download(self, package_id, url, update: bool = False):
|
def download(self, package_id: str, url: str, update: bool = False) -> None:
|
||||||
|
|
||||||
def downloadFinished(reply: "QNetworkReply") -> None:
|
def downloadFinished(reply: "QNetworkReply") -> None:
|
||||||
self._downloadFinished(package_id, reply, update)
|
self._downloadFinished(package_id, reply, update)
|
||||||
|
@ -176,7 +175,7 @@ class PackageList(ListModel):
|
||||||
def _install(self, package_id: str, update: bool = False) -> None:
|
def _install(self, package_id: str, update: bool = False) -> None:
|
||||||
package_path = self._to_install.pop(package_id)
|
package_path = self._to_install.pop(package_id)
|
||||||
Logger.debug(f"Installing {package_id}")
|
Logger.debug(f"Installing {package_id}")
|
||||||
to_be_installed = self._manager.installPackage(package_path) != None
|
to_be_installed = self._manager.installPackage(package_path) is not None
|
||||||
package = self._getPackageModel(package_id)
|
package = self._getPackageModel(package_id)
|
||||||
if package.canUpdate and to_be_installed:
|
if package.canUpdate and to_be_installed:
|
||||||
package.canUpdate = False
|
package.canUpdate = False
|
||||||
|
@ -197,7 +196,7 @@ class PackageList(ListModel):
|
||||||
)
|
)
|
||||||
|
|
||||||
@pyqtSlot(str)
|
@pyqtSlot(str)
|
||||||
def uninstallPackage(self, package_id):
|
def uninstallPackage(self, package_id: str) -> None:
|
||||||
Logger.debug(f"Uninstalling {package_id}")
|
Logger.debug(f"Uninstalling {package_id}")
|
||||||
package = self._getPackageModel(package_id)
|
package = self._getPackageModel(package_id)
|
||||||
self._manager.removePackage(package_id)
|
self._manager.removePackage(package_id)
|
||||||
|
@ -211,7 +210,7 @@ class PackageList(ListModel):
|
||||||
HttpRequestManager.getInstance().delete(url = f"{USER_PACKAGES_URL}/{package_id}", scope = self._scope)
|
HttpRequestManager.getInstance().delete(url = f"{USER_PACKAGES_URL}/{package_id}", scope = self._scope)
|
||||||
|
|
||||||
@pyqtSlot(str)
|
@pyqtSlot(str)
|
||||||
def updatePackage(self, package_id):
|
def updatePackage(self, package_id: str) -> None:
|
||||||
self._manager.removePackage(package_id, force_add = True)
|
self._manager.removePackage(package_id, force_add = True)
|
||||||
package = self._getPackageModel(package_id)
|
package = self._getPackageModel(package_id)
|
||||||
url = package.download_url
|
url = package.download_url
|
||||||
|
@ -219,9 +218,9 @@ class PackageList(ListModel):
|
||||||
self.download(package_id, url, True)
|
self.download(package_id, url, True)
|
||||||
|
|
||||||
@pyqtSlot(str)
|
@pyqtSlot(str)
|
||||||
def enablePackage(self, package_id):
|
def enablePackage(self, package_id: str) -> None:
|
||||||
Logger.debug(f"Enabling {package_id}")
|
Logger.debug(f"Enabling {package_id}")
|
||||||
|
|
||||||
@pyqtSlot(str)
|
@pyqtSlot(str)
|
||||||
def disablePackage(self, package_id):
|
def disablePackage(self, package_id: str) -> None:
|
||||||
Logger.debug(f"Disabling {package_id}")
|
Logger.debug(f"Disabling {package_id}")
|
||||||
|
|
|
@ -293,13 +293,13 @@ class PackageModel(QObject):
|
||||||
isEnabledChanged = pyqtSignal()
|
isEnabledChanged = pyqtSignal()
|
||||||
|
|
||||||
@pyqtProperty(bool, notify = isEnabledChanged)
|
@pyqtProperty(bool, notify = isEnabledChanged)
|
||||||
def isEnabled(self):
|
def isEnabled(self) -> bool:
|
||||||
return self._is_active
|
return self._is_active
|
||||||
|
|
||||||
manageEnableStateChanged = pyqtSignal()
|
manageEnableStateChanged = pyqtSignal()
|
||||||
|
|
||||||
@pyqtProperty(str, notify = manageEnableStateChanged)
|
@pyqtProperty(str, notify = manageEnableStateChanged)
|
||||||
def manageEnableState(self):
|
def manageEnableState(self) -> str:
|
||||||
# TODO: Handle manual installed packages
|
# TODO: Handle manual installed packages
|
||||||
if self._is_installed:
|
if self._is_installed:
|
||||||
if self._is_active:
|
if self._is_active:
|
||||||
|
@ -330,13 +330,13 @@ class PackageModel(QObject):
|
||||||
manageUpdateStateChanged = pyqtSignal()
|
manageUpdateStateChanged = pyqtSignal()
|
||||||
|
|
||||||
@pyqtProperty(str, notify = manageUpdateStateChanged)
|
@pyqtProperty(str, notify = manageUpdateStateChanged)
|
||||||
def manageUpdateState(self):
|
def manageUpdateState(self) -> str:
|
||||||
if self._can_update:
|
if self._can_update:
|
||||||
return "primary"
|
return "primary"
|
||||||
return "hidden"
|
return "hidden"
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def canUpdate(self):
|
def canUpdate(self) -> bool:
|
||||||
return self._can_update
|
return self._can_update
|
||||||
|
|
||||||
@canUpdate.setter
|
@canUpdate.setter
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
from PyQt5.QtCore import pyqtProperty, pyqtSignal, pyqtSlot
|
from PyQt5.QtCore import pyqtProperty, pyqtSignal, pyqtSlot
|
||||||
from PyQt5.QtNetwork import QNetworkReply
|
from PyQt5.QtNetwork import QNetworkReply
|
||||||
from typing import Optional, TYPE_CHECKING
|
from typing import Optional, Set, TYPE_CHECKING
|
||||||
|
|
||||||
from UM.i18n import i18nCatalog
|
from UM.i18n import i18nCatalog
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
|
@ -31,7 +31,7 @@ class RemotePackageList(PackageList):
|
||||||
self._request_url = self._initialRequestUrl()
|
self._request_url = self._initialRequestUrl()
|
||||||
self.isLoadingChanged.connect(self._onLoadingChanged)
|
self.isLoadingChanged.connect(self._onLoadingChanged)
|
||||||
self.isLoadingChanged.emit()
|
self.isLoadingChanged.emit()
|
||||||
self._locally_installed = { p["package_id"] for p in self._manager.locally_installed_packages }
|
self._locally_installed: Set[str] = { p["package_id"] for p in self._manager.locally_installed_packages }
|
||||||
|
|
||||||
def __del__(self) -> None:
|
def __del__(self) -> None:
|
||||||
"""
|
"""
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue