[PATCH 2/2] wpa_gui-qt4: add support for starting in system tray only
Kel Modderman
kel
Tue Sep 30 18:44:12 PDT 2008
Allow application to be started in the system tray only when started with
the `-t' command line argument.
Signed-off-by: Kel Modderman <kel at otaku42.de>
---
--- a/wpa_supplicant/wpa_gui-qt4/wpagui.cpp
+++ b/wpa_supplicant/wpa_gui-qt4/wpagui.cpp
@@ -80,17 +80,20 @@
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 @@
updateStatus();
networkMayHaveChanged = true;
updateNetworks();
-
- if (tray_icon)
- tray_icon->show();
}
@@ -161,7 +161,7 @@
{
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 @@
free(ctrl_iface_dir);
ctrl_iface_dir = strdup(optarg);
break;
+ case 't':
+ startInTray = true;
+ break;
}
}
}
@@ -1085,7 +1088,7 @@
}
-void WpaGui::createTrayIcon()
+void WpaGui::createTrayIcon(bool trayOnly)
{
QApplication::setQuitOnLastWindowClosed(false);
@@ -1134,6 +1137,11 @@
tray_menu->addAction(quitAction);
tray_icon->setContextMenu(tray_menu);
+
+ tray_icon->show();
+
+ if (!trayOnly)
+ show();
}
--- a/wpa_supplicant/wpa_gui-qt4/wpagui.h
+++ b/wpa_supplicant/wpa_gui-qt4/wpagui.h
@@ -100,8 +100,9 @@
QAction *quitAction;
QMenu *tray_menu;
QSystemTrayIcon *tray_icon;
- void createTrayIcon();
+ void createTrayIcon(bool);
bool ackTrayIcon;
+ bool startInTray;
int openCtrlConnection(const char *ifname);
};
--- a/wpa_supplicant/wpa_gui-qt4/main.cpp
+++ b/wpa_supplicant/wpa_gui-qt4/main.cpp
@@ -32,7 +32,6 @@
}
#endif /* CONFIG_NATIVE_WINDOWS */
- w.show();
ret = app.exec();
#ifdef CONFIG_NATIVE_WINDOWS
--- a/wpa_supplicant/doc/docbook/wpa_gui.sgml
+++ b/wpa_supplicant/doc/docbook/wpa_gui.sgml
@@ -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>
@@ -48,6 +49,14 @@
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>
---
More information about the Hostap
mailing list