Queue desktop tray show action
This commit is contained in:
@@ -24,11 +24,19 @@
|
|||||||
#include <QApplication>
|
#include <QApplication>
|
||||||
#include <QDesktopServices>
|
#include <QDesktopServices>
|
||||||
#include <QMenu>
|
#include <QMenu>
|
||||||
|
#include <QMetaObject>
|
||||||
|
|
||||||
using namespace Qt::Literals::StringLiterals;
|
using namespace Qt::Literals::StringLiterals;
|
||||||
|
|
||||||
namespace OCC {
|
namespace OCC {
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
void showSettingsAfterTrayEvent()
|
||||||
|
{
|
||||||
|
auto *app = ocApp();
|
||||||
|
QMetaObject::invokeMethod(app, [app] { app->showSettings(); }, Qt::QueuedConnection);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Systray::Systray(QObject *parent)
|
Systray::Systray(QObject *parent)
|
||||||
: QSystemTrayIcon(parent)
|
: QSystemTrayIcon(parent)
|
||||||
@@ -36,7 +44,7 @@ Systray::Systray(QObject *parent)
|
|||||||
connect(this, &QSystemTrayIcon::activated, this, [](QSystemTrayIcon::ActivationReason reason) {
|
connect(this, &QSystemTrayIcon::activated, this, [](QSystemTrayIcon::ActivationReason reason) {
|
||||||
// Left click
|
// Left click
|
||||||
if (reason == QSystemTrayIcon::Trigger) {
|
if (reason == QSystemTrayIcon::Trigger) {
|
||||||
ocApp()->showSettings();
|
showSettingsAfterTrayEvent();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
connect(AccountManager::instance(), &AccountManager::accountAdded, this,
|
connect(AccountManager::instance(), &AccountManager::accountAdded, this,
|
||||||
@@ -143,7 +151,8 @@ void Systray::computeContextMenu()
|
|||||||
Q_ASSERT(!contextMenu());
|
Q_ASSERT(!contextMenu());
|
||||||
auto *menu = new QMenu(Theme::instance()->appNameGUI());
|
auto *menu = new QMenu(Theme::instance()->appNameGUI());
|
||||||
|
|
||||||
menu->addAction(Theme::instance()->applicationIcon(), tr("Show %1").arg(Theme::instance()->appNameGUI()), ocApp(), &Application::showSettings);
|
auto *showAction = menu->addAction(Theme::instance()->applicationIcon(), tr("Show %1").arg(Theme::instance()->appNameGUI()));
|
||||||
|
connect(showAction, &QAction::triggered, this, [] { showSettingsAfterTrayEvent(); });
|
||||||
auto *pauseResume = new QAction(menu);
|
auto *pauseResume = new QAction(menu);
|
||||||
auto updatePauseResumeAction = [pauseResume] {
|
auto updatePauseResumeAction = [pauseResume] {
|
||||||
pauseResume->setText(FolderMan::instance()->scheduler()->isRunning() ? tr("Pause synchronizations") : tr("Resume synchronizations"));
|
pauseResume->setText(FolderMan::instance()->scheduler()->isRunning() ? tr("Pause synchronizations") : tr("Resume synchronizations"));
|
||||||
|
|||||||
Reference in New Issue
Block a user