CURA-4895 Close the splash screen when the early crash dialog appears. Increase the size of 'show detailed crash report button'

This commit is contained in:
Diego Prado Gesto 2018-02-05 17:17:46 +01:00
parent e64fb9c762
commit a85a720184
2 changed files with 10 additions and 5 deletions

View File

@ -72,8 +72,10 @@ class CrashHandler:
if has_started and exception_type not in fatal_exception_types: if has_started and exception_type not in fatal_exception_types:
return return
self._send_report_checkbox = None if not has_started:
self.early_crash_dialog = self._createEarlyCrashDialog() self._send_report_checkbox = None
self.early_crash_dialog = self._createEarlyCrashDialog()
self.dialog = QDialog() self.dialog = QDialog()
self._createDialog() self._createDialog()
@ -99,7 +101,7 @@ class CrashHandler:
self._send_report_checkbox.setChecked(True) self._send_report_checkbox.setChecked(True)
show_details_button = QPushButton(catalog.i18nc("@action:button", "Show detailed crash report"), dialog) show_details_button = QPushButton(catalog.i18nc("@action:button", "Show detailed crash report"), dialog)
show_details_button.setMaximumWidth(180) show_details_button.setMaximumWidth(200)
show_details_button.clicked.connect(self._showDetailedReport) show_details_button.clicked.connect(self._showDetailedReport)
layout.addWidget(self._send_report_checkbox) layout.addWidget(self._send_report_checkbox)

View File

@ -99,18 +99,21 @@ def exceptHook(hook_type, value, traceback):
from PyQt5.Qt import QApplication from PyQt5.Qt import QApplication
if CuraApplication.Created: if CuraApplication.Created:
_crash_handler = CrashHandler(hook_type, value, traceback, has_started) _crash_handler = CrashHandler(hook_type, value, traceback, has_started)
if CuraApplication.splash is not None:
CuraApplication.splash.close()
if not has_started: if not has_started:
CuraApplication.getInstance().removePostedEvents(None) CuraApplication.getInstance().removePostedEvents(None)
_crash_handler.early_crash_dialog.show() _crash_handler.early_crash_dialog.show()
sys.exit(CuraApplication.getInstance().exec_()) sys.exit(CuraApplication.getInstance().exec_())
else: else:
_crash_handler.show() _crash_handler.show()
sys.exit(1)
else: else:
application = QApplication(sys.argv) application = QApplication(sys.argv)
application.removePostedEvents(None) application.removePostedEvents(None)
_crash_handler = CrashHandler(hook_type, value, traceback, has_started) _crash_handler = CrashHandler(hook_type, value, traceback, has_started)
CuraApplication.getInstance().closeSplash() # This means the QtApplication could be created and so the splash screen. Then Cura closes it
if CuraApplication.splash is not None:
CuraApplication.splash.close()
_crash_handler.early_crash_dialog.show() _crash_handler.early_crash_dialog.show()
sys.exit(application.exec_()) sys.exit(application.exec_())