summaryrefslogtreecommitdiff
path: root/noncore/net/wellenreiter/gui
Unidiff
Diffstat (limited to 'noncore/net/wellenreiter/gui') (more/less context) (ignore 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.cpp130
-rw-r--r--noncore/net/wellenreiter/gui/scanlist.h77
-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, 228 insertions, 230 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
@@ -4,26 +4,24 @@ DESTDIR = $(OPIEDIR)/bin
4TEMPLATE = app 4TEMPLATE = app
5CONFIG = qt warn_on debug 5CONFIG = qt warn_on debug
6 6
7HEADERS = wellenreiterbase.h \ 7HEADERS = wellenreiterbase.h \
8 mainwindow.h \ 8 mainwindow.h \
9 wellenreiter.h \ 9 wellenreiter.h \
10 scanlistitem.h \
11 scanlist.h \ 10 scanlist.h \
12 logwindow.h \ 11 logwindow.h \
13 hexwindow.h \ 12 hexwindow.h \
14 configwindow.h \ 13 configwindow.h \
15 wlan.h \ 14 wlan.h \
16 cardconfig.h \ 15 cardconfig.h \
17 manufacturers.h 16 manufacturers.h
18 17
19SOURCES = main.cpp \ 18SOURCES = main.cpp \
20 mainwindow.cpp \ 19 mainwindow.cpp \
21 wellenreiterbase.cpp \ 20 wellenreiterbase.cpp \
22 wellenreiter.cpp \ 21 wellenreiter.cpp \
23 scanlistitem.cpp \
24 scanlist.cpp \ 22 scanlist.cpp \
25 logwindow.cpp \ 23 logwindow.cpp \
26 hexwindow.cpp \ 24 hexwindow.cpp \
27 configwindow.cpp \ 25 configwindow.cpp \
28 wlan.cpp \ 26 wlan.cpp \
29 cardconfig.cpp \ 27 cardconfig.cpp \
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
@@ -18,12 +18,13 @@
18#include "mainwindow.h" 18#include "mainwindow.h"
19#include "wellenreiter.h" 19#include "wellenreiter.h"
20 20
21#include "scanlist.h" 21#include "scanlist.h"
22 22
23#include <qcombobox.h> 23#include <qcombobox.h>
24#include <qdatastream.h>
24#include <qfile.h> 25#include <qfile.h>
25#include <qiconset.h> 26#include <qiconset.h>
26#include <qmenubar.h> 27#include <qmenubar.h>
27#include <qmessagebox.h> 28#include <qmessagebox.h>
28#include <qpopupmenu.h> 29#include <qpopupmenu.h>
29#include <qstatusbar.h> 30#include <qstatusbar.h>
@@ -41,12 +42,19 @@ WellenreiterMainWindow::WellenreiterMainWindow( QWidget * parent, const char * n
41{ 42{
42 cw = new WellenreiterConfigWindow( this ); 43 cw = new WellenreiterConfigWindow( this );
43 mw = new Wellenreiter( this ); 44 mw = new Wellenreiter( this );
44 mw->setConfigWindow( cw ); 45 mw->setConfigWindow( cw );
45 setCentralWidget( mw ); 46 setCentralWidget( mw );
46 47
48 // setup application icon
49
50 #ifndef QWS
51 setIcon( Resource::loadPixmap( "wellenreiter/appicon-trans" ) );
52 setIconText( "Wellenreiter/X11" );
53 #endif
54
47 // setup icon sets 55 // setup icon sets
48 56
49 infoIconSet = new QIconSet( Resource::loadPixmap( "wellenreiter/InfoIcon" ) ); 57 infoIconSet = new QIconSet( Resource::loadPixmap( "wellenreiter/InfoIcon" ) );
50 settingsIconSet = new QIconSet( Resource::loadPixmap( "wellenreiter/SettingsIcon" ) ); 58 settingsIconSet = new QIconSet( Resource::loadPixmap( "wellenreiter/SettingsIcon" ) );
51 #ifdef QWS 59 #ifdef QWS
52 searchIconSet = new QIconSet( Resource::loadPixmap( "wellenreiter/SearchIcon" ) ); 60 searchIconSet = new QIconSet( Resource::loadPixmap( "wellenreiter/SearchIcon" ) );
@@ -96,17 +104,16 @@ WellenreiterMainWindow::WellenreiterMainWindow( QWidget * parent, const char * n
96 QPopupMenu* fileSave = new QPopupMenu( mb ); 104 QPopupMenu* fileSave = new QPopupMenu( mb );
97 fileSave->insertItem( "&Session", this, SLOT( fileSaveSession() ) ); 105 fileSave->insertItem( "&Session", this, SLOT( fileSaveSession() ) );
98 fileSave->insertItem( "&Log", this, SLOT( fileSaveLog() ) ); 106 fileSave->insertItem( "&Log", this, SLOT( fileSaveLog() ) );
99 107
100 QPopupMenu* fileLoad = new QPopupMenu( mb ); 108 QPopupMenu* fileLoad = new QPopupMenu( mb );
101 fileLoad->insertItem( "&Session", this, SLOT( fileLoadSession() ) ); 109 fileLoad->insertItem( "&Session", this, SLOT( fileLoadSession() ) );
102 fileLoad->insertItem( "&Log", this, SLOT( fileLoadLog() ) ); 110 //fileLoad->insertItem( "&Log", this, SLOT( fileLoadLog() ) );
103 111
104 QPopupMenu* file = new QPopupMenu( mb ); 112 QPopupMenu* file = new QPopupMenu( mb );
105 id = file->insertItem( "&Load", fileLoad ); 113 id = file->insertItem( "&Load", fileLoad );
106 file->setItemEnabled( id, false );
107 file->insertItem( "&Save", fileSave ); 114 file->insertItem( "&Save", fileSave );
108 115
109 QPopupMenu* view = new QPopupMenu( mb ); 116 QPopupMenu* view = new QPopupMenu( mb );
110 view->insertItem( "&Configure..." ); 117 view->insertItem( "&Configure..." );
111 118
112 QPopupMenu* sniffer = new QPopupMenu( mb ); 119 QPopupMenu* sniffer = new QPopupMenu( mb );
@@ -182,13 +189,13 @@ WellenreiterMainWindow::~WellenreiterMainWindow()
182 189
183}; 190};
184 191
185void WellenreiterMainWindow::demoAddStations() 192void WellenreiterMainWindow::demoAddStations()
186{ 193{
187 mw->netView()->addNewItem( "managed", "Vanille", "00:00:20:EF:A6:43", true, 6, 80 ); 194 mw->netView()->addNewItem( "managed", "Vanille", "00:00:20:EF:A6:43", true, 6, 80 );
188 mw->netView()->addNewItem( "managed", "Vanille", "00:00:1c:EF:A6:23", true, 11, 10 ); 195 mw->netView()->addNewItem( "managed", "Vanille", "00:30:6D:EF:A6:23", true, 11, 10 );
189 mw->netView()->addNewItem( "adhoc", "ELAN", "00:A0:F8:E7:16:22", false, 3, 10 ); 196 mw->netView()->addNewItem( "adhoc", "ELAN", "00:A0:F8:E7:16:22", false, 3, 10 );
190 mw->netView()->addNewItem( "adhoc", "ELAN", "00:AA:01:E7:56:62", false, 3, 15 ); 197 mw->netView()->addNewItem( "adhoc", "ELAN", "00:AA:01:E7:56:62", false, 3, 15 );
191 mw->netView()->addNewItem( "adhoc", "ELAN", "00:B0:8E:E7:56:E2", false, 3, 20 ); 198 mw->netView()->addNewItem( "adhoc", "ELAN", "00:B0:8E:E7:56:E2", false, 3, 20 );
192} 199}
193 200
194void WellenreiterMainWindow::fileSaveLog() 201void WellenreiterMainWindow::fileSaveLog()
@@ -212,23 +219,42 @@ void WellenreiterMainWindow::fileSaveLog()
212void WellenreiterMainWindow::fileSaveSession() 219void WellenreiterMainWindow::fileSaveSession()
213{ 220{
214 const QString fname( "/tmp/session.xml" ); 221 const QString fname( "/tmp/session.xml" );
215 QFile f( fname ); 222 QFile f( fname );
216 if ( f.open(IO_WriteOnly) ) 223 if ( f.open(IO_WriteOnly) )
217 { 224 {
218 QTextStream t( &f ); 225 QDataStream t( &f );
219 mw->netView()->dump( t ); 226 t << *mw->netView();
220 f.close(); 227 f.close();
221 qDebug( "Saved session to file '%s'", (const char*) fname ); 228 qDebug( "Saved session to file '%s'", (const char*) fname );
222 } 229 }
223 else 230 else
224 { 231 {
225 qDebug( "Problem saving session to file '%s'", (const char*) fname ); 232 qDebug( "Problem saving session to file '%s'", (const char*) fname );
226 } 233 }
227} 234}
228 235
236void WellenreiterMainWindow::fileLoadSession()
237{
238 const QString fname( "/tmp/session.xml" );
239 QFile f( fname );
240
241 if ( f.open(IO_ReadOnly) )
242 {
243 QDataStream t( &f );
244 t >> *mw->netView();
245 f.close();
246 qDebug( "Loaded session from file '%s'", (const char*) fname );
247 }
248 else
249 {
250 qDebug( "Problem loading session from file '%s'", (const char*) fname );
251 }
252
253}
254
229void WellenreiterMainWindow::closeEvent( QCloseEvent* e ) 255void WellenreiterMainWindow::closeEvent( QCloseEvent* e )
230{ 256{
231 if ( mw->isDaemonRunning() ) 257 if ( mw->isDaemonRunning() )
232 { 258 {
233 QMessageBox::warning( this, "Wellenreiter/Opie", "Sniffing in progress!\nPlease stop sniffing before closing." ); 259 QMessageBox::warning( this, "Wellenreiter/Opie", "Sniffing in progress!\nPlease stop sniffing before closing." );
234 e->ignore(); 260 e->ignore();
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
@@ -48,9 +48,10 @@ class WellenreiterMainWindow: public QMainWindow
48 48
49 public slots: 49 public slots:
50 void showConfigure(); 50 void showConfigure();
51 void demoAddStations(); 51 void demoAddStations();
52 void fileSaveLog(); 52 void fileSaveLog();
53 void fileSaveSession(); 53 void fileSaveSession();
54 void fileLoadSession();
54}; 55};
55 56
56#endif 57#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
@@ -11,18 +11,16 @@
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14**********************************************************************/ 14**********************************************************************/
15 15
16#include "scanlist.h" 16#include "scanlist.h"
17#include "scanlistitem.h"
18 17
19#include <assert.h> 18#include <assert.h>
20
21#include "manufacturers.h" 19#include "manufacturers.h"
22 20#include <qdatetime.h>
23#include <qtextstream.h> 21#include <qtextstream.h>
24 22
25MScanListView::MScanListView( QWidget* parent, const char* name ) 23MScanListView::MScanListView( QWidget* parent, const char* name )
26 :OListView( parent, name ), _manufacturerdb( 0 ) 24 :OListView( parent, name ), _manufacturerdb( 0 )
27{ 25{
28 26
@@ -47,17 +45,29 @@ MScanListView::MScanListView( QWidget* parent, const char* name )
47 setColumnAlignment( 7, AlignCenter ); 45 setColumnAlignment( 7, AlignCenter );
48 addColumn( tr( "Last Seen" ) ); 46 addColumn( tr( "Last Seen" ) );
49 setColumnAlignment( 8, AlignCenter ); 47 setColumnAlignment( 8, AlignCenter );
50 setRootIsDecorated( true ); 48 setRootIsDecorated( true );
51 setAllColumnsShowFocus( true ); 49 setAllColumnsShowFocus( true );
52}; 50};
53 51
54MScanListView::~MScanListView() 52MScanListView::~MScanListView()
55{ 53{
56}; 54};
57 55
56void MScanListView::serializeTo( QDataStream& s) const
57{
58 qDebug( "serializing MScanListView" );
59 OListView::serializeTo( s );
60}
61
62void MScanListView::serializeFrom( QDataStream& s)
63{
64 qDebug( "serializing MScanListView" );
65 OListView::serializeFrom( s );
66}
67
58void MScanListView::setManufacturerDB( ManufacturerDB* manufacturerdb ) 68void MScanListView::setManufacturerDB( ManufacturerDB* manufacturerdb )
59{ 69{
60 _manufacturerdb = manufacturerdb; 70 _manufacturerdb = manufacturerdb;
61} 71}
62 72
63void MScanListView::addNewItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal ) 73void MScanListView::addNewItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal )
@@ -66,15 +76,15 @@ void MScanListView::addNewItem( QString type, QString essid, QString macaddr, bo
66 76
67 qDebug( "MScanList::addNewItem( %s / %s / %s [%d]", 77 qDebug( "MScanList::addNewItem( %s / %s / %s [%d]",
68 (const char*) type, 78 (const char*) type,
69 (const char*) essid, 79 (const char*) essid,
70 (const char*) macaddr, 80 (const char*) macaddr,
71 channel ); 81 channel );
72 82
73 // search, if we already have seen this net 83 // search, if we already have seen this net
74 84
75 QString s; 85 QString s;
76 MScanListItem* network; 86 MScanListItem* network;
77 MScanListItem* item = static_cast<MScanListItem*> ( firstChild() ); 87 MScanListItem* item = static_cast<MScanListItem*> ( firstChild() );
78 88
79 while ( item && ( item->text( 0 ) != essid ) ) 89 while ( item && ( item->text( 0 ) != essid ) )
80 { 90 {
@@ -95,28 +105,28 @@ void MScanListView::addNewItem( QString type, QString essid, QString macaddr, bo
95 nextpixmap = ani3; 105 nextpixmap = ani3;
96 else if ( pixmap == ani3 ) 106 else if ( pixmap == ani3 )
97 nextpixmap = ani4; 107 nextpixmap = ani4;
98 else if ( pixmap == ani4 ) 108 else if ( pixmap == ani4 )
99 nextpixmap = ani1; 109 nextpixmap = ani1;
100 item->setPixmap( 0, *nextpixmap ); */ 110 item->setPixmap( 0, *nextpixmap ); */
101 111
102 //qDebug( "current pixmap %d, next %d", pixmap, nextpixmap ); 112 //qDebug( "current pixmap %d, next %d", pixmap, nextpixmap );
103 113
104 // we have already seen this net, check all childs if MAC exists 114 // we have already seen this net, check all childs if MAC exists
105 115
106 network = item; 116 network = item;
107 117
108 item = static_cast<MScanListItem*> ( item->firstChild() ); 118 item = static_cast<MScanListItem*> ( item->firstChild() );
109 assert( item ); // this shouldn't fail 119 assert( item ); // this shouldn't fail
110 120
111 while ( item && ( item->text( 2 ) != macaddr ) ) 121 while ( item && ( item->text( 2 ) != macaddr ) )
112 { 122 {
113 qDebug( "subitemtext: %s", (const char*) item->text( 2 ) ); 123 qDebug( "subitemtext: %s", (const char*) item->text( 2 ) );
114 item = static_cast<MScanListItem*> ( item->itemBelow() ); 124 item = static_cast<MScanListItem*> ( item->itemBelow() );
115 } 125 }
116 126
117 if ( item ) 127 if ( item )
118 { 128 {
119 // we have already seen this item, it's a dupe 129 // we have already seen this item, it's a dupe
120 #ifdef DEBUG 130 #ifdef DEBUG
121 qDebug( "%s is a dupe - ignoring...", (const char*) macaddr ); 131 qDebug( "%s is a dupe - ignoring...", (const char*) macaddr );
122 #endif 132 #endif
@@ -150,18 +160,104 @@ void MScanListView::addNewItem( QString type, QString essid, QString macaddr, bo
150 { 160 {
151 s.sprintf( "(i) new adhoc station in '%s' [%d]", (const char*) essid, channel ); 161 s.sprintf( "(i) new adhoc station in '%s' [%d]", (const char*) essid, channel );
152 } 162 }
153 163
154} 164}
155 165
156void MScanListView::dump( QTextStream& t ) const 166#ifdef QWS
167#include <qpe/resource.h>
168#else
169#include "resource.h"
170#endif
171
172const int col_type = 0;
173const int col_essid = 0;
174const int col_sig = 1;
175const int col_ap = 2;
176const int col_channel = 3;
177const int col_wep = 4;
178const int col_traffic = 5;
179const int col_manuf = 6;
180const int col_firstseen = 7;
181const int col_lastseen = 8;
182
183MScanListItem::MScanListItem( QListView* parent, QString type, QString essid, QString macaddr,
184 bool wep, int channel, int signal )
185 :OListViewItem( parent, essid, QString::null, macaddr, QString::null, QString::null ),
186 _type( type ), _essid( essid ), _macaddr( macaddr ), _wep( wep ),
187 _channel( channel ), _signal( signal ), _beacons( 0 )
157{ 188{
158 qDebug( "dumping scanlist..." ); 189 qDebug( "creating scanlist item" );
190 decorateItem( type, essid, macaddr, wep, channel, signal );
191}
159 192
160 QListViewItemIterator it( const_cast<MScanListView*>( this ) ); 193MScanListItem::MScanListItem( QListViewItem* parent, QString type, QString essid, QString macaddr,
161 for ( ; it.current(); ++it ) 194 bool wep, int channel, int signal )
162 { 195 :OListViewItem( parent, essid, QString::null, macaddr, QString::null, QString::null )
163 static_cast<MScanListItem*>( it.current() )->dump( t ); 196{
164 } 197 qDebug( "creating scanlist item" );
198 decorateItem( type, essid, macaddr, wep, channel, signal );
199}
165 200
166 qDebug( "dump finished." ); 201void MScanListItem::serializeTo( QDataStream& s ) const
202{
203 OListViewItem::serializeTo( s );
204}
205
206void MScanListItem::serializeFrom( QDataStream& s )
207{
208 OListViewItem::serializeFrom( s );
167} 209}
210
211void MScanListItem::decorateItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal )
212{
213 qDebug( "decorating scanlist item %s / %s / %s [%d]",
214 (const char*) type,
215 (const char*) essid,
216 (const char*) macaddr,
217 channel );
218
219 // set icon for managed or adhoc mode
220 QString name;
221 name.sprintf( "wellenreiter/%s", (const char*) type );
222 setPixmap( col_type, Resource::loadPixmap( name ) );
223
224 // set icon for wep (wireless encryption protocol)
225 if ( wep )
226 setPixmap( col_wep, Resource::loadPixmap( "wellenreiter/cracked" ) ); //FIXME: rename the pixmap!
227
228 // set channel and signal text
229
230 if ( signal != -1 )
231 setText( col_sig, QString::number( signal ) );
232 if ( channel != -1 )
233 setText( col_channel, QString::number( channel ) );
234
235 setText( col_firstseen, QTime::currentTime().toString() );
236 //setText( col_lastseen, QTime::currentTime().toString() );
237
238 listView()->triggerUpdate();
239
240 this->type = type;
241 _type = type;
242 _essid = essid;
243 _macaddr = macaddr;
244 _channel = channel;
245 _beacons = 0;
246 _signal = 0;
247}
248
249void MScanListItem::setManufacturer( const QString& manufacturer )
250{
251 setText( col_manuf, manufacturer );
252}
253
254void MScanListItem::receivedBeacon()
255{
256 _beacons++;
257 #ifdef DEBUG
258 qDebug( "MScanListItem %s: received beacon #%d", (const char*) _macaddr, _beacons );
259 #endif
260 setText( col_sig, QString::number( _beacons ) );
261 setText( col_lastseen, QTime::currentTime().toString() );
262}
263
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
@@ -29,18 +29,91 @@ class MScanListView: public OListView
29 29
30 public: 30 public:
31 MScanListView( QWidget* parent = 0, const char* name = 0 ); 31 MScanListView( QWidget* parent = 0, const char* name = 0 );
32 virtual ~MScanListView(); 32 virtual ~MScanListView();
33 33
34 void setManufacturerDB( ManufacturerDB* manufacturerdb ); 34 void setManufacturerDB( ManufacturerDB* manufacturerdb );
35 void dump( QTextStream& t ) const; 35
36 virtual void serializeTo( QDataStream& s ) const;
37 virtual void serializeFrom( QDataStream& s );
36 38
37 public slots: 39 public slots:
38 void addNewItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal ); 40 void addNewItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal );
39 41
40 private: 42 private:
41 ManufacturerDB* _manufacturerdb; 43 ManufacturerDB* _manufacturerdb;
42 44
43}; 45};
44 46
47//****************************** MScanListItem ****************************************************************
48
49class MScanListItem: public OListViewItem
50{
51 public:
52 MScanListItem::MScanListItem( QListView* parent,
53 QString type,
54 QString essid,
55 QString macaddr,
56 bool wep,
57 int channel,
58 int signal );
59
60 MScanListItem::MScanListItem( QListViewItem* parent,
61 QString type,
62 QString essid,
63 QString macaddr,
64 bool wep,
65 int channel,
66 int signal );
67
68
69 protected:
70 virtual void decorateItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal );
71
72 public:
73 QString type;
74
75 public:
76 //const QString& type() { return _type; };
77 const QString& essid() { return _essid; };
78 const QString& macaddr() { return _macaddr; };
79 bool wep() { return _wep; };
80 int channel() { return _channel; };
81 int signal() { return _signal; };
82 int beacons() { return _beacons; };
83
84 void setSignal( int signal ) { /* TODO */ };
85 void receivedBeacon();
86
87 void setManufacturer( const QString& manufacturer );
88
89 virtual void serializeTo( QDataStream& s ) const;
90 virtual void serializeFrom( QDataStream& s );
91
92 private:
93 QString _type;
94 QString _essid;
95 QString _macaddr;
96 bool _wep;
97 int _channel;
98 int _signal;
99 int _beacons;
100
101};
102
103//****************************** MScanListViewFactory ****************************************************************
104
105/*
106
107class MScanListViewFactory : public OListViewFactory
108{
109public:
110 virtual QListView* listViewFactory();
111 virtual QListViewItem* listViewItemFactory( QListView* lv );
112 virtual QListViewItem* listViewItemFactory( QListViewItem* lvi );
113 virtual void setColumnText( int depth, QListViewItem* lvi, int column, const QString& text );
114 virtual void setCustomData( int depth, QListViewItem* lvi, const QString& text );
115}
116*/
117
45#endif 118#endif
46 119
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 @@
1/**********************************************************************
2** Copyright (C) 2002 Michael 'Mickey' Lauer. All rights reserved.
3**
4** This file is part of Opie Environment.
5**
6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file.
10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13**
14**********************************************************************/
15
16#include "scanlistitem.h"
17#include <assert.h>
18#include <qdatetime.h>
19#include <qpixmap.h>
20
21#ifdef QWS
22#include <qpe/resource.h>
23#else
24#include "resource.h"
25#endif
26
27const int col_type = 0;
28const int col_essid = 0;
29const int col_sig = 1;
30const int col_ap = 2;
31const int col_channel = 3;
32const int col_wep = 4;
33const int col_traffic = 5;
34const int col_manuf = 6;
35const int col_firstseen = 7;
36const int col_lastseen = 8;
37
38MScanListItem::MScanListItem( QListView* parent, QString type, QString essid, QString macaddr,
39 bool wep, int channel, int signal )
40 :OListViewItem( parent, essid, QString::null, macaddr, QString::null, QString::null ),
41 _type( type ), _essid( essid ), _macaddr( macaddr ), _wep( wep ),
42 _channel( channel ), _signal( signal ), _beacons( 0 )
43{
44 qDebug( "creating scanlist item" );
45 decorateItem( type, essid, macaddr, wep, channel, signal );
46}
47
48MScanListItem::MScanListItem( QListViewItem* parent, QString type, QString essid, QString macaddr,
49 bool wep, int channel, int signal )
50 :OListViewItem( parent, essid, QString::null, macaddr, QString::null, QString::null )
51{
52 qDebug( "creating scanlist item" );
53 decorateItem( type, essid, macaddr, wep, channel, signal );
54}
55
56void MScanListItem::decorateItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal )
57{
58 qDebug( "decorating scanlist item %s / %s / %s [%d]",
59 (const char*) type,
60 (const char*) essid,
61 (const char*) macaddr,
62 channel );
63
64 // set icon for managed or adhoc mode
65 QString name;
66 name.sprintf( "wellenreiter/%s", (const char*) type );
67 setPixmap( col_type, Resource::loadPixmap( name ) );
68
69 // set icon for wep (wireless encryption protocol)
70 if ( wep )
71 setPixmap( col_wep, Resource::loadPixmap( "wellenreiter/cracked" ) ); //FIXME: rename the pixmap!
72
73 // set channel and signal text
74
75 if ( signal != -1 )
76 setText( col_sig, QString::number( signal ) );
77 if ( channel != -1 )
78 setText( col_channel, QString::number( channel ) );
79
80 setText( col_firstseen, QTime::currentTime().toString() );
81 //setText( col_lastseen, QTime::currentTime().toString() );
82
83 listView()->triggerUpdate();
84
85 this->type = type;
86 _type = type;
87 _essid = essid;
88 _macaddr = macaddr;
89 _channel = channel;
90 _beacons = 0;
91 _signal = 0;
92}
93
94void MScanListItem::setManufacturer( const QString& manufacturer )
95{
96 setText( col_manuf, manufacturer );
97}
98
99void MScanListItem::receivedBeacon()
100{
101 _beacons++;
102 #ifdef DEBUG
103 qDebug( "MScanListItem %s: received beacon #%d", (const char*) _macaddr, _beacons );
104 #endif
105 setText( col_sig, QString::number( _beacons ) );
106 setText( col_lastseen, QTime::currentTime().toString() );
107}
108
109void MScanListItem::dump( QTextStream& t ) const
110{
111 qDebug( "dumping scanlistitem at <%d>", this );
112 t << "<ITEM type=" << _type;
113 t << " ESSID='" << _essid;
114 t << "' MAC=" << _macaddr;
115 t << " WEP=" << _wep;
116 t << " CHANNEL=" << _channel;
117 t << " SIGNAL=" << _signal;
118 t << " BEACONS=" << _beacons;
119 t << ">\n";
120}
121
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 @@
1/**********************************************************************
2** Copyright (C) 2002 Michael 'Mickey' Lauer. All rights reserved.
3**
4** This file is part of Opie Environment.
5**
6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file.
10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13**
14**********************************************************************/
15
16#ifndef SCANLISTITEM_H
17#define SCANLISTITEM_H
18
19#include <cornucopia/olistview.h>
20
21#include <qtextstream.h>
22
23class QString;
24
25class MScanListItem: public OListViewItem
26{
27 public:
28
29 MScanListItem::MScanListItem( QListView* parent,
30 QString type,
31 QString essid,
32 QString macaddr,
33 bool wep,
34 int channel,
35 int signal );
36
37 MScanListItem::MScanListItem( QListViewItem* parent,
38 QString type,
39 QString essid,
40 QString macaddr,
41 bool wep,
42 int channel,
43 int signal );
44
45
46 protected:
47
48 virtual void decorateItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal );
49
50 public:
51
52 QString type;
53
54 public:
55
56 //const QString& type() { return _type; };
57 const QString& essid() { return _essid; };
58 const QString& macaddr() { return _macaddr; };
59 bool wep() { return _wep; };
60 int channel() { return _channel; };
61 int signal() { return _signal; };
62 int beacons() { return _beacons; };
63
64 void setSignal( int signal ) { /* TODO */ };
65 void receivedBeacon();
66
67 void setManufacturer( const QString& manufacturer );
68
69 void dump( QTextStream& t ) const;
70
71 private:
72 QString _type;
73 QString _essid;
74 QString _macaddr;
75 bool _wep;
76 int _channel;
77 int _signal;
78 int _beacons;
79
80};
81
82#endif
83
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
@@ -120,17 +120,25 @@ Wellenreiter::Wellenreiter( QWidget* parent )
120 120
121Wellenreiter::~Wellenreiter() 121Wellenreiter::~Wellenreiter()
122{ 122{
123 // no need to delete child widgets, Qt does it all for us 123 // no need to delete child widgets, Qt does it all for us
124 124
125 delete manufacturerdb; 125 delete manufacturerdb;
126
127 // X11-only - Hmm... Closing the socket here segfaults on exit,
128 // Maybe because the notifier still has a handle to it!? Seems not to
129 // occur on Qt/Embedded
130
131 #ifdef QWS
126 if ( daemon_fd != -1 ) 132 if ( daemon_fd != -1 )
127 { 133 {
128 qDebug( "closing comm socket" ); 134 qDebug( "closing comm socket" );
129 close( daemon_fd ); 135 close( daemon_fd );
130 } 136 }
137 #endif
138
131} 139}
132 140
133void Wellenreiter::setConfigWindow( WellenreiterConfigWindow* cw ) 141void Wellenreiter::setConfigWindow( WellenreiterConfigWindow* cw )
134{ 142{
135 configwindow = cw; 143 configwindow = cw;
136} 144}