diff options
Diffstat (limited to 'wpa_supplicant/wpa_gui-qt4/wpagui.cpp')
-rw-r--r-- | wpa_supplicant/wpa_gui-qt4/wpagui.cpp | 18 |
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); |