summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/wellenreiter/cornucopia/olistview.cpp14
-rw-r--r--noncore/net/wellenreiter/cornucopia/olistview.h26
-rw-r--r--noncore/net/wellenreiter/gui/scanlist.cpp33
-rw-r--r--noncore/net/wellenreiter/gui/scanlist.h26
4 files changed, 68 insertions, 31 deletions
diff --git a/noncore/net/wellenreiter/cornucopia/olistview.cpp b/noncore/net/wellenreiter/cornucopia/olistview.cpp
index f2d3730..c292eb9 100644
--- a/noncore/net/wellenreiter/cornucopia/olistview.cpp
+++ b/noncore/net/wellenreiter/cornucopia/olistview.cpp
@@ -102,48 +102,53 @@ void OListView::removeColumn( int index )
102} 102}
103 103
104const QColor& OListView::alternateBackground() const 104const QColor& OListView::alternateBackground() const
105{ 105{
106 return m_alternateBackground; 106 return m_alternateBackground;
107} 107}
108 108
109void OListView::setAlternateBackground( const QColor &c ) 109void OListView::setAlternateBackground( const QColor &c )
110{ 110{
111 m_alternateBackground = c; 111 m_alternateBackground = c;
112 repaint(); 112 repaint();
113} 113}
114 114
115const QPen& OListView::columnSeparator() const 115const QPen& OListView::columnSeparator() const
116{ 116{
117 return m_columnSeparator; 117 return m_columnSeparator;
118} 118}
119 119
120void OListView::setColumnSeparator( const QPen& p ) 120void OListView::setColumnSeparator( const QPen& p )
121{ 121{
122 m_columnSeparator = p; 122 m_columnSeparator = p;
123 repaint(); 123 repaint();
124} 124}
125 125
126OListViewItem* OListView::childFactory()
127{
128 return new OListViewItem( this );
129}
130
126#ifndef QT_NO_DATASTREAM 131#ifndef QT_NO_DATASTREAM
127void OListView::serializeTo( QDataStream& s ) const 132void OListView::serializeTo( QDataStream& s ) const
128{ 133{
129 #warning Caution... the binary format is still under construction... 134 #warning Caution... the binary format is still under construction...
130 qDebug( "storing OListView..." ); 135 qDebug( "storing OListView..." );
131 136
132 // store number of columns and the labels 137 // store number of columns and the labels
133 s << columns(); 138 s << columns();
134 for ( int i = 0; i < columns(); ++i ) 139 for ( int i = 0; i < columns(); ++i )
135 s << columnText( i ); 140 s << columnText( i );
136 141
137 // calculate the number of top-level items to serialize 142 // calculate the number of top-level items to serialize
138 int items = 0; 143 int items = 0;
139 QListViewItem* item = firstChild(); 144 QListViewItem* item = firstChild();
140 while ( item ) 145 while ( item )
141 { 146 {
142 item = item->nextSibling(); 147 item = item->nextSibling();
143 items++; 148 items++;
144 } 149 }
145 150
146 // store number of items and the items itself 151 // store number of items and the items itself
147 s << items; 152 s << items;
148 item = firstChild(); 153 item = firstChild();
149 for ( int i = 0; i < items; ++i ) 154 for ( int i = 0; i < items; ++i )
@@ -159,49 +164,49 @@ void OListView::serializeFrom( QDataStream& s )
159{ 164{
160 #warning Caution... the binary format is still under construction... 165 #warning Caution... the binary format is still under construction...
161 qDebug( "loading OListView..." ); 166 qDebug( "loading OListView..." );
162 167
163 int cols; 168 int cols;
164 s >> cols; 169 s >> cols;
165 qDebug( "read number of columns = %d", cols ); 170 qDebug( "read number of columns = %d", cols );
166 171
167 while ( columns() < cols ) addColumn( QString::null ); 172 while ( columns() < cols ) addColumn( QString::null );
168 173
169 for ( int i = 0; i < cols; ++i ) 174 for ( int i = 0; i < cols; ++i )
170 { 175 {
171 QString coltext; 176 QString coltext;
172 s >> coltext; 177 s >> coltext;
173 qDebug( "read text '%s' for column %d", (const char*) coltext, i ); 178 qDebug( "read text '%s' for column %d", (const char*) coltext, i );
174 setColumnText( i, coltext ); 179 setColumnText( i, coltext );
175 } 180 }
176 181
177 int items; 182 int items;
178 s >> items; 183 s >> items;
179 qDebug( "read number of items = %d", items ); 184 qDebug( "read number of items = %d", items );
180 185
181 for ( int i = 0; i < items; ++i ) 186 for ( int i = 0; i < items; ++i )
182 { 187 {
183 OListViewItem* item = new OListViewItem( this ); 188 OListViewItem* item = childFactory();
184 s >> *item; 189 s >> *item;
185 } 190 }
186 191
187 qDebug( "OListView loaded." ); 192 qDebug( "OListView loaded." );
188 193
189} 194}
190 195
191QDataStream& operator<<( QDataStream& s, const OListView& lv ) 196QDataStream& operator<<( QDataStream& s, const OListView& lv )
192{ 197{
193 lv.serializeTo( s ); 198 lv.serializeTo( s );
194} 199}
195 200
196QDataStream& operator>>( QDataStream& s, OListView& lv ) 201QDataStream& operator>>( QDataStream& s, OListView& lv )
197{ 202{
198 lv.serializeFrom( s ); 203 lv.serializeFrom( s );
199} 204}
200#endif // QT_NO_DATASTREAM 205#endif // QT_NO_DATASTREAM
201 206
202//****************************** OListViewItem *********************************************************************** 207//****************************** OListViewItem ***********************************************************************
203 208
204OListViewItem::OListViewItem(QListView *parent) 209OListViewItem::OListViewItem(QListView *parent)
205 : QListViewItem(parent) 210 : QListViewItem(parent)
206{ 211{
207 init(); 212 init();
@@ -316,48 +321,53 @@ bool OListViewItem::isAlternate()
316} 321}
317 322
318void OListViewItem::paintCell(QPainter *p, const QColorGroup &cg, int column, int width, int alignment) 323void OListViewItem::paintCell(QPainter *p, const QColorGroup &cg, int column, int width, int alignment)
319{ 324{
320 QColorGroup _cg = cg; 325 QColorGroup _cg = cg;
321 const QPixmap *pm = listView()->viewport()->backgroundPixmap(); 326 const QPixmap *pm = listView()->viewport()->backgroundPixmap();
322 if (pm && !pm->isNull()) 327 if (pm && !pm->isNull())
323 { 328 {
324 _cg.setBrush( QColorGroup::Base, QBrush(backgroundColor(), *pm) ); 329 _cg.setBrush( QColorGroup::Base, QBrush(backgroundColor(), *pm) );
325 p->setBrushOrigin( -listView()->contentsX(), -listView()->contentsY() ); 330 p->setBrushOrigin( -listView()->contentsX(), -listView()->contentsY() );
326 } 331 }
327 else if ( isAlternate() ) 332 else if ( isAlternate() )
328 { 333 {
329 _cg.setColor( QColorGroup::Base, static_cast<OListView*>( listView() )->alternateBackground() ); 334 _cg.setColor( QColorGroup::Base, static_cast<OListView*>( listView() )->alternateBackground() );
330 } 335 }
331 QListViewItem::paintCell( p, _cg, column, width, alignment ); 336 QListViewItem::paintCell( p, _cg, column, width, alignment );
332 337
333 //FIXME: Use styling here! 338 //FIXME: Use styling here!
334 339
335 const QPen& pen = static_cast<OListView*>( listView() )->columnSeparator(); 340 const QPen& pen = static_cast<OListView*>( listView() )->columnSeparator();
336 p->setPen( pen ); 341 p->setPen( pen );
337 p->drawLine( width-1, 0, width-1, height() ); 342 p->drawLine( width-1, 0, width-1, height() );
338} 343}
339 344
345OListViewItem* OListViewItem::childFactory()
346{
347 return new OListViewItem( this );
348}
349
340#ifndef QT_NO_DATASTREAM 350#ifndef QT_NO_DATASTREAM
341void OListViewItem::serializeTo( QDataStream& s ) const 351void OListViewItem::serializeTo( QDataStream& s ) const
342{ 352{
343 #warning Caution... the binary format is still under construction... 353 #warning Caution... the binary format is still under construction...
344 qDebug( "storing OListViewItem..." ); 354 qDebug( "storing OListViewItem..." );
345 355
346 // store item text 356 // store item text
347 for ( int i = 0; i < listView()->columns(); ++i ) 357 for ( int i = 0; i < listView()->columns(); ++i )
348 { 358 {
349 s << text( i ); 359 s << text( i );
350 } 360 }
351 361
352 // calculate the number of children to serialize 362 // calculate the number of children to serialize
353 int items = 0; 363 int items = 0;
354 QListViewItem* item = firstChild(); 364 QListViewItem* item = firstChild();
355 while ( item ) 365 while ( item )
356 { 366 {
357 item = item->nextSibling(); 367 item = item->nextSibling();
358 items++; 368 items++;
359 } 369 }
360 370
361 // store number of items and the items itself 371 // store number of items and the items itself
362 s << items; 372 s << items;
363 item = firstChild(); 373 item = firstChild();
@@ -367,41 +377,41 @@ void OListViewItem::serializeTo( QDataStream& s ) const
367 item = item->nextSibling(); 377 item = item->nextSibling();
368 } 378 }
369 379
370 qDebug( "OListviewItem stored." ); 380 qDebug( "OListviewItem stored." );
371} 381}
372void OListViewItem::serializeFrom( QDataStream& s ) 382void OListViewItem::serializeFrom( QDataStream& s )
373{ 383{
374 #warning Caution... the binary format is still under construction... 384 #warning Caution... the binary format is still under construction...
375 qDebug( "loading OListViewItem..." ); 385 qDebug( "loading OListViewItem..." );
376 386
377 for ( int i = 0; i < listView()->columns(); ++i ) 387 for ( int i = 0; i < listView()->columns(); ++i )
378 { 388 {
379 QString coltext; 389 QString coltext;
380 s >> coltext; 390 s >> coltext;
381 qDebug( "read text '%s' for column %d", (const char*) coltext, i ); 391 qDebug( "read text '%s' for column %d", (const char*) coltext, i );
382 setText( i, coltext ); 392 setText( i, coltext );
383 } 393 }
384 394
385 int items; 395 int items;
386 s >> items; 396 s >> items;
387 qDebug( "read number of items = %d", items ); 397 qDebug( "read number of items = %d", items );
388 398
389 for ( int i = 0; i < items; ++i ) 399 for ( int i = 0; i < items; ++i )
390 { 400 {
391 OListViewItem* item = new OListViewItem( this ); 401 OListViewItem* item = childFactory();
392 s >> (*item); 402 s >> (*item);
393 } 403 }
394 404
395 qDebug( "OListViewItem loaded." ); 405 qDebug( "OListViewItem loaded." );
396} 406}
397 407
398QDataStream& operator<<( QDataStream& s, const OListViewItem& lvi ) 408QDataStream& operator<<( QDataStream& s, const OListViewItem& lvi )
399{ 409{
400 lvi.serializeTo( s ); 410 lvi.serializeTo( s );
401} 411}
402 412
403QDataStream& operator>>( QDataStream& s, OListViewItem& lvi ) 413QDataStream& operator>>( QDataStream& s, OListViewItem& lvi )
404{ 414{
405 lvi.serializeFrom( s ); 415 lvi.serializeFrom( s );
406} 416}
407#endif // QT_NO_DATASTREAM 417#endif // QT_NO_DATASTREAM
diff --git a/noncore/net/wellenreiter/cornucopia/olistview.h b/noncore/net/wellenreiter/cornucopia/olistview.h
index 9df5500..8911e22 100644
--- a/noncore/net/wellenreiter/cornucopia/olistview.h
+++ b/noncore/net/wellenreiter/cornucopia/olistview.h
@@ -17,49 +17,49 @@
17     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 17     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
18    : ..    .:,     . . . without even the implied warranty of 18    : ..    .:,     . . . without even the implied warranty of
19    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 19    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
20  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU 20  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
21..}^=.=       =       ; Library General Public License for more 21..}^=.=       =       ; Library General Public License for more
22++=   -.     .`     .: details. 22++=   -.     .`     .: details.
23 :     =  ...= . :.=- 23 :     =  ...= . :.=-
24 -.   .:....=;==+<; You should have received a copy of the GNU 24 -.   .:....=;==+<; You should have received a copy of the GNU
25  -_. . .   )=.  = Library General Public License along with 25  -_. . .   )=.  = Library General Public License along with
26    --        :-=` this library; see the file COPYING.LIB. 26    --        :-=` this library; see the file COPYING.LIB.
27 If not, write to the Free Software Foundation, 27 If not, write to the Free Software Foundation,
28 Inc., 59 Temple Place - Suite 330, 28 Inc., 59 Temple Place - Suite 330,
29 Boston, MA 02111-1307, USA. 29 Boston, MA 02111-1307, USA.
30 30
31*/ 31*/
32 32
33#ifndef OLISTVIEW_H 33#ifndef OLISTVIEW_H
34#define OLISTVIEW_H 34#define OLISTVIEW_H
35 35
36#include <qcolor.h> 36#include <qcolor.h>
37#include <qlistview.h> 37#include <qlistview.h>
38#include <qpen.h> 38#include <qpen.h>
39#include <qdatastream.h> 39#include <qdatastream.h>
40 40
41class OListViewFactory; 41class OListViewItem;
42 42
43/** 43/**
44 * A @ref QListView variant featuring visual and functional enhancements 44 * A @ref QListView variant featuring visual and functional enhancements
45 * like an alternate background for odd rows, an autostretch mode 45 * like an alternate background for odd rows, an autostretch mode
46 * for the width of the widget ( >= Qt 3 only ) and persistence capabilities. 46 * for the width of the widget ( >= Qt 3 only ) and persistence capabilities.
47 * 47 *
48 * @author Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de> 48 * @author Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de>
49 * @short OListView list/tree widget. 49 * @short OListView list/tree widget.
50 */ 50 */
51 class OListView: public QListView 51 class OListView: public QListView
52{ 52{
53 public: 53 public:
54 /** 54 /**
55 * Constructor. 55 * Constructor.
56 * 56 *
57 * The parameters @p parent and @p name are handled by 57 * The parameters @p parent and @p name are handled by
58 * @ref QListView, as usual. 58 * @ref QListView, as usual.
59 */ 59 */
60 OListView ( QWidget *parent = 0, const char *name = 0 ); 60 OListView ( QWidget *parent = 0, const char *name = 0 );
61 61
62 /** 62 /**
63 * Destructor. 63 * Destructor.
64 */ 64 */
65 virtual ~OListView(); 65 virtual ~OListView();
@@ -94,78 +94,72 @@ class OListViewFactory;
94 * This only has an effect if the items are OListViewItems 94 * This only has an effect if the items are OListViewItems
95 * 95 *
96 * @param c the color to use for every other item. Set to an invalid 96 * @param c the color to use for every other item. Set to an invalid
97 * color to disable alternate colors. 97 * color to disable alternate colors.
98 */ 98 */
99 void setAlternateBackground( const QColor &c ); 99 void setAlternateBackground( const QColor &c );
100 100
101 /** 101 /**
102 * sets the column separator pen. 102 * sets the column separator pen.
103 * 103 *
104 * @param p the pen used to draw the column separator. 104 * @param p the pen used to draw the column separator.
105 */ 105 */
106 void setColumnSeparator( const QPen &p ); 106 void setColumnSeparator( const QPen &p );
107 107
108 /** 108 /**
109 * @return the alternate background color 109 * @return the alternate background color
110 */ 110 */
111 const QColor& alternateBackground() const; 111 const QColor& alternateBackground() const;
112 112
113 /** 113 /**
114 * @return the column separator pen 114 * @return the column separator pen
115 */ 115 */
116 const QPen& columnSeparator() const; 116 const QPen& columnSeparator() const;
117 117
118 /**
119 * create a list view item as child of this object
120 * @return the new object
121 */
122 virtual OListViewItem* childFactory();
123
118 #ifndef QT_NO_DATASTREAM 124 #ifndef QT_NO_DATASTREAM
119 /** 125 /**
120 * serialize this object to a @ref QDataStream 126 * serialize this object to a @ref QDataStream
121 * @param s the stream used to serialize this object. 127 * @param s the stream used to serialize this object.
122 */ 128 */
123 virtual void serializeTo( QDataStream& s ) const; 129 virtual void serializeTo( QDataStream& s ) const;
124 130
125 /** 131 /**
126 * serialize this object from a @ref QDataStream 132 * serialize this object from a @ref QDataStream
127 * @param s the stream used to serialize this object. 133 * @param s the stream used to serialize this object.
128 */ 134 */
129 virtual void serializeFrom( QDataStream& s ); 135 virtual void serializeFrom( QDataStream& s );
130 #endif 136 #endif
131 137
132 /**
133 * returns a factory for OListView classes
134 * creates one on the fly if it doesn't exist
135 * @return the XML Factory
136 */
137 #ifndef QT_NO_XML
138 //OListViewFactory* Factory();
139 #endif
140
141 private: 138 private:
142 QColor m_alternateBackground; 139 QColor m_alternateBackground;
143 bool m_fullWidth; 140 bool m_fullWidth;
144 QPen m_columnSeparator; 141 QPen m_columnSeparator;
145 #ifndef QT_NO_XML
146 //OListViewFactory* m_Factory;
147 #endif
148}; 142};
149 143
150#ifndef QT_NO_DATASTREAM 144#ifndef QT_NO_DATASTREAM
151/** 145/**
152 * \relates QListView 146 * \relates QListView
153 * Writes a listview to the stream and returns a reference to the stream. 147 * Writes a listview to the stream and returns a reference to the stream.
154 */ 148 */
155QDataStream& operator<<( QDataStream& s, const OListView& lv ); 149QDataStream& operator<<( QDataStream& s, const OListView& lv );
156/** 150/**
157 * \relates QListView 151 * \relates QListView
158 * Reads a listview from the stream and returns a reference to the stream. 152 * Reads a listview from the stream and returns a reference to the stream.
159 */ 153 */
160QDataStream& operator>>( QDataStream& s, OListView& lv ); 154QDataStream& operator>>( QDataStream& s, OListView& lv );
161#endif // QT_NO_DATASTREAM 155#endif // QT_NO_DATASTREAM
162 156
163//****************************** OListViewItem ****************************************************************** 157//****************************** OListViewItem ******************************************************************
164 158
165class OListViewItem: public QListViewItem 159class OListViewItem: public QListViewItem
166{ 160{
167 public: 161 public:
168 OListViewItem( QListView * parent ); 162 OListViewItem( QListView * parent );
169 OListViewItem( QListViewItem * parent ); 163 OListViewItem( QListViewItem * parent );
170 OListViewItem( QListView * parent, QListViewItem * after ); 164 OListViewItem( QListView * parent, QListViewItem * after );
171 OListViewItem( QListViewItem * parent, QListViewItem * after ); 165 OListViewItem( QListViewItem * parent, QListViewItem * after );
@@ -180,48 +174,54 @@ class OListViewItem: public QListViewItem
180 QString, QString = QString::null, 174 QString, QString = QString::null,
181 QString = QString::null, QString = QString::null, 175 QString = QString::null, QString = QString::null,
182 QString = QString::null, QString = QString::null, 176 QString = QString::null, QString = QString::null,
183 QString = QString::null, QString = QString::null ); 177 QString = QString::null, QString = QString::null );
184 178
185 OListViewItem( QListView * parent, QListViewItem * after, 179 OListViewItem( QListView * parent, QListViewItem * after,
186 QString, QString = QString::null, 180 QString, QString = QString::null,
187 QString = QString::null, QString = QString::null, 181 QString = QString::null, QString = QString::null,
188 QString = QString::null, QString = QString::null, 182 QString = QString::null, QString = QString::null,
189 QString = QString::null, QString = QString::null ); 183 QString = QString::null, QString = QString::null );
190 184
191 OListViewItem( QListViewItem * parent, QListViewItem * after, 185 OListViewItem( QListViewItem * parent, QListViewItem * after,
192 QString, QString = QString::null, 186 QString, QString = QString::null,
193 QString = QString::null, QString = QString::null, 187 QString = QString::null, QString = QString::null,
194 QString = QString::null, QString = QString::null, 188 QString = QString::null, QString = QString::null,
195 QString = QString::null, QString = QString::null ); 189 QString = QString::null, QString = QString::null );
196 190
197 virtual ~OListViewItem(); 191 virtual ~OListViewItem();
198 192
199 const QColor& backgroundColor(); 193 const QColor& backgroundColor();
200 bool isAlternate(); 194 bool isAlternate();
201 void paintCell( QPainter *p, const QColorGroup &cg, int column, int width, int alignment ); 195 void paintCell( QPainter *p, const QColorGroup &cg, int column, int width, int alignment );
202 void init(); 196 void init();
203 197
198 /**
199 * create a list view item as child of this object
200 * @return the new object
201 */
202 virtual OListViewItem* childFactory();
203
204 #ifndef QT_NO_DATASTREAM 204 #ifndef QT_NO_DATASTREAM
205 /** 205 /**
206 * serialize this object to or from a @ref QDataStream 206 * serialize this object to or from a @ref QDataStream
207 * @param s the stream used to serialize this object. 207 * @param s the stream used to serialize this object.
208 */ 208 */
209 virtual void serializeTo( QDataStream& s ) const; 209 virtual void serializeTo( QDataStream& s ) const;
210 210
211 /** 211 /**
212 * serialize this object to or from a @ref QDataStream 212 * serialize this object to or from a @ref QDataStream
213 * @param s the stream used to serialize this object. 213 * @param s the stream used to serialize this object.
214 */ 214 */
215 virtual void serializeFrom( QDataStream& s ); 215 virtual void serializeFrom( QDataStream& s );
216 #endif 216 #endif
217 217
218 private: 218 private:
219 bool m_known; 219 bool m_known;
220 bool m_odd; 220 bool m_odd;
221}; 221};
222 222
223#ifndef QT_NO_DATASTREAM 223#ifndef QT_NO_DATASTREAM
224/** 224/**
225 * \relates QListViewItem 225 * \relates QListViewItem
226 * Writes a listview item and all subitems recursively to the stream 226 * Writes a listview item and all subitems recursively to the stream
227 * and returns a reference to the stream. 227 * and returns a reference to the stream.
diff --git a/noncore/net/wellenreiter/gui/scanlist.cpp b/noncore/net/wellenreiter/gui/scanlist.cpp
index 58a04fb..be1245e 100644
--- a/noncore/net/wellenreiter/gui/scanlist.cpp
+++ b/noncore/net/wellenreiter/gui/scanlist.cpp
@@ -32,113 +32,118 @@ MScanListView::MScanListView( QWidget* parent, const char* name )
32 addColumn( tr( "B" ) ); 32 addColumn( tr( "B" ) );
33 setColumnAlignment( 1, AlignCenter ); 33 setColumnAlignment( 1, AlignCenter );
34 addColumn( tr( "AP" ) ); 34 addColumn( tr( "AP" ) );
35 setColumnAlignment( 2, AlignCenter ); 35 setColumnAlignment( 2, AlignCenter );
36 addColumn( tr( "Chn" ) ); 36 addColumn( tr( "Chn" ) );
37 setColumnAlignment( 3, AlignCenter ); 37 setColumnAlignment( 3, AlignCenter );
38 addColumn( tr( "W" ) ); 38 addColumn( tr( "W" ) );
39 setColumnAlignment( 4, AlignCenter ); 39 setColumnAlignment( 4, AlignCenter );
40 addColumn( tr( "T" ) ); 40 addColumn( tr( "T" ) );
41 setColumnAlignment( 5, AlignCenter ); 41 setColumnAlignment( 5, AlignCenter );
42 addColumn( tr( "Manufacturer" ) ); 42 addColumn( tr( "Manufacturer" ) );
43 setColumnAlignment( 6, AlignCenter ); 43 setColumnAlignment( 6, AlignCenter );
44 addColumn( tr( "First Seen" ) ); 44 addColumn( tr( "First Seen" ) );
45 setColumnAlignment( 7, AlignCenter ); 45 setColumnAlignment( 7, AlignCenter );
46 addColumn( tr( "Last Seen" ) ); 46 addColumn( tr( "Last Seen" ) );
47 setColumnAlignment( 8, AlignCenter ); 47 setColumnAlignment( 8, AlignCenter );
48 setRootIsDecorated( true ); 48 setRootIsDecorated( true );
49 setAllColumnsShowFocus( true ); 49 setAllColumnsShowFocus( true );
50}; 50};
51 51
52MScanListView::~MScanListView() 52MScanListView::~MScanListView()
53{ 53{
54}; 54};
55 55
56OListViewItem* MScanListView::childFactory()
57{
58 return new MScanListItem( this );
59}
60
56void MScanListView::serializeTo( QDataStream& s) const 61void MScanListView::serializeTo( QDataStream& s) const
57{ 62{
58 qDebug( "serializing MScanListView" ); 63 qDebug( "serializing MScanListView" );
59 OListView::serializeTo( s ); 64 OListView::serializeTo( s );
60} 65}
61 66
62void MScanListView::serializeFrom( QDataStream& s) 67void MScanListView::serializeFrom( QDataStream& s)
63{ 68{
64 qDebug( "serializing MScanListView" ); 69 qDebug( "serializing MScanListView" );
65 OListView::serializeFrom( s ); 70 OListView::serializeFrom( s );
66} 71}
67 72
68void MScanListView::setManufacturerDB( ManufacturerDB* manufacturerdb ) 73void MScanListView::setManufacturerDB( ManufacturerDB* manufacturerdb )
69{ 74{
70 _manufacturerdb = manufacturerdb; 75 _manufacturerdb = manufacturerdb;
71} 76}
72 77
73void MScanListView::addNewItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal ) 78void MScanListView::addNewItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal )
74{ 79{
75 // FIXME: scanlistitem needs a proper encapsulation and not such a damn dealing with text(...) 80 // FIXME: scanlistitem needs a proper encapsulation and not such a damn dealing with text(...)
76 81
77 qDebug( "MScanList::addNewItem( %s / %s / %s [%d]", 82 qDebug( "MScanList::addNewItem( %s / %s / %s [%d]",
78 (const char*) type, 83 (const char*) type,
79 (const char*) essid, 84 (const char*) essid,
80 (const char*) macaddr, 85 (const char*) macaddr,
81 channel ); 86 channel );
82 87
83 // search, if we already have seen this net 88 // search, if we already have seen this net
84 89
85 QString s; 90 QString s;
86 MScanListItem* network; 91 MScanListItem* network;
87 MScanListItem* item = static_cast<MScanListItem*> ( firstChild() ); 92 MScanListItem* item = static_cast<MScanListItem*> ( firstChild() );
88 93
89 while ( item && ( item->text( 0 ) != essid ) ) 94 while ( item && ( item->text( 0 ) != essid ) )
90 { 95 {
91 qDebug( "itemtext: %s", (const char*) item->text( 0 ) ); 96 qDebug( "itemtext: %s", (const char*) item->text( 0 ) );
92 item = static_cast<MScanListItem*> ( item->itemBelow() ); 97 item = static_cast<MScanListItem*> ( item->itemBelow() );
93 } 98 }
94 if ( item ) 99 if ( item )
95 { 100 {
96 // animate the item 101 // animate the item
97 102
98 /* 103 /*
99 104
100 const QPixmap* pixmap = item->pixmap( 0 ); 105 const QPixmap* pixmap = item->pixmap( 0 );
101 const QPixmap* nextpixmap = ani2; 106 const QPixmap* nextpixmap = ani2;
102 if ( pixmap == ani1 ) 107 if ( pixmap == ani1 )
103 nextpixmap = ani2; 108 nextpixmap = ani2;
104 else if ( pixmap == ani2 ) 109 else if ( pixmap == ani2 )
105 nextpixmap = ani3; 110 nextpixmap = ani3;
106 else if ( pixmap == ani3 ) 111 else if ( pixmap == ani3 )
107 nextpixmap = ani4; 112 nextpixmap = ani4;
108 else if ( pixmap == ani4 ) 113 else if ( pixmap == ani4 )
109 nextpixmap = ani1; 114 nextpixmap = ani1;
110 item->setPixmap( 0, *nextpixmap ); */ 115 item->setPixmap( 0, *nextpixmap ); */
111 116
112 //qDebug( "current pixmap %d, next %d", pixmap, nextpixmap ); 117 //qDebug( "current pixmap %d, next %d", pixmap, nextpixmap );
113 118
114 // we have already seen this net, check all childs if MAC exists 119 // we have already seen this net, check all childs if MAC exists
115 120
116 network = item; 121 network = item;
117 122
118 item = static_cast<MScanListItem*> ( item->firstChild() ); 123 item = static_cast<MScanListItem*> ( item->firstChild() );
119 assert( item ); // this shouldn't fail 124 assert( item ); // this shouldn't fail
120 125
121 while ( item && ( item->text( 2 ) != macaddr ) ) 126 while ( item && ( item->text( 2 ) != macaddr ) )
122 { 127 {
123 qDebug( "subitemtext: %s", (const char*) item->text( 2 ) ); 128 qDebug( "subitemtext: %s", (const char*) item->text( 2 ) );
124 item = static_cast<MScanListItem*> ( item->itemBelow() ); 129 item = static_cast<MScanListItem*> ( item->itemBelow() );
125 } 130 }
126 131
127 if ( item ) 132 if ( item )
128 { 133 {
129 // we have already seen this item, it's a dupe 134 // we have already seen this item, it's a dupe
130 #ifdef DEBUG 135 #ifdef DEBUG
131 qDebug( "%s is a dupe - ignoring...", (const char*) macaddr ); 136 qDebug( "%s is a dupe - ignoring...", (const char*) macaddr );
132 #endif 137 #endif
133 item->receivedBeacon(); 138 item->receivedBeacon();
134 return; 139 return;
135 } 140 }
136 } 141 }
137 else 142 else
138 { 143 {
139 s.sprintf( "(i) new network: '%s'", (const char*) essid ); 144 s.sprintf( "(i) new network: '%s'", (const char*) essid );
140 145
141 network = new MScanListItem( this, "networks", essid, QString::null, 0, 0, 0 ); 146 network = new MScanListItem( this, "networks", essid, QString::null, 0, 0, 0 );
142 } 147 }
143 148
144 149
@@ -177,56 +182,76 @@ const int col_channel = 3;
177const int col_wep = 4; 182const int col_wep = 4;
178const int col_traffic = 5; 183const int col_traffic = 5;
179const int col_manuf = 6; 184const int col_manuf = 6;
180const int col_firstseen = 7; 185const int col_firstseen = 7;
181const int col_lastseen = 8; 186const int col_lastseen = 8;
182 187
183MScanListItem::MScanListItem( QListView* parent, QString type, QString essid, QString macaddr, 188MScanListItem::MScanListItem( QListView* parent, QString type, QString essid, QString macaddr,
184 bool wep, int channel, int signal ) 189 bool wep, int channel, int signal )
185 :OListViewItem( parent, essid, QString::null, macaddr, QString::null, QString::null ), 190 :OListViewItem( parent, essid, QString::null, macaddr, QString::null, QString::null ),
186 _type( type ), _essid( essid ), _macaddr( macaddr ), _wep( wep ), 191 _type( type ), _essid( essid ), _macaddr( macaddr ), _wep( wep ),
187 _channel( channel ), _signal( signal ), _beacons( 0 ) 192 _channel( channel ), _signal( signal ), _beacons( 0 )
188{ 193{
189 qDebug( "creating scanlist item" ); 194 qDebug( "creating scanlist item" );
190 decorateItem( type, essid, macaddr, wep, channel, signal ); 195 decorateItem( type, essid, macaddr, wep, channel, signal );
191} 196}
192 197
193MScanListItem::MScanListItem( QListViewItem* parent, QString type, QString essid, QString macaddr, 198MScanListItem::MScanListItem( QListViewItem* parent, QString type, QString essid, QString macaddr,
194 bool wep, int channel, int signal ) 199 bool wep, int channel, int signal )
195 :OListViewItem( parent, essid, QString::null, macaddr, QString::null, QString::null ) 200 :OListViewItem( parent, essid, QString::null, macaddr, QString::null, QString::null )
196{ 201{
197 qDebug( "creating scanlist item" ); 202 qDebug( "creating scanlist item" );
198 decorateItem( type, essid, macaddr, wep, channel, signal ); 203 decorateItem( type, essid, macaddr, wep, channel, signal );
199} 204}
200 205
206OListViewItem* MScanListItem::childFactory()
207{
208 return new MScanListItem( this );
209}
210
201void MScanListItem::serializeTo( QDataStream& s ) const 211void MScanListItem::serializeTo( QDataStream& s ) const
202{ 212{
213 qDebug( "serializing MScanListItem" );
203 OListViewItem::serializeTo( s ); 214 OListViewItem::serializeTo( s );
215
216 s << _type;
217 s << (Q_UINT8) _wep;
204} 218}
205 219
206void MScanListItem::serializeFrom( QDataStream& s ) 220void MScanListItem::serializeFrom( QDataStream& s )
207{ 221{
222 qDebug( "serializing MScanListItem" );
208 OListViewItem::serializeFrom( s ); 223 OListViewItem::serializeFrom( s );
224
225 s >> _type;
226 s >> (Q_UINT8) _wep;
227
228 QString name;
229 name.sprintf( "wellenreiter/%s", (const char*) _type );
230 setPixmap( col_type, Resource::loadPixmap( name ) );
231 if ( _wep )
232 setPixmap( col_wep, Resource::loadPixmap( "wellenreiter/cracked" ) ); //FIXME: rename the pixmap!
233 listView()->triggerUpdate();
209} 234}
210 235
211void MScanListItem::decorateItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal ) 236void MScanListItem::decorateItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal )
212{ 237{
213 qDebug( "decorating scanlist item %s / %s / %s [%d]", 238 qDebug( "decorating scanlist item %s / %s / %s [%d]",
214 (const char*) type, 239 (const char*) type,
215 (const char*) essid, 240 (const char*) essid,
216 (const char*) macaddr, 241 (const char*) macaddr,
217 channel ); 242 channel );
218 243
219 // set icon for managed or adhoc mode 244 // set icon for managed or adhoc mode
220 QString name; 245 QString name;
221 name.sprintf( "wellenreiter/%s", (const char*) type ); 246 name.sprintf( "wellenreiter/%s", (const char*) type );
222 setPixmap( col_type, Resource::loadPixmap( name ) ); 247 setPixmap( col_type, Resource::loadPixmap( name ) );
223 248
224 // set icon for wep (wireless encryption protocol) 249 // set icon for wep (wireless encryption protocol)
225 if ( wep ) 250 if ( wep )
226 setPixmap( col_wep, Resource::loadPixmap( "wellenreiter/cracked" ) ); //FIXME: rename the pixmap! 251 setPixmap( col_wep, Resource::loadPixmap( "wellenreiter/cracked" ) ); //FIXME: rename the pixmap!
227 252
228 // set channel and signal text 253 // set channel and signal text
229 254
230 if ( signal != -1 ) 255 if ( signal != -1 )
231 setText( col_sig, QString::number( signal ) ); 256 setText( col_sig, QString::number( signal ) );
232 if ( channel != -1 ) 257 if ( channel != -1 )
diff --git a/noncore/net/wellenreiter/gui/scanlist.h b/noncore/net/wellenreiter/gui/scanlist.h
index 66c701b..222217c 100644
--- a/noncore/net/wellenreiter/gui/scanlist.h
+++ b/noncore/net/wellenreiter/gui/scanlist.h
@@ -12,101 +12,103 @@
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 <cornucopia/olistview.h> 19#include <cornucopia/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 MScanListView: public OListView 26class MScanListView: public OListView
27{ 27{
28 Q_OBJECT 28 Q_OBJECT
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 35
36 virtual OListViewItem* childFactory();
36 virtual void serializeTo( QDataStream& s ) const; 37 virtual void serializeTo( QDataStream& s ) const;
37 virtual void serializeFrom( QDataStream& s ); 38 virtual void serializeFrom( QDataStream& s );
38 39
39 public slots: 40 public slots:
40 void addNewItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal ); 41 void addNewItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal );
41 42
42 private: 43 private:
43 ManufacturerDB* _manufacturerdb; 44 ManufacturerDB* _manufacturerdb;
44 45
45}; 46};
46 47
47//****************************** MScanListItem **************************************************************** 48//****************************** MScanListItem ****************************************************************
48 49
49class MScanListItem: public OListViewItem 50class MScanListItem: public OListViewItem
50{ 51{
51 public: 52 public:
52 MScanListItem::MScanListItem( QListView* parent, 53 MScanListItem::MScanListItem( QListView* parent,
53 QString type, 54 QString type = "unknown",
54 QString essid, 55 QString essid = "unknown",
55 QString macaddr, 56 QString macaddr = "unknown",
56 bool wep, 57 bool wep = false,
57 int channel, 58 int channel = 0,
58 int signal ); 59 int signal = 0 );
59 60
60 MScanListItem::MScanListItem( QListViewItem* parent, 61 MScanListItem::MScanListItem( QListViewItem* parent,
61 QString type, 62 QString type = "unknown",
62 QString essid, 63 QString essid = "unknown",
63 QString macaddr, 64 QString macaddr = "unknown",
64 bool wep, 65 bool wep = false,
65 int channel, 66 int channel = 0,
66 int signal ); 67 int signal = 0 );
67 68
68 69
69 protected: 70 protected:
70 virtual void decorateItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal ); 71 virtual void decorateItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal );
71 72
72 public: 73 public:
73 QString type; 74 QString type;
74 75
75 public: 76 public:
76 //const QString& type() { return _type; }; 77 //const QString& type() { return _type; };
77 const QString& essid() { return _essid; }; 78 const QString& essid() { return _essid; };
78 const QString& macaddr() { return _macaddr; }; 79 const QString& macaddr() { return _macaddr; };
79 bool wep() { return _wep; }; 80 bool wep() { return _wep; };
80 int channel() { return _channel; }; 81 int channel() { return _channel; };
81 int signal() { return _signal; }; 82 int signal() { return _signal; };
82 int beacons() { return _beacons; }; 83 int beacons() { return _beacons; };
83 84
84 void setSignal( int signal ) { /* TODO */ }; 85 void setSignal( int signal ) { /* TODO */ };
85 void receivedBeacon(); 86 void receivedBeacon();
86 87
87 void setManufacturer( const QString& manufacturer ); 88 void setManufacturer( const QString& manufacturer );
88 89
90 virtual OListViewItem* childFactory();
89 virtual void serializeTo( QDataStream& s ) const; 91 virtual void serializeTo( QDataStream& s ) const;
90 virtual void serializeFrom( QDataStream& s ); 92 virtual void serializeFrom( QDataStream& s );
91 93
92 private: 94 private:
93 QString _type; 95 QString _type;
94 QString _essid; 96 QString _essid;
95 QString _macaddr; 97 QString _macaddr;
96 bool _wep; 98 bool _wep;
97 int _channel; 99 int _channel;
98 int _signal; 100 int _signal;
99 int _beacons; 101 int _beacons;
100 102
101}; 103};
102 104
103//****************************** MScanListViewFactory **************************************************************** 105//****************************** MScanListViewFactory ****************************************************************
104 106
105/* 107/*
106 108
107class MScanListViewFactory : public OListViewFactory 109class MScanListViewFactory : public OListViewFactory
108{ 110{
109public: 111public:
110 virtual QListView* listViewFactory(); 112 virtual QListView* listViewFactory();
111 virtual QListViewItem* listViewItemFactory( QListView* lv ); 113 virtual QListViewItem* listViewItemFactory( QListView* lv );
112 virtual QListViewItem* listViewItemFactory( QListViewItem* lvi ); 114 virtual QListViewItem* listViewItemFactory( QListViewItem* lvi );