113 b.set_status_update_callback(cb) |
116 b.set_status_update_callback(cb) |
114 self.statuses[index]=b.status() |
117 self.statuses[index]=b.status() |
115 |
118 |
116 menu, state=self.__rebuild_menu() |
119 menu, state=self.__rebuild_menu() |
117 |
120 |
|
121 self.refresh_timer=None |
|
122 |
118 super().__init__(traynames[state], menu=menu, quit_button=None) |
123 super().__init__(traynames[state], menu=menu, quit_button=None) |
119 |
124 |
120 def __rebuild_menu(self): |
125 def __rebuild_menu(self): |
121 menu=[] |
126 menu=[] |
122 state=INACTIVE |
127 state=INACTIVE |
143 def __menu_select_backup(self, sender, b): |
148 def __menu_select_backup(self, sender, b): |
144 #sender.state=not sender.state |
149 #sender.state=not sender.state |
145 logging.debug("Manually backup '%s'", b.name) |
150 logging.debug("Manually backup '%s'", b.name) |
146 b.create(None) |
151 b.create(None) |
147 |
152 |
|
153 |
|
154 def refresh_ui(self): |
|
155 with self.lock: |
|
156 self.refresh_timer=None |
|
157 logging.debug('Rebuilding menu') |
|
158 self.menu.clear() |
|
159 menu, active=self.__rebuild_menu() |
|
160 self.menu.update(menu) |
|
161 self.title=traynames[active] |
|
162 |
148 def __status_callback(self, obj, index, status, errorlog): |
163 def __status_callback(self, obj, index, status, errorlog): |
149 logging.debug('Status callbackup %s' % str(status)) |
164 logging.debug('Status callbackup %s' % str(status)) |
150 |
165 |
151 with self.lock: |
166 with self.lock: |
152 self.statuses[index]=status |
167 self.statuses[index]=status |
153 logging.debug('Rebuilding menu') |
168 if self.refresh_timer==None: |
154 self.menu.clear() |
169 self.refresh_timer=Timer(refresh_interval, self.refresh_ui) |
155 menu, active=self.__rebuild_menu() |
170 self.refresh_timer.start() |
156 self.menu.update(menu) |
|
157 self.title=traynames[active] |
|
158 |
171 |
159 if errorlog: |
172 if errorlog: |
160 if 'msgid' not in errorlog or not isinstance(errorlog['msgid'], str): |
173 if 'msgid' not in errorlog or not isinstance(errorlog['msgid'], str): |
161 msgid='UnknownError' |
174 msgid='UnknownError' |
162 else: |
175 else: |