ui: Add Show/Hide to the systray menu when DE is Unity (fixes #741)

This commit is contained in:
Oleg Shparber
2017-10-22 01:38:17 +03:00
parent 65c60bc243
commit 176445083b
+14 -1
View File
@@ -712,8 +712,21 @@ void MainWindow::createTrayIcon()
});
QMenu *trayIconMenu = new QMenu(this);
trayIconMenu->addAction(ui->actionQuit);
#ifdef Q_OS_LINUX
if (QString::fromLocal8Bit(qgetenv("XDG_CURRENT_DESKTOP")) == QLatin1String("Unity")) {
QAction *showAction = trayIconMenu->addAction(tr("Show"));
connect(showAction, &QAction::triggered, this, &MainWindow::toggleWindow);
connect(trayIconMenu, &QMenu::aboutToShow, this, [this, showAction]() {
showAction->setText(isVisible() ? tr("Hide") : tr("Show"));
});
trayIconMenu->addSeparator();
}
#endif
trayIconMenu->addAction(ui->actionQuit);
m_trayIcon->setContextMenu(trayIconMenu);
m_trayIcon->show();