mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-08 07:27:29 -06:00
Fixed state of manage buttons
Contributes to: CURA-8587
This commit is contained in:
parent
a51b29cdf6
commit
863e92d0d2
5 changed files with 227 additions and 138 deletions
|
@ -48,9 +48,8 @@ class LocalPackageList(PackageList):
|
||||||
self.setIsLoading(True)
|
self.setIsLoading(True)
|
||||||
|
|
||||||
# Obtain and sort the local packages
|
# Obtain and sort the local packages
|
||||||
Logger.debug(f"Number of local packages: {len(self._manager.local_packages)} -> {[p['package_id'] for p in self._manager.local_packages]}")
|
|
||||||
self.setItems([{"package": p} for p in [self._makePackageModel(p) for p in self._manager.local_packages]])
|
self.setItems([{"package": p} for p in [self._makePackageModel(p) for p in self._manager.local_packages]])
|
||||||
self.sort(attrgetter("sectionTitle", "canUpdate", "displayName"), key = "package", reverse = True)
|
self.sort(attrgetter("sectionTitle", "can_update", "displayName"), key = "package", reverse = True)
|
||||||
self.checkForUpdates(self._manager.local_packages)
|
self.checkForUpdates(self._manager.local_packages)
|
||||||
|
|
||||||
self.setIsLoading(False)
|
self.setIsLoading(False)
|
||||||
|
@ -90,8 +89,8 @@ class LocalPackageList(PackageList):
|
||||||
return
|
return
|
||||||
|
|
||||||
for package_data in response_data["data"]:
|
for package_data in response_data["data"]:
|
||||||
package = self._getPackageModel(package_data["package_id"])
|
package = self.getPackageModel(package_data["package_id"])
|
||||||
package.download_url = package_data.get("download_url", "")
|
package.download_url = package_data.get("download_url", "")
|
||||||
package.canUpdate = True
|
package.canUpdate = True
|
||||||
|
|
||||||
self.sort(attrgetter("sectionTitle", "canUpdate", "displayName"), key = "package", reverse = True)
|
self.sort(attrgetter("sectionTitle", "can_update", "displayName"), key = "package", reverse = True)
|
||||||
|
|
|
@ -112,19 +112,26 @@ 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: PackageModel) -> None:
|
def getPackageModel(self, package_id: str) -> PackageModel:
|
||||||
package.installPackageTriggered.connect(self.installPackage)
|
|
||||||
package.uninstallPackageTriggered.connect(self.uninstallPackage)
|
|
||||||
package.updatePackageTriggered.connect(self.installPackage)
|
|
||||||
package.enablePackageTriggered.connect(self.enablePackage)
|
|
||||||
package.disablePackageTriggered.connect(self.disablePackage)
|
|
||||||
|
|
||||||
def _getPackageModel(self, package_id: str) -> PackageModel:
|
|
||||||
index = self.find("package", package_id)
|
index = self.find("package", package_id)
|
||||||
return self.getItem(index)["package"]
|
return self.getItem(index)["package"]
|
||||||
|
|
||||||
canInstallChanged = pyqtSignal(str, bool)
|
canInstallChanged = pyqtSignal(str, bool)
|
||||||
|
|
||||||
|
def _install(self, package_id: str, update: bool = False) -> None:
|
||||||
|
package_path = self._to_install.pop(package_id)
|
||||||
|
Logger.debug(f"Installing {package_id}")
|
||||||
|
to_be_installed = self._manager.installPackage(package_path) is not None
|
||||||
|
package = self.getPackageModel(package_id)
|
||||||
|
if package.can_update and to_be_installed:
|
||||||
|
package.can_update = False
|
||||||
|
if update:
|
||||||
|
package.is_updating = False
|
||||||
|
else:
|
||||||
|
package.is_recently_installed = True
|
||||||
|
package.is_installing = False
|
||||||
|
self.subscribeUserToPackage(package_id, str(package.sdk_version))
|
||||||
|
|
||||||
def download(self, package_id: str, url: str, update: bool = False) -> None:
|
def download(self, package_id: str, url: str, update: bool = False) -> None:
|
||||||
|
|
||||||
def downloadFinished(reply: "QNetworkReply") -> None:
|
def downloadFinished(reply: "QNetworkReply") -> None:
|
||||||
|
@ -159,34 +166,13 @@ class PackageList(ListModel):
|
||||||
if reply:
|
if reply:
|
||||||
reply_string = bytes(reply.readAll()).decode()
|
reply_string = bytes(reply.readAll()).decode()
|
||||||
Logger.error(f"Failed to download package: {package_id} due to {reply_string}")
|
Logger.error(f"Failed to download package: {package_id} due to {reply_string}")
|
||||||
package = self._getPackageModel(package_id)
|
package = self.getPackageModel(package_id)
|
||||||
if update:
|
if update:
|
||||||
package.setIsUpdating(False)
|
package.is_updating = False
|
||||||
else:
|
else:
|
||||||
package.setIsInstalling(False)
|
package.is_installing = False
|
||||||
|
|
||||||
@pyqtSlot(str)
|
def subscribeUserToPackage(self, package_id: str, sdk_version: str) -> None:
|
||||||
def installPackage(self, package_id: str) -> None:
|
|
||||||
package = self._getPackageModel(package_id)
|
|
||||||
url = package.download_url
|
|
||||||
Logger.debug(f"Trying to download and install {package_id} from {url}")
|
|
||||||
self.download(package_id, url)
|
|
||||||
|
|
||||||
def _install(self, package_id: str, update: bool = False) -> None:
|
|
||||||
package_path = self._to_install.pop(package_id)
|
|
||||||
Logger.debug(f"Installing {package_id}")
|
|
||||||
to_be_installed = self._manager.installPackage(package_path) is not None
|
|
||||||
package = self._getPackageModel(package_id)
|
|
||||||
if package.canUpdate and to_be_installed:
|
|
||||||
package.canUpdate = False
|
|
||||||
package.setManageInstallState(to_be_installed)
|
|
||||||
if update:
|
|
||||||
package.setIsUpdating(False)
|
|
||||||
else:
|
|
||||||
package.setIsInstalling(False)
|
|
||||||
self._subscribe(package_id, str(package.sdk_version))
|
|
||||||
|
|
||||||
def _subscribe(self, package_id: str, sdk_version: str) -> None:
|
|
||||||
if self._account.isLoggedIn:
|
if self._account.isLoggedIn:
|
||||||
Logger.debug(f"Subscribing the user for package: {package_id}")
|
Logger.debug(f"Subscribing the user for package: {package_id}")
|
||||||
HttpRequestManager.getInstance().put(
|
HttpRequestManager.getInstance().put(
|
||||||
|
@ -195,32 +181,58 @@ class PackageList(ListModel):
|
||||||
scope = self._scope
|
scope = self._scope
|
||||||
)
|
)
|
||||||
|
|
||||||
@pyqtSlot(str)
|
def unsunscribeUserFromPackage(self, package_id: str) -> None:
|
||||||
def uninstallPackage(self, package_id: str) -> None:
|
|
||||||
Logger.debug(f"Uninstalling {package_id}")
|
|
||||||
package = self._getPackageModel(package_id)
|
|
||||||
self._manager.removePackage(package_id)
|
|
||||||
package.setIsInstalling(False)
|
|
||||||
package.setManageInstallState(False)
|
|
||||||
self._unsunscribe(package_id)
|
|
||||||
|
|
||||||
def _unsunscribe(self, package_id: str) -> None:
|
|
||||||
if self._account.isLoggedIn:
|
if self._account.isLoggedIn:
|
||||||
Logger.debug(f"Unsubscribing the user for package: {package_id}")
|
Logger.debug(f"Unsubscribing the user for package: {package_id}")
|
||||||
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)
|
||||||
|
|
||||||
|
# --- Handle the manage package buttons ---
|
||||||
|
|
||||||
|
def _connectManageButtonSignals(self, package: PackageModel) -> None:
|
||||||
|
package.installPackageTriggered.connect(self.installPackage)
|
||||||
|
package.uninstallPackageTriggered.connect(self.uninstallPackage)
|
||||||
|
package.updatePackageTriggered.connect(self.installPackage)
|
||||||
|
package.enablePackageTriggered.connect(self.enablePackage)
|
||||||
|
package.disablePackageTriggered.connect(self.disablePackage)
|
||||||
|
|
||||||
|
@pyqtSlot(str)
|
||||||
|
def installPackage(self, package_id: str) -> None:
|
||||||
|
package = self.getPackageModel(package_id)
|
||||||
|
package.is_installing = True
|
||||||
|
url = package.download_url
|
||||||
|
Logger.debug(f"Trying to download and install {package_id} from {url}")
|
||||||
|
self.download(package_id, url)
|
||||||
|
|
||||||
|
@pyqtSlot(str)
|
||||||
|
def uninstallPackage(self, package_id: str) -> None:
|
||||||
|
Logger.debug(f"Uninstalling {package_id}")
|
||||||
|
package = self.getPackageModel(package_id)
|
||||||
|
package.is_installing = True
|
||||||
|
self._manager.removePackage(package_id)
|
||||||
|
package.is_installing = False
|
||||||
|
self.unsunscribeUserFromPackage(package_id)
|
||||||
|
|
||||||
@pyqtSlot(str)
|
@pyqtSlot(str)
|
||||||
def updatePackage(self, package_id: str) -> None:
|
def updatePackage(self, package_id: str) -> None:
|
||||||
|
package = self.getPackageModel(package_id)
|
||||||
|
package.is_updating = True
|
||||||
self._manager.removePackage(package_id, force_add = True)
|
self._manager.removePackage(package_id, force_add = True)
|
||||||
package = self._getPackageModel(package_id)
|
|
||||||
url = package.download_url
|
url = package.download_url
|
||||||
Logger.debug(f"Trying to download and update {package_id} from {url}")
|
Logger.debug(f"Trying to download and update {package_id} from {url}")
|
||||||
self.download(package_id, url, True)
|
self.download(package_id, url, True)
|
||||||
|
|
||||||
@pyqtSlot(str)
|
@pyqtSlot(str)
|
||||||
def enablePackage(self, package_id: str) -> None:
|
def enablePackage(self, package_id: str) -> None:
|
||||||
|
package = self.getPackageModel(package_id)
|
||||||
|
package.is_enabling = True
|
||||||
Logger.debug(f"Enabling {package_id}")
|
Logger.debug(f"Enabling {package_id}")
|
||||||
|
# TODO: implement enabling functionality
|
||||||
|
package.is_enabling = False
|
||||||
|
|
||||||
@pyqtSlot(str)
|
@pyqtSlot(str)
|
||||||
def disablePackage(self, package_id: str) -> None:
|
def disablePackage(self, package_id: str) -> None:
|
||||||
|
package = self.getPackageModel(package_id)
|
||||||
|
package.is_enabling = True
|
||||||
Logger.debug(f"Disabling {package_id}")
|
Logger.debug(f"Disabling {package_id}")
|
||||||
|
# TODO: implement disabling functionality
|
||||||
|
package.is_enabling = False
|
||||||
|
|
|
@ -61,9 +61,11 @@ class PackageModel(QObject):
|
||||||
if not self._icon_url or self._icon_url == "":
|
if not self._icon_url or self._icon_url == "":
|
||||||
self._icon_url = author_data.get("icon_url", "")
|
self._icon_url = author_data.get("icon_url", "")
|
||||||
|
|
||||||
self._can_update = False
|
|
||||||
self._is_installing = False
|
self._is_installing = False
|
||||||
|
self.is_recently_installed = False
|
||||||
|
self._can_update = False
|
||||||
self._is_updating = False
|
self._is_updating = False
|
||||||
|
self._is_enabling = False
|
||||||
self._section_title = section_title
|
self._section_title = section_title
|
||||||
self.sdk_version = package_data.get("sdk_version_semver", "")
|
self.sdk_version = package_data.get("sdk_version_semver", "")
|
||||||
# Note that there's a lot more info in the package_data than just these specified here.
|
# Note that there's a lot more info in the package_data than just these specified here.
|
||||||
|
@ -262,88 +264,9 @@ class PackageModel(QObject):
|
||||||
def isCompatibleAirManager(self) -> bool:
|
def isCompatibleAirManager(self) -> bool:
|
||||||
return self._is_compatible_air_manager
|
return self._is_compatible_air_manager
|
||||||
|
|
||||||
isInstallingChanged = pyqtSignal()
|
# --- manage buttons signals ---
|
||||||
|
|
||||||
def setIsInstalling(self, value: bool) -> None:
|
stateManageButtonChanged = pyqtSignal()
|
||||||
if value != self._is_installing:
|
|
||||||
self._is_installing = value
|
|
||||||
self.isInstallingChanged.emit()
|
|
||||||
|
|
||||||
@pyqtProperty(bool, fset = setIsInstalling, notify = isInstallingChanged)
|
|
||||||
def isInstalling(self) -> bool:
|
|
||||||
return self._is_installing
|
|
||||||
|
|
||||||
isUpdatingChanged = pyqtSignal()
|
|
||||||
|
|
||||||
def setIsUpdating(self, value: bool) -> None:
|
|
||||||
if value != self._is_updating:
|
|
||||||
self._is_updating = value
|
|
||||||
self.isUpdatingChanged.emit()
|
|
||||||
|
|
||||||
@pyqtProperty(bool, fset = setIsUpdating, notify = isUpdatingChanged)
|
|
||||||
def isUpdating(self) -> bool:
|
|
||||||
return self._is_updating
|
|
||||||
|
|
||||||
isInstalledChanged = pyqtSignal()
|
|
||||||
|
|
||||||
@pyqtProperty(bool, notify = isInstalledChanged)
|
|
||||||
def isInstalled(self):
|
|
||||||
return self._is_installed
|
|
||||||
|
|
||||||
isEnabledChanged = pyqtSignal()
|
|
||||||
|
|
||||||
@pyqtProperty(bool, notify = isEnabledChanged)
|
|
||||||
def isEnabled(self) -> bool:
|
|
||||||
return self._is_active
|
|
||||||
|
|
||||||
manageEnableStateChanged = pyqtSignal()
|
|
||||||
|
|
||||||
@pyqtProperty(str, notify = manageEnableStateChanged)
|
|
||||||
def manageEnableState(self) -> str:
|
|
||||||
# TODO: Handle manual installed packages
|
|
||||||
if self._is_installed:
|
|
||||||
if self._is_active:
|
|
||||||
return "secondary"
|
|
||||||
else:
|
|
||||||
return "primary"
|
|
||||||
else:
|
|
||||||
return "hidden"
|
|
||||||
|
|
||||||
manageInstallStateChanged = pyqtSignal()
|
|
||||||
|
|
||||||
def setManageInstallState(self, value: bool) -> None:
|
|
||||||
if value != self._is_installed:
|
|
||||||
self._is_installed = value
|
|
||||||
self.manageInstallStateChanged.emit()
|
|
||||||
self.manageEnableStateChanged.emit()
|
|
||||||
|
|
||||||
@pyqtProperty(str, notify = manageInstallStateChanged)
|
|
||||||
def manageInstallState(self) -> str:
|
|
||||||
if self._is_installed:
|
|
||||||
if self._is_bundled:
|
|
||||||
return "hidden"
|
|
||||||
else:
|
|
||||||
return "secondary"
|
|
||||||
else:
|
|
||||||
return "primary"
|
|
||||||
|
|
||||||
manageUpdateStateChanged = pyqtSignal()
|
|
||||||
|
|
||||||
@pyqtProperty(str, notify = manageUpdateStateChanged)
|
|
||||||
def manageUpdateState(self) -> str:
|
|
||||||
if self._can_update:
|
|
||||||
return "primary"
|
|
||||||
return "hidden"
|
|
||||||
|
|
||||||
@property
|
|
||||||
def canUpdate(self) -> bool:
|
|
||||||
return self._can_update
|
|
||||||
|
|
||||||
@canUpdate.setter
|
|
||||||
def canUpdate(self, value):
|
|
||||||
if value != self._can_update:
|
|
||||||
self._can_update = value
|
|
||||||
self.manageUpdateStateChanged.emit()
|
|
||||||
|
|
||||||
installPackageTriggered = pyqtSignal(str)
|
installPackageTriggered = pyqtSignal(str)
|
||||||
|
|
||||||
|
@ -354,3 +277,162 @@ class PackageModel(QObject):
|
||||||
enablePackageTriggered = pyqtSignal(str)
|
enablePackageTriggered = pyqtSignal(str)
|
||||||
|
|
||||||
disablePackageTriggered = pyqtSignal(str)
|
disablePackageTriggered = pyqtSignal(str)
|
||||||
|
|
||||||
|
# --- enabling ---
|
||||||
|
|
||||||
|
@pyqtProperty(str, notify = stateManageButtonChanged)
|
||||||
|
def stateManageEnableButton(self) -> str:
|
||||||
|
if self._is_enabling:
|
||||||
|
return "busy"
|
||||||
|
if self.is_recently_installed:
|
||||||
|
return "hidden"
|
||||||
|
if self._package_type == "material":
|
||||||
|
if self._is_bundled: # TODO: Check if a bundled material can/should be un-/install en-/disabled
|
||||||
|
return "secondary"
|
||||||
|
return "hidden"
|
||||||
|
if not self._is_installed:
|
||||||
|
return "hidden"
|
||||||
|
if self._is_installed and self._is_active:
|
||||||
|
return "secondary"
|
||||||
|
return "primary"
|
||||||
|
|
||||||
|
@property
|
||||||
|
def is_enabling(self) -> bool:
|
||||||
|
return self._is_enabling
|
||||||
|
|
||||||
|
@is_enabling.setter
|
||||||
|
def is_enabling(self, value: bool) -> None:
|
||||||
|
if value != self._is_enabling:
|
||||||
|
self._is_enabling = value
|
||||||
|
self.stateManageButtonChanged.emit()
|
||||||
|
|
||||||
|
# --- Installing ---
|
||||||
|
|
||||||
|
@pyqtProperty(str, notify = stateManageButtonChanged)
|
||||||
|
def stateManageInstallButton(self) -> str:
|
||||||
|
if self._is_installing:
|
||||||
|
return "busy"
|
||||||
|
if self.is_recently_installed:
|
||||||
|
return "secondary"
|
||||||
|
if self._is_installed:
|
||||||
|
if self._is_bundled:
|
||||||
|
return "hidden"
|
||||||
|
else:
|
||||||
|
return "secondary"
|
||||||
|
else:
|
||||||
|
return "primary"
|
||||||
|
|
||||||
|
@property
|
||||||
|
def is_installing(self) -> bool:
|
||||||
|
return self._is_installing
|
||||||
|
|
||||||
|
@is_installing.setter
|
||||||
|
def is_installing(self, value: bool) -> None:
|
||||||
|
if value != self._is_installing:
|
||||||
|
self._is_installing = value
|
||||||
|
self.stateManageButtonChanged.emit()
|
||||||
|
|
||||||
|
# --- Updating ---
|
||||||
|
|
||||||
|
@pyqtProperty(str, notify = stateManageButtonChanged)
|
||||||
|
def stateManageUpdateButton(self) -> str:
|
||||||
|
if self._is_updating:
|
||||||
|
return "busy"
|
||||||
|
if self._can_update:
|
||||||
|
return "primary"
|
||||||
|
return "hidden"
|
||||||
|
|
||||||
|
@property
|
||||||
|
def is_updating(self) -> bool:
|
||||||
|
return self._is_updating
|
||||||
|
|
||||||
|
@is_updating.setter
|
||||||
|
def is_updating(self, value: bool) -> None:
|
||||||
|
if value != self._is_updating:
|
||||||
|
self._is_updating = value
|
||||||
|
self.stateManageButtonChanged.emit()
|
||||||
|
|
||||||
|
@property
|
||||||
|
def can_update(self) -> bool:
|
||||||
|
return self._can_update
|
||||||
|
|
||||||
|
@can_update.setter
|
||||||
|
def can_update(self, value: bool) -> None:
|
||||||
|
if value != self._can_update:
|
||||||
|
self._can_update = value
|
||||||
|
self.stateManageButtonChanged.emit()
|
||||||
|
|
||||||
|
# ----
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# isInstalledChanged = pyqtSignal()
|
||||||
|
#
|
||||||
|
# @pyqtProperty(bool, notify = isInstalledChanged)
|
||||||
|
# def isInstalled(self):
|
||||||
|
# return self._is_installed
|
||||||
|
#
|
||||||
|
# isEnabledChanged = pyqtSignal()
|
||||||
|
#
|
||||||
|
#
|
||||||
|
#f
|
||||||
|
# @pyqtProperty(bool, notify = isEnabledChanged)
|
||||||
|
# def isEnabled(self) -> bool:
|
||||||
|
# return self._is_active
|
||||||
|
#
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# isManageEnableStateChanged = pyqtSignalf()
|
||||||
|
#
|
||||||
|
# @pyqtProperty(str, notify = isManageEnableStateChanged)
|
||||||
|
# def isManageEnableState(self) -> str:
|
||||||
|
# if self.isEnabling:
|
||||||
|
# return "busy"
|
||||||
|
# if self.
|
||||||
|
#
|
||||||
|
# manageEnableStateChanged = pyqtSignal()
|
||||||
|
#
|
||||||
|
# @pyqtProperty(str, notify = manageEnableStateChanged)
|
||||||
|
# def manageEnableState(self) -> str:
|
||||||
|
# # TODO: Handle manual installed packages
|
||||||
|
# if self._is_installed:
|
||||||
|
# if self._is_active:
|
||||||
|
# return "secondary"
|
||||||
|
# else:
|
||||||
|
# return "primary"
|
||||||
|
# else:
|
||||||
|
# return "hidden"
|
||||||
|
#
|
||||||
|
# manageInstallStateChanged = pyqtSignal()
|
||||||
|
#
|
||||||
|
# def setManageInstallState(self, value: bool) -> None:
|
||||||
|
# if value != self._is_installed:
|
||||||
|
# self._is_installed = value
|
||||||
|
# self.manageInstallStateChanged.emit()
|
||||||
|
# self.manageEnableStateChanged.emit()
|
||||||
|
#
|
||||||
|
# @pyqtProperty(str, notify = manageInstallStateChanged)
|
||||||
|
# def manageInstallState(self) -> str:
|
||||||
|
# if self._is_installed:
|
||||||
|
# if self._is_bundled:
|
||||||
|
# return "hidden"
|
||||||
|
# else:
|
||||||
|
# return "secondary"
|
||||||
|
# else:
|
||||||
|
# return "primary"
|
||||||
|
#
|
||||||
|
# manageUpdateStateChanged = pyqtSignal()
|
||||||
|
#
|
||||||
|
# @pyqtProperty(str, notify = manageUpdateStateChanged)
|
||||||
|
# def manageUpdateState(self) -> str:
|
||||||
|
# if self._can_update:
|
||||||
|
# return "primary"
|
||||||
|
# return "hidden"
|
||||||
|
#
|
||||||
|
|
|
@ -17,7 +17,7 @@ RowLayout
|
||||||
property string busySecondaryText: busyMessageText.text
|
property string busySecondaryText: busyMessageText.text
|
||||||
property string mainState: "primary"
|
property string mainState: "primary"
|
||||||
property bool enabled: true
|
property bool enabled: true
|
||||||
property bool busy: false
|
property bool busy
|
||||||
|
|
||||||
signal clicked(bool primary_action)
|
signal clicked(bool primary_action)
|
||||||
|
|
||||||
|
|
|
@ -355,12 +355,12 @@ Rectangle
|
||||||
ManageButton
|
ManageButton
|
||||||
{
|
{
|
||||||
id: enableManageButton
|
id: enableManageButton
|
||||||
|
state: packageData.stateManageEnableButton
|
||||||
Layout.alignment: Qt.AlignTop
|
Layout.alignment: Qt.AlignTop
|
||||||
primaryText: catalog.i18nc("@button", "Enable")
|
primaryText: catalog.i18nc("@button", "Enable")
|
||||||
busyPrimaryText: catalog.i18nc("@button", "enabling...")
|
busyPrimaryText: catalog.i18nc("@button", "enabling...")
|
||||||
secondaryText: catalog.i18nc("@button", "Disable")
|
secondaryText: catalog.i18nc("@button", "Disable")
|
||||||
busySecondaryText: catalog.i18nc("@button", "disabling...")
|
busySecondaryText: catalog.i18nc("@button", "disabling...")
|
||||||
mainState: packageData.manageEnableState
|
|
||||||
enabled: !(installManageButton.busy || updateManageButton.busy)
|
enabled: !(installManageButton.busy || updateManageButton.busy)
|
||||||
}
|
}
|
||||||
Connections
|
Connections
|
||||||
|
@ -382,13 +382,12 @@ Rectangle
|
||||||
ManageButton
|
ManageButton
|
||||||
{
|
{
|
||||||
id: installManageButton
|
id: installManageButton
|
||||||
|
state: packageData.stateManageInstallButton
|
||||||
Layout.alignment: Qt.AlignTop
|
Layout.alignment: Qt.AlignTop
|
||||||
primaryText: catalog.i18nc("@button", "Install")
|
primaryText: catalog.i18nc("@button", "Install")
|
||||||
busyPrimaryText: catalog.i18nc("@button", "installing...")
|
busyPrimaryText: catalog.i18nc("@button", "installing...")
|
||||||
secondaryText: catalog.i18nc("@button", "Uninstall")
|
secondaryText: catalog.i18nc("@button", "Uninstall")
|
||||||
busySecondaryText: catalog.i18nc("@button", "uninstalling...")
|
busySecondaryText: catalog.i18nc("@button", "uninstalling...")
|
||||||
mainState: packageData.manageInstallState
|
|
||||||
busy: packageData.isInstalling
|
|
||||||
enabled: !(enableManageButton.busy || updateManageButton.busy)
|
enabled: !(enableManageButton.busy || updateManageButton.busy)
|
||||||
}
|
}
|
||||||
Connections
|
Connections
|
||||||
|
@ -396,7 +395,6 @@ Rectangle
|
||||||
target: installManageButton
|
target: installManageButton
|
||||||
function onClicked(primary_action)
|
function onClicked(primary_action)
|
||||||
{
|
{
|
||||||
packageData.isInstalling = true
|
|
||||||
if (primary_action)
|
if (primary_action)
|
||||||
{
|
{
|
||||||
packageData.installPackageTriggered(packageData.packageId)
|
packageData.installPackageTriggered(packageData.packageId)
|
||||||
|
@ -411,11 +409,10 @@ Rectangle
|
||||||
ManageButton
|
ManageButton
|
||||||
{
|
{
|
||||||
id: updateManageButton
|
id: updateManageButton
|
||||||
|
state: packageData.stateManageUpdateButton
|
||||||
Layout.alignment: Qt.AlignTop
|
Layout.alignment: Qt.AlignTop
|
||||||
primaryText: catalog.i18nc("@button", "Update")
|
primaryText: catalog.i18nc("@button", "Update")
|
||||||
busyPrimaryText: catalog.i18nc("@button", "updating...")
|
busyPrimaryText: catalog.i18nc("@button", "updating...")
|
||||||
mainState: packageData.manageUpdateState
|
|
||||||
busy: packageData.isUpdating
|
|
||||||
enabled: !(installManageButton.busy || enableManageButton.busy)
|
enabled: !(installManageButton.busy || enableManageButton.busy)
|
||||||
}
|
}
|
||||||
Connections
|
Connections
|
||||||
|
@ -423,7 +420,6 @@ Rectangle
|
||||||
target: updateManageButton
|
target: updateManageButton
|
||||||
function onClicked(primary_action)
|
function onClicked(primary_action)
|
||||||
{
|
{
|
||||||
packageData.isUpdating = true
|
|
||||||
packageData.updatePackageTriggered(packageData.packageId)
|
packageData.updatePackageTriggered(packageData.packageId)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue