summaryrefslogtreecommitdiff
path: root/noncore/net/wellenreiter/gui
Side-by-side diff
Diffstat (limited to 'noncore/net/wellenreiter/gui') (more/less context) (show whitespace changes)
-rw-r--r--noncore/net/wellenreiter/gui/gui.pro2
-rw-r--r--noncore/net/wellenreiter/gui/mainwindow.cpp36
-rw-r--r--noncore/net/wellenreiter/gui/mainwindow.h1
-rw-r--r--noncore/net/wellenreiter/gui/scanlist.cpp114
-rw-r--r--noncore/net/wellenreiter/gui/scanlist.h75
-rw-r--r--noncore/net/wellenreiter/gui/scanlistitem.cpp121
-rw-r--r--noncore/net/wellenreiter/gui/scanlistitem.h83
-rw-r--r--noncore/net/wellenreiter/gui/wellenreiter.cpp8
8 files changed, 219 insertions, 221 deletions
diff --git a/noncore/net/wellenreiter/gui/gui.pro b/noncore/net/wellenreiter/gui/gui.pro
index 6037661..8861a50 100644
--- a/noncore/net/wellenreiter/gui/gui.pro
+++ b/noncore/net/wellenreiter/gui/gui.pro
@@ -1,47 +1,45 @@
MOC_DIR = ./tmp
OBJECTS_DIR = ./tmp
DESTDIR = $(OPIEDIR)/bin
TEMPLATE = app
CONFIG = qt warn_on debug
HEADERS = wellenreiterbase.h \
mainwindow.h \
wellenreiter.h \
- scanlistitem.h \
scanlist.h \
logwindow.h \
hexwindow.h \
configwindow.h \
wlan.h \
cardconfig.h \
manufacturers.h
SOURCES = main.cpp \
mainwindow.cpp \
wellenreiterbase.cpp \
wellenreiter.cpp \
- scanlistitem.cpp \
scanlist.cpp \
logwindow.cpp \
hexwindow.cpp \
configwindow.cpp \
wlan.cpp \
cardconfig.cpp \
manufacturers.cpp
INCLUDEPATH += $(OPIEDIR)/include ../
DEPENDPATH += $(OPIEDIR)/include ../
LIBS += -L. -lwellenreiter -lcornucopia
INTERFACES = configbase.ui
TARGET = wellenreiter
!contains( platform, x11 ) {
message( qws )
include ( $(OPIEDIR)/include.pro )
LIBS += -lqpe -lopie
}
contains( platform, x11 ) {
LIBS += -L$(OPIEDIR)/lib -Wl,-rpath,$(OPIEDIR)/lib
SOURCES += resource.cpp
HEADERS += resource.h
diff --git a/noncore/net/wellenreiter/gui/mainwindow.cpp b/noncore/net/wellenreiter/gui/mainwindow.cpp
index e388fc5..0ef89d4 100644
--- a/noncore/net/wellenreiter/gui/mainwindow.cpp
+++ b/noncore/net/wellenreiter/gui/mainwindow.cpp
@@ -1,70 +1,78 @@
/**********************************************************************
** Copyright (C) 2002 Michael 'Mickey' Lauer. All rights reserved.
**
** This file is part of Opie Environment.
**
** This file may be distributed and/or modified under the terms of the
** GNU General Public License version 2 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
**********************************************************************/
#include "configwindow.h"
#include "logwindow.h"
#include "mainwindow.h"
#include "wellenreiter.h"
#include "scanlist.h"
#include <qcombobox.h>
+#include <qdatastream.h>
#include <qfile.h>
#include <qiconset.h>
#include <qmenubar.h>
#include <qmessagebox.h>
#include <qpopupmenu.h>
#include <qstatusbar.h>
#include <qtextstream.h>
#include <qtoolbutton.h>
#ifdef QWS
#include <qpe/resource.h>
#else
#include "resource.h"
#endif
WellenreiterMainWindow::WellenreiterMainWindow( QWidget * parent, const char * name, WFlags f )
:QMainWindow( parent, name, f )
{
cw = new WellenreiterConfigWindow( this );
mw = new Wellenreiter( this );
mw->setConfigWindow( cw );
setCentralWidget( mw );
+ // setup application icon
+
+ #ifndef QWS
+ setIcon( Resource::loadPixmap( "wellenreiter/appicon-trans" ) );
+ setIconText( "Wellenreiter/X11" );
+ #endif
+
// setup icon sets
infoIconSet = new QIconSet( Resource::loadPixmap( "wellenreiter/InfoIcon" ) );
settingsIconSet = new QIconSet( Resource::loadPixmap( "wellenreiter/SettingsIcon" ) );
#ifdef QWS
searchIconSet = new QIconSet( Resource::loadPixmap( "wellenreiter/SearchIcon" ) );
cancelIconSet = new QIconSet( Resource::loadPixmap( "wellenreiter/CancelIcon" ) );
#else
startStopIconSet = new QIconSet();
startStopIconSet->setPixmap( Resource::loadPixmap( "wellenreiter/SearchIcon" ), QIconSet::Automatic, QIconSet::Normal, QIconSet::Off );
startStopIconSet->setPixmap( Resource::loadPixmap( "wellenreiter/CancelIcon" ), QIconSet::Automatic, QIconSet::Normal, QIconSet::On );
#endif
// setup tool buttons
startStopButton = new QToolButton( 0 );
#ifdef QWS
startStopButton->setAutoRaise( true );
#endif
#ifdef QWS
startStopButton->setOnIconSet( *cancelIconSet );
startStopButton->setOffIconSet( *searchIconSet );
#else
startStopButton->setIconSet( *startStopIconSet );
@@ -78,53 +86,52 @@ WellenreiterMainWindow::WellenreiterMainWindow( QWidget * parent, const char * n
c->setAutoRaise( true );
#endif
c->setIconSet( *infoIconSet );
c->setEnabled( false );
QToolButton* d = new QToolButton( 0 );
#ifdef QWS
d->setAutoRaise( true );
#endif
d->setIconSet( *settingsIconSet );
connect( d, SIGNAL( clicked() ), this, SLOT( showConfigure() ) );
// setup menu bar
int id;
QMenuBar* mb = menuBar();
QPopupMenu* fileSave = new QPopupMenu( mb );
fileSave->insertItem( "&Session", this, SLOT( fileSaveSession() ) );
fileSave->insertItem( "&Log", this, SLOT( fileSaveLog() ) );
QPopupMenu* fileLoad = new QPopupMenu( mb );
fileLoad->insertItem( "&Session", this, SLOT( fileLoadSession() ) );
- fileLoad->insertItem( "&Log", this, SLOT( fileLoadLog() ) );
+ //fileLoad->insertItem( "&Log", this, SLOT( fileLoadLog() ) );
QPopupMenu* file = new QPopupMenu( mb );
id = file->insertItem( "&Load", fileLoad );
- file->setItemEnabled( id, false );
file->insertItem( "&Save", fileSave );
QPopupMenu* view = new QPopupMenu( mb );
view->insertItem( "&Configure..." );
QPopupMenu* sniffer = new QPopupMenu( mb );
sniffer->insertItem( "&Configure..." );
sniffer->insertSeparator();
QPopupMenu* demo = new QPopupMenu( mb );
demo->insertItem( "&Add something", this, SLOT( demoAddStations() ) );
id = mb->insertItem( "&File", file );
id = mb->insertItem( "&View", view );
mb->setItemEnabled( id, false );
id = mb->insertItem( "&Sniffer", sniffer );
mb->setItemEnabled( id, false );
id = mb->insertItem( "&Demo", demo );
mb->setItemEnabled( id, true );
#ifdef QWS
mb->insertItem( startStopButton );
mb->insertItem( c );
mb->insertItem( d );
@@ -164,77 +171,96 @@ void WellenreiterMainWindow::showConfigure()
//TODO ...
else
startStopButton->setEnabled( false );
//TODO ...
}
}
WellenreiterMainWindow::~WellenreiterMainWindow()
{
delete infoIconSet;
delete settingsIconSet;
#ifdef QWS
delete searchIconSet;
delete cancelIconSet;
#else
delete startStopIconSet;
#endif
};
void WellenreiterMainWindow::demoAddStations()
{
mw->netView()->addNewItem( "managed", "Vanille", "00:00:20:EF:A6:43", true, 6, 80 );
- mw->netView()->addNewItem( "managed", "Vanille", "00:00:1c:EF:A6:23", true, 11, 10 );
+ mw->netView()->addNewItem( "managed", "Vanille", "00:30:6D:EF:A6:23", true, 11, 10 );
mw->netView()->addNewItem( "adhoc", "ELAN", "00:A0:F8:E7:16:22", false, 3, 10 );
mw->netView()->addNewItem( "adhoc", "ELAN", "00:AA:01:E7:56:62", false, 3, 15 );
mw->netView()->addNewItem( "adhoc", "ELAN", "00:B0:8E:E7:56:E2", false, 3, 20 );
}
void WellenreiterMainWindow::fileSaveLog()
{
const QString fname( "/tmp/log.txt" );
QFile f( fname );
if ( f.open(IO_WriteOnly) )
{
QTextStream t( &f );
t << mw->logWindow()->getLog();
f.close();
qDebug( "Saved log to file '%s'", (const char*) fname );
}
else
{
qDebug( "Problem saving log to file '%s'", (const char*) fname );
}
}
void WellenreiterMainWindow::fileSaveSession()
{
const QString fname( "/tmp/session.xml" );
QFile f( fname );
if ( f.open(IO_WriteOnly) )
{
- QTextStream t( &f );
- mw->netView()->dump( t );
+ QDataStream t( &f );
+ t << *mw->netView();
f.close();
qDebug( "Saved session to file '%s'", (const char*) fname );
}
else
{
qDebug( "Problem saving session to file '%s'", (const char*) fname );
}
}
+void WellenreiterMainWindow::fileLoadSession()
+{
+ const QString fname( "/tmp/session.xml" );
+ QFile f( fname );
+
+ if ( f.open(IO_ReadOnly) )
+ {
+ QDataStream t( &f );
+ t >> *mw->netView();
+ f.close();
+ qDebug( "Loaded session from file '%s'", (const char*) fname );
+ }
+ else
+ {
+ qDebug( "Problem loading session from file '%s'", (const char*) fname );
+ }
+
+}
+
void WellenreiterMainWindow::closeEvent( QCloseEvent* e )
{
if ( mw->isDaemonRunning() )
{
QMessageBox::warning( this, "Wellenreiter/Opie", "Sniffing in progress!\nPlease stop sniffing before closing." );
e->ignore();
}
else
{
QMainWindow::closeEvent( e );
}
}
diff --git a/noncore/net/wellenreiter/gui/mainwindow.h b/noncore/net/wellenreiter/gui/mainwindow.h
index 8bfccf3..59f259d 100644
--- a/noncore/net/wellenreiter/gui/mainwindow.h
+++ b/noncore/net/wellenreiter/gui/mainwindow.h
@@ -30,27 +30,28 @@ class WellenreiterMainWindow: public QMainWindow
public:
WellenreiterMainWindow( QWidget * parent = 0, const char * name = "mainwindow", WFlags f = 0 );
~WellenreiterMainWindow();
protected:
Wellenreiter* mw;
WellenreiterConfigWindow* cw;
QIconSet* startStopIconSet;
const QIconSet* searchIconSet;
const QIconSet* infoIconSet;
const QIconSet* settingsIconSet;
const QIconSet* cancelIconSet;
QToolButton* startStopButton;
protected:
virtual void closeEvent( QCloseEvent* );
public slots:
void showConfigure();
void demoAddStations();
void fileSaveLog();
void fileSaveSession();
+ void fileLoadSession();
};
#endif
diff --git a/noncore/net/wellenreiter/gui/scanlist.cpp b/noncore/net/wellenreiter/gui/scanlist.cpp
index cdc2c48..58a04fb 100644
--- a/noncore/net/wellenreiter/gui/scanlist.cpp
+++ b/noncore/net/wellenreiter/gui/scanlist.cpp
@@ -1,81 +1,91 @@
/**********************************************************************
** Copyright (C) 2002 Michael 'Mickey' Lauer. All rights reserved.
**
** This file is part of Opie Environment.
**
** This file may be distributed and/or modified under the terms of the
** GNU General Public License version 2 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
**********************************************************************/
#include "scanlist.h"
-#include "scanlistitem.h"
#include <assert.h>
-
#include "manufacturers.h"
-
+#include <qdatetime.h>
#include <qtextstream.h>
MScanListView::MScanListView( QWidget* parent, const char* name )
:OListView( parent, name ), _manufacturerdb( 0 )
{
setFrameShape( QListView::StyledPanel );
setFrameShadow( QListView::Sunken );
addColumn( tr( "Net/Station" ) );
setColumnAlignment( 0, AlignLeft || AlignVCenter );
addColumn( tr( "B" ) );
setColumnAlignment( 1, AlignCenter );
addColumn( tr( "AP" ) );
setColumnAlignment( 2, AlignCenter );
addColumn( tr( "Chn" ) );
setColumnAlignment( 3, AlignCenter );
addColumn( tr( "W" ) );
setColumnAlignment( 4, AlignCenter );
addColumn( tr( "T" ) );
setColumnAlignment( 5, AlignCenter );
addColumn( tr( "Manufacturer" ) );
setColumnAlignment( 6, AlignCenter );
addColumn( tr( "First Seen" ) );
setColumnAlignment( 7, AlignCenter );
addColumn( tr( "Last Seen" ) );
setColumnAlignment( 8, AlignCenter );
setRootIsDecorated( true );
setAllColumnsShowFocus( true );
};
MScanListView::~MScanListView()
{
};
+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 )
{
// FIXME: scanlistitem needs a proper encapsulation and not such a damn dealing with text(...)
qDebug( "MScanList::addNewItem( %s / %s / %s [%d]",
(const char*) type,
(const char*) essid,
(const char*) macaddr,
channel );
// search, if we already have seen this net
QString s;
MScanListItem* network;
MScanListItem* item = static_cast<MScanListItem*> ( firstChild() );
while ( item && ( item->text( 0 ) != essid ) )
{
qDebug( "itemtext: %s", (const char*) item->text( 0 ) );
@@ -132,36 +142,122 @@ void MScanListView::addNewItem( QString type, QString essid, QString macaddr, bo
}
// insert new station as child from network
// no essid to reduce clutter, maybe later we have a nick or stationname to display!?
qDebug( "inserting new station %s", (const char*) macaddr );
MScanListItem* station = new MScanListItem( network, type, "", macaddr, wep, channel, signal );
if ( _manufacturerdb )
station->setManufacturer( _manufacturerdb->lookup( macaddr ) );
if ( type == "managed" )
{
s.sprintf( "(i) new AP in '%s' [%d]", (const char*) essid, channel );
}
else
{
s.sprintf( "(i) new adhoc station in '%s' [%d]", (const char*) essid, channel );
}
}
-void MScanListView::dump( QTextStream& t ) const
+#ifdef QWS
+#include <qpe/resource.h>
+#else
+#include "resource.h"
+#endif
+
+const int col_type = 0;
+const int col_essid = 0;
+const int col_sig = 1;
+const int col_ap = 2;
+const int col_channel = 3;
+const int col_wep = 4;
+const int col_traffic = 5;
+const int col_manuf = 6;
+const int col_firstseen = 7;
+const int col_lastseen = 8;
+
+MScanListItem::MScanListItem( QListView* parent, QString type, QString essid, QString macaddr,
+ bool wep, int channel, int signal )
+ :OListViewItem( parent, essid, QString::null, macaddr, QString::null, QString::null ),
+ _type( type ), _essid( essid ), _macaddr( macaddr ), _wep( wep ),
+ _channel( channel ), _signal( signal ), _beacons( 0 )
+{
+ qDebug( "creating scanlist item" );
+ decorateItem( type, essid, macaddr, wep, channel, signal );
+}
+
+MScanListItem::MScanListItem( QListViewItem* parent, QString type, QString essid, QString macaddr,
+ bool wep, int channel, int signal )
+ :OListViewItem( parent, essid, QString::null, macaddr, QString::null, QString::null )
+{
+ qDebug( "creating scanlist item" );
+ decorateItem( type, essid, macaddr, wep, channel, signal );
+}
+
+void MScanListItem::serializeTo( QDataStream& s ) const
+{
+ OListViewItem::serializeTo( s );
+}
+
+void MScanListItem::serializeFrom( QDataStream& s )
+{
+ OListViewItem::serializeFrom( s );
+}
+
+void MScanListItem::decorateItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal )
{
- qDebug( "dumping scanlist..." );
+ qDebug( "decorating scanlist item %s / %s / %s [%d]",
+ (const char*) type,
+ (const char*) essid,
+ (const char*) macaddr,
+ channel );
+
+ // set icon for managed or adhoc mode
+ QString name;
+ name.sprintf( "wellenreiter/%s", (const char*) type );
+ setPixmap( col_type, Resource::loadPixmap( name ) );
+
+ // set icon for wep (wireless encryption protocol)
+ if ( wep )
+ setPixmap( col_wep, Resource::loadPixmap( "wellenreiter/cracked" ) ); //FIXME: rename the pixmap!
+
+ // set channel and signal text
- QListViewItemIterator it( const_cast<MScanListView*>( this ) );
- for ( ; it.current(); ++it )
+ if ( signal != -1 )
+ setText( col_sig, QString::number( signal ) );
+ if ( channel != -1 )
+ setText( col_channel, QString::number( channel ) );
+
+ setText( col_firstseen, QTime::currentTime().toString() );
+ //setText( col_lastseen, QTime::currentTime().toString() );
+
+ listView()->triggerUpdate();
+
+ this->type = type;
+ _type = type;
+ _essid = essid;
+ _macaddr = macaddr;
+ _channel = channel;
+ _beacons = 0;
+ _signal = 0;
+}
+
+void MScanListItem::setManufacturer( const QString& manufacturer )
{
- static_cast<MScanListItem*>( it.current() )->dump( t );
+ setText( col_manuf, manufacturer );
}
- qDebug( "dump finished." );
+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() );
}
+
diff --git a/noncore/net/wellenreiter/gui/scanlist.h b/noncore/net/wellenreiter/gui/scanlist.h
index f06f251..66c701b 100644
--- a/noncore/net/wellenreiter/gui/scanlist.h
+++ b/noncore/net/wellenreiter/gui/scanlist.h
@@ -11,36 +11,109 @@
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
**********************************************************************/
#ifndef SCANLIST_H
#define SCANLIST_H
#include <cornucopia/olistview.h>
#include <qtextstream.h>
class QString;
class ManufacturerDB;
class MScanListView: public OListView
{
Q_OBJECT
public:
MScanListView( QWidget* parent = 0, const char* name = 0 );
virtual ~MScanListView();
void setManufacturerDB( ManufacturerDB* manufacturerdb );
- void dump( QTextStream& t ) const;
+
+ virtual void serializeTo( QDataStream& s ) const;
+ virtual void serializeFrom( QDataStream& s );
public slots:
void addNewItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal );
private:
ManufacturerDB* _manufacturerdb;
};
+//****************************** MScanListItem ****************************************************************
+
+class MScanListItem: public OListViewItem
+{
+ public:
+ MScanListItem::MScanListItem( QListView* parent,
+ QString type,
+ QString essid,
+ QString macaddr,
+ bool wep,
+ int channel,
+ int signal );
+
+ MScanListItem::MScanListItem( QListViewItem* parent,
+ QString type,
+ QString essid,
+ QString macaddr,
+ bool wep,
+ int channel,
+ int signal );
+
+
+ protected:
+ virtual void decorateItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal );
+
+ public:
+ QString type;
+
+ public:
+ //const QString& type() { return _type; };
+ const QString& essid() { return _essid; };
+ const QString& macaddr() { return _macaddr; };
+ bool wep() { return _wep; };
+ int channel() { return _channel; };
+ int signal() { return _signal; };
+ int beacons() { return _beacons; };
+
+ void setSignal( int signal ) { /* TODO */ };
+ void receivedBeacon();
+
+ void setManufacturer( const QString& manufacturer );
+
+ virtual void serializeTo( QDataStream& s ) const;
+ virtual void serializeFrom( QDataStream& s );
+
+ private:
+ QString _type;
+ QString _essid;
+ QString _macaddr;
+ bool _wep;
+ int _channel;
+ int _signal;
+ int _beacons;
+
+};
+
+//****************************** MScanListViewFactory ****************************************************************
+
+/*
+
+class MScanListViewFactory : public OListViewFactory
+{
+public:
+ virtual QListView* listViewFactory();
+ virtual QListViewItem* listViewItemFactory( QListView* lv );
+ virtual QListViewItem* listViewItemFactory( QListViewItem* lvi );
+ virtual void setColumnText( int depth, QListViewItem* lvi, int column, const QString& text );
+ virtual void setCustomData( int depth, QListViewItem* lvi, const QString& text );
+}
+*/
+
#endif
diff --git a/noncore/net/wellenreiter/gui/scanlistitem.cpp b/noncore/net/wellenreiter/gui/scanlistitem.cpp
deleted file mode 100644
index 4aecd2b..0000000
--- a/noncore/net/wellenreiter/gui/scanlistitem.cpp
+++ b/dev/null
@@ -1,121 +0,0 @@
-/**********************************************************************
-** Copyright (C) 2002 Michael 'Mickey' Lauer. All rights reserved.
-**
-** This file is part of Opie Environment.
-**
-** This file may be distributed and/or modified under the terms of the
-** GNU General Public License version 2 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file.
-**
-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-**
-**********************************************************************/
-
-#include "scanlistitem.h"
-#include <assert.h>
-#include <qdatetime.h>
-#include <qpixmap.h>
-
-#ifdef QWS
-#include <qpe/resource.h>
-#else
-#include "resource.h"
-#endif
-
-const int col_type = 0;
-const int col_essid = 0;
-const int col_sig = 1;
-const int col_ap = 2;
-const int col_channel = 3;
-const int col_wep = 4;
-const int col_traffic = 5;
-const int col_manuf = 6;
-const int col_firstseen = 7;
-const int col_lastseen = 8;
-
-MScanListItem::MScanListItem( QListView* parent, QString type, QString essid, QString macaddr,
- bool wep, int channel, int signal )
- :OListViewItem( parent, essid, QString::null, macaddr, QString::null, QString::null ),
- _type( type ), _essid( essid ), _macaddr( macaddr ), _wep( wep ),
- _channel( channel ), _signal( signal ), _beacons( 0 )
-{
- qDebug( "creating scanlist item" );
- decorateItem( type, essid, macaddr, wep, channel, signal );
-}
-
-MScanListItem::MScanListItem( QListViewItem* parent, QString type, QString essid, QString macaddr,
- bool wep, int channel, int signal )
- :OListViewItem( parent, essid, QString::null, macaddr, QString::null, QString::null )
-{
- qDebug( "creating scanlist item" );
- decorateItem( type, essid, macaddr, wep, channel, signal );
-}
-
-void MScanListItem::decorateItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal )
-{
- qDebug( "decorating scanlist item %s / %s / %s [%d]",
- (const char*) type,
- (const char*) essid,
- (const char*) macaddr,
- channel );
-
- // set icon for managed or adhoc mode
- QString name;
- name.sprintf( "wellenreiter/%s", (const char*) type );
- setPixmap( col_type, Resource::loadPixmap( name ) );
-
- // set icon for wep (wireless encryption protocol)
- if ( wep )
- setPixmap( col_wep, Resource::loadPixmap( "wellenreiter/cracked" ) ); //FIXME: rename the pixmap!
-
- // set channel and signal text
-
- if ( signal != -1 )
- setText( col_sig, QString::number( signal ) );
- if ( channel != -1 )
- setText( col_channel, QString::number( channel ) );
-
- setText( col_firstseen, QTime::currentTime().toString() );
- //setText( col_lastseen, QTime::currentTime().toString() );
-
- listView()->triggerUpdate();
-
- this->type = type;
- _type = type;
- _essid = essid;
- _macaddr = macaddr;
- _channel = channel;
- _beacons = 0;
- _signal = 0;
-}
-
-void MScanListItem::setManufacturer( const QString& manufacturer )
-{
- setText( col_manuf, manufacturer );
-}
-
-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() );
-}
-
-void MScanListItem::dump( QTextStream& t ) const
-{
- qDebug( "dumping scanlistitem at <%d>", this );
- t << "<ITEM type=" << _type;
- t << " ESSID='" << _essid;
- t << "' MAC=" << _macaddr;
- t << " WEP=" << _wep;
- t << " CHANNEL=" << _channel;
- t << " SIGNAL=" << _signal;
- t << " BEACONS=" << _beacons;
- t << ">\n";
-}
-
diff --git a/noncore/net/wellenreiter/gui/scanlistitem.h b/noncore/net/wellenreiter/gui/scanlistitem.h
deleted file mode 100644
index 5f6ae40..0000000
--- a/noncore/net/wellenreiter/gui/scanlistitem.h
+++ b/dev/null
@@ -1,83 +0,0 @@
-/**********************************************************************
-** Copyright (C) 2002 Michael 'Mickey' Lauer. All rights reserved.
-**
-** This file is part of Opie Environment.
-**
-** This file may be distributed and/or modified under the terms of the
-** GNU General Public License version 2 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file.
-**
-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-**
-**********************************************************************/
-
-#ifndef SCANLISTITEM_H
-#define SCANLISTITEM_H
-
-#include <cornucopia/olistview.h>
-
-#include <qtextstream.h>
-
-class QString;
-
-class MScanListItem: public OListViewItem
-{
- public:
-
- MScanListItem::MScanListItem( QListView* parent,
- QString type,
- QString essid,
- QString macaddr,
- bool wep,
- int channel,
- int signal );
-
- MScanListItem::MScanListItem( QListViewItem* parent,
- QString type,
- QString essid,
- QString macaddr,
- bool wep,
- int channel,
- int signal );
-
-
- protected:
-
- virtual void decorateItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal );
-
- public:
-
- QString type;
-
- public:
-
- //const QString& type() { return _type; };
- const QString& essid() { return _essid; };
- const QString& macaddr() { return _macaddr; };
- bool wep() { return _wep; };
- int channel() { return _channel; };
- int signal() { return _signal; };
- int beacons() { return _beacons; };
-
- void setSignal( int signal ) { /* TODO */ };
- void receivedBeacon();
-
- void setManufacturer( const QString& manufacturer );
-
- void dump( QTextStream& t ) const;
-
- private:
- QString _type;
- QString _essid;
- QString _macaddr;
- bool _wep;
- int _channel;
- int _signal;
- int _beacons;
-
-};
-
-#endif
-
diff --git a/noncore/net/wellenreiter/gui/wellenreiter.cpp b/noncore/net/wellenreiter/gui/wellenreiter.cpp
index 1ccf971..dd8a365 100644
--- a/noncore/net/wellenreiter/gui/wellenreiter.cpp
+++ b/noncore/net/wellenreiter/gui/wellenreiter.cpp
@@ -102,53 +102,61 @@ Wellenreiter::Wellenreiter( QWidget* parent )
logwindow->log( "(E) Couldn't get file descriptor for commsocket." );
}
else
{
int flags;
flags = fcntl( daemon_fd, F_GETFL, 0 );
fcntl( daemon_fd, F_SETFL, flags | O_NONBLOCK );
QSocketNotifier *sn = new QSocketNotifier( daemon_fd, QSocketNotifier::Read, parent );
connect( sn, SIGNAL( activated( int ) ), this, SLOT( dataReceived() ) );
}
// setup GUI
netview->setColumnWidthMode( 1, QListView::Manual );
if ( manufacturerdb )
netview->setManufacturerDB( manufacturerdb );
}
Wellenreiter::~Wellenreiter()
{
// no need to delete child widgets, Qt does it all for us
delete manufacturerdb;
+
+ // X11-only - Hmm... Closing the socket here segfaults on exit,
+ // Maybe because the notifier still has a handle to it!? Seems not to
+ // occur on Qt/Embedded
+
+ #ifdef QWS
if ( daemon_fd != -1 )
{
qDebug( "closing comm socket" );
close( daemon_fd );
}
+ #endif
+
}
void Wellenreiter::setConfigWindow( WellenreiterConfigWindow* cw )
{
configwindow = cw;
}
void Wellenreiter::handleMessage()
{
// FIXME: receive message and handle it
qDebug( "received message from daemon." );
/*char buffer[10000];
memset( &buffer, 0, sizeof( buffer ) );*/
char buffer[WL_SOCKBUF];
// int result = #wl_recv( &daemon_fd, (char*) &buffer, sizeof(buffer) );
/*
struct sockaddr from;
socklen_t len;