diff --git a/dangerzone/gui/main_window.py b/dangerzone/gui/main_window.py index 1ff89c0..e1b6e12 100644 --- a/dangerzone/gui/main_window.py +++ b/dangerzone/gui/main_window.py @@ -40,11 +40,7 @@ update.

UPDATE_ERROR_MSG_INTRO = """\ -

Something went wrong while checking for Dangerzone updates:

-""" - - -UPDATE_ERROR_MSG_OUTRO = """\ +

Something went wrong while checking for Dangerzone updates.

You are strongly advised to visit our downloads page and check for new updates manually, or consult @@ -54,6 +50,7 @@ in our menu, if you are in an air-gapped environment and have another way of lea about updates.

""" + HAMBURGER_MENU_SIZE = 30 @@ -209,15 +206,18 @@ class MainWindow(QtWidgets.QMainWindow): """Inform the user about an error during update checks""" assert self.updater_error is not None - error_widget = QtWidgets.QTextBrowser() - error_widget.setHtml(self.updater_error) + error_widget = CollapsibleBox("Error Details") + error_layout = QtWidgets.QVBoxLayout() + error_text_box = QtWidgets.QTextBrowser() + error_text_box.setHtml(self.updater_error) + error_layout.addWidget(error_text_box) + error_widget.setContentLayout(error_layout) update_widget = UpdateDialog( self.dangerzone, title="Update check error", intro_msg=UPDATE_ERROR_MSG_INTRO, middle_widget=error_widget, - epilogue_msg=UPDATE_ERROR_MSG_OUTRO, ok_text="Close", has_cancel=False, ) diff --git a/tests/gui/test_main_window.py b/tests/gui/test_main_window.py index 129825e..161372b 100644 --- a/tests/gui/test_main_window.py +++ b/tests/gui/test_main_window.py @@ -308,9 +308,15 @@ def test_update_error( kwargs = update_dialog_spy.call_args.kwargs assert kwargs["title"] == "Update check error" assert "Something went wrong" in kwargs["intro_msg"] - assert "Encountered an exception" in kwargs["middle_widget"].toPlainText() - assert "failed" in kwargs["middle_widget"].toPlainText() - assert "dangerzone.rocks" in kwargs["epilogue_msg"] + assert "dangerzone.rocks" in kwargs["intro_msg"] + assert not kwargs["middle_widget"].toggle_button.isChecked() + collapsible_box = kwargs["middle_widget"] + text_browser = ( + collapsible_box.layout().itemAt(1).widget().layout().itemAt(0).widget() + ) + assert collapsible_box.toggle_button.text() == "Error Details" + assert "Encountered an exception" in text_browser.toPlainText() + assert "failed" in text_browser.toPlainText() dialog.close()