From c256b50ac6d1f930be3e392bb5e0c973f95f3a42 Mon Sep 17 00:00:00 2001 From: Christian Moser Date: Thu, 23 Jan 2025 22:33:08 +0100 Subject: [PATCH] 2025.01.23 22:33:08 --- sgbackup/archiver/_archiver.py | 29 +++++++++++++++++++++++++++-- sgbackup/settings.py | 2 +- 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/sgbackup/archiver/_archiver.py b/sgbackup/archiver/_archiver.py index 6e43476..c18f2c2 100644 --- a/sgbackup/archiver/_archiver.py +++ b/sgbackup/archiver/_archiver.py @@ -134,9 +134,35 @@ class ArchiverManager(GObject): def _on_archiver_backup_progress_multi(self,archiver,game,fraction,message): pass + @Signal(name="backup-game-progress",return_type=None,arg_types=(Game,float,str),flags=SignalFlags.RUN_FIRST) + def do_backup_game_progress(self,game,fraction,message): + pass + + @Signal(name="backup-game-finished",return_type=None,arg_types=(Game,float,str),flags=SignalFlags.RUN_FIRST) + def do_backup_game_finished(self,game:Game): + pass + + @Signal(name="backup-progress",return_type=None,arg_types=(float,),flags=SignalFlags.RUN_FIRST) + def do_backup_progress(self,fraction): + pass + + @Signal(name="backup-finished",return_type=None,arg_types=(),flags=SignalFlags.RUN_FIRST) + def do_backup_finished(self): + pass + def backup(self,game:Game): + def on_progress(archiver,game,fraction,message): + self.emit("backup-game-progress",game,fraction,message) + self.emit("backup-progress",fraction) + archiver = self.standard_archiver + backup_sc = archiver.connect('backup-progress',on_progress) archiver.backup(game) + archiver.disconnect(backup_sc) + self.emit("backup-game-finished",game) + self.emit("backup-finsihed") + + def backup_many(self,games:list[Game]): @@ -161,7 +187,7 @@ class ArchiverManager(GObject): thread.start() while threadpool: - time.sleep(0.25) + time.sleep(0.02) for i in range(len(threadpool)): thread = threadpool[i] if thread.is_alive(): @@ -175,5 +201,4 @@ class ArchiverManager(GObject): threadpool.append(thread) thread.start() - \ No newline at end of file diff --git a/sgbackup/settings.py b/sgbackup/settings.py index 0f5bab5..2ae46dc 100644 --- a/sgbackup/settings.py +++ b/sgbackup/settings.py @@ -113,7 +113,7 @@ class Settings(GObject.GObject): ret[k] = v return ret @variables.setter - def variables(self,vars:dict[str:str]|list|tuple): + def variables(self,vars:dict|list|tuple): if self.parser.has_section('variables'): for opt in self.parser['variables'].keys(): self.parser.remove_option('variables',opt)