Skip to content

Commit

Permalink
Merge bitcoin#15000: qt: Fix broken notificator on GNOME
Browse files Browse the repository at this point in the history
c8d9d90 Fix broken notificator on GNOME (Hennadii Stepanov)

Pull request description:

  Fix bitcoin#14994; that bug was introduced in bitcoin#14228 (that was my fault).

  ~Also this commit explicit separates~ There are two functions of the tray icon:
   - a system tray widget (`QSystemTrayIcon::isSystemTrayAvailable() == true`)
   - a high-level notificator via balloon messages (`QSystemTrayIcon::supportsMessages() == true`)

  ~These properties are mutually independent,~ e.g., on Fedora 29 + GNOME:
  ```
  QSystemTrayIcon::isSystemTrayAvailable() == false;
  QSystemTrayIcon::supportsMessages() == true;
  ```

  UPDATE:

  `supportsMessages()` makes no sense without `isSystemTrayAvailable()`: `QSystemTrayIcon::showMessage()` just not working on Fedora 29 + GNOME.

Tree-SHA512: 3e75ed2dfcef112bd64b8c329227ae68ba57f3be55769629f4eb3b1c52ef1f33db635f00bb5fd57c25f73a692971d6a847ea14c525f41c594fddde6e970a8ad8
  • Loading branch information
MarcoFalke committed Jan 2, 2019
2 parents df894fa + c8d9d90 commit fb52d06
Showing 1 changed file with 3 additions and 7 deletions.
10 changes: 3 additions & 7 deletions src/qt/bitcoingui.cpp
Expand Up @@ -129,6 +129,7 @@ BitcoinGUI::BitcoinGUI(interfaces::Node& node, const PlatformStyle *_platformSty
if (QSystemTrayIcon::isSystemTrayAvailable()) {
createTrayIcon(networkStyle);
}
notificator = new Notificator(QApplication::applicationName(), trayIcon, this);

// Create status bar
statusBar();
Expand Down Expand Up @@ -536,8 +537,7 @@ void BitcoinGUI::setClientModel(ClientModel *_clientModel)
unitDisplayControl->setOptionsModel(_clientModel->getOptionsModel());

OptionsModel* optionsModel = _clientModel->getOptionsModel();
if(optionsModel)
{
if (optionsModel && trayIcon) {
// be aware of the tray icon disable state change reported by the OptionsModel object.
connect(optionsModel, &OptionsModel::hideTrayIconChanged, this, &BitcoinGUI::setTrayIconVisible);

Expand Down Expand Up @@ -642,14 +642,10 @@ void BitcoinGUI::createTrayIcon(const NetworkStyle *networkStyle)
assert(QSystemTrayIcon::isSystemTrayAvailable());

#ifndef Q_OS_MAC
trayIcon = new QSystemTrayIcon(this);
trayIcon = new QSystemTrayIcon(networkStyle->getTrayAndWindowIcon(), this);
QString toolTip = tr("%1 client").arg(tr(PACKAGE_NAME)) + " " + networkStyle->getTitleAddText();
trayIcon->setToolTip(toolTip);
trayIcon->setIcon(networkStyle->getTrayAndWindowIcon());
trayIcon->hide();
#endif

notificator = new Notificator(QApplication::applicationName(), trayIcon, this);
}

void BitcoinGUI::createTrayIconMenu()
Expand Down

0 comments on commit fb52d06

Please sign in to comment.