aboutsummaryrefslogtreecommitdiffstats
path: root/sb_builder/__main__.py
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-10-19 19:23:11 +0200
committerDanilo M. <danix@danix.xyz>2026-10-19 19:23:11 +0200
commitc142168019f61776ba612fa05ac6a0adb17ba1e2 (patch)
tree12552a33a05f1a07d725eb331974269dd0fda73c /sb_builder/__main__.py
parent9c0a9b3c804e14e6d5193733f652b88ddd5abbaa (diff)
downloadsb-builder-c142168019f61776ba612fa05ac6a0adb17ba1e2.tar.gz
sb-builder-c142168019f61776ba612fa05ac6a0adb17ba1e2.zip
Fix crash when closing the Jobs tab during a running job
Closing the tab killed the job-follow process, whose finished signal arrived after the tab was deleted; the slot touched dead widgets and PyQt6 aborted the whole application on the unhandled exception. stop() now disconnects the process before killing it. A sys.excepthook logs any future slot exception to stderr instead of aborting. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'sb_builder/__main__.py')
-rw-r--r--sb_builder/__main__.py3
1 files changed, 3 insertions, 0 deletions
diff --git a/sb_builder/__main__.py b/sb_builder/__main__.py
index 5a78b64..ae8e89a 100644
--- a/sb_builder/__main__.py
+++ b/sb_builder/__main__.py
@@ -17,6 +17,7 @@
"""Entry point: python3 -m sb_builder."""
import sys
+import traceback
from PyQt6.QtWidgets import QApplication, QMessageBox
@@ -26,6 +27,8 @@ from .remote import Remote
def main():
+ # PyQt aborts on an exception escaping a slot unless a hook is set: log it instead
+ sys.excepthook = traceback.print_exception
app = QApplication(sys.argv)
app.setApplicationName("sb-builder")
cfg, err = config.load()