diff --git a/fcco_converter/gui.py b/fcco_converter/gui.py index ff8da02..56c7a3a 100644 --- a/fcco_converter/gui.py +++ b/fcco_converter/gui.py @@ -904,16 +904,18 @@ class App(ctk.CTk): self.after(0, lambda: self._set_status(msg, T["warn"])) self.after(0, lambda: self.total_bar.set(pct / 100)) def _go(): - ok = download_and_install_update(rel, progress_callback=_p) - self.after(0, lambda: self._upd_fin(ok)) + ok, msg = download_and_install_update(rel, progress_callback=_p) + self.after(0, lambda: self._upd_fin(ok, msg)) + import threading threading.Thread(target=_go, daemon=True).start() - def _upd_fin(self, ok): + def _upd_fin(self, ok, msg=""): self.update_btn.configure(state="normal", text=" Update prüfen") if ok: - messagebox.showinfo("Update", "Bitte neu starten.") + messagebox.showinfo("Update", "Update erfolgreich installiert! Bitte das Programm neu starten.") else: self._set_status("Update fehlgeschlagen", T["error"]) + messagebox.showerror("Update fehlgeschlagen", msg) self.after(30, self._activate) # ================================================================= diff --git a/fcco_converter/updater.py b/fcco_converter/updater.py index 6d69646..9a297b9 100644 --- a/fcco_converter/updater.py +++ b/fcco_converter/updater.py @@ -120,9 +120,10 @@ def download_and_install_update( """ download_url = _find_download_url(release) if not download_url: + msg = f"Asset '{_get_platform_asset_name()}' nicht im Release gefunden." if progress_callback: - progress_callback(0, "Kein passendes Asset für dieses Betriebssystem gefunden.") - return False + progress_callback(0, msg) + return False, msg try: if progress_callback: @@ -171,14 +172,15 @@ def download_and_install_update( _install_script(extract_dir, project_dir) if progress_callback: - progress_callback(100, "Update abgeschlossen! Bitte Programm neu starten.") + progress_callback(100, "Update abgeschlossen!") - return True + return True, "Erfolgreich" except Exception as e: + msg = f"Fehler beim Update: {e}" if progress_callback: - progress_callback(0, f"Fehler: {e}") - return False + progress_callback(0, msg) + return False, msg finally: # Aufräumen (best-effort) try: