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._set_status(msg, T["warn"]))
self.after(0, lambda: self.total_bar.set(pct / 100)) self.after(0, lambda: self.total_bar.set(pct / 100))
def _go(): def _go():
ok = download_and_install_update(rel, progress_callback=_p) ok, msg = download_and_install_update(rel, progress_callback=_p)
self.after(0, lambda: self._upd_fin(ok)) self.after(0, lambda: self._upd_fin(ok, msg))
import threading
threading.Thread(target=_go, daemon=True).start() 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") self.update_btn.configure(state="normal", text=" Update prüfen")
if ok: if ok:
messagebox.showinfo("Update", "Bitte neu starten.") messagebox.showinfo("Update", "Update erfolgreich installiert! Bitte das Programm neu starten.")
else: else:
self._set_status("Update fehlgeschlagen", T["error"]) self._set_status("Update fehlgeschlagen", T["error"])
messagebox.showerror("Update fehlgeschlagen", msg)
self.after(30, self._activate) self.after(30, self._activate)
# ================================================================= # =================================================================
+8 -6
View File
@@ -120,9 +120,10 @@ def download_and_install_update(
""" """
download_url = _find_download_url(release) download_url = _find_download_url(release)
if not download_url: if not download_url:
msg = f"Asset '{_get_platform_asset_name()}' nicht im Release gefunden."
if progress_callback: if progress_callback:
progress_callback(0, "Kein passendes Asset für dieses Betriebssystem gefunden.") progress_callback(0, msg)
return False return False, msg
try: try:
if progress_callback: if progress_callback:
@@ -171,14 +172,15 @@ def download_and_install_update(
_install_script(extract_dir, project_dir) _install_script(extract_dir, project_dir)
if progress_callback: 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: except Exception as e:
msg = f"Fehler beim Update: {e}"
if progress_callback: if progress_callback:
progress_callback(0, f"Fehler: {e}") progress_callback(0, msg)
return False return False, msg
finally: finally:
# Aufräumen (best-effort) # Aufräumen (best-effort)
try: try: