diff --git a/sat_frontends/quick_frontend/quick_app.py b/sat_frontends/quick_frontend/quick_app.py index a7be02a0..5bc568d0 100644 --- a/sat_frontends/quick_frontend/quick_app.py +++ b/sat_frontends/quick_frontend/quick_app.py @@ -277,9 +277,13 @@ class ProfilesManager(object): class QuickApp(object): """This class contain the main methods needed for the frontend""" - MB_HANDLER = True # Set to False if the frontend doesn't manage microblog - AVATARS_HANDLER = True # set to False if avatars are not used - ENCRYPTION_HANDLERS = True # set to False if encryption is handled separatly + MB_HANDLER = True #: Set to False if the frontend doesn't manage microblog + AVATARS_HANDLER = True #: set to False if avatars are not used + ENCRYPTION_HANDLERS = True #: set to False if encryption is handled separatly + #: if True, QuickApp will call resync itself, on all widgets at the same time + #: if False, frontend must call resync itself when suitable (e.g. widget is being + #: visible) + AUTO_RESYNC = True def __init__(self, bridge_factory, xmlui, check_options=None, connect_bridge=True): """Create a frontend application @@ -445,18 +449,20 @@ class QuickApp(object): or if connection has been lost and a reconnection is needed """ if state: - # we are resynchronising - for w in self.widgets: - try: - resync = w.resync - except AttributeError: - pass - else: - resync() + if self.AUTO_RESYNC: + # we are resynchronising all widgets + for w in self.widgets: + try: + resync = w.resync + except AttributeError: + pass + else: + resync() self._sync = state else: self._sync = state - # we've lost synchronisation + # we've lost synchronisation, all widgets must be notified + # note: this is always called independently of AUTO_RESYNC for w in self.widgets: try: w.sync = False