diff --git a/resources/wx_gui/gui_download.py b/resources/wx_gui/gui_download.py index a926f8570..1d6c028a6 100644 --- a/resources/wx_gui/gui_download.py +++ b/resources/wx_gui/gui_download.py @@ -64,10 +64,15 @@ class DownloadFrame(wx.Frame): self.download_obj.download() while self.download_obj.is_active(): - if self.download_obj.get_percent() == -1: + percentage: int = self.download_obj.get_percent() + + if percentage == -1: amount_str = f"{utilities.human_fmt(self.download_obj.downloaded_file_size)} downloaded" + progress_bar.Pulse() else: - amount_str = f"{utilities.human_fmt(self.download_obj.downloaded_file_size)} downloaded of {utilities.human_fmt(self.download_obj.total_file_size)} ({self.download_obj.get_percent():.2f}%)" + amount_str = f"{utilities.human_fmt(self.download_obj.downloaded_file_size)} downloaded of {utilities.human_fmt(self.download_obj.total_file_size)} ({percentage:.2f}%)" + progress_bar.SetValue(int(percentage)) + label_amount.SetLabel(amount_str) label_amount.Centre(wx.HORIZONTAL) @@ -79,7 +84,6 @@ class DownloadFrame(wx.Frame): f"Estimated time remaining: {utilities.seconds_to_readable_time(self.download_obj.get_time_remaining())}" ) - progress_bar.SetValue(int(self.download_obj.get_percent())) wx.Yield() if self.download_obj.download_complete is False and self.user_cancelled is False: diff --git a/resources/wx_gui/gui_update.py b/resources/wx_gui/gui_update.py index 43ddfcc3f..2b00b8631 100644 --- a/resources/wx_gui/gui_update.py +++ b/resources/wx_gui/gui_update.py @@ -89,7 +89,15 @@ class UpdateFrame(wx.Frame): self.frame.Show() wx.Yield() - download_obj = network_handler.DownloadObject(url, self.constants.payload_path / "OpenCore-Patcher-GUI.app.zip") + download_obj = None + def _fetch_update() -> None: + nonlocal download_obj + download_obj = network_handler.DownloadObject(url, self.constants.payload_path / "OpenCore-Patcher-GUI.app.zip") + + thread = threading.Thread(target=_fetch_update) + thread.start() + while thread.is_alive(): + wx.Yield() gui_download.DownloadFrame( self.frame,