summaryrefslogtreecommitdiff
authorzecke <zecke>2005-03-12 23:56:15 (UTC)
committer zecke <zecke>2005-03-12 23:56:15 (UTC)
commiteaec48ce99bc4e2f4e53dbd539a031b3ed993fb3 (patch) (unidiff)
tree0b88cd5c35336003b06a9df3717435a1ad396f09
parent0dde10390f3b9c85030741e861d893a6a78fbbb1 (diff)
downloadopie-eaec48ce99bc4e2f4e53dbd539a031b3ed993fb3.zip
opie-eaec48ce99bc4e2f4e53dbd539a031b3ed993fb3.tar.gz
opie-eaec48ce99bc4e2f4e53dbd539a031b3ed993fb3.tar.bz2
Sort packagaes and channels (numbers) according their size instead
of alphabeticaly. 9873 received packages are more than 10 but less than 10.000. The same is applied to the channel number [0..15]
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/wellenreiter/gui/scanlist.cpp21
-rw-r--r--noncore/net/wellenreiter/gui/scanlist.h2
2 files changed, 23 insertions, 0 deletions
diff --git a/noncore/net/wellenreiter/gui/scanlist.cpp b/noncore/net/wellenreiter/gui/scanlist.cpp
index 8c2015e..f24e09f 100644
--- a/noncore/net/wellenreiter/gui/scanlist.cpp
+++ b/noncore/net/wellenreiter/gui/scanlist.cpp
@@ -1,569 +1,590 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2002-2004 Michael 'Mickey' Lauer. All rights reserved. 2** Copyright (C) 2002-2004 Michael 'Mickey' Lauer. All rights reserved.
3** 3**
4** This file is part of Wellenreiter II. 4** This file is part of Wellenreiter II.
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#include "scanlist.h" 16#include "scanlist.h"
17#include "configwindow.h" 17#include "configwindow.h"
18#include "logwindow.h" 18#include "logwindow.h"
19 19
20/* OPIE */ 20/* OPIE */
21#ifdef QWS 21#ifdef QWS
22#include <opie2/odebug.h> 22#include <opie2/odebug.h>
23#include <qpe/qpeapplication.h> 23#include <qpe/qpeapplication.h>
24#include <qpe/resource.h> 24#include <qpe/resource.h>
25#else 25#else
26#include "resource.h" 26#include "resource.h"
27#endif 27#endif
28 28
29 29
30/* QT */ 30/* QT */
31#include <qcursor.h> 31#include <qcursor.h>
32#include <qdatetime.h> 32#include <qdatetime.h>
33#include <qpopupmenu.h> 33#include <qpopupmenu.h>
34#include <qcheckbox.h> 34#include <qcheckbox.h>
35 35
36/* STD */ 36/* STD */
37#include <assert.h> 37#include <assert.h>
38 38
39using namespace Opie::Core; 39using namespace Opie::Core;
40using namespace Opie::Ui; 40using namespace Opie::Ui;
41using namespace Opie::Net; 41using namespace Opie::Net;
42 42
43const int col_type = 0; 43const int col_type = 0;
44const int col_essid = 0; 44const int col_essid = 0;
45const int col_sig = 1; 45const int col_sig = 1;
46const int col_ap = 2; 46const int col_ap = 2;
47const int col_channel = 3; 47const int col_channel = 3;
48const int col_wep = 4; 48const int col_wep = 4;
49const int col_traffic = 5; 49const int col_traffic = 5;
50const int col_ip = 6; 50const int col_ip = 6;
51const int col_manuf = 7; 51const int col_manuf = 7;
52const int col_firstseen = 8; 52const int col_firstseen = 8;
53const int col_lastseen = 9; 53const int col_lastseen = 9;
54const int col_location = 10; 54const int col_location = 10;
55 55
56#define DEBUG 56#define DEBUG
57 57
58MScanListView::MScanListView( QWidget* parent, const char* name ) 58MScanListView::MScanListView( QWidget* parent, const char* name )
59 :OListView( parent, name ) 59 :OListView( parent, name )
60{ 60{
61 setFrameShape( QListView::StyledPanel ); 61 setFrameShape( QListView::StyledPanel );
62 setFrameShadow( QListView::Sunken ); 62 setFrameShadow( QListView::Sunken );
63 63
64 addColumn( tr( "Net/Station" ) ); 64 addColumn( tr( "Net/Station" ) );
65 setColumnAlignment( col_essid, AlignLeft || AlignVCenter ); 65 setColumnAlignment( col_essid, AlignLeft || AlignVCenter );
66 addColumn( tr( "#" ) ); 66 addColumn( tr( "#" ) );
67 setColumnAlignment( col_sig, AlignCenter ); 67 setColumnAlignment( col_sig, AlignCenter );
68 addColumn( tr( "MAC" ) ); 68 addColumn( tr( "MAC" ) );
69 setColumnAlignment( col_ap, AlignCenter ); 69 setColumnAlignment( col_ap, AlignCenter );
70 addColumn( tr( "Chn" ) ); 70 addColumn( tr( "Chn" ) );
71 setColumnAlignment( col_channel, AlignCenter ); 71 setColumnAlignment( col_channel, AlignCenter );
72 addColumn( tr( "W" ) ); 72 addColumn( tr( "W" ) );
73 setColumnAlignment( col_wep, AlignCenter ); 73 setColumnAlignment( col_wep, AlignCenter );
74 addColumn( tr( "T" ) ); 74 addColumn( tr( "T" ) );
75 setColumnAlignment( col_traffic, AlignCenter ); 75 setColumnAlignment( col_traffic, AlignCenter );
76 addColumn( tr( "IP" ) ); 76 addColumn( tr( "IP" ) );
77 setColumnAlignment( col_ip, AlignCenter ); 77 setColumnAlignment( col_ip, AlignCenter );
78 addColumn( tr( "Manufacturer" ) ); 78 addColumn( tr( "Manufacturer" ) );
79 setColumnAlignment( col_manuf, AlignCenter ); 79 setColumnAlignment( col_manuf, AlignCenter );
80 addColumn( tr( "First Seen" ) ); 80 addColumn( tr( "First Seen" ) );
81 setColumnAlignment( col_firstseen, AlignCenter ); 81 setColumnAlignment( col_firstseen, AlignCenter );
82 addColumn( tr( "Last Seen" ) ); 82 addColumn( tr( "Last Seen" ) );
83 setColumnAlignment( col_lastseen, AlignCenter ); 83 setColumnAlignment( col_lastseen, AlignCenter );
84 addColumn( tr( "Location" ) ); 84 addColumn( tr( "Location" ) );
85 setColumnAlignment( col_location, AlignCenter ); 85 setColumnAlignment( col_location, AlignCenter );
86 setRootIsDecorated( true ); 86 setRootIsDecorated( true );
87 setAllColumnsShowFocus( true ); 87 setAllColumnsShowFocus( true );
88 88
89 connect( this, SIGNAL( rightButtonPressed(QListViewItem*,const QPoint&,int) ), 89 connect( this, SIGNAL( rightButtonPressed(QListViewItem*,const QPoint&,int) ),
90 this, SLOT( contextMenuRequested(QListViewItem*,const QPoint&,int) ) ); 90 this, SLOT( contextMenuRequested(QListViewItem*,const QPoint&,int) ) );
91 91
92 #ifdef QWS 92 #ifdef QWS
93 QPEApplication::setStylusOperation( viewport(), QPEApplication::RightOnHold ); 93 QPEApplication::setStylusOperation( viewport(), QPEApplication::RightOnHold );
94 #endif 94 #endif
95 95
96}; 96};
97 97
98 98
99MScanListView::~MScanListView() 99MScanListView::~MScanListView()
100{ 100{
101}; 101};
102 102
103 103
104OListViewItem* MScanListView::childFactory() 104OListViewItem* MScanListView::childFactory()
105{ 105{
106 return new MScanListItem( this ); 106 return new MScanListItem( this );
107} 107}
108 108
109 109
110void MScanListView::serializeTo( QDataStream& s) const 110void MScanListView::serializeTo( QDataStream& s) const
111{ 111{
112 odebug << "serializing MScanListView" << oendl; 112 odebug << "serializing MScanListView" << oendl;
113 OListView::serializeTo( s ); 113 OListView::serializeTo( s );
114} 114}
115 115
116 116
117void MScanListView::serializeFrom( QDataStream& s) 117void MScanListView::serializeFrom( QDataStream& s)
118{ 118{
119 odebug << "serializing MScanListView" << oendl; 119 odebug << "serializing MScanListView" << oendl;
120 OListView::serializeFrom( s ); 120 OListView::serializeFrom( s );
121} 121}
122 122
123 123
124void MScanListView::addNewItem( const QString& type, 124void MScanListView::addNewItem( const QString& type,
125 const QString& essid, 125 const QString& essid,
126 const OMacAddress& mac, 126 const OMacAddress& mac,
127 bool wep, 127 bool wep,
128 int channel, 128 int channel,
129 int signal, 129 int signal,
130 const GpsLocation& loc, 130 const GpsLocation& loc,
131 bool probe ) 131 bool probe )
132{ 132{
133 QString macaddr = mac.toString(true); 133 QString macaddr = mac.toString(true);
134 134
135 #ifdef DEBUG 135 #ifdef DEBUG
136 odebug << "MScanList::addNewItem( " << type << " / " 136 odebug << "MScanList::addNewItem( " << type << " / "
137 << essid << " / " << macaddr 137 << essid << " / " << macaddr
138 << " [" << channel << "]" << oendl; 138 << " [" << channel << "]" << oendl;
139 #endif 139 #endif
140 140
141 // search, if we already have seen this net 141 // search, if we already have seen this net
142 142
143 QString s; 143 QString s;
144 MScanListItem* network; 144 MScanListItem* network;
145 MScanListItem* item = static_cast<MScanListItem*> ( firstChild() ); 145 MScanListItem* item = static_cast<MScanListItem*> ( firstChild() );
146 146
147 while ( item && ( item->text( col_essid ) != essid ) ) 147 while ( item && ( item->text( col_essid ) != essid ) )
148 { 148 {
149 #ifdef DEBUG 149 #ifdef DEBUG
150 odebug << "itemtext: " << item->text( col_essid ) << "" << oendl; 150 odebug << "itemtext: " << item->text( col_essid ) << "" << oendl;
151 #endif 151 #endif
152 item = static_cast<MScanListItem*> ( item->nextSibling() ); 152 item = static_cast<MScanListItem*> ( item->nextSibling() );
153 } 153 }
154 if ( item ) 154 if ( item )
155 { 155 {
156 // we have already seen this net, check all childs if MAC exists 156 // we have already seen this net, check all childs if MAC exists
157 157
158 network = item; 158 network = item;
159 159
160 item = static_cast<MScanListItem*> ( item->firstChild() ); 160 item = static_cast<MScanListItem*> ( item->firstChild() );
161 assert( item ); // this shouldn't fail 161 assert( item ); // this shouldn't fail
162 162
163 while ( item && ( item->text( col_ap ) != macaddr ) ) 163 while ( item && ( item->text( col_ap ) != macaddr ) )
164 { 164 {
165 #ifdef DEBUG 165 #ifdef DEBUG
166 odebug << "subitemtext: " << item->text( col_ap ) << "" << oendl; 166 odebug << "subitemtext: " << item->text( col_ap ) << "" << oendl;
167 #endif 167 #endif
168 item = static_cast<MScanListItem*> ( item->nextSibling() ); 168 item = static_cast<MScanListItem*> ( item->nextSibling() );
169 } 169 }
170 170
171 if ( item ) 171 if ( item )
172 { 172 {
173 // we have already seen this item, it's a dupe 173 // we have already seen this item, it's a dupe
174 #ifdef DEBUG 174 #ifdef DEBUG
175 odebug << "" << macaddr << " is a dupe - ignoring..." << oendl; 175 odebug << "" << macaddr << " is a dupe - ignoring..." << oendl;
176 #endif 176 #endif
177 item->receivedBeacon(); 177 item->receivedBeacon();
178 return; 178 return;
179 } 179 }
180 } 180 }
181 else 181 else
182 { 182 {
183 s = QString( "(i) New network: ESSID '%1'" ).arg( essid ); 183 s = QString( "(i) New network: ESSID '%1'" ).arg( essid );
184 MLogWindow::logwindow()->log( s ); 184 MLogWindow::logwindow()->log( s );
185 network = new MScanListItem( this, "network", essid, QString::null, 0, 0, 0, probe ); 185 network = new MScanListItem( this, "network", essid, QString::null, 0, 0, 0, probe );
186 } 186 }
187 187
188 188
189 // insert new station as child from network 189 // insert new station as child from network
190 // no essid to reduce clutter, maybe later we have a nick or stationname to display!? 190 // no essid to reduce clutter, maybe later we have a nick or stationname to display!?
191 191
192 #ifdef DEBUG 192 #ifdef DEBUG
193 odebug << "inserting new station " << macaddr << "" << oendl; 193 odebug << "inserting new station " << macaddr << "" << oendl;
194 #endif 194 #endif
195 195
196 MScanListItem* station = new MScanListItem( network, type, "", macaddr, wep, channel, signal ); 196 MScanListItem* station = new MScanListItem( network, type, "", macaddr, wep, channel, signal );
197 station->setManufacturer( mac.manufacturer() ); 197 station->setManufacturer( mac.manufacturer() );
198 station->setLocation( loc.dmsPosition() ); 198 station->setLocation( loc.dmsPosition() );
199 199
200 if ( type == "managed" ) 200 if ( type == "managed" )
201 { 201 {
202 s = QString( "(i) New Access Point in '%1' [%2]" ).arg( essid ).arg( channel ); 202 s = QString( "(i) New Access Point in '%1' [%2]" ).arg( essid ).arg( channel );
203 } 203 }
204 else 204 else
205 { 205 {
206 s = QString( "(i) New AdHoc station in '%1' [%2]" ).arg( essid ).arg( channel ); 206 s = QString( "(i) New AdHoc station in '%1' [%2]" ).arg( essid ).arg( channel );
207 } 207 }
208 MLogWindow::logwindow()->log( s ); 208 MLogWindow::logwindow()->log( s );
209} 209}
210 210
211 211
212void MScanListView::addIfNotExisting( MScanListItem* network, const OMacAddress& addr, const QString& type ) 212void MScanListView::addIfNotExisting( MScanListItem* network, const OMacAddress& addr, const QString& type )
213{ 213{
214 MScanListItem* subitem = static_cast<MScanListItem*>( network->firstChild() ); 214 MScanListItem* subitem = static_cast<MScanListItem*>( network->firstChild() );
215 215
216 while ( subitem && ( subitem->text( col_ap ) != addr.toString(true) ) ) 216 while ( subitem && ( subitem->text( col_ap ) != addr.toString(true) ) )
217 { 217 {
218 #ifdef DEBUG 218 #ifdef DEBUG
219 odebug << "subitemtext: " << subitem->text( col_ap ) << "" << oendl; 219 odebug << "subitemtext: " << subitem->text( col_ap ) << "" << oendl;
220 #endif 220 #endif
221 subitem = static_cast<MScanListItem*> ( subitem->nextSibling() ); 221 subitem = static_cast<MScanListItem*> ( subitem->nextSibling() );
222 } 222 }
223 223
224 if ( subitem ) 224 if ( subitem )
225 { 225 {
226 // we have already seen this item, it's a dupe 226 // we have already seen this item, it's a dupe
227 #ifdef DEBUG 227 #ifdef DEBUG
228 odebug << "" << addr.toString(true) << " is a dupe - ignoring..." << oendl; 228 odebug << "" << addr.toString(true) << " is a dupe - ignoring..." << oendl;
229 #endif 229 #endif
230 subitem->receivedBeacon(); //FIXME: sent data bit 230 subitem->receivedBeacon(); //FIXME: sent data bit
231 return; 231 return;
232 } 232 }
233 233
234 // Hey, it seems to be a new item :-D 234 // Hey, it seems to be a new item :-D
235 MScanListItem* station = new MScanListItem( network, type, /* network->text( col_essid ) */ "", addr.toString(true), false, -1, -1 ); 235 MScanListItem* station = new MScanListItem( network, type, /* network->text( col_essid ) */ "", addr.toString(true), false, -1, -1 );
236 station->setManufacturer( addr.manufacturer() ); 236 station->setManufacturer( addr.manufacturer() );
237 237
238 QString s; 238 QString s;
239 if ( type == "station" ) 239 if ( type == "station" )
240 { 240 {
241 s = QString( "(i) New Station in '%1' [xx]" ).arg( network->text( col_essid ) ); 241 s = QString( "(i) New Station in '%1' [xx]" ).arg( network->text( col_essid ) );
242 } 242 }
243 else 243 else
244 { 244 {
245 s = QString( "(i) New Wireless Station in '%1' [xx]" ).arg( network->text( col_essid ) ); 245 s = QString( "(i) New Wireless Station in '%1' [xx]" ).arg( network->text( col_essid ) );
246 } 246 }
247 MLogWindow::logwindow()->log( s ); 247 MLogWindow::logwindow()->log( s );
248} 248}
249 249
250 250
251void MScanListView::WDStraffic( const OMacAddress& from, const OMacAddress& to, const OMacAddress& viaFrom, const OMacAddress& viaTo ) 251void MScanListView::WDStraffic( const OMacAddress& from, const OMacAddress& to, const OMacAddress& viaFrom, const OMacAddress& viaTo )
252{ 252{
253 odebug << "WDSTraffic: " << viaFrom.toString() << " and " << viaTo.toString() << " seem to form a WDS" << oendl; 253 odebug << "WDSTraffic: " << viaFrom.toString() << " and " << viaTo.toString() << " seem to form a WDS" << oendl;
254 QString s; 254 QString s;
255// MScanListItem* network; 255// MScanListItem* network;
256 256
257 QListViewItemIterator it( this ); 257 QListViewItemIterator it( this );
258 while ( it.current() && 258 while ( it.current() &&
259 it.current()->text( col_ap ) != viaFrom.toString(true) && 259 it.current()->text( col_ap ) != viaFrom.toString(true) &&
260 it.current()->text( col_ap ) != viaTo.toString(true) ) ++it; 260 it.current()->text( col_ap ) != viaTo.toString(true) ) ++it;
261 261
262 MScanListItem* item = static_cast<MScanListItem*>( it.current() ); 262 MScanListItem* item = static_cast<MScanListItem*>( it.current() );
263 263
264 if ( item ) // Either viaFrom or viaTo AP has shown up yet, so just add our two new stations 264 if ( item ) // Either viaFrom or viaTo AP has shown up yet, so just add our two new stations
265 { 265 {
266 addIfNotExisting( static_cast<MScanListItem*>(item->parent()), from ); 266 addIfNotExisting( static_cast<MScanListItem*>(item->parent()), from );
267 addIfNotExisting( static_cast<MScanListItem*>(item->parent()), to ); 267 addIfNotExisting( static_cast<MScanListItem*>(item->parent()), to );
268 } 268 }
269 else 269 else
270 { 270 {
271 odebug << "D'Oh! Stations without AP... ignoring for now... will handle this in 1.1 version :-D" << oendl; 271 odebug << "D'Oh! Stations without AP... ignoring for now... will handle this in 1.1 version :-D" << oendl;
272 MLogWindow::logwindow()->log( "WARNING: Unhandled WSD traffic!" ); 272 MLogWindow::logwindow()->log( "WARNING: Unhandled WSD traffic!" );
273 } 273 }
274} 274}
275 275
276 276
277void MScanListView::toDStraffic( const OMacAddress& from, const OMacAddress& /*to*/, const OMacAddress& via ) 277void MScanListView::toDStraffic( const OMacAddress& from, const OMacAddress& /*to*/, const OMacAddress& via )
278{ 278{
279 QString s; 279 QString s;
280// MScanListItem* network; 280// MScanListItem* network;
281 281
282 QListViewItemIterator it( this ); 282 QListViewItemIterator it( this );
283 while ( it.current() && it.current()->text( col_ap ) != via.toString(true) ) ++it; 283 while ( it.current() && it.current()->text( col_ap ) != via.toString(true) ) ++it;
284 284
285 MScanListItem* item = static_cast<MScanListItem*>( it.current() ); 285 MScanListItem* item = static_cast<MScanListItem*>( it.current() );
286 286
287 if ( item ) // AP has shown up yet, so just add our new "from" - station 287 if ( item ) // AP has shown up yet, so just add our new "from" - station
288 { 288 {
289 addIfNotExisting( static_cast<MScanListItem*>(item->parent()), from, "adhoc" ); 289 addIfNotExisting( static_cast<MScanListItem*>(item->parent()), from, "adhoc" );
290 } 290 }
291 else 291 else
292 { 292 {
293 odebug << "D'Oh! Station without AP... ignoring for now... will handle this in 1.1 :-D" << oendl; 293 odebug << "D'Oh! Station without AP... ignoring for now... will handle this in 1.1 :-D" << oendl;
294 MLogWindow::logwindow()->log( "WARNING: Unhandled toDS traffic!" ); 294 MLogWindow::logwindow()->log( "WARNING: Unhandled toDS traffic!" );
295 295
296 } 296 }
297} 297}
298 298
299 299
300void MScanListView::fromDStraffic( const OMacAddress& from, const OMacAddress& /*to*/, const OMacAddress& via ) 300void MScanListView::fromDStraffic( const OMacAddress& from, const OMacAddress& /*to*/, const OMacAddress& via )
301{ 301{
302 QString s; 302 QString s;
303// MScanListItem* network; 303// MScanListItem* network;
304 304
305 QListViewItemIterator it( this ); 305 QListViewItemIterator it( this );
306 while ( it.current() && it.current()->text( col_ap ) != via.toString(true) ) ++it; 306 while ( it.current() && it.current()->text( col_ap ) != via.toString(true) ) ++it;
307 307
308 MScanListItem* item = static_cast<MScanListItem*>( it.current() ); 308 MScanListItem* item = static_cast<MScanListItem*>( it.current() );
309 309
310 if ( item ) // AP has shown up yet, so just add our new "from" - station 310 if ( item ) // AP has shown up yet, so just add our new "from" - station
311 { 311 {
312 addIfNotExisting( static_cast<MScanListItem*>(item->parent()), from, "station" ); 312 addIfNotExisting( static_cast<MScanListItem*>(item->parent()), from, "station" );
313 } 313 }
314 else 314 else
315 { 315 {
316 odebug << "D'Oh! Station without AP... ignoring for now... will handle this in 1.1 :-D" << oendl; 316 odebug << "D'Oh! Station without AP... ignoring for now... will handle this in 1.1 :-D" << oendl;
317 MLogWindow::logwindow()->log( "WARNING: Unhandled fromDS traffic!" ); 317 MLogWindow::logwindow()->log( "WARNING: Unhandled fromDS traffic!" );
318 } 318 }
319} 319}
320 320
321 321
322void MScanListView::IBSStraffic( const OMacAddress& /*from*/, const OMacAddress& /*to*/, const OMacAddress& /*via*/ ) 322void MScanListView::IBSStraffic( const OMacAddress& /*from*/, const OMacAddress& /*to*/, const OMacAddress& /*via*/ )
323{ 323{
324 owarn << "D'oh! Not yet implemented..." << oendl; 324 owarn << "D'oh! Not yet implemented..." << oendl;
325 MLogWindow::logwindow()->log( "WARNING: Unhandled IBSS traffic!" ); 325 MLogWindow::logwindow()->log( "WARNING: Unhandled IBSS traffic!" );
326} 326}
327 327
328 328
329void MScanListView::identify( const OMacAddress& macaddr, const QString& ip ) 329void MScanListView::identify( const OMacAddress& macaddr, const QString& ip )
330{ 330{
331 odebug << "identify " << macaddr.toString() << " = " << ip << "" << oendl; 331 odebug << "identify " << macaddr.toString() << " = " << ip << "" << oendl;
332 332
333 QListViewItemIterator it( this ); 333 QListViewItemIterator it( this );
334 for ( ; it.current(); ++it ) 334 for ( ; it.current(); ++it )
335 { 335 {
336 if ( it.current()->text( col_ap ) == macaddr.toString(true) ) 336 if ( it.current()->text( col_ap ) == macaddr.toString(true) )
337 { 337 {
338 it.current()->setText( col_ip, ip ); 338 it.current()->setText( col_ip, ip );
339 return; 339 return;
340 } 340 }
341 } 341 }
342 odebug << "D'oh! Received identification, but item not yet in list... ==> Handle this!" << oendl; 342 odebug << "D'oh! Received identification, but item not yet in list... ==> Handle this!" << oendl;
343 MLogWindow::logwindow()->log( QString( "WARNING: Unhandled identification %1 = %2!" ) 343 MLogWindow::logwindow()->log( QString( "WARNING: Unhandled identification %1 = %2!" )
344 .arg( macaddr.toString() ).arg( ip ) ); 344 .arg( macaddr.toString() ).arg( ip ) );
345} 345}
346 346
347 347
348void MScanListView::addService( const QString& name, const OMacAddress& macaddr, const QString& ip ) 348void MScanListView::addService( const QString& name, const OMacAddress& macaddr, const QString& ip )
349{ 349{
350 odebug << "addService '" << name << "', Server = " << macaddr.toString() << " = " << ip << "" << oendl; 350 odebug << "addService '" << name << "', Server = " << macaddr.toString() << " = " << ip << "" << oendl;
351 351
352 //TODO: Refactor that out, we need it all over the place. 352 //TODO: Refactor that out, we need it all over the place.
353 // Best to do it in a more comfortable abstraction in OListView 353 // Best to do it in a more comfortable abstraction in OListView
354 // (Hmm, didn't I already start something in this direction?) 354 // (Hmm, didn't I already start something in this direction?)
355 355
356 QListViewItemIterator it( this ); 356 QListViewItemIterator it( this );
357 for ( ; it.current(); ++it ) 357 for ( ; it.current(); ++it )
358 { 358 {
359 if ( it.current()->text( col_ap ) == macaddr.toString(true) ) 359 if ( it.current()->text( col_ap ) == macaddr.toString(true) )
360 { 360 {
361 361
362 MScanListItem* subitem = static_cast<MScanListItem*>( it.current()->firstChild() ); 362 MScanListItem* subitem = static_cast<MScanListItem*>( it.current()->firstChild() );
363 363
364 while ( subitem && ( subitem->text( col_essid ) != name ) ) 364 while ( subitem && ( subitem->text( col_essid ) != name ) )
365 { 365 {
366 #ifdef DEBUG 366 #ifdef DEBUG
367 odebug << "subitemtext: " << subitem->text( col_essid ) << "" << oendl; 367 odebug << "subitemtext: " << subitem->text( col_essid ) << "" << oendl;
368 #endif 368 #endif
369 subitem = static_cast<MScanListItem*> ( subitem->nextSibling() ); 369 subitem = static_cast<MScanListItem*> ( subitem->nextSibling() );
370 } 370 }
371 371
372 if ( subitem ) 372 if ( subitem )
373 { 373 {
374 // we have already seen this item, it's a dupe 374 // we have already seen this item, it's a dupe
375 #ifdef DEBUG 375 #ifdef DEBUG
376 odebug << "" << name << " is a dupe - ignoring..." << oendl; 376 odebug << "" << name << " is a dupe - ignoring..." << oendl;
377 #endif 377 #endif
378 subitem->receivedBeacon(); //FIXME: sent data bit 378 subitem->receivedBeacon(); //FIXME: sent data bit
379 return; 379 return;
380 } 380 }
381 381
382 // never seen that - add new item 382 // never seen that - add new item
383 383
384 MScanListItem* item = new MScanListItem( it.current(), "service", "N/A", " ", false, -1, -1 ); 384 MScanListItem* item = new MScanListItem( it.current(), "service", "N/A", " ", false, -1, -1 );
385 item->setText( col_essid, name ); 385 item->setText( col_essid, name );
386 386
387 return; 387 return;
388 } 388 }
389 } 389 }
390 odebug << "D'oh! Received identification, but item not yet in list... ==> Handle this!" << oendl; 390 odebug << "D'oh! Received identification, but item not yet in list... ==> Handle this!" << oendl;
391 MLogWindow::logwindow()->log( QString("WARNING: Unhandled service addition %s = %s!") 391 MLogWindow::logwindow()->log( QString("WARNING: Unhandled service addition %s = %s!")
392 .arg( macaddr.toString() ).arg( ip ) ); 392 .arg( macaddr.toString() ).arg( ip ) );
393} 393}
394 394
395 395
396void MScanListView::contextMenuRequested( QListViewItem* item, const QPoint&, int col ) 396void MScanListView::contextMenuRequested( QListViewItem* item, const QPoint&, int col )
397{ 397{
398 if ( !item ) return; 398 if ( !item ) return;
399 399
400 MScanListItem* itm = static_cast<MScanListItem*>( item ); 400 MScanListItem* itm = static_cast<MScanListItem*>( item );
401 401
402 odebug << "contextMenuRequested on item '" << itm->text(0) << "' (" 402 odebug << "contextMenuRequested on item '" << itm->text(0) << "' ("
403 << itm->type << ") in column: '" << col << "'" << oendl; 403 << itm->type << ") in column: '" << col << "'" << oendl;
404 404
405 if ( itm->type == "adhoc" || itm->type == "managed" ) 405 if ( itm->type == "adhoc" || itm->type == "managed" )
406 { 406 {
407 QString entry = QString( "&Join %1 Net '%2'..." ).arg( itm->type ).arg( itm->essid() ); 407 QString entry = QString( "&Join %1 Net '%2'..." ).arg( itm->type ).arg( itm->essid() );
408 408
409 QPopupMenu m( this ); 409 QPopupMenu m( this );
410 m.insertItem( entry, 37773, 0 ); 410 m.insertItem( entry, 37773, 0 );
411 int result = m.exec( QCursor::pos() ); 411 int result = m.exec( QCursor::pos() );
412 if ( result == 37773 ) 412 if ( result == 37773 )
413 emit joinNetwork( itm->type, itm->essid(), itm->channel(), itm->macaddr() ); 413 emit joinNetwork( itm->type, itm->essid(), itm->channel(), itm->macaddr() );
414 } 414 }
415} 415}
416 416
417//============================================================ 417//============================================================
418// MScanListItem 418// MScanListItem
419//============================================================ 419//============================================================
420 420
421MScanListItem::MScanListItem( QListView* parent, const QString& type, const QString& essid, const QString& macaddr, 421MScanListItem::MScanListItem( QListView* parent, const QString& type, const QString& essid, const QString& macaddr,
422 bool wep, int channel, int signal, bool probed ) 422 bool wep, int channel, int signal, bool probed )
423 :OListViewItem( parent, essid, QString::null, macaddr, QString::null, QString::null ), 423 :OListViewItem( parent, essid, QString::null, macaddr, QString::null, QString::null ),
424 _type( type ), _essid( essid ), _macaddr( macaddr ), _wep( wep ), 424 _type( type ), _essid( essid ), _macaddr( macaddr ), _wep( wep ),
425 _channel( channel ), _signal( signal ), _beacons( 1 ) 425 _channel( channel ), _signal( signal ), _beacons( 1 )
426{ 426{
427 #ifdef DEBUG 427 #ifdef DEBUG
428 odebug << "creating scanlist item" << oendl; 428 odebug << "creating scanlist item" << oendl;
429 #endif 429 #endif
430 430
431 if ( WellenreiterConfigWindow::instance() ) 431 if ( WellenreiterConfigWindow::instance() )
432 WellenreiterConfigWindow::instance()->performAction( type, essid, macaddr, wep, channel, signal ); // better use signal/slot combination here 432 WellenreiterConfigWindow::instance()->performAction( type, essid, macaddr, wep, channel, signal ); // better use signal/slot combination here
433 433
434 decorateItem( type, essid, macaddr, wep, channel, signal, probed ); 434 decorateItem( type, essid, macaddr, wep, channel, signal, probed );
435} 435}
436 436
437MScanListItem::MScanListItem( QListViewItem* parent, const QString& type, const QString& essid, const QString& macaddr, 437MScanListItem::MScanListItem( QListViewItem* parent, const QString& type, const QString& essid, const QString& macaddr,
438 bool wep, int channel, int signal ) 438 bool wep, int channel, int signal )
439 :OListViewItem( parent, essid, QString::null, macaddr, QString::null, QString::null ) 439 :OListViewItem( parent, essid, QString::null, macaddr, QString::null, QString::null )
440{ 440{
441 #ifdef DEBUG 441 #ifdef DEBUG
442 odebug << "creating scanlist item" << oendl; 442 odebug << "creating scanlist item" << oendl;
443 #endif 443 #endif
444 if ( WellenreiterConfigWindow::instance() ) 444 if ( WellenreiterConfigWindow::instance() )
445 WellenreiterConfigWindow::instance()->performAction( type, essid, macaddr, wep, channel, signal ); // better use signal/slot combination here 445 WellenreiterConfigWindow::instance()->performAction( type, essid, macaddr, wep, channel, signal ); // better use signal/slot combination here
446 446
447 decorateItem( type, essid, macaddr, wep, channel, signal, false ); 447 decorateItem( type, essid, macaddr, wep, channel, signal, false );
448} 448}
449 449
450const QString& MScanListItem::essid() const 450const QString& MScanListItem::essid() const
451{ 451{
452 if ( type == "network" ) 452 if ( type == "network" )
453 return _essid; 453 return _essid;
454 else 454 else
455 return ( (MScanListItem*) parent() )->essid(); 455 return ( (MScanListItem*) parent() )->essid();
456} 456}
457 457
458OListViewItem* MScanListItem::childFactory() 458OListViewItem* MScanListItem::childFactory()
459{ 459{
460 return new MScanListItem( this ); 460 return new MScanListItem( this );
461} 461}
462 462
463void MScanListItem::serializeTo( QDataStream& s ) const 463void MScanListItem::serializeTo( QDataStream& s ) const
464{ 464{
465 #ifdef DEBUG 465 #ifdef DEBUG
466 odebug << "serializing MScanListItem" << oendl; 466 odebug << "serializing MScanListItem" << oendl;
467 #endif 467 #endif
468 OListViewItem::serializeTo( s ); 468 OListViewItem::serializeTo( s );
469 469
470 s << _type; 470 s << _type;
471 s << (Q_UINT8) ( _wep ? 'y' : 'n' ); 471 s << (Q_UINT8) ( _wep ? 'y' : 'n' );
472} 472}
473 473
474void MScanListItem::serializeFrom( QDataStream& s ) 474void MScanListItem::serializeFrom( QDataStream& s )
475{ 475{
476 #ifdef DEBUG 476 #ifdef DEBUG
477 odebug << "serializing MScanListItem" << oendl; 477 odebug << "serializing MScanListItem" << oendl;
478 #endif 478 #endif
479 OListViewItem::serializeFrom( s ); 479 OListViewItem::serializeFrom( s );
480 480
481 Q_UINT8 wep; 481 Q_UINT8 wep;
482 s >> _type; 482 s >> _type;
483 s >> wep; 483 s >> wep;
484 _wep = (wep == 'y'); 484 _wep = (wep == 'y');
485 485
486 QString name = QString( "wellenreiter/"+ _type ); 486 QString name = QString( "wellenreiter/"+ _type );
487 setPixmap( col_type, Resource::loadPixmap( name ) ); 487 setPixmap( col_type, Resource::loadPixmap( name ) );
488 if ( _wep ) 488 if ( _wep )
489 setPixmap( col_wep, Resource::loadPixmap( "wellenreiter/cracked" ) ); //FIXME: rename the pixmap! 489 setPixmap( col_wep, Resource::loadPixmap( "wellenreiter/cracked" ) ); //FIXME: rename the pixmap!
490 listView()->triggerUpdate(); 490 listView()->triggerUpdate();
491} 491}
492 492
493void MScanListItem::decorateItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal, bool probed ) 493void MScanListItem::decorateItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal, bool probed )
494{ 494{
495 #ifdef DEBUG 495 #ifdef DEBUG
496 odebug << "decorating scanlist item " << type << " / " 496 odebug << "decorating scanlist item " << type << " / "
497 << essid << " / " << macaddr 497 << essid << " / " << macaddr
498 << "[" << channel << "]" << oendl; 498 << "[" << channel << "]" << oendl;
499 #endif 499 #endif
500 500
501 // set icon for managed or adhoc mode 501 // set icon for managed or adhoc mode
502 QString name; 502 QString name;
503 name.sprintf( "wellenreiter/"+ type ); 503 name.sprintf( "wellenreiter/"+ type );
504 setPixmap( col_type, Resource::loadPixmap( name ) ); 504 setPixmap( col_type, Resource::loadPixmap( name ) );
505 505
506 // special case for probed networks FIXME: This is ugly at present 506 // special case for probed networks FIXME: This is ugly at present
507 if ( type == "network" && probed ) 507 if ( type == "network" && probed )
508 { 508 {
509 setPixmap( col_type, Resource::loadPixmap( "wellenreiter/network-probed.png" ) ); 509 setPixmap( col_type, Resource::loadPixmap( "wellenreiter/network-probed.png" ) );
510 } 510 }
511 511
512 // set icon for wep (wireless encryption protocol) 512 // set icon for wep (wireless encryption protocol)
513 if ( wep ) 513 if ( wep )
514 setPixmap( col_wep, Resource::loadPixmap( "wellenreiter/cracked" ) ); //FIXME: rename the pixmap! 514 setPixmap( col_wep, Resource::loadPixmap( "wellenreiter/cracked" ) ); //FIXME: rename the pixmap!
515 515
516 // set channel and signal text 516 // set channel and signal text
517 517
518 if ( signal != -1 ) 518 if ( signal != -1 )
519 setText( col_sig, QString::number( signal ) ); 519 setText( col_sig, QString::number( signal ) );
520 if ( channel != -1 ) 520 if ( channel != -1 )
521 setText( col_channel, QString::number( channel ) ); 521 setText( col_channel, QString::number( channel ) );
522 522
523 setText( col_firstseen, QTime::currentTime().toString() ); 523 setText( col_firstseen, QTime::currentTime().toString() );
524 //setText( col_lastseen, QTime::currentTime().toString() ); 524 //setText( col_lastseen, QTime::currentTime().toString() );
525 525
526 listView()->triggerUpdate(); 526 listView()->triggerUpdate();
527 527
528 this->type = type; 528 this->type = type;
529 _type = type; 529 _type = type;
530 _essid = essid; 530 _essid = essid;
531 _macaddr = macaddr; 531 _macaddr = macaddr;
532 _channel = channel; 532 _channel = channel;
533 _beacons = 1; 533 _beacons = 1;
534 _signal = 0; 534 _signal = 0;
535 535
536 if ( WellenreiterConfigWindow::instance()->openTree->isChecked() ) 536 if ( WellenreiterConfigWindow::instance()->openTree->isChecked() )
537 { 537 {
538 listView()->ensureItemVisible( this ); 538 listView()->ensureItemVisible( this );
539 } 539 }
540 540
541} 541}
542 542
543 543
544void MScanListItem::setManufacturer( const QString& manufacturer ) 544void MScanListItem::setManufacturer( const QString& manufacturer )
545{ 545{
546 setText( col_manuf, manufacturer ); 546 setText( col_manuf, manufacturer );
547} 547}
548 548
549 549
550void MScanListItem::setLocation( const QString& location ) 550void MScanListItem::setLocation( const QString& location )
551{ 551{
552 setText( col_location, location ); 552 setText( col_location, location );
553} 553}
554 554
555 555
556void MScanListItem::receivedBeacon() 556void MScanListItem::receivedBeacon()
557{ 557{
558 _beacons++; 558 _beacons++;
559 #ifdef DEBUG 559 #ifdef DEBUG
560 odebug << "MScanListItem " << _macaddr << ": received beacon #" << _beacons << "" << oendl; 560 odebug << "MScanListItem " << _macaddr << ": received beacon #" << _beacons << "" << oendl;
561 #endif 561 #endif
562 setText( col_sig, QString::number( _beacons ) ); 562 setText( col_sig, QString::number( _beacons ) );
563 setText( col_lastseen, QTime::currentTime().toString() ); 563 setText( col_lastseen, QTime::currentTime().toString() );
564 564
565 MScanListItem* p = (MScanListItem*) parent(); 565 MScanListItem* p = (MScanListItem*) parent();
566 if ( p ) p->receivedBeacon(); 566 if ( p ) p->receivedBeacon();
567 567
568} 568}
569 569
570QString MScanListItem::key( int id, bool b )const {
571 QString str;
572
573 /*
574 * Pad the amount of received packages, number
575 * of the channel.
576 */
577 switch( id ) {
578 case col_sig:
579 str = text(col_sig).rightJustify( 20, '0' );
580 break;
581 case col_channel:
582 str = text(col_channel).rightJustify( 2, '0' );
583 break;
584 default:
585 str = Opie::Ui::OListViewItem::key( id, b );
586 break;
587 }
588
589 return str;
590}
diff --git a/noncore/net/wellenreiter/gui/scanlist.h b/noncore/net/wellenreiter/gui/scanlist.h
index 6a80f70..8b3814a 100644
--- a/noncore/net/wellenreiter/gui/scanlist.h
+++ b/noncore/net/wellenreiter/gui/scanlist.h
@@ -1,140 +1,142 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2002-2004 Michael 'Mickey' Lauer. All rights reserved. 2** Copyright (C) 2002-2004 Michael 'Mickey' Lauer. All rights reserved.
3** 3**
4** This file is part of Wellenreiter II. 4** This file is part of Wellenreiter II.
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 "gps.h" 19#include "gps.h"
20 20
21/* OPIE */ 21/* OPIE */
22#include <opie2/olistview.h> 22#include <opie2/olistview.h>
23#include <opie2/onetutils.h> 23#include <opie2/onetutils.h>
24 24
25/* QT */ 25/* QT */
26#include <qtextstream.h> 26#include <qtextstream.h>
27 27
28class QString; 28class QString;
29class MScanListItem; 29class MScanListItem;
30 30
31class MScanListView: public Opie::Ui::OListView 31class MScanListView: public Opie::Ui::OListView
32{ 32{
33 Q_OBJECT 33 Q_OBJECT
34 34
35 public: 35 public:
36 MScanListView( QWidget* parent = 0, const char* name = 0 ); 36 MScanListView( QWidget* parent = 0, const char* name = 0 );
37 virtual ~MScanListView(); 37 virtual ~MScanListView();
38 38
39 virtual Opie::Ui::OListViewItem* childFactory(); 39 virtual Opie::Ui::OListViewItem* childFactory();
40 virtual void serializeTo( QDataStream& s ) const; 40 virtual void serializeTo( QDataStream& s ) const;
41 virtual void serializeFrom( QDataStream& s ); 41 virtual void serializeFrom( QDataStream& s );
42 42
43 public slots: 43 public slots:
44 void addNewItem( const QString& type, const QString&, const Opie::Net::OMacAddress&, bool, int, int, const GpsLocation&, bool = false ); 44 void addNewItem( const QString& type, const QString&, const Opie::Net::OMacAddress&, bool, int, int, const GpsLocation&, bool = false );
45 void addService( const QString& name, const Opie::Net::OMacAddress& macaddr, const QString& ip ); 45 void addService( const QString& name, const Opie::Net::OMacAddress& macaddr, const QString& ip );
46 46
47 void fromDStraffic( const Opie::Net::OMacAddress& from, const Opie::Net::OMacAddress& to, const Opie::Net::OMacAddress& via ); 47 void fromDStraffic( const Opie::Net::OMacAddress& from, const Opie::Net::OMacAddress& to, const Opie::Net::OMacAddress& via );
48 void toDStraffic( const Opie::Net::OMacAddress& from, const Opie::Net::OMacAddress& to, const Opie::Net::OMacAddress& via ); 48 void toDStraffic( const Opie::Net::OMacAddress& from, const Opie::Net::OMacAddress& to, const Opie::Net::OMacAddress& via );
49 void WDStraffic( const Opie::Net::OMacAddress& from, const Opie::Net::OMacAddress& to, const Opie::Net::OMacAddress& viaFrom, const Opie::Net::OMacAddress& viaTo ); 49 void WDStraffic( const Opie::Net::OMacAddress& from, const Opie::Net::OMacAddress& to, const Opie::Net::OMacAddress& viaFrom, const Opie::Net::OMacAddress& viaTo );
50 void IBSStraffic( const Opie::Net::OMacAddress& from, const Opie::Net::OMacAddress& to, const Opie::Net::OMacAddress& via ); 50 void IBSStraffic( const Opie::Net::OMacAddress& from, const Opie::Net::OMacAddress& to, const Opie::Net::OMacAddress& via );
51 51
52 void identify( const Opie::Net::OMacAddress&, const QString& ipaddr ); 52 void identify( const Opie::Net::OMacAddress&, const QString& ipaddr );
53 53
54 void contextMenuRequested( QListViewItem* item, const QPoint&, int ); 54 void contextMenuRequested( QListViewItem* item, const QPoint&, int );
55 55
56 signals: 56 signals:
57 void rightButtonClicked(QListViewItem*,const QPoint&,int); 57 void rightButtonClicked(QListViewItem*,const QPoint&,int);
58 void joinNetwork( const QString&, const QString&, int, const QString& ); 58 void joinNetwork( const QString&, const QString&, int, const QString& );
59 59
60 protected: 60 protected:
61 void addIfNotExisting( MScanListItem* parent, const Opie::Net::OMacAddress& addr, const QString& type = "station" ); 61 void addIfNotExisting( MScanListItem* parent, const Opie::Net::OMacAddress& addr, const QString& type = "station" );
62 62
63}; 63};
64 64
65//****************************** MScanListItem **************************************************************** 65//****************************** MScanListItem ****************************************************************
66 66
67class MScanListItem: public Opie::Ui::OListViewItem 67class MScanListItem: public Opie::Ui::OListViewItem
68{ 68{
69 public: 69 public:
70 MScanListItem::MScanListItem( QListView* parent, 70 MScanListItem::MScanListItem( QListView* parent,
71 const QString& type = "unknown", 71 const QString& type = "unknown",
72 const QString& essid = "unknown", 72 const QString& essid = "unknown",
73 const QString& macaddr = "unknown", 73 const 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 bool probed = false ); 77 bool probed = false );
78 78
79 MScanListItem::MScanListItem( QListViewItem* parent, 79 MScanListItem::MScanListItem( QListViewItem* parent,
80 const QString& type = "unknown", 80 const QString& type = "unknown",
81 const QString& essid = "unknown", 81 const QString& essid = "unknown",
82 const QString& macaddr = "unknown", 82 const QString& macaddr = "unknown",
83 bool wep = false, 83 bool wep = false,
84 int channel = 0, 84 int channel = 0,
85 int signal = 0 ); 85 int signal = 0 );
86 86
87 87
88 protected: 88 protected:
89 virtual void decorateItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal, bool probed ); 89 virtual void decorateItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal, bool probed );
90 90
91 public: 91 public:
92 QString type; 92 QString type;
93 93
94 public: 94 public:
95 //const QString& type() { return _type; }; 95 //const QString& type() { return _type; };
96 const QString& essid() const; 96 const QString& essid() const;
97 const QString& macaddr() { return _macaddr; }; 97 const QString& macaddr() { return _macaddr; };
98 bool wep() { return _wep; }; 98 bool wep() { return _wep; };
99 int channel() { return _channel; }; 99 int channel() { return _channel; };
100 int signal() { return _signal; }; 100 int signal() { return _signal; };
101 int beacons() { return _beacons; }; 101 int beacons() { return _beacons; };
102 102
103 void setSignal( int signal ) { /* TODO */ }; 103 void setSignal( int signal ) { /* TODO */ };
104 void receivedBeacon(); 104 void receivedBeacon();
105 105
106 void setManufacturer( const QString& manufacturer ); 106 void setManufacturer( const QString& manufacturer );
107 void setLocation( const QString& location ); 107 void setLocation( const QString& location );
108 108
109 virtual Opie::Ui::OListViewItem* childFactory(); 109 virtual Opie::Ui::OListViewItem* childFactory();
110 virtual void serializeTo( QDataStream& s ) const; 110 virtual void serializeTo( QDataStream& s ) const;
111 virtual void serializeFrom( QDataStream& s ); 111 virtual void serializeFrom( QDataStream& s );
112 112
113 virtual QString key( int id, bool )const;
114
113 private: 115 private:
114 QString _type; 116 QString _type;
115 QString _essid; 117 QString _essid;
116 QString _macaddr; 118 QString _macaddr;
117 bool _wep; 119 bool _wep;
118 int _channel; 120 int _channel;
119 int _signal; 121 int _signal;
120 int _beacons; 122 int _beacons;
121 123
122}; 124};
123 125
124//****************************** MScanListViewFactory **************************************************************** 126//****************************** MScanListViewFactory ****************************************************************
125 127
126/* 128/*
127 129
128class MScanListViewFactory : public Opie::Ui::OListViewFactory 130class MScanListViewFactory : public Opie::Ui::OListViewFactory
129{ 131{
130public: 132public:
131 virtual QListView* listViewFactory(); 133 virtual QListView* listViewFactory();
132 virtual QListViewItem* listViewItemFactory( QListView* lv ); 134 virtual QListViewItem* listViewItemFactory( QListView* lv );
133 virtual QListViewItem* listViewItemFactory( QListViewItem* lvi ); 135 virtual QListViewItem* listViewItemFactory( QListViewItem* lvi );
134 virtual void setColumnText( int depth, QListViewItem* lvi, int column, const QString& text ); 136 virtual void setColumnText( int depth, QListViewItem* lvi, int column, const QString& text );
135 virtual void setCustomData( int depth, QListViewItem* lvi, const QString& text ); 137 virtual void setCustomData( int depth, QListViewItem* lvi, const QString& text );
136} 138}
137*/ 139*/
138 140
139#endif 141#endif
140 142