[Qt] disable tray interactions when client model set to 0
- this prevents the ability to fiddle around with the system tray when already shutting down (e.g. on slow shutdowns because of a proxy delay) - extends solution for #4360
This commit is contained in:
parent
314fbd9ac7
commit
b197bf3270
2 changed files with 10 additions and 4 deletions
|
@ -89,6 +89,7 @@ BitcoinGUI::BitcoinGUI(bool fIsTestnet, QWidget *parent) :
|
|||
openAction(0),
|
||||
showHelpMessageAction(0),
|
||||
trayIcon(0),
|
||||
trayIconMenu(0),
|
||||
notificator(0),
|
||||
rpcConsole(0),
|
||||
prevBlocks(0),
|
||||
|
@ -449,8 +450,12 @@ void BitcoinGUI::setClientModel(ClientModel *clientModel)
|
|||
walletFrame->setClientModel(clientModel);
|
||||
}
|
||||
#endif
|
||||
|
||||
this->unitDisplayControl->setOptionsModel(clientModel->getOptionsModel());
|
||||
unitDisplayControl->setOptionsModel(clientModel->getOptionsModel());
|
||||
} else {
|
||||
// Disable possibility to show main window via action
|
||||
toggleHideAction->setEnabled(false);
|
||||
// Disable context menu on tray icon
|
||||
trayIconMenu->clear();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -519,7 +524,6 @@ void BitcoinGUI::createTrayIcon(bool fIsTestnet)
|
|||
|
||||
void BitcoinGUI::createTrayIconMenu()
|
||||
{
|
||||
QMenu *trayIconMenu;
|
||||
#ifndef Q_OS_MAC
|
||||
// return if trayIcon is unset (only on non-Mac OSes)
|
||||
if (!trayIcon)
|
||||
|
@ -560,7 +564,7 @@ void BitcoinGUI::trayIconActivated(QSystemTrayIcon::ActivationReason reason)
|
|||
if(reason == QSystemTrayIcon::Trigger)
|
||||
{
|
||||
// Click on system tray icon triggers show/hide of the main window
|
||||
toggleHideAction->trigger();
|
||||
toggleHidden();
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
@ -946,6 +950,7 @@ void BitcoinGUI::showNormalIfMinimized(bool fToggleHidden)
|
|||
{
|
||||
if(!clientModel)
|
||||
return;
|
||||
|
||||
// activateWindow() (sometimes) helps with keyboard focus on Windows
|
||||
if (isHidden())
|
||||
{
|
||||
|
|
|
@ -103,6 +103,7 @@ private:
|
|||
QAction *showHelpMessageAction;
|
||||
|
||||
QSystemTrayIcon *trayIcon;
|
||||
QMenu *trayIconMenu;
|
||||
Notificator *notificator;
|
||||
RPCConsole *rpcConsole;
|
||||
|
||||
|
|
Loading…
Reference in a new issue