Only register sys.excepthook if the app actually started

Without this patch, when running tests the crash message box may be displayed.
With those changes, it will be displayed only if the app was actually started.
This commit is contained in:
Laurent Monin
2024-04-23 11:43:32 +02:00
committed by Philipp Wolfer
parent d7bb9dc0a2
commit eec6513ce8
2 changed files with 9 additions and 6 deletions

View File

@@ -132,10 +132,10 @@ def crash_handler(exc: Exception = None):
app.quit() app.quit()
def _global_exception_handler(exctype, value, traceback): def register_excepthook():
from picard import crash_handler def _global_exception_handler(exctype, value, traceback):
crash_handler(exc=value) from picard import crash_handler
sys.__excepthook__(exctype, value, traceback) crash_handler(exc=value)
sys.__excepthook__(exctype, value, traceback)
sys.excepthook = _global_exception_handler
sys.excepthook = _global_exception_handler

View File

@@ -73,6 +73,7 @@ from picard import (
PICARD_ORG_NAME, PICARD_ORG_NAME,
acoustid, acoustid,
log, log,
register_excepthook,
) )
from picard.acoustid.manager import AcoustIDManager from picard.acoustid.manager import AcoustIDManager
from picard.album import ( from picard.album import (
@@ -1505,6 +1506,8 @@ If a new instance will not be spawned files/directories will be passed to the ex
def main(localedir=None, autoupdate=True): def main(localedir=None, autoupdate=True):
register_excepthook()
# Some libs (ie. Phonon) require those to be set # Some libs (ie. Phonon) require those to be set
QtWidgets.QApplication.setApplicationName(PICARD_APP_NAME) QtWidgets.QApplication.setApplicationName(PICARD_APP_NAME)
QtWidgets.QApplication.setOrganizationName(PICARD_ORG_NAME) QtWidgets.QApplication.setOrganizationName(PICARD_ORG_NAME)