summaryrefslogtreecommitdiff
path: root/wpa_supplicant/wpa_gui-qt4/wpagui.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'wpa_supplicant/wpa_gui-qt4/wpagui.cpp')
-rw-r--r--wpa_supplicant/wpa_gui-qt4/wpagui.cpp18
1 files changed, 16 insertions, 2 deletions
diff --git a/wpa_supplicant/wpa_gui-qt4/wpagui.cpp b/wpa_supplicant/wpa_gui-qt4/wpagui.cpp
index a0aa05e..396b121 100644
--- a/wpa_supplicant/wpa_gui-qt4/wpagui.cpp
+++ b/wpa_supplicant/wpa_gui-qt4/wpagui.cpp
@@ -11,11 +11,14 @@
#endif /* CONFIG_NATIVE_WINDOWS */
#include <cstdio>
+#include <cstdlib>
#include <unistd.h>
#include <QMessageBox>
#include <QCloseEvent>
#include <QImageReader>
+#include <QProcess>
#include <QSettings>
+#include <QStringList>
#include "wpagui.h"
#include "dirent.h"
@@ -1415,10 +1418,21 @@ void WpaGui::createTrayIcon(bool trayOnly)
void WpaGui::showTrayMessage(QSystemTrayIcon::MessageIcon type, int sec,
const QString & msg)
{
- if (!QSystemTrayIcon::supportsMessages())
+ if (isVisible() || !tray_icon || !tray_icon->isVisible() || quietMode)
return;
- if (isVisible() || !tray_icon || !tray_icon->isVisible() || quietMode)
+ /* first try to use KDE's notifications system if running under
+ * a KDE session */
+ if (getenv("KDE_FULL_SESSION") != NULL) {
+ QStringList args;
+ args << "--passivepopup" << msg << QString::number(sec);
+ args << "--title" << "wpa_gui";
+
+ if (QProcess::execute("/usr/bin/kdialog", args) == 0)
+ return;
+ }
+
+ if (!QSystemTrayIcon::supportsMessages())
return;
tray_icon->showMessage(qAppName(), msg, type, sec * 1000);