[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:
Philip Kaufmann 2014-08-07 09:37:21 +02:00
parent 314fbd9ac7
commit b197bf3270
2 changed files with 10 additions and 4 deletions

View file

@ -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())
{ {

View file

@ -103,6 +103,7 @@ private:
QAction *showHelpMessageAction; QAction *showHelpMessageAction;
QSystemTrayIcon *trayIcon; QSystemTrayIcon *trayIcon;
QMenu *trayIconMenu;
Notificator *notificator; Notificator *notificator;
RPCConsole *rpcConsole; RPCConsole *rpcConsole;