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