summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/wellenreiter/gui/scanlist.cpp23
-rw-r--r--noncore/net/wellenreiter/gui/scanlist.h2
2 files changed, 20 insertions, 5 deletions
diff --git a/noncore/net/wellenreiter/gui/scanlist.cpp b/noncore/net/wellenreiter/gui/scanlist.cpp
index b8aa81c..1cf49e0 100644
--- a/noncore/net/wellenreiter/gui/scanlist.cpp
+++ b/noncore/net/wellenreiter/gui/scanlist.cpp
@@ -113,202 +113,217 @@ void MScanListView::addNewItem( QString type, QString essid, QString macaddr, bo
113 113
114 QString s; 114 QString s;
115 MScanListItem* network; 115 MScanListItem* network;
116 MScanListItem* item = static_cast<MScanListItem*> ( firstChild() ); 116 MScanListItem* item = static_cast<MScanListItem*> ( firstChild() );
117 117
118 while ( item && ( item->text( col_essid ) != essid ) ) 118 while ( item && ( item->text( col_essid ) != essid ) )
119 { 119 {
120 qDebug( "itemtext: %s", (const char*) item->text( col_essid ) ); 120 qDebug( "itemtext: %s", (const char*) item->text( col_essid ) );
121 item = static_cast<MScanListItem*> ( item->nextSibling() ); 121 item = static_cast<MScanListItem*> ( item->nextSibling() );
122 } 122 }
123 if ( item ) 123 if ( item )
124 { 124 {
125 // we have already seen this net, check all childs if MAC exists 125 // we have already seen this net, check all childs if MAC exists
126 126
127 network = item; 127 network = item;
128 128
129 item = static_cast<MScanListItem*> ( item->firstChild() ); 129 item = static_cast<MScanListItem*> ( item->firstChild() );
130 assert( item ); // this shouldn't fail 130 assert( item ); // this shouldn't fail
131 131
132 while ( item && ( item->text( col_ap ) != macaddr ) ) 132 while ( item && ( item->text( col_ap ) != macaddr ) )
133 { 133 {
134 qDebug( "subitemtext: %s", (const char*) item->text( col_ap ) ); 134 qDebug( "subitemtext: %s", (const char*) item->text( col_ap ) );
135 item = static_cast<MScanListItem*> ( item->nextSibling() ); 135 item = static_cast<MScanListItem*> ( item->nextSibling() );
136 } 136 }
137 137
138 if ( item ) 138 if ( item )
139 { 139 {
140 // we have already seen this item, it's a dupe 140 // we have already seen this item, it's a dupe
141 #ifdef DEBUG 141 #ifdef DEBUG
142 qDebug( "%s is a dupe - ignoring...", (const char*) macaddr ); 142 qDebug( "%s is a dupe - ignoring...", (const char*) macaddr );
143 #endif 143 #endif
144 item->receivedBeacon(); 144 item->receivedBeacon();
145 return; 145 return;
146 } 146 }
147 } 147 }
148 else 148 else
149 { 149 {
150 s.sprintf( "(i) new network: '%s'", (const char*) essid ); 150 s.sprintf( "(i) new network: '%s'", (const char*) essid );
151 network = new MScanListItem( this, "network", essid, QString::null, 0, 0, 0 ); 151 network = new MScanListItem( this, "network", essid, QString::null, 0, 0, 0 );
152 } 152 }
153 153
154 154
155 // insert new station as child from network 155 // insert new station as child from network
156 156
157 // no essid to reduce clutter, maybe later we have a nick or stationname to display!? 157 // no essid to reduce clutter, maybe later we have a nick or stationname to display!?
158 158
159 qDebug( "inserting new station %s", (const char*) macaddr ); 159 qDebug( "inserting new station %s", (const char*) macaddr );
160 160
161 MScanListItem* station = new MScanListItem( network, type, "", macaddr, wep, channel, signal ); 161 MScanListItem* station = new MScanListItem( network, type, "", macaddr, wep, channel, signal );
162 if ( _manufacturerdb ) 162 if ( _manufacturerdb )
163 station->setManufacturer( _manufacturerdb->lookup( macaddr ) ); 163 station->setManufacturer( _manufacturerdb->lookup( macaddr ) );
164 164
165 if ( type == "managed" ) 165 if ( type == "managed" )
166 { 166 {
167 s.sprintf( "(i) new AP in '%s' [%d]", (const char*) essid, channel ); 167 s.sprintf( "(i) new AP in '%s' [%d]", (const char*) essid, channel );
168 } 168 }
169 else 169 else
170 { 170 {
171 s.sprintf( "(i) new adhoc station in '%s' [%d]", (const char*) essid, channel ); 171 s.sprintf( "(i) new adhoc station in '%s' [%d]", (const char*) essid, channel );
172 } 172 }
173 173
174} 174}
175 175
176 176
177void MScanListView::addIfNotExisting( MScanListItem* network, QString addr ) 177void MScanListView::addIfNotExisting( MScanListItem* network, QString addr, const QString& type )
178{ 178{
179 MScanListItem* subitem = static_cast<MScanListItem*>( network->firstChild() ); 179 MScanListItem* subitem = static_cast<MScanListItem*>( network->firstChild() );
180 180
181 while ( subitem && ( subitem->text( col_ap ) != addr ) ) 181 while ( subitem && ( subitem->text( col_ap ) != addr ) )
182 { 182 {
183 qDebug( "subitemtext: %s", (const char*) subitem->text( col_ap ) ); 183 qDebug( "subitemtext: %s", (const char*) subitem->text( col_ap ) );
184 subitem = static_cast<MScanListItem*> ( subitem->nextSibling() ); 184 subitem = static_cast<MScanListItem*> ( subitem->nextSibling() );
185 } 185 }
186 186
187 if ( subitem ) 187 if ( subitem )
188 { 188 {
189 // we have already seen this item, it's a dupe 189 // we have already seen this item, it's a dupe
190 #ifdef DEBUG 190 #ifdef DEBUG
191 qDebug( "%s is a dupe - ignoring...", (const char*) addr ); 191 qDebug( "%s is a dupe - ignoring...", (const char*) addr );
192 #endif 192 #endif
193 subitem->receivedBeacon(); //FIXME: sent data bit 193 subitem->receivedBeacon(); //FIXME: sent data bit
194 return; 194 return;
195 } 195 }
196 196
197 // Hey, it seems to be a new item :-D 197 // Hey, it seems to be a new item :-D
198 MScanListItem* station = new MScanListItem( network, "station", /* network->text( col_essid ) */ "", addr, false, -1, -1 ); 198 MScanListItem* station = new MScanListItem( network, type, /* network->text( col_essid ) */ "", addr, false, -1, -1 );
199 if ( _manufacturerdb ) 199 if ( _manufacturerdb )
200 station->setManufacturer( _manufacturerdb->lookup( addr ) ); 200 station->setManufacturer( _manufacturerdb->lookup( addr ) );
201} 201}
202 202
203 203
204void MScanListView::WDStraffic( QString from, QString to, QString viaFrom, QString viaTo ) 204void MScanListView::WDStraffic( QString from, QString to, QString viaFrom, QString viaTo )
205{ 205{
206 QString s; 206 QString s;
207 MScanListItem* network; 207 MScanListItem* network;
208 208
209 QListViewItemIterator it( this ); 209 QListViewItemIterator it( this );
210 while ( it.current() && 210 while ( it.current() &&
211 it.current()->text( col_ap ) != viaFrom && 211 it.current()->text( col_ap ) != viaFrom &&
212 it.current()->text( col_ap ) != viaTo ) ++it; 212 it.current()->text( col_ap ) != viaTo ) ++it;
213 213
214 MScanListItem* item = static_cast<MScanListItem*>( it.current() ); 214 MScanListItem* item = static_cast<MScanListItem*>( it.current() );
215 215
216 if ( item ) // Either viaFrom or viaTo AP has shown up yet, so just add our two new stations 216 if ( item ) // Either viaFrom or viaTo AP has shown up yet, so just add our two new stations
217 { 217 {
218 addIfNotExisting( static_cast<MScanListItem*>(item->parent()), from ); 218 addIfNotExisting( static_cast<MScanListItem*>(item->parent()), from );
219 addIfNotExisting( static_cast<MScanListItem*>(item->parent()), to ); 219 addIfNotExisting( static_cast<MScanListItem*>(item->parent()), to );
220 } 220 }
221 else 221 else
222 { 222 {
223 qDebug( "D'Oh! Stations without AP... ignoring for now... will handle this in 1.1 version :-D" ); 223 qDebug( "D'Oh! Stations without AP... ignoring for now... will handle this in 1.1 version :-D" );
224 } 224 }
225} 225}
226 226
227 227
228void MScanListView::toDStraffic( QString from, QString to, QString via ) 228void MScanListView::toDStraffic( QString from, QString to, QString via )
229{ 229{
230 QString s; 230 QString s;
231 MScanListItem* network; 231 MScanListItem* network;
232 232
233 QListViewItemIterator it( this ); 233 QListViewItemIterator it( this );
234 while ( it.current() && it.current()->text( col_ap ) != via ) ++it; 234 while ( it.current() && it.current()->text( col_ap ) != via ) ++it;
235 235
236 MScanListItem* item = static_cast<MScanListItem*>( it.current() ); 236 MScanListItem* item = static_cast<MScanListItem*>( it.current() );
237 237
238 if ( item ) // AP has shown up yet, so just add our new "from" - station 238 if ( item ) // AP has shown up yet, so just add our new "from" - station
239 { 239 {
240 addIfNotExisting( static_cast<MScanListItem*>(item->parent()), from ); 240 addIfNotExisting( static_cast<MScanListItem*>(item->parent()), from, "adhoc" );
241 } 241 }
242 else 242 else
243 { 243 {
244 qDebug( "D'Oh! Station without AP... ignoring for now... will handle this in 1.1 :-D" ); 244 qDebug( "D'Oh! Station without AP... ignoring for now... will handle this in 1.1 :-D" );
245 } 245 }
246} 246}
247 247
248void MScanListView::fromDStraffic( QString from, QString to, QString via ) 248void MScanListView::fromDStraffic( QString from, QString to, QString via )
249{ 249{
250 qWarning( "D'oh! Not yet implemented..." ); 250 QString s;
251 MScanListItem* network;
252
253 QListViewItemIterator it( this );
254 while ( it.current() && it.current()->text( col_ap ) != via ) ++it;
255
256 MScanListItem* item = static_cast<MScanListItem*>( it.current() );
257
258 if ( item ) // AP has shown up yet, so just add our new "from" - station
259 {
260 addIfNotExisting( static_cast<MScanListItem*>(item->parent()), from, "station" );
261 }
262 else
263 {
264 qDebug( "D'Oh! Station without AP... ignoring for now... will handle this in 1.1 :-D" );
265 }
251} 266}
252 267
253void MScanListView::IBSStraffic( QString from, QString to, QString via ) 268void MScanListView::IBSStraffic( QString from, QString to, QString via )
254{ 269{
255 qWarning( "D'oh! Not yet implemented..." ); 270 qWarning( "D'oh! Not yet implemented..." );
256} 271}
257 272
258//============================================================ 273//============================================================
259// MScanListItem 274// MScanListItem
260//============================================================ 275//============================================================
261 276
262MScanListItem::MScanListItem( QListView* parent, QString type, QString essid, QString macaddr, 277MScanListItem::MScanListItem( QListView* parent, QString type, QString essid, QString macaddr,
263 bool wep, int channel, int signal ) 278 bool wep, int channel, int signal )
264 :OListViewItem( parent, essid, QString::null, macaddr, QString::null, QString::null ), 279 :OListViewItem( parent, essid, QString::null, macaddr, QString::null, QString::null ),
265 _type( type ), _essid( essid ), _macaddr( macaddr ), _wep( wep ), 280 _type( type ), _essid( essid ), _macaddr( macaddr ), _wep( wep ),
266 _channel( channel ), _signal( signal ), _beacons( 1 ) 281 _channel( channel ), _signal( signal ), _beacons( 1 )
267{ 282{
268 qDebug( "creating scanlist item" ); 283 qDebug( "creating scanlist item" );
269 if ( WellenreiterConfigWindow::instance() && type == "network" ) 284 if ( WellenreiterConfigWindow::instance() && type == "network" )
270 playSound( WellenreiterConfigWindow::instance()->soundOnNetwork() ); 285 playSound( WellenreiterConfigWindow::instance()->soundOnNetwork() );
271 decorateItem( type, essid, macaddr, wep, channel, signal ); 286 decorateItem( type, essid, macaddr, wep, channel, signal );
272} 287}
273 288
274MScanListItem::MScanListItem( QListViewItem* parent, QString type, QString essid, QString macaddr, 289MScanListItem::MScanListItem( QListViewItem* parent, QString type, QString essid, QString macaddr,
275 bool wep, int channel, int signal ) 290 bool wep, int channel, int signal )
276 :OListViewItem( parent, essid, QString::null, macaddr, QString::null, QString::null ) 291 :OListViewItem( parent, essid, QString::null, macaddr, QString::null, QString::null )
277{ 292{
278 qDebug( "creating scanlist item" ); 293 qDebug( "creating scanlist item" );
279 decorateItem( type, essid, macaddr, wep, channel, signal ); 294 decorateItem( type, essid, macaddr, wep, channel, signal );
280} 295}
281 296
282OListViewItem* MScanListItem::childFactory() 297OListViewItem* MScanListItem::childFactory()
283{ 298{
284 return new MScanListItem( this ); 299 return new MScanListItem( this );
285} 300}
286 301
287void MScanListItem::serializeTo( QDataStream& s ) const 302void MScanListItem::serializeTo( QDataStream& s ) const
288{ 303{
289 qDebug( "serializing MScanListItem" ); 304 qDebug( "serializing MScanListItem" );
290 OListViewItem::serializeTo( s ); 305 OListViewItem::serializeTo( s );
291 306
292 s << _type; 307 s << _type;
293 s << (Q_UINT8) ( _wep ? 'y' : 'n' ); 308 s << (Q_UINT8) ( _wep ? 'y' : 'n' );
294} 309}
295 310
296void MScanListItem::serializeFrom( QDataStream& s ) 311void MScanListItem::serializeFrom( QDataStream& s )
297{ 312{
298 qDebug( "serializing MScanListItem" ); 313 qDebug( "serializing MScanListItem" );
299 OListViewItem::serializeFrom( s ); 314 OListViewItem::serializeFrom( s );
300 315
301 char wep; 316 char wep;
302 s >> _type; 317 s >> _type;
303 s >> (Q_UINT8) wep; 318 s >> (Q_UINT8) wep;
304 _wep = (wep == 'y'); 319 _wep = (wep == 'y');
305 320
306 QString name; 321 QString name;
307 name.sprintf( "wellenreiter/%s", (const char*) _type ); 322 name.sprintf( "wellenreiter/%s", (const char*) _type );
308 setPixmap( col_type, Resource::loadPixmap( name ) ); 323 setPixmap( col_type, Resource::loadPixmap( name ) );
309 if ( _wep ) 324 if ( _wep )
310 setPixmap( col_wep, Resource::loadPixmap( "wellenreiter/cracked" ) ); //FIXME: rename the pixmap! 325 setPixmap( col_wep, Resource::loadPixmap( "wellenreiter/cracked" ) ); //FIXME: rename the pixmap!
311 listView()->triggerUpdate(); 326 listView()->triggerUpdate();
312} 327}
313 328
314void MScanListItem::decorateItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal ) 329void MScanListItem::decorateItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal )
diff --git a/noncore/net/wellenreiter/gui/scanlist.h b/noncore/net/wellenreiter/gui/scanlist.h
index a14d426..56bf837 100644
--- a/noncore/net/wellenreiter/gui/scanlist.h
+++ b/noncore/net/wellenreiter/gui/scanlist.h
@@ -1,114 +1,114 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2002 Michael 'Mickey' Lauer. All rights reserved. 2** Copyright (C) 2002 Michael 'Mickey' Lauer. All rights reserved.
3** 3**
4** This file is part of Opie Environment. 4** This file is part of Opie Environment.
5** 5**
6** This file may be distributed and/or modified under the terms of the 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 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 8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file. 9** packaging of this file.
10** 10**
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#ifndef SCANLIST_H 16#ifndef SCANLIST_H
17#define SCANLIST_H 17#define SCANLIST_H
18 18
19#include <opie2/olistview.h> 19#include <opie2/olistview.h>
20 20
21#include <qtextstream.h> 21#include <qtextstream.h>
22 22
23class QString; 23class QString;
24class ManufacturerDB; 24class ManufacturerDB;
25 25
26class MScanListItem; 26class MScanListItem;
27 27
28class MScanListView: public OListView 28class MScanListView: public OListView
29{ 29{
30 Q_OBJECT 30 Q_OBJECT
31 31
32 public: 32 public:
33 MScanListView( QWidget* parent = 0, const char* name = 0 ); 33 MScanListView( QWidget* parent = 0, const char* name = 0 );
34 virtual ~MScanListView(); 34 virtual ~MScanListView();
35 35
36 void setManufacturerDB( ManufacturerDB* manufacturerdb ); 36 void setManufacturerDB( ManufacturerDB* manufacturerdb );
37 37
38 virtual OListViewItem* childFactory(); 38 virtual OListViewItem* childFactory();
39 virtual void serializeTo( QDataStream& s ) const; 39 virtual void serializeTo( QDataStream& s ) const;
40 virtual void serializeFrom( QDataStream& s ); 40 virtual void serializeFrom( QDataStream& s );
41 41
42 public slots: 42 public slots:
43 void addNewItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal ); 43 void addNewItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal );
44 void fromDStraffic( QString from, QString to, QString via ); // NYI 44 void fromDStraffic( QString from, QString to, QString via ); // NYI
45 void toDStraffic( QString from, QString to, QString via ); 45 void toDStraffic( QString from, QString to, QString via );
46 void WDStraffic( QString from, QString to, QString viaFrom, QString viaTo ); 46 void WDStraffic( QString from, QString to, QString viaFrom, QString viaTo );
47 void IBSStraffic( QString from, QString to, QString via ); // NYI 47 void IBSStraffic( QString from, QString to, QString via ); // NYI
48 48
49 protected: 49 protected:
50 void addIfNotExisting( MScanListItem* parent, QString addr ); 50 void addIfNotExisting( MScanListItem* parent, QString addr, const QString& type = "station" );
51 51
52 private: 52 private:
53 ManufacturerDB* _manufacturerdb; 53 ManufacturerDB* _manufacturerdb;
54 54
55}; 55};
56 56
57//****************************** MScanListItem **************************************************************** 57//****************************** MScanListItem ****************************************************************
58 58
59class MScanListItem: public OListViewItem 59class MScanListItem: public OListViewItem
60{ 60{
61 public: 61 public:
62 MScanListItem::MScanListItem( QListView* parent, 62 MScanListItem::MScanListItem( QListView* parent,
63 QString type = "unknown", 63 QString type = "unknown",
64 QString essid = "unknown", 64 QString essid = "unknown",
65 QString macaddr = "unknown", 65 QString macaddr = "unknown",
66 bool wep = false, 66 bool wep = false,
67 int channel = 0, 67 int channel = 0,
68 int signal = 0 ); 68 int signal = 0 );
69 69
70 MScanListItem::MScanListItem( QListViewItem* parent, 70 MScanListItem::MScanListItem( QListViewItem* parent,
71 QString type = "unknown", 71 QString type = "unknown",
72 QString essid = "unknown", 72 QString essid = "unknown",
73 QString macaddr = "unknown", 73 QString macaddr = "unknown",
74 bool wep = false, 74 bool wep = false,
75 int channel = 0, 75 int channel = 0,
76 int signal = 0 ); 76 int signal = 0 );
77 77
78 78
79 protected: 79 protected:
80 virtual void decorateItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal ); 80 virtual void decorateItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal );
81 81
82 public: 82 public:
83 QString type; 83 QString type;
84 84
85 public: 85 public:
86 //const QString& type() { return _type; }; 86 //const QString& type() { return _type; };
87 const QString& essid() { return _essid; }; 87 const QString& essid() { return _essid; };
88 const QString& macaddr() { return _macaddr; }; 88 const QString& macaddr() { return _macaddr; };
89 bool wep() { return _wep; }; 89 bool wep() { return _wep; };
90 int channel() { return _channel; }; 90 int channel() { return _channel; };
91 int signal() { return _signal; }; 91 int signal() { return _signal; };
92 int beacons() { return _beacons; }; 92 int beacons() { return _beacons; };
93 93
94 void setSignal( int signal ) { /* TODO */ }; 94 void setSignal( int signal ) { /* TODO */ };
95 void receivedBeacon(); 95 void receivedBeacon();
96 96
97 void setManufacturer( const QString& manufacturer ); 97 void setManufacturer( const QString& manufacturer );
98 98
99 virtual OListViewItem* childFactory(); 99 virtual OListViewItem* childFactory();
100 virtual void serializeTo( QDataStream& s ) const; 100 virtual void serializeTo( QDataStream& s ) const;
101 virtual void serializeFrom( QDataStream& s ); 101 virtual void serializeFrom( QDataStream& s );
102 102
103 protected: 103 protected:
104 void playSound( const QString& ) const; 104 void playSound( const QString& ) const;
105 105
106 private: 106 private:
107 QString _type; 107 QString _type;
108 QString _essid; 108 QString _essid;
109 QString _macaddr; 109 QString _macaddr;
110 bool _wep; 110 bool _wep;
111 int _channel; 111 int _channel;
112 int _signal; 112 int _signal;
113 int _beacons; 113 int _beacons;
114 114