summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--client/ProxyClientApp.cpp19
-rw-r--r--client/ProxyClientApp.h2
2 files changed, 17 insertions, 4 deletions
diff --git a/client/ProxyClientApp.cpp b/client/ProxyClientApp.cpp
index 030f260..e3a30a9 100644
--- a/client/ProxyClientApp.cpp
+++ b/client/ProxyClientApp.cpp
@@ -1,7 +1,6 @@
-#include <QSystemTrayIcon>
-#include <QMessageBox>
#include <QMenu>
+#include <QMessageBox>
#include "client.h"
#include "Dialog.h"
@@ -13,19 +12,23 @@ ProxyClientApp::ProxyClientApp(int &argc, char *argv[]): QApplication(argc, argv
{
Logger::Fatal("No system tray available! Terminating.\n");
return;
- }
+ }
+
+ /* create system tray menu */
+ QMenu *trayMenu = new QMenu;
QAction *showAction = new QAction(tr("&Show"), this);
showAction->setStatusTip(tr("Open dialog to choose a proxy"));
connect(showAction, SIGNAL(triggered()), this, SLOT(showProxyDialog()));
QAction *quitAction = new QAction(tr("&Quit"), this);
quitAction->setStatusTip(tr("Close this application"));
connect(quitAction, SIGNAL(triggered()), this, SLOT(quitApp()));
- QMenu *trayMenu = new QMenu;
trayMenu->addAction(showAction);
trayMenu->addAction(quitAction);
QIcon *icon = new QIcon("icon.png");
QSystemTrayIcon *trayIcon = new QSystemTrayIcon(*icon);
+ connect(trayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)),
+ this, SLOT(trayActivated(QSystemTrayIcon::ActivationReason)));
trayIcon->setContextMenu(trayMenu);
trayIcon->show();
delete icon;
@@ -33,6 +36,14 @@ ProxyClientApp::ProxyClientApp(int &argc, char *argv[]): QApplication(argc, argv
QApplication::setQuitOnLastWindowClosed(false);
}
+void ProxyClientApp::trayActivated(QSystemTrayIcon::ActivationReason reason)
+{
+ if (reason == QSystemTrayIcon::DoubleClick)
+ {
+ showProxyDialog();
+ }
+}
+
void ProxyClientApp::showProxyDialog()
{
Logger::Trace("Creating proxy dialog.\n");
diff --git a/client/ProxyClientApp.h b/client/ProxyClientApp.h
index 7369bad..c3c56af 100644
--- a/client/ProxyClientApp.h
+++ b/client/ProxyClientApp.h
@@ -3,6 +3,7 @@
#ifndef PROXY_CLIENT_APPLICATION_H
#define PROXY_CLIENT_APPLICATION_H
+#include <QSystemTrayIcon>
#include <QApplication>
class ProxyClientApp: public QApplication
@@ -11,6 +12,7 @@ class ProxyClientApp: public QApplication
public:
ProxyClientApp(int &argc, char *argv[]);
private slots:
+ void trayActivated(QSystemTrayIcon::ActivationReason reason);
void showProxyDialog();
void quitApp();
};