def update_success(self, reference): assert isinstance(reference, Gtk.TreeRowReference) if reference.valid(): def func(): path = reference.get_path() self._model[path][2] = "emblem-default" GtkHelper.invoke(func)
def update_failed(self, reference, err=None): assert isinstance(reference, Gtk.TreeRowReference) if reference.valid(): def func(): path = reference.get_path() self._model[path][2] = "emblem-important" if err: if isinstance(err, Exception): self._model[path][3] = "{}: {}".format(type(err).__name__, str(err)) else: self._model[path][3] = str(err) GtkHelper.invoke(func)
def func(): try: signature = model.signature server = model.database_type.name + ' ' + str(signature.version) auth_details = 'Admin Party' session = model.session user_ctx = session.userCtx if user_ctx and user_ctx.name: auth_details = user_ctx.name roles = '' for role in user_ctx.roles: roles += ', ' + role if len(roles) > 0 else role auth_details += ' [' + roles + ']' status = server + ' - ' + auth_details GtkHelper.invoke(lambda: self._statusbar.push(0, status)) except: self.reset()
def on_menu_databases_restore(self, *_): selected_databases = self._databases.selected if len(selected_databases) == 1 and selected_databases[0].db_name.find('backup$') == 0: restore_database = True source_name = selected_databases[0].db_name target_name = source_name[7::] try: self._model.get_database(target_name) response = GtkHelper.run_dialog(self._win, Gtk.MessageType.QUESTION, Gtk.ButtonsType.YES_NO, "Target database already exists, continue?") restore_database = response is Gtk.ResponseType.YES except: pass if restore_database: repl = Replication(self._model, source_name, target_name, drop_first=True, create=True) self.queue_replication(repl)
def on_menu_databases_backup(self, *_): for selected_database in self._databases.selected: if selected_database.db_name.find('backup$') < 0: backup_database = True source_name = selected_database.db_name target_name = 'backup$' + source_name try: self._model.get_database(target_name) response = GtkHelper.run_dialog( self._win, Gtk.MessageType.QUESTION, Gtk.ButtonsType.YES_NO, "Target database '{}' already exists, continue?".format(target_name)) backup_database = response is Gtk.ResponseType.YES except: pass if backup_database: repl = Replication(self._model, source_name, target_name, drop_first=True, create=True) self.queue_replication(repl)
def on_treeview_new_replication_dialog_targets_select_all(self, widget): GtkHelper.idle(self.set_remove_target_button_state)
def on_target_model_row_deleted(self, path, user_data): def func(): self.set_remove_target_button_state() self.set_replicate_button_state() GtkHelper.idle(func)
def on_target_model_row_added(self, mode, path, user_data): GtkHelper.idle(self.set_replicate_button_state)