wpa_gui-qt4: add support for starting in system tray only
authorKel Modderman <kel@otaku42.de>
Wed, 1 Oct 2008 06:48:11 +0000 (09:48 +0300)
committerJouni Malinen <j@w1.fi>
Wed, 1 Oct 2008 06:48:11 +0000 (09:48 +0300)
Allow application to be started in the system tray only when started with
the `-t' command line argument.

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

index 32bcee0..41b5849 100644 (file)
@@ -16,6 +16,7 @@
       <command>wpa_gui</command>
       <arg>-p <replaceable>path to ctrl sockets</replaceable></arg>
       <arg>-i <replaceable>ifname</replaceable></arg>
+      <arg>-t</arg>
     </cmdsynopsis>
   </refsynopsisdiv>
 
        configured. By default, choose the first interface found with
        a control socket in the socket path.</para></listitem>
       </varlistentry>
+
+      <varlistentry>
+       <term>-t</term>
+
+        <listitem><para>Start program in the system tray only (if the window
+       manager supports it). By default the main status window is
+       shown.</para></listitem>
+      </varlistentry>
     </variablelist>
   </refsect1>
   <refsect1>
index 64aa7e9..2bc468e 100644 (file)
@@ -32,7 +32,6 @@ int main(int argc, char *argv[])
        }
 #endif /* CONFIG_NATIVE_WINDOWS */
 
-       w.show();
        ret = app.exec();
 
 #ifdef CONFIG_NATIVE_WINDOWS
index 8715267..f4847c0 100644 (file)
@@ -80,17 +80,20 @@ WpaGui::WpaGui(QWidget *parent, const char *, Qt::WFlags)
        scanres = NULL;
        udr = NULL;
        tray_icon = NULL;
+       startInTray = false;
        ctrl_iface = NULL;
        ctrl_conn = NULL;
        monitor_conn = NULL;
        msgNotifier = NULL;
        ctrl_iface_dir = strdup("/var/run/wpa_supplicant");
 
-       if (QSystemTrayIcon::isSystemTrayAvailable())
-               createTrayIcon();
-
        parse_argv();
 
+       if (QSystemTrayIcon::isSystemTrayAvailable())
+               createTrayIcon(startInTray);
+       else
+               show();
+
        textStatus->setText("connecting to wpa_supplicant");
        timer = new QTimer(this);
        connect(timer, SIGNAL(timeout()), SLOT(ping()));
@@ -105,9 +108,6 @@ WpaGui::WpaGui(QWidget *parent, const char *, Qt::WFlags)
        updateStatus();
        networkMayHaveChanged = true;
        updateNetworks();
-
-       if (tray_icon)
-               tray_icon->show();
 }
 
 
@@ -161,7 +161,7 @@ void WpaGui::parse_argv()
 {
        int c;
        for (;;) {
-               c = getopt(qApp->argc(), qApp->argv(), "i:p:");
+               c = getopt(qApp->argc(), qApp->argv(), "i:p:t");
                if (c < 0)
                        break;
                switch (c) {
@@ -173,6 +173,9 @@ void WpaGui::parse_argv()
                        free(ctrl_iface_dir);
                        ctrl_iface_dir = strdup(optarg);
                        break;
+               case 't':
+                       startInTray = true;
+                       break;
                }
        }
 }
@@ -1085,7 +1088,7 @@ void WpaGui::selectAdapter( const QString & sel )
 }
 
 
-void WpaGui::createTrayIcon()
+void WpaGui::createTrayIcon(bool trayOnly)
 {
        QApplication::setQuitOnLastWindowClosed(false);
 
@@ -1134,6 +1137,11 @@ void WpaGui::createTrayIcon()
        tray_menu->addAction(quitAction);
 
        tray_icon->setContextMenu(tray_menu);
+
+       tray_icon->show();
+
+       if (!trayOnly)
+               show();
 }
 
 
index 3aead1e..45e878a 100644 (file)
@@ -100,8 +100,9 @@ private:
        QAction *quitAction;
        QMenu *tray_menu;
        QSystemTrayIcon *tray_icon;
-       void createTrayIcon();
+       void createTrayIcon(bool);
        bool ackTrayIcon;
+       bool startInTray;
 
        int openCtrlConnection(const char *ifname);
 };