mirror of
https://github.com/kvazar-network/kevacoin.git
synced 2025-01-23 13:24:18 +00:00
Merge pull request #853 from laanwj/2012_02_altminimizetray
Yet another alternative "minimize to tray" implementation Fixes problems with window positioning.
This commit is contained in:
commit
fbbd42a535
@ -58,7 +58,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),
|
||||||
@ -88,9 +87,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();
|
||||||
|
|
||||||
@ -170,7 +166,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()
|
||||||
@ -214,17 +209,17 @@ void BitcoinGUI::createActions()
|
|||||||
#endif
|
#endif
|
||||||
tabGroup->addAction(messageAction);
|
tabGroup->addAction(messageAction);
|
||||||
|
|
||||||
connect(overviewAction, SIGNAL(triggered()), this, SLOT(showNormal()));
|
connect(overviewAction, SIGNAL(triggered()), this, SLOT(showNormalIfMinimized()));
|
||||||
connect(overviewAction, SIGNAL(triggered()), this, SLOT(gotoOverviewPage()));
|
connect(overviewAction, SIGNAL(triggered()), this, SLOT(gotoOverviewPage()));
|
||||||
connect(historyAction, SIGNAL(triggered()), this, SLOT(showNormal()));
|
connect(historyAction, SIGNAL(triggered()), this, SLOT(showNormalIfMinimized()));
|
||||||
connect(historyAction, SIGNAL(triggered()), this, SLOT(gotoHistoryPage()));
|
connect(historyAction, SIGNAL(triggered()), this, SLOT(gotoHistoryPage()));
|
||||||
connect(addressBookAction, SIGNAL(triggered()), this, SLOT(showNormal()));
|
connect(addressBookAction, SIGNAL(triggered()), this, SLOT(showNormalIfMinimized()));
|
||||||
connect(addressBookAction, SIGNAL(triggered()), this, SLOT(gotoAddressBookPage()));
|
connect(addressBookAction, SIGNAL(triggered()), this, SLOT(gotoAddressBookPage()));
|
||||||
connect(receiveCoinsAction, SIGNAL(triggered()), this, SLOT(showNormal()));
|
connect(receiveCoinsAction, SIGNAL(triggered()), this, SLOT(showNormalIfMinimized()));
|
||||||
connect(receiveCoinsAction, SIGNAL(triggered()), this, SLOT(gotoReceiveCoinsPage()));
|
connect(receiveCoinsAction, SIGNAL(triggered()), this, SLOT(gotoReceiveCoinsPage()));
|
||||||
connect(sendCoinsAction, SIGNAL(triggered()), this, SLOT(showNormal()));
|
connect(sendCoinsAction, SIGNAL(triggered()), this, SLOT(showNormalIfMinimized()));
|
||||||
connect(sendCoinsAction, SIGNAL(triggered()), this, SLOT(gotoSendCoinsPage()));
|
connect(sendCoinsAction, SIGNAL(triggered()), this, SLOT(gotoSendCoinsPage()));
|
||||||
connect(messageAction, SIGNAL(triggered()), this, SLOT(showNormal()));
|
connect(messageAction, SIGNAL(triggered()), this, SLOT(showNormalIfMinimized()));
|
||||||
connect(messageAction, SIGNAL(triggered()), this, SLOT(gotoMessagePage()));
|
connect(messageAction, SIGNAL(triggered()), this, SLOT(gotoMessagePage()));
|
||||||
|
|
||||||
quitAction = new QAction(QIcon(":/icons/quit"), tr("E&xit"), this);
|
quitAction = new QAction(QIcon(":/icons/quit"), tr("E&xit"), this);
|
||||||
@ -256,7 +251,7 @@ void BitcoinGUI::createActions()
|
|||||||
connect(optionsAction, SIGNAL(triggered()), this, SLOT(optionsClicked()));
|
connect(optionsAction, SIGNAL(triggered()), this, SLOT(optionsClicked()));
|
||||||
connect(aboutAction, SIGNAL(triggered()), this, SLOT(aboutClicked()));
|
connect(aboutAction, SIGNAL(triggered()), this, SLOT(aboutClicked()));
|
||||||
connect(aboutQtAction, SIGNAL(triggered()), qApp, SLOT(aboutQt()));
|
connect(aboutQtAction, SIGNAL(triggered()), qApp, SLOT(aboutQt()));
|
||||||
connect(openBitcoinAction, SIGNAL(triggered()), this, SLOT(showNormal()));
|
connect(openBitcoinAction, SIGNAL(triggered()), this, SLOT(showNormalIfMinimized()));
|
||||||
connect(encryptWalletAction, SIGNAL(triggered(bool)), this, SLOT(encryptWallet(bool)));
|
connect(encryptWalletAction, SIGNAL(triggered(bool)), this, SLOT(encryptWallet(bool)));
|
||||||
connect(backupWalletAction, SIGNAL(triggered()), this, SLOT(backupWallet()));
|
connect(backupWalletAction, SIGNAL(triggered()), this, SLOT(backupWallet()));
|
||||||
connect(changePassphraseAction, SIGNAL(triggered()), this, SLOT(changePassphrase()));
|
connect(changePassphraseAction, SIGNAL(triggered()), this, SLOT(changePassphrase()));
|
||||||
@ -422,14 +417,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())
|
||||||
@ -576,15 +563,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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -822,3 +813,11 @@ void BitcoinGUI::unlockWallet()
|
|||||||
dlg.exec();
|
dlg.exec();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void BitcoinGUI::showNormalIfMinimized()
|
||||||
|
{
|
||||||
|
if(!isVisible()) // Show, if hidden
|
||||||
|
show();
|
||||||
|
if(isMinimized()) // Unminimize, if minimized
|
||||||
|
showNormal();
|
||||||
|
}
|
||||||
|
@ -58,8 +58,6 @@ private:
|
|||||||
|
|
||||||
QStackedWidget *centralWidget;
|
QStackedWidget *centralWidget;
|
||||||
|
|
||||||
QWidget *dummyWidget;
|
|
||||||
|
|
||||||
OverviewPage *overviewPage;
|
OverviewPage *overviewPage;
|
||||||
QWidget *transactionsPage;
|
QWidget *transactionsPage;
|
||||||
AddressBookPage *addressBookPage;
|
AddressBookPage *addressBookPage;
|
||||||
@ -134,8 +132,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();
|
||||||
@ -169,6 +165,9 @@ private slots:
|
|||||||
void changePassphrase();
|
void changePassphrase();
|
||||||
/** Ask for pass phrase to unlock wallet temporarily */
|
/** Ask for pass phrase to unlock wallet temporarily */
|
||||||
void unlockWallet();
|
void unlockWallet();
|
||||||
|
|
||||||
|
/** Show window if hidden, unminimize when minimized */
|
||||||
|
void showNormalIfMinimized();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user