Don't bother showing a status message when returning to the system tray,
authorKel Modderman <kel@otaku42.de>
Fri, 26 Sep 2008 12:42:12 +0000 (15:42 +0300)
committerJouni Malinen <j@w1.fi>
Fri, 26 Sep 2008 12:42:12 +0000 (15:42 +0300)
but still show a one time tray message to indicate to the user that the
program is still running in the tray if they triggered the window manager
close button.

Signed-off-by: Kel Modderman <kel@otaku42.de>
wpa_supplicant/wpa_gui-qt4/wpagui.cpp

index dfec128..957173f 100644 (file)
@@ -1156,6 +1156,7 @@ void WpaGui::trayActivated(QSystemTrayIcon::ActivationReason how)
        /* use close() here instead of hide() and allow the
         * custom closeEvent handler take care of children */
        case QSystemTrayIcon::Trigger:
+               ackTrayIcon = true;
                if (isVisible())
                        close();
                else
@@ -1241,21 +1242,24 @@ void WpaGui::closeEvent(QCloseEvent *event)
 
        if (tray_icon && tray_icon->isVisible()) {
                /* give user a visual hint that the tray icon exists */
-               if (QSystemTrayIcon::supportsMessages()) {
+               if (!ackTrayIcon && QSystemTrayIcon::supportsMessages()) {
                        hide();
-                       QTimer::singleShot(1 * 1000, this,
-                                          SLOT(showTrayStatus()));
+                       showTrayMessage(QSystemTrayIcon::Information, 3,
+                                       qAppName() + " will keep running in "
+                                       "the system tray.");
                } else if (!ackTrayIcon) {
                        QMessageBox::information(this, qAppName() + " systray",
                                                 "The program will keep "
-                                                "running in the system tray."
-                                                " To terminate the program, "
-                                                "choose <b>Quit</b> in the "
-                                                "context menu of the system "
-                                                "tray icon.");
-                       ackTrayIcon = true;
+                                                "running in the system "
+                                                "tray.");
                        hide();
                }
+
+               if (ackTrayIcon)
+                       hide();
+               else
+                       ackTrayIcon = true;
+
                event->ignore();
                return;
        }