102 lines
2.3 KiB
C
102 lines
2.3 KiB
C
|
/****************************************************************************
|
||
|
** ui.h extension file, included from the uic-generated form implementation.
|
||
|
**
|
||
|
** If you want to add, delete, or rename functions or slots, use
|
||
|
** Qt Designer to update this file, preserving your code.
|
||
|
**
|
||
|
** You should not define a constructor or destructor in this file.
|
||
|
** Instead, write your code in functions called init() and destroy().
|
||
|
** These will automatically be called by the form's constructor and
|
||
|
** destructor.
|
||
|
*****************************************************************************/
|
||
|
|
||
|
void ScanResults::init()
|
||
|
{
|
||
|
wpagui = NULL;
|
||
|
}
|
||
|
|
||
|
|
||
|
void ScanResults::destroy()
|
||
|
{
|
||
|
delete timer;
|
||
|
}
|
||
|
|
||
|
|
||
|
void ScanResults::setWpaGui(WpaGui *_wpagui)
|
||
|
{
|
||
|
wpagui = _wpagui;
|
||
|
updateResults();
|
||
|
|
||
|
timer = new QTimer(this);
|
||
|
connect(timer, SIGNAL(timeout()), SLOT(getResults()));
|
||
|
timer->start(10000, FALSE);
|
||
|
}
|
||
|
|
||
|
|
||
|
void ScanResults::updateResults()
|
||
|
{
|
||
|
char reply[8192];
|
||
|
size_t reply_len;
|
||
|
|
||
|
if (wpagui == NULL)
|
||
|
return;
|
||
|
|
||
|
reply_len = sizeof(reply) - 1;
|
||
|
if (wpagui->ctrlRequest("SCAN_RESULTS", reply, &reply_len) < 0)
|
||
|
return;
|
||
|
reply[reply_len] = '\0';
|
||
|
|
||
|
scanResultsView->clear();
|
||
|
|
||
|
QString res(reply);
|
||
|
QStringList lines = QStringList::split(QChar('\n'), res);
|
||
|
bool first = true;
|
||
|
for (QStringList::Iterator it = lines.begin(); it != lines.end(); it++) {
|
||
|
if (first) {
|
||
|
first = false;
|
||
|
continue;
|
||
|
}
|
||
|
|
||
|
QStringList cols = QStringList::split(QChar('\t'), *it, true);
|
||
|
QString ssid, bssid, freq, signal, flags;
|
||
|
bssid = cols.count() > 0 ? cols[0] : "";
|
||
|
freq = cols.count() > 1 ? cols[1] : "";
|
||
|
signal = cols.count() > 2 ? cols[2] : "";
|
||
|
flags = cols.count() > 3 ? cols[3] : "";
|
||
|
ssid = cols.count() > 4 ? cols[4] : "";
|
||
|
new Q3ListViewItem(scanResultsView, ssid, bssid, freq, signal, flags);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
void ScanResults::scanRequest()
|
||
|
{
|
||
|
char reply[10];
|
||
|
size_t reply_len = sizeof(reply);
|
||
|
|
||
|
if (wpagui == NULL)
|
||
|
return;
|
||
|
|
||
|
wpagui->ctrlRequest("SCAN", reply, &reply_len);
|
||
|
}
|
||
|
|
||
|
|
||
|
void ScanResults::getResults()
|
||
|
{
|
||
|
updateResults();
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
void ScanResults::bssSelected( Q3ListViewItem * sel )
|
||
|
{
|
||
|
NetworkConfig *nc = new NetworkConfig();
|
||
|
if (nc == NULL)
|
||
|
return;
|
||
|
nc->setWpaGui(wpagui);
|
||
|
nc->paramsFromScanResults(sel);
|
||
|
nc->show();
|
||
|
nc->exec();
|
||
|
}
|