Mercurial > hg > bitcoin
changeset 2830:28b6355a3dfa draft
Hide window from taskbar when "minimize to tray" active by making window into Tool window
author | Wladimir J. van der Laan <laanwj@gmail.com> |
---|---|
date | Fri, 17 Feb 2012 13:50:32 +0100 |
parents | 034dc78ac39a |
children | 48e56681917e |
files | src/qt/bitcoingui.cpp src/qt/bitcoingui.h |
diffstat | 2 files changed, 9 insertions(+), 22 deletions(-) [+] |
line wrap: on
line diff
--- a/src/qt/bitcoingui.cpp +++ b/src/qt/bitcoingui.cpp @@ -55,7 +55,6 @@ QMainWindow(parent), clientModel(0), walletModel(0), - dummyWidget(0), encryptWalletAction(0), changePassphraseAction(0), aboutQtAction(0), @@ -85,9 +84,6 @@ // Create the tray icon (or setup the dock icon) createTrayIcon(); - // Dummy widget used when restoring window state after minimization - dummyWidget = new QWidget(); - // Create tabs overviewPage = new OverviewPage(); @@ -161,7 +157,6 @@ #ifdef Q_WS_MAC delete appMenuBar; #endif - delete dummyWidget; } void BitcoinGUI::createActions() @@ -387,14 +382,6 @@ } #endif -void BitcoinGUI::showNormal() -{ - // Reparent window to the desktop (in case it was hidden on minimize) - if(parent() != NULL) - setParent(NULL, Qt::Window); - QMainWindow::showNormal(); -} - void BitcoinGUI::optionsClicked() { if(!clientModel || !clientModel->getOptionsModel()) @@ -541,15 +528,19 @@ { if(clientModel && clientModel->getOptionsModel()->getMinimizeToTray()) { - if(isMinimized()) + QWindowStateChangeEvent *wsevt = static_cast<QWindowStateChangeEvent*>(e); + bool wasMinimized = wsevt->oldState() & Qt::WindowMinimized; + bool isMinimized = windowState() & Qt::WindowMinimized; + if(!wasMinimized && isMinimized) { - // Hiding the window from taskbar - setParent(dummyWidget, Qt::SubWindow); + // Minimized, hide the window from taskbar + setWindowFlags(windowFlags() | Qt::Tool); return; } - else + else if(wasMinimized && !isMinimized) { - showNormal(); + // Unminimized, show the window in taskbar + setWindowFlags(windowFlags() &~ Qt::Tool); } } }
--- a/src/qt/bitcoingui.h +++ b/src/qt/bitcoingui.h @@ -54,8 +54,6 @@ QStackedWidget *centralWidget; - QWidget *dummyWidget; - OverviewPage *overviewPage; QWidget *transactionsPage; AddressBookPage *addressBookPage; @@ -109,8 +107,6 @@ */ void askFee(qint64 nFeeRequired, bool *payFee); - void showNormal(); - private slots: // UI pages void gotoOverviewPage();