Diffstat (limited to 'noncore/net/wellenreiter/gui/scanlist.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/net/wellenreiter/gui/scanlist.cpp | 59 |
1 files changed, 29 insertions, 30 deletions
diff --git a/noncore/net/wellenreiter/gui/scanlist.cpp b/noncore/net/wellenreiter/gui/scanlist.cpp index d5665b4..809d0bd 100644 --- a/noncore/net/wellenreiter/gui/scanlist.cpp +++ b/noncore/net/wellenreiter/gui/scanlist.cpp @@ -15,13 +15,12 @@ #include "scanlist.h" #include "configwindow.h" #include "logwindow.h" #include <assert.h> -#include "manufacturers.h" #include <qdatetime.h> #include <qtextstream.h> #ifdef QWS #include <opie/odevice.h> using namespace Opie; @@ -44,13 +43,13 @@ const int col_traffic = 5; const int col_ip = 6; const int col_manuf = 7; const int col_firstseen = 8; const int col_lastseen = 9; MScanListView::MScanListView( QWidget* parent, const char* name ) - :OListView( parent, name ), _manufacturerdb( 0 ) + :OListView( parent, name ) { setFrameShape( QListView::StyledPanel ); setFrameShadow( QListView::Sunken ); addColumn( tr( "Net/Station" ) ); @@ -74,41 +73,41 @@ MScanListView::MScanListView( QWidget* parent, const char* name ) addColumn( tr( "Last Seen" ) ); setColumnAlignment( col_lastseen, AlignCenter ); setRootIsDecorated( true ); setAllColumnsShowFocus( true ); }; + MScanListView::~MScanListView() { }; + OListViewItem* MScanListView::childFactory() { return new MScanListItem( this ); } + void MScanListView::serializeTo( QDataStream& s) const { qDebug( "serializing MScanListView" ); OListView::serializeTo( s ); } + void MScanListView::serializeFrom( QDataStream& s) { qDebug( "serializing MScanListView" ); OListView::serializeFrom( s ); } -void MScanListView::setManufacturerDB( ManufacturerDB* manufacturerdb ) -{ - _manufacturerdb = manufacturerdb; -} -void MScanListView::addNewItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal ) +void MScanListView::addNewItem( const QString& type, const QString& essid, const OMacAddress& mac, bool wep, int channel, int signal ) { - // FIXME: scanlistitem needs a proper encapsulation and not such a damn dealing with text(...) + QString macaddr = mac.toString(true); #ifdef DEBUG qDebug( "MScanList::addNewItem( %s / %s / %s [%d]", (const char*) type, (const char*) essid, (const char*) macaddr, channel ); #endif @@ -165,14 +164,13 @@ void MScanListView::addNewItem( QString type, QString essid, QString macaddr, bo #ifdef DEBUG qDebug( "inserting new station %s", (const char*) macaddr ); #endif MScanListItem* station = new MScanListItem( network, type, "", macaddr, wep, channel, signal ); - if ( _manufacturerdb ) - station->setManufacturer( _manufacturerdb->lookup( macaddr ) ); + station->setManufacturer( mac.manufacturer() ); if ( type == "managed" ) { s.sprintf( "(i) New Access Point in '%s' [%d]", (const char*) essid, channel ); } else @@ -181,38 +179,37 @@ void MScanListView::addNewItem( QString type, QString essid, QString macaddr, bo } MLogWindow::logwindow()->log( s ); } -void MScanListView::addIfNotExisting( MScanListItem* network, QString addr, const QString& type ) +void MScanListView::addIfNotExisting( MScanListItem* network, const OMacAddress& addr, const QString& type ) { MScanListItem* subitem = static_cast<MScanListItem*>( network->firstChild() ); - while ( subitem && ( subitem->text( col_ap ) != addr ) ) + while ( subitem && ( subitem->text( col_ap ) != addr.toString(true) ) ) { #ifdef DEBUG qDebug( "subitemtext: %s", (const char*) subitem->text( col_ap ) ); #endif subitem = static_cast<MScanListItem*> ( subitem->nextSibling() ); } if ( subitem ) { // we have already seen this item, it's a dupe #ifdef DEBUG - qDebug( "%s is a dupe - ignoring...", (const char*) addr ); + qDebug( "%s is a dupe - ignoring...", (const char*) addr.toString(true) ); #endif subitem->receivedBeacon(); //FIXME: sent data bit return; } // Hey, it seems to be a new item :-D - MScanListItem* station = new MScanListItem( network, type, /* network->text( col_essid ) */ "", addr, false, -1, -1 ); - if ( _manufacturerdb ) - station->setManufacturer( _manufacturerdb->lookup( addr ) ); + MScanListItem* station = new MScanListItem( network, type, /* network->text( col_essid ) */ "", addr.toString(true), false, -1, -1 ); + station->setManufacturer( addr.manufacturer() ); QString s; if ( type == "station" ) { s.sprintf( "(i) New Station in '%s' [xx]", (const char*) network->text( col_essid ) ); } @@ -221,21 +218,21 @@ void MScanListView::addIfNotExisting( MScanListItem* network, QString addr, cons s.sprintf( "(i) New Wireless Station in '%s' [xx]", (const char*) network->text( col_essid ) ); } MLogWindow::logwindow()->log( s ); } -void MScanListView::WDStraffic( QString from, QString to, QString viaFrom, QString viaTo ) +void MScanListView::WDStraffic( const OMacAddress& from, const OMacAddress& to, const OMacAddress& viaFrom, const OMacAddress& viaTo ) { QString s; MScanListItem* network; QListViewItemIterator it( this ); while ( it.current() && - it.current()->text( col_ap ) != viaFrom && - it.current()->text( col_ap ) != viaTo ) ++it; + it.current()->text( col_ap ) != viaFrom.toString(true) && + it.current()->text( col_ap ) != viaTo.toString(true) ) ++it; MScanListItem* item = static_cast<MScanListItem*>( it.current() ); if ( item ) // Either viaFrom or viaTo AP has shown up yet, so just add our two new stations { addIfNotExisting( static_cast<MScanListItem*>(item->parent()), from ); @@ -246,19 +243,19 @@ void MScanListView::WDStraffic( QString from, QString to, QString viaFrom, QStri qDebug( "D'Oh! Stations without AP... ignoring for now... will handle this in 1.1 version :-D" ); MLogWindow::logwindow()->log( "WARNING: Unhandled WSD traffic!" ); } } -void MScanListView::toDStraffic( QString from, QString to, QString via ) +void MScanListView::toDStraffic( const OMacAddress& from, const OMacAddress& to, const OMacAddress& via ) { QString s; MScanListItem* network; QListViewItemIterator it( this ); - while ( it.current() && it.current()->text( col_ap ) != via ) ++it; + while ( it.current() && it.current()->text( col_ap ) != via.toString(true) ) ++it; MScanListItem* item = static_cast<MScanListItem*>( it.current() ); if ( item ) // AP has shown up yet, so just add our new "from" - station { addIfNotExisting( static_cast<MScanListItem*>(item->parent()), from, "adhoc" ); @@ -269,19 +266,19 @@ void MScanListView::toDStraffic( QString from, QString to, QString via ) MLogWindow::logwindow()->log( "WARNING: Unhandled toDS traffic!" ); } } -void MScanListView::fromDStraffic( QString from, QString to, QString via ) +void MScanListView::fromDStraffic( const OMacAddress& from, const OMacAddress& to, const OMacAddress& via ) { QString s; MScanListItem* network; QListViewItemIterator it( this ); - while ( it.current() && it.current()->text( col_ap ) != via ) ++it; + while ( it.current() && it.current()->text( col_ap ) != via.toString(true) ) ++it; MScanListItem* item = static_cast<MScanListItem*>( it.current() ); if ( item ) // AP has shown up yet, so just add our new "from" - station { addIfNotExisting( static_cast<MScanListItem*>(item->parent()), from, "station" ); @@ -291,35 +288,35 @@ void MScanListView::fromDStraffic( QString from, QString to, QString via ) qDebug( "D'Oh! Station without AP... ignoring for now... will handle this in 1.1 :-D" ); MLogWindow::logwindow()->log( "WARNING: Unhandled fromDS traffic!" ); } } -void MScanListView::IBSStraffic( QString from, QString to, QString via ) +void MScanListView::IBSStraffic( const OMacAddress& from, const OMacAddress& to, const OMacAddress& via ) { qWarning( "D'oh! Not yet implemented..." ); MLogWindow::logwindow()->log( "WARNING: Unhandled IBSS traffic!" ); } -void MScanListView::identify( const QString& macaddr, const QString& ip ) +void MScanListView::identify( const OMacAddress& macaddr, const QString& ip ) { - qDebug( "identify %s = %s", (const char*) macaddr, (const char*) ip ); + qDebug( "identify %s = %s", (const char*) macaddr.toString(), (const char*) ip ); QListViewItemIterator it( this ); for ( ; it.current(); ++it ) { - if ( it.current()->text( col_ap ) == macaddr ) + if ( it.current()->text( col_ap ) == macaddr.toString(true) ) { it.current()->setText( col_ip, ip ); return; } } qDebug( "D'oh! Received identification, but item not yet in list... ==> Handle this!" ); MLogWindow::logwindow()->log( QString().sprintf( "WARNING: Unhandled identification %s = %s!", - (const char*) macaddr, (const char*) ip ) ); + (const char*) macaddr.toString(), (const char*) ip ) ); } //============================================================ // MScanListItem //============================================================ @@ -447,10 +444,12 @@ void MScanListItem::receivedBeacon() _beacons++; #ifdef DEBUG qDebug( "MScanListItem %s: received beacon #%d", (const char*) _macaddr, _beacons ); #endif setText( col_sig, QString::number( _beacons ) ); setText( col_lastseen, QTime::currentTime().toString() ); - if ( WellenreiterConfigWindow::instance() ) - playSound( WellenreiterConfigWindow::instance()->soundOnBeacon() ); + + MScanListItem* p = (MScanListItem*) parent(); + if ( p ) p->receivedBeacon(); + } |