[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),
|
openAction(0),
|
||||||
showHelpMessageAction(0),
|
showHelpMessageAction(0),
|
||||||
trayIcon(0),
|
trayIcon(0),
|
||||||
|
trayIconMenu(0),
|
||||||
notificator(0),
|
notificator(0),
|
||||||
rpcConsole(0),
|
rpcConsole(0),
|
||||||
prevBlocks(0),
|
prevBlocks(0),
|
||||||
|
@ -449,8 +450,12 @@ void BitcoinGUI::setClientModel(ClientModel *clientModel)
|
||||||
walletFrame->setClientModel(clientModel);
|
walletFrame->setClientModel(clientModel);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
unitDisplayControl->setOptionsModel(clientModel->getOptionsModel());
|
||||||
this->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()
|
void BitcoinGUI::createTrayIconMenu()
|
||||||
{
|
{
|
||||||
QMenu *trayIconMenu;
|
|
||||||
#ifndef Q_OS_MAC
|
#ifndef Q_OS_MAC
|
||||||
// return if trayIcon is unset (only on non-Mac OSes)
|
// return if trayIcon is unset (only on non-Mac OSes)
|
||||||
if (!trayIcon)
|
if (!trayIcon)
|
||||||
|
@ -560,7 +564,7 @@ void BitcoinGUI::trayIconActivated(QSystemTrayIcon::ActivationReason reason)
|
||||||
if(reason == QSystemTrayIcon::Trigger)
|
if(reason == QSystemTrayIcon::Trigger)
|
||||||
{
|
{
|
||||||
// Click on system tray icon triggers show/hide of the main window
|
// Click on system tray icon triggers show/hide of the main window
|
||||||
toggleHideAction->trigger();
|
toggleHidden();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -946,6 +950,7 @@ void BitcoinGUI::showNormalIfMinimized(bool fToggleHidden)
|
||||||
{
|
{
|
||||||
if(!clientModel)
|
if(!clientModel)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// activateWindow() (sometimes) helps with keyboard focus on Windows
|
// activateWindow() (sometimes) helps with keyboard focus on Windows
|
||||||
if (isHidden())
|
if (isHidden())
|
||||||
{
|
{
|
||||||
|
|
|
@ -103,6 +103,7 @@ private:
|
||||||
QAction *showHelpMessageAction;
|
QAction *showHelpMessageAction;
|
||||||
|
|
||||||
QSystemTrayIcon *trayIcon;
|
QSystemTrayIcon *trayIcon;
|
||||||
|
QMenu *trayIconMenu;
|
||||||
Notificator *notificator;
|
Notificator *notificator;
|
||||||
RPCConsole *rpcConsole;
|
RPCConsole *rpcConsole;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue