From db10b50c84a4aaf5014e0f164b3f4f79ca222429 Mon Sep 17 00:00:00 2001 From: Alex Borisov Date: Sat, 24 Mar 2012 00:28:40 +0200 Subject: FIX: speed calc problem, tray click fix, other --- client/ProxyClientApp.cpp | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) (limited to 'client/ProxyClientApp.cpp') diff --git a/client/ProxyClientApp.cpp b/client/ProxyClientApp.cpp index e111001..c20d232 100644 --- a/client/ProxyClientApp.cpp +++ b/client/ProxyClientApp.cpp @@ -2,7 +2,6 @@ #include #include "client.h" -#include "Dialog.h" #include "Proxifier.h" #include "ProxyClientApp.h" #include "UpdatedConfig.h" @@ -10,7 +9,9 @@ using namespace std; ProxyClientApp::ProxyClientApp(int &argc, char *argv[]): QApplication(argc, argv) -{ +{ + dialog = NULL; + /* initiates UpdatedConfig singleton that start sending configuration requests */ UpdatedConfig *cfg = UpdatedConfig::CurrentConfig(); connect(cfg, SIGNAL(updated()), @@ -73,17 +74,28 @@ ProxyClientApp::ProxyClientApp(int &argc, char *argv[]): QApplication(argc, argv void ProxyClientApp::trayActivated(QSystemTrayIcon::ActivationReason reason) { - if (reason == QSystemTrayIcon::Trigger) + if (reason != QSystemTrayIcon::Trigger) { - showProxyDialog(); - } + return; + } + + if (dialog == NULL) + { + showProxyDialog(); + } + else + { + dialog->reject(); + delete dialog; + dialog = NULL; + } } void ProxyClientApp::showProxyDialog() { - Logger::Trace("Creating proxy dialog.\n"); - ProxyDialog *dialog = new ProxyDialog(); - dialog->show(); + dialog = new ProxyDialog(); + dialog->setAttribute(Qt::WA_DeleteOnClose); + dialog->show(); } void ProxyClientApp::configUpdated() -- cgit v1.2.3