mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-08-07 14:04:03 -06:00
Fix sync button not appearing when opening popup after clicking away
This was achieved by adding an IDLE state, which is the default state when opening the account management popup. The state is now reseted when the popup opens instead of when it closes. In addition, now either the "You are in sync with your account" label or the "Check account for updates" button will appear in the popup based on the state, not both. Finally, with theses changes, if the popup is open and an autosync occurs, the user will be informed that the account is synced and he/she will have to close and reopen the popup in order to trigger a manual update. CURA-7290
This commit is contained in:
parent
7388829fc1
commit
fad02193ab
3 changed files with 14 additions and 5 deletions
|
@ -23,6 +23,7 @@ class SyncState:
|
|||
SYNCING = 0
|
||||
SUCCESS = 1
|
||||
ERROR = 2
|
||||
IDLE = 3
|
||||
|
||||
|
||||
## The account API provides a version-proof bridge to use Ultimaker Accounts
|
||||
|
@ -59,7 +60,7 @@ class Account(QObject):
|
|||
|
||||
self._error_message = None # type: Optional[Message]
|
||||
self._logged_in = False
|
||||
self._sync_state = SyncState.SUCCESS
|
||||
self._sync_state = SyncState.IDLE
|
||||
self._manual_sync_enabled = False
|
||||
self._last_sync_str = "-"
|
||||
|
||||
|
@ -116,11 +117,13 @@ class Account(QObject):
|
|||
|
||||
if any(val == SyncState.SYNCING for val in self._sync_services.values()):
|
||||
self._sync_state = SyncState.SYNCING
|
||||
self._setManualSyncEnabled(False)
|
||||
elif any(val == SyncState.ERROR for val in self._sync_services.values()):
|
||||
self._sync_state = SyncState.ERROR
|
||||
self._setManualSyncEnabled(True)
|
||||
else:
|
||||
self._sync_state = SyncState.SUCCESS
|
||||
self._setManualSyncEnabled(False)
|
||||
|
||||
if self._sync_state != prev_state:
|
||||
self.syncStateChanged.emit(self._sync_state)
|
||||
|
@ -238,8 +241,10 @@ class Account(QObject):
|
|||
self._sync()
|
||||
|
||||
@pyqtSlot()
|
||||
def popupClosed(self) -> None:
|
||||
def popupOpened(self) -> None:
|
||||
self._setManualSyncEnabled(True)
|
||||
self._sync_state = SyncState.IDLE
|
||||
self.syncStateChanged.emit(self._sync_state)
|
||||
|
||||
@pyqtSlot()
|
||||
def logout(self) -> None:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue