1 Commits
Author SHA1 Message Date
joel 04ff4dc163 fix: make updater show actual error messages in popup 2026-07-30 09:13:22 +02:00
2 changed files with 14 additions and 10 deletions
+6 -4
View File
@@ -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)
# =================================================================
+8 -6
View File
@@ -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: