diff options
author | Micah Lee <micah@micahflee.com> | 2021-08-20 14:43:21 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-08-20 14:43:21 -0700 |
commit | b66e742bc20ae977232fc53f22d485c10173ac2f (patch) | |
tree | c6eb66c340c34b45bac5525350c5eb5c43fe33a6 /desktop/src/onionshare/__init__.py | |
parent | 76104671c3eacbef53ad96fffd8a57512ab2d093 (diff) | |
parent | 02254b13bb4818745193092f2144fd83726d79e7 (diff) | |
download | onionshare-b66e742bc20ae977232fc53f22d485c10173ac2f.tar.gz onionshare-b66e742bc20ae977232fc53f22d485c10173ac2f.zip |
Merge pull request #1395 from onionshare/developv2.3.3
Version 2.3.3, merge develop into stable
Diffstat (limited to 'desktop/src/onionshare/__init__.py')
-rw-r--r-- | desktop/src/onionshare/__init__.py | 49 |
1 files changed, 41 insertions, 8 deletions
diff --git a/desktop/src/onionshare/__init__.py b/desktop/src/onionshare/__init__.py index 744f6979..9d8d8981 100644 --- a/desktop/src/onionshare/__init__.py +++ b/desktop/src/onionshare/__init__.py @@ -21,7 +21,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. from __future__ import division import os import sys -import platform import argparse import signal import json @@ -29,7 +28,11 @@ import psutil import getpass from PySide2 import QtCore, QtWidgets, QtGui +from PySide2.QtCore import Slot,Qt +from PySide2.QtGui import QPalette, QColor + from onionshare_cli.common import Common +from onionshare_cli.settings import Settings from .gui_common import GuiCommon from .widgets import Alert @@ -48,7 +51,12 @@ class Application(QtWidgets.QApplication): QtWidgets.QApplication.__init__(self, sys.argv) # Check color mode on starting the app - self.color_mode = self.get_color_mode() + self.color_mode = self.get_color_mode(common) + + # Enable Dark Theme + if self.color_mode == "dark": + self.setDarkMode() + self.installEventFilter(self) def eventFilter(self, obj, event): @@ -66,23 +74,48 @@ class Application(QtWidgets.QApplication): return False return True - def get_color_mode(self): - return "dark" if self.is_dark_mode() else "light" - + def setDarkMode(self): + self.setStyle("Fusion") + dark_palette = QPalette() + dark_palette.setColor(QPalette.Window, QColor(53, 53, 53)) + dark_palette.setColor(QPalette.WindowText, Qt.white) + dark_palette.setColor(QPalette.Base, QColor(25, 25, 25)) + dark_palette.setColor(QPalette.AlternateBase, QColor(53, 53, 53)) + dark_palette.setColor(QPalette.ToolTipBase, Qt.white) + dark_palette.setColor(QPalette.ToolTipText, Qt.white) + dark_palette.setColor(QPalette.Text, Qt.white) + dark_palette.setColor(QPalette.Button, QColor(53, 53, 53)) + dark_palette.setColor(QPalette.ButtonText, Qt.white) + dark_palette.setColor(QPalette.BrightText, Qt.red) + dark_palette.setColor(QPalette.Link, QColor(42, 130, 218)) + dark_palette.setColor(QPalette.Highlight, QColor(42, 130, 218)) + dark_palette.setColor(QPalette.HighlightedText, Qt.black) + self.setPalette(dark_palette) + self.setStyleSheet("QToolTip { color: #ffffff; background-color: #2a82da; border: 1px solid white; }") + + def get_color_mode(self, common): + curr_settings = Settings(common) + curr_settings.load() + current_theme = curr_settings.get("theme") + + if current_theme == 1: + return "light" + elif current_theme == 2: + return "dark" + else: + return "dark" if self.is_dark_mode() else "light" def main(): """ The main() function implements all of the logic that the GUI version of onionshare uses. """ common = Common() + common.display_banner() # Required for macOS Big Sur: https://stackoverflow.com/a/64878899 if common.platform == "Darwin": os.environ["QT_MAC_WANTS_LAYER"] = "1" - # Display OnionShare banner - print(f"OnionShare {common.version} | https://onionshare.org/") - # Start the Qt app global qtapp qtapp = Application(common) |