| 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: |