From 26e5bf31a0cfc7efe6620774198e0be929415e55 Mon Sep 17 00:00:00 2001 From: Saptak S Date: Sat, 30 Jan 2021 22:13:22 +0530 Subject: Shows warning to restart if color mode changed while onionshare is running --- desktop/src/onionshare/__init__.py | 4 ---- desktop/src/onionshare/main_window.py | 14 ++++++++++++++ desktop/src/onionshare/resources/locale/en.json | 1 + 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/desktop/src/onionshare/__init__.py b/desktop/src/onionshare/__init__.py index a8cdd60b..b1275a90 100644 --- a/desktop/src/onionshare/__init__.py +++ b/desktop/src/onionshare/__init__.py @@ -58,10 +58,6 @@ class Application(QtWidgets.QApplication): and event.modifiers() == QtCore.Qt.ControlModifier ): self.quit() - - # Check if color switched while the app was open - if event.type() == QtCore.QEvent.Type.ApplicationPaletteChange: - self.color_mode = self.get_color_mode() return False def is_dark_mode(self): diff --git a/desktop/src/onionshare/main_window.py b/desktop/src/onionshare/main_window.py index 86258de9..f4f333d9 100644 --- a/desktop/src/onionshare/main_window.py +++ b/desktop/src/onionshare/main_window.py @@ -289,6 +289,20 @@ class MainWindow(QtWidgets.QMainWindow): self.system_tray.hide() e.accept() + def event(self, event): + # Check if color mode switched while onionshare was open, if so, ask user to restart + if event.type() == QtCore.QEvent.Type.ApplicationPaletteChange: + QtCore.QTimer.singleShot(1, self.color_mode_warning) + return True + return QtWidgets.QMainWindow.event(self, event) + + def color_mode_warning(self): + """ + Open the color mode warning alert. + """ + notice = strings._("gui_color_mode_changed_notice") + Alert(self.common, notice, QtWidgets.QMessageBox.Information) + def cleanup(self): self.common.log("MainWindow", "cleanup") self.tabs.cleanup() diff --git a/desktop/src/onionshare/resources/locale/en.json b/desktop/src/onionshare/resources/locale/en.json index 502fe13e..f7b8f7bb 100644 --- a/desktop/src/onionshare/resources/locale/en.json +++ b/desktop/src/onionshare/resources/locale/en.json @@ -111,6 +111,7 @@ "gui_open_folder_error": "Failed to open folder with xdg-open. The file is here: {}", "gui_settings_language_label": "Preferred language", "gui_settings_language_changed_notice": "Restart OnionShare for the new language to be applied.", + "gui_color_mode_changed_notice": "Restart OnionShare for the new color mode to be applied.", "systray_menu_exit": "Quit", "systray_page_loaded_title": "Page Loaded", "systray_page_loaded_message": "OnionShare address loaded", -- cgit v1.2.3-54-g00ecf