wpa_gui-qt4: Fix network selection
authorKel Modderman <kel@otaku42.de>
Sun, 2 May 2010 08:17:13 +0000 (11:17 +0300)
committerJouni Malinen <j@w1.fi>
Sun, 2 May 2010 08:17:13 +0000 (11:17 +0300)
Use regular expression matches to see if input is not the (now translated?)
string "Select any network" and is a "<network id>: <ssid>" string or the
"all" keyword where that is applicable.

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

index 94220f4..e15d751 100644 (file)
@@ -971,17 +971,10 @@ void WpaGui::selectNetwork( const QString &sel )
        char reply[10];
        size_t reply_len = sizeof(reply);
 
-       if (cmd.compare(tr("Select any network"))) {
+       if (cmd.contains(QRegExp("^\\d+:")))
+               cmd.truncate(cmd.indexOf(':'));
+       else
                cmd = "any";
-       } else {
-               int pos = cmd.indexOf(':');
-               if (pos < 0) {
-                       printf("Invalid selectNetwork '%s'\n",
-                              cmd.toAscii().constData());
-                       return;
-               }
-               cmd.truncate(pos);
-       }
        cmd.prepend("SELECT_NETWORK ");
        ctrlRequest(cmd.toAscii().constData(), reply, &reply_len);
        triggerUpdate();
@@ -995,14 +988,12 @@ void WpaGui::enableNetwork(const QString &sel)
        char reply[10];
        size_t reply_len = sizeof(reply);
 
-       if (!cmd.startsWith("all")) {
-               int pos = cmd.indexOf(':');
-               if (pos < 0) {
-                       printf("Invalid enableNetwork '%s'\n",
-                              cmd.toAscii().constData());
-                       return;
-               }
-               cmd.truncate(pos);
+       if (cmd.contains(QRegExp("^\\d+:")))
+               cmd.truncate(cmd.indexOf(':'));
+       else if (!cmd.startsWith("all")) {
+               printf("Invalid editNetwork '%s'\n",
+                      cmd.toAscii().constData());
+               return;
        }
        cmd.prepend("ENABLE_NETWORK ");
        ctrlRequest(cmd.toAscii().constData(), reply, &reply_len);
@@ -1016,14 +1007,12 @@ void WpaGui::disableNetwork(const QString &sel)
        char reply[10];
        size_t reply_len = sizeof(reply);
 
-       if (!cmd.startsWith("all")) {
-               int pos = cmd.indexOf(':');
-               if (pos < 0) {
-                       printf("Invalid disableNetwork '%s'\n",
-                              cmd.toAscii().constData());
-                       return;
-               }
-               cmd.truncate(pos);
+       if (cmd.contains(QRegExp("^\\d+:")))
+               cmd.truncate(cmd.indexOf(':'));
+       else if (!cmd.startsWith("all")) {
+               printf("Invalid editNetwork '%s'\n",
+                      cmd.toAscii().constData());
+               return;
        }
        cmd.prepend("DISABLE_NETWORK ");
        ctrlRequest(cmd.toAscii().constData(), reply, &reply_len);
@@ -1036,14 +1025,8 @@ void WpaGui::editNetwork(const QString &sel)
        QString cmd(sel);
        int id = -1;
 
-       if (!cmd.compare(tr("Select any network"))) {
-               int pos = sel.indexOf(':');
-               if (pos < 0) {
-                       printf("Invalid editNetwork '%s'\n",
-                              cmd.toAscii().constData());
-                       return;
-               }
-               cmd.truncate(pos);
+       if (cmd.contains(QRegExp("^\\d+:"))) {
+               cmd.truncate(cmd.indexOf(':'));
                id = cmd.toInt();
        }
 
@@ -1114,17 +1097,12 @@ void WpaGui::removeNetwork(const QString &sel)
        char reply[10];
        size_t reply_len = sizeof(reply);
 
-       if (cmd.compare(tr("Select any network")))
+       if (cmd.contains(QRegExp("^\\d+:")))
+               cmd.truncate(cmd.indexOf(':'));
+       else if (!cmd.startsWith("all")) {
+               printf("Invalid editNetwork '%s'\n",
+                      cmd.toAscii().constData());
                return;
-
-       if (!cmd.startsWith("all")) {
-               int pos = cmd.indexOf(':');
-               if (pos < 0) {
-                       printf("Invalid removeNetwork '%s'\n",
-                              cmd.toAscii().constData());
-                       return;
-               }
-               cmd.truncate(pos);
        }
        cmd.prepend("REMOVE_NETWORK ");
        ctrlRequest(cmd.toAscii().constData(), reply, &reply_len);