Hide window from taskbar when "minimize to tray" active by making window into Tool window

This commit is contained in:
Wladimir J. van der Laan 2012-02-17 13:50:32 +01:00
parent b7c25e0c13
commit 83d1d1a906
2 changed files with 9 additions and 22 deletions

View file

@ -56,7 +56,6 @@ BitcoinGUI::BitcoinGUI(QWidget *parent):
QMainWindow(parent), QMainWindow(parent),
clientModel(0), clientModel(0),
walletModel(0), walletModel(0),
dummyWidget(0),
encryptWalletAction(0), encryptWalletAction(0),
changePassphraseAction(0), changePassphraseAction(0),
aboutQtAction(0), aboutQtAction(0),
@ -86,9 +85,6 @@ BitcoinGUI::BitcoinGUI(QWidget *parent):
// Create the tray icon (or setup the dock icon) // Create the tray icon (or setup the dock icon)
createTrayIcon(); createTrayIcon();
// Dummy widget used when restoring window state after minimization
dummyWidget = new QWidget();
// Create tabs // Create tabs
overviewPage = new OverviewPage(); overviewPage = new OverviewPage();
@ -166,7 +162,6 @@ BitcoinGUI::~BitcoinGUI()
#ifdef Q_WS_MAC #ifdef Q_WS_MAC
delete appMenuBar; delete appMenuBar;
#endif #endif
delete dummyWidget;
} }
void BitcoinGUI::createActions() void BitcoinGUI::createActions()
@ -414,14 +409,6 @@ void BitcoinGUI::trayIconActivated(QSystemTrayIcon::ActivationReason reason)
} }
#endif #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() void BitcoinGUI::optionsClicked()
{ {
if(!clientModel || !clientModel->getOptionsModel()) if(!clientModel || !clientModel->getOptionsModel())
@ -561,15 +548,19 @@ void BitcoinGUI::changeEvent(QEvent *e)
{ {
if(clientModel && clientModel->getOptionsModel()->getMinimizeToTray()) 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 // Minimized, hide the window from taskbar
setParent(dummyWidget, Qt::SubWindow); setWindowFlags(windowFlags() | Qt::Tool);
return; return;
} }
else else if(wasMinimized && !isMinimized)
{ {
showNormal(); // Unminimized, show the window in taskbar
setWindowFlags(windowFlags() &~ Qt::Tool);
} }
} }
} }

View file

@ -58,8 +58,6 @@ private:
QStackedWidget *centralWidget; QStackedWidget *centralWidget;
QWidget *dummyWidget;
OverviewPage *overviewPage; OverviewPage *overviewPage;
QWidget *transactionsPage; QWidget *transactionsPage;
AddressBookPage *addressBookPage; AddressBookPage *addressBookPage;
@ -133,8 +131,6 @@ public slots:
void gotoMessagePage(); void gotoMessagePage();
void gotoMessagePage(QString); void gotoMessagePage(QString);
void showNormal();
private slots: private slots:
/** Switch to overview (home) page */ /** Switch to overview (home) page */
void gotoOverviewPage(); void gotoOverviewPage();