|
@@ -25,6 +25,7 @@
|
|
#include <QMessageBox>
|
|
#include <QMessageBox>
|
|
#include <QCloseEvent>
|
|
#include <QCloseEvent>
|
|
#include <QImageReader>
|
|
#include <QImageReader>
|
|
|
|
+#include <QSettings>
|
|
|
|
|
|
#include "wpagui.h"
|
|
#include "wpagui.h"
|
|
#include "dirent.h"
|
|
#include "dirent.h"
|
|
@@ -41,8 +42,8 @@ static int wpagui_printf(const char *, ...)
|
|
}
|
|
}
|
|
#endif
|
|
#endif
|
|
|
|
|
|
-WpaGui::WpaGui(QWidget *parent, const char *, Qt::WFlags)
|
|
|
|
- : QMainWindow(parent)
|
|
|
|
|
|
+WpaGui::WpaGui(QApplication *_app, QWidget *parent, const char *, Qt::WFlags)
|
|
|
|
+ : QMainWindow(parent), app(_app)
|
|
{
|
|
{
|
|
setupUi(this);
|
|
setupUi(this);
|
|
|
|
|
|
@@ -137,6 +138,15 @@ WpaGui::WpaGui(QWidget *parent, const char *, Qt::WFlags)
|
|
|
|
|
|
parse_argv();
|
|
parse_argv();
|
|
|
|
|
|
|
|
+ if (app->isSessionRestored()) {
|
|
|
|
+ QSettings settings("wpa_supplicant", "wpa_gui");
|
|
|
|
+ settings.beginGroup("state");
|
|
|
|
+ if (app->sessionId().compare(settings.value("session_id").
|
|
|
|
+ toString()) == 0)
|
|
|
|
+ startInTray = settings.value("in_tray").toBool();
|
|
|
|
+ settings.endGroup();
|
|
|
|
+ }
|
|
|
|
+
|
|
if (QSystemTrayIcon::isSystemTrayAvailable())
|
|
if (QSystemTrayIcon::isSystemTrayAvailable())
|
|
createTrayIcon(startInTray);
|
|
createTrayIcon(startInTray);
|
|
else
|
|
else
|
|
@@ -1294,6 +1304,7 @@ void WpaGui::createTrayIcon(bool trayOnly)
|
|
|
|
|
|
if (!trayOnly)
|
|
if (!trayOnly)
|
|
show();
|
|
show();
|
|
|
|
+ inTray = trayOnly;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -1317,10 +1328,13 @@ void WpaGui::trayActivated(QSystemTrayIcon::ActivationReason how)
|
|
* custom closeEvent handler take care of children */
|
|
* custom closeEvent handler take care of children */
|
|
case QSystemTrayIcon::Trigger:
|
|
case QSystemTrayIcon::Trigger:
|
|
ackTrayIcon = true;
|
|
ackTrayIcon = true;
|
|
- if (isVisible())
|
|
|
|
|
|
+ if (isVisible()) {
|
|
close();
|
|
close();
|
|
- else
|
|
|
|
|
|
+ inTray = true;
|
|
|
|
+ } else {
|
|
show();
|
|
show();
|
|
|
|
+ inTray = false;
|
|
|
|
+ }
|
|
break;
|
|
break;
|
|
case QSystemTrayIcon::MiddleClick:
|
|
case QSystemTrayIcon::MiddleClick:
|
|
showTrayStatus();
|
|
showTrayStatus();
|
|
@@ -1664,3 +1678,13 @@ void WpaGui::addInterface()
|
|
add_iface->show();
|
|
add_iface->show();
|
|
add_iface->exec();
|
|
add_iface->exec();
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+void WpaGui::saveState()
|
|
|
|
+{
|
|
|
|
+ QSettings settings("wpa_supplicant", "wpa_gui");
|
|
|
|
+ settings.beginGroup("state");
|
|
|
|
+ settings.setValue("session_id", app->sessionId());
|
|
|
|
+ settings.setValue("in_tray", inTray);
|
|
|
|
+ settings.endGroup();
|
|
|
|
+}
|