mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-10 16:27:51 -06:00
Add None-checks to CloudPackageChecker
Might help prevent the sync message to show multiple times CURA-7364
This commit is contained in:
parent
6241ca736e
commit
db758a7e19
1 changed files with 19 additions and 6 deletions
|
@ -45,9 +45,8 @@ class CloudPackageChecker(QObject):
|
||||||
def _onLoginStateChanged(self) -> None:
|
def _onLoginStateChanged(self) -> None:
|
||||||
if self._application.getCuraAPI().account.isLoggedIn:
|
if self._application.getCuraAPI().account.isLoggedIn:
|
||||||
self._getUserSubscribedPackages()
|
self._getUserSubscribedPackages()
|
||||||
elif self._message is not None:
|
else:
|
||||||
self._message.hide()
|
self._hideSyncMessage()
|
||||||
self._message = None
|
|
||||||
|
|
||||||
def _getUserSubscribedPackages(self) -> None:
|
def _getUserSubscribedPackages(self) -> None:
|
||||||
Logger.debug("Requesting subscribed packages metadata from server.")
|
Logger.debug("Requesting subscribed packages metadata from server.")
|
||||||
|
@ -90,12 +89,18 @@ class CloudPackageChecker(QObject):
|
||||||
# We check if there are packages installed in Web Marketplace but not in Cura marketplace
|
# We check if there are packages installed in Web Marketplace but not in Cura marketplace
|
||||||
package_discrepancy = list(set(user_subscribed_packages).difference(user_installed_packages))
|
package_discrepancy = list(set(user_subscribed_packages).difference(user_installed_packages))
|
||||||
if package_discrepancy:
|
if package_discrepancy:
|
||||||
|
Logger.log("d", "Discrepancy found between Cloud subscribed packages and Cura installed packages")
|
||||||
self._model.addDiscrepancies(package_discrepancy)
|
self._model.addDiscrepancies(package_discrepancy)
|
||||||
self._model.initialize(self._package_manager, subscribed_packages_payload)
|
self._model.initialize(self._package_manager, subscribed_packages_payload)
|
||||||
self._handlePackageDiscrepancies()
|
self._showSyncMessage()
|
||||||
|
|
||||||
|
def _showSyncMessage(self) -> None:
|
||||||
|
"""Show the message if it is not already shown"""
|
||||||
|
|
||||||
|
if self._message is not None:
|
||||||
|
self._message.show()
|
||||||
|
return
|
||||||
|
|
||||||
def _handlePackageDiscrepancies(self) -> None:
|
|
||||||
Logger.log("d", "Discrepancy found between Cloud subscribed packages and Cura installed packages")
|
|
||||||
sync_message = Message(self._i18n_catalog.i18nc(
|
sync_message = Message(self._i18n_catalog.i18nc(
|
||||||
"@info:generic",
|
"@info:generic",
|
||||||
"Do you want to sync material and software packages with your account?"),
|
"Do you want to sync material and software packages with your account?"),
|
||||||
|
@ -110,6 +115,14 @@ class CloudPackageChecker(QObject):
|
||||||
sync_message.show()
|
sync_message.show()
|
||||||
self._message = sync_message
|
self._message = sync_message
|
||||||
|
|
||||||
|
def _hideSyncMessage(self) -> None:
|
||||||
|
"""Hide the message if it is showing"""
|
||||||
|
|
||||||
|
if self._message is not None:
|
||||||
|
self._message.hide()
|
||||||
|
self._message = None
|
||||||
|
|
||||||
def _onSyncButtonClicked(self, sync_message: Message, sync_message_action: str) -> None:
|
def _onSyncButtonClicked(self, sync_message: Message, sync_message_action: str) -> None:
|
||||||
sync_message.hide()
|
sync_message.hide()
|
||||||
|
self._hideSyncMessage() # Should be the same message, but also sets _message to None
|
||||||
self.discrepancies.emit(self._model)
|
self.discrepancies.emit(self._model)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue