tMerge pull request #553 from samrg472/master - electrum - Electrum Bitcoin wallet HTML git clone https://git.parazyd.org/electrum DIR Log DIR Files DIR Refs DIR Submodules --- DIR commit 0bc42a1f1fe52142f548e392bd40f2f5f25231c0 DIR parent 8c9a26cbf7b26bceaaa2beb481847ab9bda054c1 HTML Author: ThomasV <thomasv1@gmx.de> Date: Wed, 22 Jan 2014 06:42:20 -0800 Merge pull request #553 from samrg472/master Added ability to minimize to tray Diffstat: M gui/qt/main_window.py | 33 +++++++++---------------------- 1 file changed, 9 insertions(+), 24 deletions(-) --- DIR diff --git a/gui/qt/main_window.py b/gui/qt/main_window.py t@@ -98,37 +98,22 @@ class StatusBarButton(QPushButton): default_column_widths = { "history":[40,140,350,140], "contacts":[350,330], "receive": [370,200,130] } class ElectrumWindow(QMainWindow): - def changeEvent(self, event): - flags = self.windowFlags(); - if event and event.type() == QtCore.QEvent.WindowStateChange: - if self.windowState() & QtCore.Qt.WindowMinimized: - self.build_menu(True) - # The only way to toggle the icon in the window managers taskbar is to use the Qt.Tooltip flag - # The problem is that it somehow creates an (in)visible window that will stay active and prevent - # Electrum from closing. - # As for now I have no clue how to implement a proper 'hide to tray' functionality. - # self.setWindowFlags(flags & ~Qt.ToolTip) - elif event.oldState() & QtCore.Qt.WindowMinimized: - self.build_menu(False) - #self.setWindowFlags(flags | Qt.ToolTip) - - def build_menu(self, is_hidden = False): + def build_menu(self): m = QMenu() - if self.isMinimized(): - m.addAction(_("Show"), self.showNormal) - else: - m.addAction(_("Hide"), self.showMinimized) - + m.addAction(_("Show/Hide"), self.show_or_hide) m.addSeparator() m.addAction(_("Exit Electrum"), self.close) self.tray.setContextMenu(m) + def show_or_hide(self): + self.tray_activated(QSystemTrayIcon.DoubleClick) + def tray_activated(self, reason): if reason == QSystemTrayIcon.DoubleClick: - self.showNormal() - - def showNormal(self): - self.setWindowState(self.windowState() & ~QtCore.Qt.WindowMinimized | QtCore.Qt.WindowActive) + if self.isMinimized() or self.isHidden(): + self.show() + else: + self.hide() def __init__(self, config, network): QMainWindow.__init__(self)