Browse Source

qt init: (trivial) refactor system tray

patch-4
SomberNight 4 years ago
parent
commit
14c5ceeacf
No known key found for this signature in database GPG Key ID: B33B5F232C6271E9
  1. 18
      electrum/gui/qt/__init__.py
  2. 3
      electrum/gui/qt/main_window.py

18
electrum/gui/qt/__init__.py

@ -122,16 +122,19 @@ class ElectrumGui(Logger):
self.network_updated_signal_obj = QNetworkUpdatedSignalObject()
self._num_wizards_in_progress = 0
self._num_wizards_lock = threading.Lock()
# init tray
self.dark_icon = self.config.get("dark_icon", False)
self.tray = None
self._init_tray()
self.app.new_window_signal.connect(self.start_new_window)
self.set_dark_theme_if_needed()
run_hook('init_qt', self)
def _init_tray(self):
self.tray = QSystemTrayIcon(self.tray_icon(), None)
self.tray.setToolTip('Electrum')
self.tray.activated.connect(self.tray_activated)
self.build_tray_menu()
self.tray.show()
self.app.new_window_signal.connect(self.start_new_window)
self.set_dark_theme_if_needed()
run_hook('init_qt', self)
def set_dark_theme_if_needed(self):
use_dark_theme = self.config.get('qt_gui_color_theme', 'default') == 'dark'
@ -150,6 +153,8 @@ class ElectrumGui(Logger):
ColorScheme.update_from_widget(QWidget(), force_dark=use_dark_theme)
def build_tray_menu(self):
if not self.tray:
return
# Avoid immediate GC of old menu when window closed via its action
if self.tray.contextMenu() is None:
m = QMenu()
@ -179,6 +184,8 @@ class ElectrumGui(Logger):
return read_QIcon('electrum_light_icon.png')
def toggle_tray_icon(self):
if not self.tray:
return
self.dark_icon = not self.dark_icon
self.config.set_key("dark_icon", self.dark_icon, True)
self.tray.setIcon(self.tray_icon())
@ -383,7 +390,8 @@ class ElectrumGui(Logger):
# clipboard persistence. see http://www.mail-archive.com/pyqt@riverbankcomputing.com/msg17328.html
event = QtCore.QEvent(QtCore.QEvent.Clipboard)
self.app.sendEvent(self.app.clipboard(), event)
self.tray.hide()
if self.tray:
self.tray.hide()
self.app.aboutToQuit.connect(clean_up)
# main loop

3
electrum/gui/qt/main_window.py

@ -992,7 +992,8 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, Logger):
text = _("Not connected")
icon = read_QIcon("status_disconnected.png")
self.tray.setToolTip("%s (%s)" % (text, self.wallet.basename()))
if self.tray:
self.tray.setToolTip("%s (%s)" % (text, self.wallet.basename()))
self.balance_label.setText(text)
if self.status_button:
self.status_button.setIcon(icon)

Loading…
Cancel
Save