Home | History | Annotate | Download | only in wpa_gui
      1 /****************************************************************************
      2 ** ui.h extension file, included from the uic-generated form implementation.
      3 **
      4 ** If you want to add, delete, or rename functions or slots, use
      5 ** Qt Designer to update this file, preserving your code.
      6 **
      7 ** You should not define a constructor or destructor in this file.
      8 ** Instead, write your code in functions called init() and destroy().
      9 ** These will automatically be called by the form's constructor and
     10 ** destructor.
     11 *****************************************************************************/
     12 
     13 void ScanResults::init()
     14 {
     15     wpagui = NULL;
     16 }
     17 
     18 
     19 void ScanResults::destroy()
     20 {
     21     delete timer;
     22 }
     23 
     24 
     25 void ScanResults::setWpaGui(WpaGui *_wpagui)
     26 {
     27     wpagui = _wpagui;
     28     updateResults();
     29 
     30     timer = new QTimer(this);
     31     connect(timer, SIGNAL(timeout()), SLOT(getResults()));
     32     timer->start(10000, FALSE);
     33 }
     34 
     35 
     36 void ScanResults::updateResults()
     37 {
     38     char reply[8192];
     39     size_t reply_len;
     40 
     41     if (wpagui == NULL)
     42 	return;
     43 
     44     reply_len = sizeof(reply) - 1;
     45     if (wpagui->ctrlRequest("SCAN_RESULTS", reply, &reply_len) < 0)
     46 	return;
     47     reply[reply_len] = '\0';
     48 
     49     scanResultsView->clear();
     50 
     51     QString res(reply);
     52     QStringList lines = QStringList::split(QChar('\n'), res);
     53     bool first = true;
     54     for (QStringList::Iterator it = lines.begin(); it != lines.end(); it++) {
     55 	if (first) {
     56 	    first = false;
     57 	    continue;
     58 	}
     59 
     60 	QStringList cols = QStringList::split(QChar('\t'), *it, true);
     61 	QString ssid, bssid, freq, signal, flags;
     62 	bssid = cols.count() > 0 ? cols[0] : "";
     63 	freq = cols.count() > 1 ? cols[1] : "";
     64 	signal = cols.count() > 2 ? cols[2] : "";
     65 	flags = cols.count() > 3 ? cols[3] : "";
     66 	ssid = cols.count() > 4 ? cols[4] : "";
     67 	new Q3ListViewItem(scanResultsView, ssid, bssid, freq, signal, flags);
     68     }
     69 }
     70 
     71 
     72 void ScanResults::scanRequest()
     73 {
     74     char reply[10];
     75     size_t reply_len = sizeof(reply);
     76 
     77     if (wpagui == NULL)
     78 	return;
     79 
     80     wpagui->ctrlRequest("SCAN", reply, &reply_len);
     81 }
     82 
     83 
     84 void ScanResults::getResults()
     85 {
     86     updateResults();
     87 }
     88 
     89 
     90 
     91 
     92 void ScanResults::bssSelected( Q3ListViewItem * sel )
     93 {
     94     NetworkConfig *nc = new NetworkConfig();
     95     if (nc == NULL)
     96 	return;
     97     nc->setWpaGui(wpagui);
     98     nc->paramsFromScanResults(sel);
     99     nc->show();
    100     nc->exec();
    101 }
    102