2025.01.29 03:38:01 (desktop)

This commit is contained in:
Christian Moser 2025-01-29 03:38:01 +01:00
parent 604d753d1b
commit f9779ea8a1
Failed to extract signature
2 changed files with 30 additions and 6 deletions

View File

@ -56,6 +56,7 @@ class GameView(Gtk.ScrolledWindow):
self.__liststore.append(g) self.__liststore.append(g)
self.__action_dialog = None self.__action_dialog = None
self.__backup_dialog = None
factory_icon = Gtk.SignalListItemFactory.new() factory_icon = Gtk.SignalListItemFactory.new()
factory_icon.connect('setup',self._on_icon_column_setup) factory_icon.connect('setup',self._on_icon_column_setup)
@ -251,9 +252,14 @@ class GameView(Gtk.ScrolledWindow):
BindingFlags.SYNC_CREATE,lambda binding,x: False if x else True) BindingFlags.SYNC_CREATE,lambda binding,x: False if x else True)
def _on_columnview_backup_button_clicked(self,button,item): def _on_columnview_backup_button_clicked(self,button,item):
game = item.get_item() def on_dialog_response(dialog,response):
dialog = BackupSingleDialog(self.get_root(),game) self.__backup_dialog = None
dialog.run()
if self.__backup_dialog is None:
game = item.get_item()
self.__backup_dialog = BackupSingleDialog(self.get_root(),game)
self.__backup_dialog.connect('response',on_dialog_response)
self.__backup_dialog.run()
def _on_columnview_edit_button_clicked(self,button,item): def _on_columnview_edit_button_clicked(self,button,item):
def on_dialog_response(dialog,response): def on_dialog_response(dialog,response):
@ -692,6 +698,7 @@ class Application(Gtk.Application):
# add accels # add accels
self.set_accels_for_action('app.quit',["<Primary>q"]) self.set_accels_for_action('app.quit',["<Primary>q"])
@property @property
def builder(self)->Gtk.Builder: def builder(self)->Gtk.Builder:
""" """

View File

@ -30,13 +30,21 @@ class BackupSingleDialog(Gtk.Dialog):
self.set_transient_for(parent) self.set_transient_for(parent)
label = Gtk.Label()
label.set_markup("<span size=\"x-large\">Backing up <i>{game}</i></span>".format(
game = GLib.markup_escape_text(game.name)))
self.get_content_area().append(label)
self.__progressbar = Gtk.ProgressBar() self.__progressbar = Gtk.ProgressBar()
self.__progressbar.set_text("Starting savegame backup ...") self.__progressbar.set_text("Starting savegame backup ...")
self.__progressbar.set_show_text(True)
self.__progressbar.set_fraction(0.0) self.__progressbar.set_fraction(0.0)
self.get_content_area().append(self.__progressbar) self.get_content_area().append(self.__progressbar)
self.set_modal(False) self.set_modal(False)
self.__ok_button = self.add_button('Close',Gtk.ResponseType.OK)
self.__am_signal_progress = None self.__am_signal_progress = None
self.__am_signal_finished = None self.__am_signal_finished = None
@ -46,10 +54,16 @@ class BackupSingleDialog(Gtk.Dialog):
self.__progressbar.set_fraction(fraction) self.__progressbar.set_fraction(fraction)
return False return False
def do_response(self,response):
self.hide()
self.destroy()
def _on_finished(self): def _on_finished(self):
self.__progressbar.set_text("Finished ...") self.__progressbar.set_text("Finished ...")
self.__progressbar.set_fraction(1.0) self.__progressbar.set_fraction(1.0)
self.__ok_button.set_sensitive(True)
am = ArchiverManager.get_global() am = ArchiverManager.get_global()
if self.__am_signal_finished is not None: if self.__am_signal_finished is not None:
am.disconnect(self.__am_signal_finished) am.disconnect(self.__am_signal_finished)
self.__am_signal_finished = None self.__am_signal_finished = None
@ -58,8 +72,10 @@ class BackupSingleDialog(Gtk.Dialog):
am.disconnect(self.__am_signal_progress) am.disconnect(self.__am_signal_progress)
self.__am_signal_progress = None self.__am_signal_progress = None
self.hide() #if settings.backup_dialog_close_when_finished:
self.destroy() # self.response(Gtk.ResponseType.OK)
return False
def _on_am_backup_game_progress(self,am,game,fraction,message): def _on_am_backup_game_progress(self,am,game,fraction,message):
if self.__game.key == game.key: if self.__game.key == game.key:
@ -72,9 +88,10 @@ class BackupSingleDialog(Gtk.Dialog):
def run(self): def run(self):
def _thread_func(archiver_manager,game): def _thread_func(archiver_manager,game):
am.backup(game) am.backup(game)
self.__ok_button.set_sensitive(False)
self.present() self.present()
am = ArchiverManager.get_global() am = ArchiverManager.get_global()
self.__am_signal_progress = am.connect('backup-game-progress',self._on_am_backup_game_progress) self.__am_signal_progress = am.connect('backup-game-progress',self._on_am_backup_game_progress)
self.__am_signal_finished = am.connect('backup-game-finished',self._on_am_backup_game_finished) self.__am_signal_finished = am.connect('backup-game-finished',self._on_am_backup_game_finished)