summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/wellenreiter/cornucopia/README127
-rw-r--r--noncore/net/wellenreiter/cornucopia/olistview.cpp151
-rw-r--r--noncore/net/wellenreiter/cornucopia/olistview.h87
-rw-r--r--noncore/net/wellenreiter/gui/gui.pro2
-rw-r--r--noncore/net/wellenreiter/gui/mainwindow.cpp36
-rw-r--r--noncore/net/wellenreiter/gui/mainwindow.h1
-rw-r--r--noncore/net/wellenreiter/gui/scanlist.cpp130
-rw-r--r--noncore/net/wellenreiter/gui/scanlist.h77
-rw-r--r--noncore/net/wellenreiter/gui/scanlistitem.cpp121
-rw-r--r--noncore/net/wellenreiter/gui/scanlistitem.h83
-rw-r--r--noncore/net/wellenreiter/gui/wellenreiter.cpp8
11 files changed, 578 insertions, 245 deletions
diff --git a/noncore/net/wellenreiter/cornucopia/README b/noncore/net/wellenreiter/cornucopia/README
index 36a6954..486dc67 100644
--- a/noncore/net/wellenreiter/cornucopia/README
+++ b/noncore/net/wellenreiter/cornucopia/README
@@ -1,3 +1,124 @@
1--------------------------------------------------------------- 1/********************************************************************
2Dies ist ein Testballon für opielibs1.2 - Codename: Cornucopia 2/* This is an overview of the opielibs 1.2 project
3--------------------------------------------------------------- 3/********************************************************************/
4
5 Origin: opielibs is about creating classes to
6 * optimize Qt classes for the embedded environment
7 * provide sophisticated abstractions for developers
8 * provide complete documentation and working examples
9 * provide end users with a common look and feel
10 * reduce memory footprint through sharing code
11 * reduce possible bugs through reusing tested code
12
13--------------------------------------------------------
141. General Overview
15--------------------------------------------------------
16
17Separation into the following libraries:
18 - libopiecore
19 - libopieui
20 - libopiepim
21 - libopienet
22
231.1 Contents of libopiecore [ opiecore ]
24--------------------------------------------------------
25
26 - oprocctrl
27 - oprocess
28 - odevice
29 - odevicebutton
30
31 - oconfig
32 - oconfiggroupsaver
33 - ocompletionbase
34 - ocompletion
35 - ocomptreenodelist
36 - ocomptreenode
37 - ocompletionwrapper
38 - oglobal
39 - oglobalsettings
40 - osortableitem
41 - osortablevaluelist
42
431.2 Contents of libopieui [ opieui ]
44--------------------------------------------------------
45
46 - oapplication
47
48 - ofiledialog
49 - colordialog
50 - oclickablelabel
51 - ocolorbutton
52 - colorpopupmenu
53 - otabinfo
54 - otabbar
55 - otabwidget
56 - ofontmenu
57 - ofontselector
58 - ofileview
59 - oticker
60
61 - olistview
62 - olistviewitem
63 - oversatileview
64 - oversatileviewitem
65 - ocompletionbox
66 - olineedit
67 - ocombobox
68 - ohistorycombo
69
70 - omessagebox
71 - odialogbase
72
73 - todayconfigwidget (rather into opiepim?)
74 - orecurrancewidget (rather into opiepim?)
75 - otimepicker (rather into opiepim?)
76
771.3 Contents of libopiepim [ opiepim ]
78--------------------------------------------------------
79
80 - ocheckitem
81 - todoevent
82 - todoresource
83 - todayplugininterface
84 - todovcalresource
85
861.4 Contents of libopiedb [ opiedb ]
87--------------------------------------------------------
88
89 - tododb
90 - xmltree
91
921.5 Contents of libopienet [ opienet ]
93--------------------------------------------------------
94
95 <libmail stuff>
96 <libbend stuff>
97 <libftp stuff>
98
99--------------------------------------------------------
1002.0 Feature Description
101--------------------------------------------------------
102
1032.1 libopiecore
104
105...
106
1072.2 libopieui
108
109...
110
1112.2.x OListView, OListViewItem, OListViewFactory
112
113...
114
1152.3 libopiepim
116
117...
118
1192.4 libopiedb
120
121...
122
1232.5 libopienet
124
diff --git a/noncore/net/wellenreiter/cornucopia/olistview.cpp b/noncore/net/wellenreiter/cornucopia/olistview.cpp
index 8bc59de..f2d3730 100644
--- a/noncore/net/wellenreiter/cornucopia/olistview.cpp
+++ b/noncore/net/wellenreiter/cornucopia/olistview.cpp
@@ -123,6 +123,82 @@ void OListView::setColumnSeparator( const QPen& p )
123 repaint(); 123 repaint();
124} 124}
125 125
126#ifndef QT_NO_DATASTREAM
127void OListView::serializeTo( QDataStream& s ) const
128{
129 #warning Caution... the binary format is still under construction...
130 qDebug( "storing OListView..." );
131
132 // store number of columns and the labels
133 s << columns();
134 for ( int i = 0; i < columns(); ++i )
135 s << columnText( i );
136
137 // calculate the number of top-level items to serialize
138 int items = 0;
139 QListViewItem* item = firstChild();
140 while ( item )
141 {
142 item = item->nextSibling();
143 items++;
144 }
145
146 // store number of items and the items itself
147 s << items;
148 item = firstChild();
149 for ( int i = 0; i < items; ++i )
150 {
151 s << *static_cast<OListViewItem*>( item );
152 item = item->nextSibling();
153 }
154
155 qDebug( "OListview stored." );
156}
157
158void OListView::serializeFrom( QDataStream& s )
159{
160 #warning Caution... the binary format is still under construction...
161 qDebug( "loading OListView..." );
162
163 int cols;
164 s >> cols;
165 qDebug( "read number of columns = %d", cols );
166
167 while ( columns() < cols ) addColumn( QString::null );
168
169 for ( int i = 0; i < cols; ++i )
170 {
171 QString coltext;
172 s >> coltext;
173 qDebug( "read text '%s' for column %d", (const char*) coltext, i );
174 setColumnText( i, coltext );
175 }
176
177 int items;
178 s >> items;
179 qDebug( "read number of items = %d", items );
180
181 for ( int i = 0; i < items; ++i )
182 {
183 OListViewItem* item = new OListViewItem( this );
184 s >> *item;
185 }
186
187 qDebug( "OListView loaded." );
188
189}
190
191QDataStream& operator<<( QDataStream& s, const OListView& lv )
192{
193 lv.serializeTo( s );
194}
195
196QDataStream& operator>>( QDataStream& s, OListView& lv )
197{
198 lv.serializeFrom( s );
199}
200#endif // QT_NO_DATASTREAM
201
126//****************************** OListViewItem *********************************************************************** 202//****************************** OListViewItem ***********************************************************************
127 203
128OListViewItem::OListViewItem(QListView *parent) 204OListViewItem::OListViewItem(QListView *parent)
@@ -245,18 +321,87 @@ void OListViewItem::paintCell(QPainter *p, const QColorGroup &cg, int column, in
245 const QPixmap *pm = listView()->viewport()->backgroundPixmap(); 321 const QPixmap *pm = listView()->viewport()->backgroundPixmap();
246 if (pm && !pm->isNull()) 322 if (pm && !pm->isNull())
247 { 323 {
248 _cg.setBrush(QColorGroup::Base, QBrush(backgroundColor(), *pm)); 324 _cg.setBrush( QColorGroup::Base, QBrush(backgroundColor(), *pm) );
249 p->setBrushOrigin( -listView()->contentsX(), -listView()->contentsY() ); 325 p->setBrushOrigin( -listView()->contentsX(), -listView()->contentsY() );
250 } 326 }
251 else if ( isAlternate() ) 327 else if ( isAlternate() )
252 { 328 {
253 _cg.setColor( QColorGroup::Base, static_cast<OListView*>( listView() )->alternateBackground() ); 329 _cg.setColor( QColorGroup::Base, static_cast<OListView*>( listView() )->alternateBackground() );
254 } 330 }
255 QListViewItem::paintCell(p, _cg, column, width, alignment); 331 QListViewItem::paintCell( p, _cg, column, width, alignment );
256 332
257 //FIXME: Use styling here? 333 //FIXME: Use styling here!
258 334
259 const QPen& pen = static_cast<OListView*>( listView() )->columnSeparator(); 335 const QPen& pen = static_cast<OListView*>( listView() )->columnSeparator();
260 p->setPen( pen ); 336 p->setPen( pen );
261 p->drawLine( width-1, 0, width-1, height() ); 337 p->drawLine( width-1, 0, width-1, height() );
262} 338}
339
340#ifndef QT_NO_DATASTREAM
341void OListViewItem::serializeTo( QDataStream& s ) const
342{
343 #warning Caution... the binary format is still under construction...
344 qDebug( "storing OListViewItem..." );
345
346 // store item text
347 for ( int i = 0; i < listView()->columns(); ++i )
348 {
349 s << text( i );
350 }
351
352 // calculate the number of children to serialize
353 int items = 0;
354 QListViewItem* item = firstChild();
355 while ( item )
356 {
357 item = item->nextSibling();
358 items++;
359 }
360
361 // store number of items and the items itself
362 s << items;
363 item = firstChild();
364 for ( int i = 0; i < items; ++i )
365 {
366 s << *static_cast<OListViewItem*>( item );
367 item = item->nextSibling();
368 }
369
370 qDebug( "OListviewItem stored." );
371}
372void OListViewItem::serializeFrom( QDataStream& s )
373{
374 #warning Caution... the binary format is still under construction...
375 qDebug( "loading OListViewItem..." );
376
377 for ( int i = 0; i < listView()->columns(); ++i )
378 {
379 QString coltext;
380 s >> coltext;
381 qDebug( "read text '%s' for column %d", (const char*) coltext, i );
382 setText( i, coltext );
383 }
384
385 int items;
386 s >> items;
387 qDebug( "read number of items = %d", items );
388
389 for ( int i = 0; i < items; ++i )
390 {
391 OListViewItem* item = new OListViewItem( this );
392 s >> (*item);
393 }
394
395 qDebug( "OListViewItem loaded." );
396}
397
398QDataStream& operator<<( QDataStream& s, const OListViewItem& lvi )
399{
400 lvi.serializeTo( s );
401}
402
403QDataStream& operator>>( QDataStream& s, OListViewItem& lvi )
404{
405 lvi.serializeFrom( s );
406}
407#endif // QT_NO_DATASTREAM
diff --git a/noncore/net/wellenreiter/cornucopia/olistview.h b/noncore/net/wellenreiter/cornucopia/olistview.h
index 4b9e4b0..9df5500 100644
--- a/noncore/net/wellenreiter/cornucopia/olistview.h
+++ b/noncore/net/wellenreiter/cornucopia/olistview.h
@@ -33,14 +33,17 @@
33#ifndef OLISTVIEW_H 33#ifndef OLISTVIEW_H
34#define OLISTVIEW_H 34#define OLISTVIEW_H
35 35
36#include <qlistview.h>
37#include <qcolor.h> 36#include <qcolor.h>
37#include <qlistview.h>
38#include <qpen.h> 38#include <qpen.h>
39#include <qdatastream.h>
40
41class OListViewFactory;
39 42
40/** 43/**
41 * A @ref QListView variant featuring visual enhancements 44 * A @ref QListView variant featuring visual and functional enhancements
42 * like an alternate background for odd rows and an autostretch 45 * like an alternate background for odd rows, an autostretch mode
43 * mode for the width of the widget. 46 * for the width of the widget ( >= Qt 3 only ) and persistence capabilities.
44 * 47 *
45 * @author Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de> 48 * @author Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de>
46 * @short OListView list/tree widget. 49 * @short OListView list/tree widget.
@@ -112,13 +115,51 @@
112 */ 115 */
113 const QPen& columnSeparator() const; 116 const QPen& columnSeparator() const;
114 117
118 #ifndef QT_NO_DATASTREAM
119 /**
120 * serialize this object to a @ref QDataStream
121 * @param s the stream used to serialize this object.
122 */
123 virtual void serializeTo( QDataStream& s ) const;
124
125 /**
126 * serialize this object from a @ref QDataStream
127 * @param s the stream used to serialize this object.
128 */
129 virtual void serializeFrom( QDataStream& s );
130 #endif
131
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
115 private: 141 private:
116 QColor m_alternateBackground; 142 QColor m_alternateBackground;
117 bool m_fullWidth; 143 bool m_fullWidth;
118 QPen m_columnSeparator; 144 QPen m_columnSeparator;
119 145 #ifndef QT_NO_XML
146 //OListViewFactory* m_Factory;
147 #endif
120}; 148};
121 149
150#ifndef QT_NO_DATASTREAM
151/**
152 * \relates QListView
153 * Writes a listview to the stream and returns a reference to the stream.
154 */
155QDataStream& operator<<( QDataStream& s, const OListView& lv );
156/**
157 * \relates QListView
158 * Reads a listview from the stream and returns a reference to the stream.
159 */
160QDataStream& operator>>( QDataStream& s, OListView& lv );
161#endif // QT_NO_DATASTREAM
162
122//****************************** OListViewItem ****************************************************************** 163//****************************** OListViewItem ******************************************************************
123 164
124class OListViewItem: public QListViewItem 165class OListViewItem: public QListViewItem
@@ -146,23 +187,51 @@ class OListViewItem: public QListViewItem
146 QString = QString::null, QString = QString::null, 187 QString = QString::null, QString = QString::null,
147 QString = QString::null, QString = QString::null, 188 QString = QString::null, QString = QString::null,
148 QString = QString::null, QString = QString::null ); 189 QString = QString::null, QString = QString::null );
149 190
150 OListViewItem( QListViewItem * parent, QListViewItem * after, 191 OListViewItem( QListViewItem * parent, QListViewItem * after,
151 QString, QString = QString::null, 192 QString, QString = QString::null,
152 QString = QString::null, QString = QString::null, 193 QString = QString::null, QString = QString::null,
153 QString = QString::null, QString = QString::null, 194 QString = QString::null, QString = QString::null,
154 QString = QString::null, QString = QString::null ); 195 QString = QString::null, QString = QString::null );
155 196
156 virtual ~OListViewItem(); 197 virtual ~OListViewItem();
157 198
158 const QColor& backgroundColor(); 199 const QColor& backgroundColor();
159 bool isAlternate(); 200 bool isAlternate();
160 void paintCell( QPainter *p, const QColorGroup &cg, int column, int width, int alignment ); 201 void paintCell( QPainter *p, const QColorGroup &cg, int column, int width, int alignment );
161 void init(); 202 void init();
162 203
204 #ifndef QT_NO_DATASTREAM
205 /**
206 * serialize this object to or from a @ref QDataStream
207 * @param s the stream used to serialize this object.
208 */
209 virtual void serializeTo( QDataStream& s ) const;
210
211 /**
212 * serialize this object to or from a @ref QDataStream
213 * @param s the stream used to serialize this object.
214 */
215 virtual void serializeFrom( QDataStream& s );
216 #endif
217
163 private: 218 private:
164 bool m_known; 219 bool m_known;
165 bool m_odd; 220 bool m_odd;
166}; 221};
167 222
168#endif 223#ifndef QT_NO_DATASTREAM
224/**
225 * \relates QListViewItem
226 * Writes a listview item and all subitems recursively to the stream
227 * and returns a reference to the stream.
228 */
229QDataStream& operator<<( QDataStream &s, const OListViewItem& lvi );
230/**
231 * \relates QListViewItem
232 * Reads a listview item from the stream and returns a reference to the stream.
233 */
234QDataStream& operator>>( QDataStream &s, OListViewItem& lvi );
235#endif // QT_NO_DATASTREAM
236
237#endif // OLISTVIEW_H
diff --git a/noncore/net/wellenreiter/gui/gui.pro b/noncore/net/wellenreiter/gui/gui.pro
index 6037661..8861a50 100644
--- a/noncore/net/wellenreiter/gui/gui.pro
+++ b/noncore/net/wellenreiter/gui/gui.pro
@@ -7,7 +7,6 @@ CONFIG = qt warn_on debug
7HEADERS = wellenreiterbase.h \ 7HEADERS = wellenreiterbase.h \
8 mainwindow.h \ 8 mainwindow.h \
9 wellenreiter.h \ 9 wellenreiter.h \
10 scanlistitem.h \
11 scanlist.h \ 10 scanlist.h \
12 logwindow.h \ 11 logwindow.h \
13 hexwindow.h \ 12 hexwindow.h \
@@ -20,7 +19,6 @@ SOURCES = main.cpp \
20 mainwindow.cpp \ 19 mainwindow.cpp \
21 wellenreiterbase.cpp \ 20 wellenreiterbase.cpp \
22 wellenreiter.cpp \ 21 wellenreiter.cpp \
23 scanlistitem.cpp \
24 scanlist.cpp \ 22 scanlist.cpp \
25 logwindow.cpp \ 23 logwindow.cpp \
26 hexwindow.cpp \ 24 hexwindow.cpp \
diff --git a/noncore/net/wellenreiter/gui/mainwindow.cpp b/noncore/net/wellenreiter/gui/mainwindow.cpp
index e388fc5..0ef89d4 100644
--- a/noncore/net/wellenreiter/gui/mainwindow.cpp
+++ b/noncore/net/wellenreiter/gui/mainwindow.cpp
@@ -21,6 +21,7 @@
21#include "scanlist.h" 21#include "scanlist.h"
22 22
23#include <qcombobox.h> 23#include <qcombobox.h>
24#include <qdatastream.h>
24#include <qfile.h> 25#include <qfile.h>
25#include <qiconset.h> 26#include <qiconset.h>
26#include <qmenubar.h> 27#include <qmenubar.h>
@@ -44,6 +45,13 @@ WellenreiterMainWindow::WellenreiterMainWindow( QWidget * parent, const char * n
44 mw->setConfigWindow( cw ); 45 mw->setConfigWindow( cw );
45 setCentralWidget( mw ); 46 setCentralWidget( mw );
46 47
48 // setup application icon
49
50 #ifndef QWS
51 setIcon( Resource::loadPixmap( "wellenreiter/appicon-trans" ) );
52 setIconText( "Wellenreiter/X11" );
53 #endif
54
47 // setup icon sets 55 // setup icon sets
48 56
49 infoIconSet = new QIconSet( Resource::loadPixmap( "wellenreiter/InfoIcon" ) ); 57 infoIconSet = new QIconSet( Resource::loadPixmap( "wellenreiter/InfoIcon" ) );
@@ -99,11 +107,10 @@ WellenreiterMainWindow::WellenreiterMainWindow( QWidget * parent, const char * n
99 107
100 QPopupMenu* fileLoad = new QPopupMenu( mb ); 108 QPopupMenu* fileLoad = new QPopupMenu( mb );
101 fileLoad->insertItem( "&Session", this, SLOT( fileLoadSession() ) ); 109 fileLoad->insertItem( "&Session", this, SLOT( fileLoadSession() ) );
102 fileLoad->insertItem( "&Log", this, SLOT( fileLoadLog() ) ); 110 //fileLoad->insertItem( "&Log", this, SLOT( fileLoadLog() ) );
103 111
104 QPopupMenu* file = new QPopupMenu( mb ); 112 QPopupMenu* file = new QPopupMenu( mb );
105 id = file->insertItem( "&Load", fileLoad ); 113 id = file->insertItem( "&Load", fileLoad );
106 file->setItemEnabled( id, false );
107 file->insertItem( "&Save", fileSave ); 114 file->insertItem( "&Save", fileSave );
108 115
109 QPopupMenu* view = new QPopupMenu( mb ); 116 QPopupMenu* view = new QPopupMenu( mb );
@@ -185,7 +192,7 @@ WellenreiterMainWindow::~WellenreiterMainWindow()
185void WellenreiterMainWindow::demoAddStations() 192void WellenreiterMainWindow::demoAddStations()
186{ 193{
187 mw->netView()->addNewItem( "managed", "Vanille", "00:00:20:EF:A6:43", true, 6, 80 ); 194 mw->netView()->addNewItem( "managed", "Vanille", "00:00:20:EF:A6:43", true, 6, 80 );
188 mw->netView()->addNewItem( "managed", "Vanille", "00:00:1c:EF:A6:23", true, 11, 10 ); 195 mw->netView()->addNewItem( "managed", "Vanille", "00:30:6D:EF:A6:23", true, 11, 10 );
189 mw->netView()->addNewItem( "adhoc", "ELAN", "00:A0:F8:E7:16:22", false, 3, 10 ); 196 mw->netView()->addNewItem( "adhoc", "ELAN", "00:A0:F8:E7:16:22", false, 3, 10 );
190 mw->netView()->addNewItem( "adhoc", "ELAN", "00:AA:01:E7:56:62", false, 3, 15 ); 197 mw->netView()->addNewItem( "adhoc", "ELAN", "00:AA:01:E7:56:62", false, 3, 15 );
191 mw->netView()->addNewItem( "adhoc", "ELAN", "00:B0:8E:E7:56:E2", false, 3, 20 ); 198 mw->netView()->addNewItem( "adhoc", "ELAN", "00:B0:8E:E7:56:E2", false, 3, 20 );
@@ -215,8 +222,8 @@ void WellenreiterMainWindow::fileSaveSession()
215 QFile f( fname ); 222 QFile f( fname );
216 if ( f.open(IO_WriteOnly) ) 223 if ( f.open(IO_WriteOnly) )
217 { 224 {
218 QTextStream t( &f ); 225 QDataStream t( &f );
219 mw->netView()->dump( t ); 226 t << *mw->netView();
220 f.close(); 227 f.close();
221 qDebug( "Saved session to file '%s'", (const char*) fname ); 228 qDebug( "Saved session to file '%s'", (const char*) fname );
222 } 229 }
@@ -226,6 +233,25 @@ void WellenreiterMainWindow::fileSaveSession()
226 } 233 }
227} 234}
228 235
236void WellenreiterMainWindow::fileLoadSession()
237{
238 const QString fname( "/tmp/session.xml" );
239 QFile f( fname );
240
241 if ( f.open(IO_ReadOnly) )
242 {
243 QDataStream t( &f );
244 t >> *mw->netView();
245 f.close();
246 qDebug( "Loaded session from file '%s'", (const char*) fname );
247 }
248 else
249 {
250 qDebug( "Problem loading session from file '%s'", (const char*) fname );
251 }
252
253}
254
229void WellenreiterMainWindow::closeEvent( QCloseEvent* e ) 255void WellenreiterMainWindow::closeEvent( QCloseEvent* e )
230{ 256{
231 if ( mw->isDaemonRunning() ) 257 if ( mw->isDaemonRunning() )
diff --git a/noncore/net/wellenreiter/gui/mainwindow.h b/noncore/net/wellenreiter/gui/mainwindow.h
index 8bfccf3..59f259d 100644
--- a/noncore/net/wellenreiter/gui/mainwindow.h
+++ b/noncore/net/wellenreiter/gui/mainwindow.h
@@ -51,6 +51,7 @@ class WellenreiterMainWindow: public QMainWindow
51 void demoAddStations(); 51 void demoAddStations();
52 void fileSaveLog(); 52 void fileSaveLog();
53 void fileSaveSession(); 53 void fileSaveSession();
54 void fileLoadSession();
54}; 55};
55 56
56#endif 57#endif
diff --git a/noncore/net/wellenreiter/gui/scanlist.cpp b/noncore/net/wellenreiter/gui/scanlist.cpp
index cdc2c48..58a04fb 100644
--- a/noncore/net/wellenreiter/gui/scanlist.cpp
+++ b/noncore/net/wellenreiter/gui/scanlist.cpp
@@ -14,12 +14,10 @@
14**********************************************************************/ 14**********************************************************************/
15 15
16#include "scanlist.h" 16#include "scanlist.h"
17#include "scanlistitem.h"
18 17
19#include <assert.h> 18#include <assert.h>
20
21#include "manufacturers.h" 19#include "manufacturers.h"
22 20#include <qdatetime.h>
23#include <qtextstream.h> 21#include <qtextstream.h>
24 22
25MScanListView::MScanListView( QWidget* parent, const char* name ) 23MScanListView::MScanListView( QWidget* parent, const char* name )
@@ -50,11 +48,23 @@ MScanListView::MScanListView( QWidget* parent, const char* name )
50 setRootIsDecorated( true ); 48 setRootIsDecorated( true );
51 setAllColumnsShowFocus( true ); 49 setAllColumnsShowFocus( true );
52}; 50};
53 51
54MScanListView::~MScanListView() 52MScanListView::~MScanListView()
55{ 53{
56}; 54};
57 55
56void MScanListView::serializeTo( QDataStream& s) const
57{
58 qDebug( "serializing MScanListView" );
59 OListView::serializeTo( s );
60}
61
62void MScanListView::serializeFrom( QDataStream& s)
63{
64 qDebug( "serializing MScanListView" );
65 OListView::serializeFrom( s );
66}
67
58void MScanListView::setManufacturerDB( ManufacturerDB* manufacturerdb ) 68void MScanListView::setManufacturerDB( ManufacturerDB* manufacturerdb )
59{ 69{
60 _manufacturerdb = manufacturerdb; 70 _manufacturerdb = manufacturerdb;
@@ -69,9 +79,9 @@ void MScanListView::addNewItem( QString type, QString essid, QString macaddr, bo
69 (const char*) essid, 79 (const char*) essid,
70 (const char*) macaddr, 80 (const char*) macaddr,
71 channel ); 81 channel );
72 82
73 // search, if we already have seen this net 83 // search, if we already have seen this net
74 84
75 QString s; 85 QString s;
76 MScanListItem* network; 86 MScanListItem* network;
77 MScanListItem* item = static_cast<MScanListItem*> ( firstChild() ); 87 MScanListItem* item = static_cast<MScanListItem*> ( firstChild() );
@@ -98,9 +108,9 @@ void MScanListView::addNewItem( QString type, QString essid, QString macaddr, bo
98 else if ( pixmap == ani4 ) 108 else if ( pixmap == ani4 )
99 nextpixmap = ani1; 109 nextpixmap = ani1;
100 item->setPixmap( 0, *nextpixmap ); */ 110 item->setPixmap( 0, *nextpixmap ); */
101 111
102 //qDebug( "current pixmap %d, next %d", pixmap, nextpixmap ); 112 //qDebug( "current pixmap %d, next %d", pixmap, nextpixmap );
103 113
104 // we have already seen this net, check all childs if MAC exists 114 // we have already seen this net, check all childs if MAC exists
105 115
106 network = item; 116 network = item;
@@ -113,7 +123,7 @@ void MScanListView::addNewItem( QString type, QString essid, QString macaddr, bo
113 qDebug( "subitemtext: %s", (const char*) item->text( 2 ) ); 123 qDebug( "subitemtext: %s", (const char*) item->text( 2 ) );
114 item = static_cast<MScanListItem*> ( item->itemBelow() ); 124 item = static_cast<MScanListItem*> ( item->itemBelow() );
115 } 125 }
116 126
117 if ( item ) 127 if ( item )
118 { 128 {
119 // we have already seen this item, it's a dupe 129 // we have already seen this item, it's a dupe
@@ -153,15 +163,101 @@ void MScanListView::addNewItem( QString type, QString essid, QString macaddr, bo
153 163
154} 164}
155 165
156void MScanListView::dump( QTextStream& t ) const 166#ifdef QWS
167#include <qpe/resource.h>
168#else
169#include "resource.h"
170#endif
171
172const int col_type = 0;
173const int col_essid = 0;
174const int col_sig = 1;
175const int col_ap = 2;
176const int col_channel = 3;
177const int col_wep = 4;
178const int col_traffic = 5;
179const int col_manuf = 6;
180const int col_firstseen = 7;
181const int col_lastseen = 8;
182
183MScanListItem::MScanListItem( QListView* parent, QString type, QString essid, QString macaddr,
184 bool wep, int channel, int signal )
185 :OListViewItem( parent, essid, QString::null, macaddr, QString::null, QString::null ),
186 _type( type ), _essid( essid ), _macaddr( macaddr ), _wep( wep ),
187 _channel( channel ), _signal( signal ), _beacons( 0 )
157{ 188{
158 qDebug( "dumping scanlist..." ); 189 qDebug( "creating scanlist item" );
190 decorateItem( type, essid, macaddr, wep, channel, signal );
191}
159 192
160 QListViewItemIterator it( const_cast<MScanListView*>( this ) ); 193MScanListItem::MScanListItem( QListViewItem* parent, QString type, QString essid, QString macaddr,
161 for ( ; it.current(); ++it ) 194 bool wep, int channel, int signal )
162 { 195 :OListViewItem( parent, essid, QString::null, macaddr, QString::null, QString::null )
163 static_cast<MScanListItem*>( it.current() )->dump( t ); 196{
164 } 197 qDebug( "creating scanlist item" );
198 decorateItem( type, essid, macaddr, wep, channel, signal );
199}
165 200
166 qDebug( "dump finished." ); 201void MScanListItem::serializeTo( QDataStream& s ) const
202{
203 OListViewItem::serializeTo( s );
204}
205
206void MScanListItem::serializeFrom( QDataStream& s )
207{
208 OListViewItem::serializeFrom( s );
167} 209}
210
211void MScanListItem::decorateItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal )
212{
213 qDebug( "decorating scanlist item %s / %s / %s [%d]",
214 (const char*) type,
215 (const char*) essid,
216 (const char*) macaddr,
217 channel );
218
219 // set icon for managed or adhoc mode
220 QString name;
221 name.sprintf( "wellenreiter/%s", (const char*) type );
222 setPixmap( col_type, Resource::loadPixmap( name ) );
223
224 // set icon for wep (wireless encryption protocol)
225 if ( wep )
226 setPixmap( col_wep, Resource::loadPixmap( "wellenreiter/cracked" ) ); //FIXME: rename the pixmap!
227
228 // set channel and signal text
229
230 if ( signal != -1 )
231 setText( col_sig, QString::number( signal ) );
232 if ( channel != -1 )
233 setText( col_channel, QString::number( channel ) );
234
235 setText( col_firstseen, QTime::currentTime().toString() );
236 //setText( col_lastseen, QTime::currentTime().toString() );
237
238 listView()->triggerUpdate();
239
240 this->type = type;
241 _type = type;
242 _essid = essid;
243 _macaddr = macaddr;
244 _channel = channel;
245 _beacons = 0;
246 _signal = 0;
247}
248
249void MScanListItem::setManufacturer( const QString& manufacturer )
250{
251 setText( col_manuf, manufacturer );
252}
253
254void MScanListItem::receivedBeacon()
255{
256 _beacons++;
257 #ifdef DEBUG
258 qDebug( "MScanListItem %s: received beacon #%d", (const char*) _macaddr, _beacons );
259 #endif
260 setText( col_sig, QString::number( _beacons ) );
261 setText( col_lastseen, QTime::currentTime().toString() );
262}
263
diff --git a/noncore/net/wellenreiter/gui/scanlist.h b/noncore/net/wellenreiter/gui/scanlist.h
index f06f251..66c701b 100644
--- a/noncore/net/wellenreiter/gui/scanlist.h
+++ b/noncore/net/wellenreiter/gui/scanlist.h
@@ -32,15 +32,88 @@ class MScanListView: public OListView
32 virtual ~MScanListView(); 32 virtual ~MScanListView();
33 33
34 void setManufacturerDB( ManufacturerDB* manufacturerdb ); 34 void setManufacturerDB( ManufacturerDB* manufacturerdb );
35 void dump( QTextStream& t ) const; 35
36 virtual void serializeTo( QDataStream& s ) const;
37 virtual void serializeFrom( QDataStream& s );
36 38
37 public slots: 39 public slots:
38 void addNewItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal ); 40 void addNewItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal );
39 41
40 private: 42 private:
41 ManufacturerDB* _manufacturerdb; 43 ManufacturerDB* _manufacturerdb;
42 44
43}; 45};
44 46
47//****************************** MScanListItem ****************************************************************
48
49class MScanListItem: public OListViewItem
50{
51 public:
52 MScanListItem::MScanListItem( QListView* parent,
53 QString type,
54 QString essid,
55 QString macaddr,
56 bool wep,
57 int channel,
58 int signal );
59
60 MScanListItem::MScanListItem( QListViewItem* parent,
61 QString type,
62 QString essid,
63 QString macaddr,
64 bool wep,
65 int channel,
66 int signal );
67
68
69 protected:
70 virtual void decorateItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal );
71
72 public:
73 QString type;
74
75 public:
76 //const QString& type() { return _type; };
77 const QString& essid() { return _essid; };
78 const QString& macaddr() { return _macaddr; };
79 bool wep() { return _wep; };
80 int channel() { return _channel; };
81 int signal() { return _signal; };
82 int beacons() { return _beacons; };
83
84 void setSignal( int signal ) { /* TODO */ };
85 void receivedBeacon();
86
87 void setManufacturer( const QString& manufacturer );
88
89 virtual void serializeTo( QDataStream& s ) const;
90 virtual void serializeFrom( QDataStream& s );
91
92 private:
93 QString _type;
94 QString _essid;
95 QString _macaddr;
96 bool _wep;
97 int _channel;
98 int _signal;
99 int _beacons;
100
101};
102
103//****************************** MScanListViewFactory ****************************************************************
104
105/*
106
107class MScanListViewFactory : public OListViewFactory
108{
109public:
110 virtual QListView* listViewFactory();
111 virtual QListViewItem* listViewItemFactory( QListView* lv );
112 virtual QListViewItem* listViewItemFactory( QListViewItem* lvi );
113 virtual void setColumnText( int depth, QListViewItem* lvi, int column, const QString& text );
114 virtual void setCustomData( int depth, QListViewItem* lvi, const QString& text );
115}
116*/
117
45#endif 118#endif
46 119
diff --git a/noncore/net/wellenreiter/gui/scanlistitem.cpp b/noncore/net/wellenreiter/gui/scanlistitem.cpp
deleted file mode 100644
index 4aecd2b..0000000
--- a/noncore/net/wellenreiter/gui/scanlistitem.cpp
+++ b/dev/null
@@ -1,121 +0,0 @@
1/**********************************************************************
2** Copyright (C) 2002 Michael 'Mickey' Lauer. All rights reserved.
3**
4** This file is part of Opie Environment.
5**
6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file.
10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13**
14**********************************************************************/
15
16#include "scanlistitem.h"
17#include <assert.h>
18#include <qdatetime.h>
19#include <qpixmap.h>
20
21#ifdef QWS
22#include <qpe/resource.h>
23#else
24#include "resource.h"
25#endif
26
27const int col_type = 0;
28const int col_essid = 0;
29const int col_sig = 1;
30const int col_ap = 2;
31const int col_channel = 3;
32const int col_wep = 4;
33const int col_traffic = 5;
34const int col_manuf = 6;
35const int col_firstseen = 7;
36const int col_lastseen = 8;
37
38MScanListItem::MScanListItem( QListView* parent, QString type, QString essid, QString macaddr,
39 bool wep, int channel, int signal )
40 :OListViewItem( parent, essid, QString::null, macaddr, QString::null, QString::null ),
41 _type( type ), _essid( essid ), _macaddr( macaddr ), _wep( wep ),
42 _channel( channel ), _signal( signal ), _beacons( 0 )
43{
44 qDebug( "creating scanlist item" );
45 decorateItem( type, essid, macaddr, wep, channel, signal );
46}
47
48MScanListItem::MScanListItem( QListViewItem* parent, QString type, QString essid, QString macaddr,
49 bool wep, int channel, int signal )
50 :OListViewItem( parent, essid, QString::null, macaddr, QString::null, QString::null )
51{
52 qDebug( "creating scanlist item" );
53 decorateItem( type, essid, macaddr, wep, channel, signal );
54}
55
56void MScanListItem::decorateItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal )
57{
58 qDebug( "decorating scanlist item %s / %s / %s [%d]",
59 (const char*) type,
60 (const char*) essid,
61 (const char*) macaddr,
62 channel );
63
64 // set icon for managed or adhoc mode
65 QString name;
66 name.sprintf( "wellenreiter/%s", (const char*) type );
67 setPixmap( col_type, Resource::loadPixmap( name ) );
68
69 // set icon for wep (wireless encryption protocol)
70 if ( wep )
71 setPixmap( col_wep, Resource::loadPixmap( "wellenreiter/cracked" ) ); //FIXME: rename the pixmap!
72
73 // set channel and signal text
74
75 if ( signal != -1 )
76 setText( col_sig, QString::number( signal ) );
77 if ( channel != -1 )
78 setText( col_channel, QString::number( channel ) );
79
80 setText( col_firstseen, QTime::currentTime().toString() );
81 //setText( col_lastseen, QTime::currentTime().toString() );
82
83 listView()->triggerUpdate();
84
85 this->type = type;
86 _type = type;
87 _essid = essid;
88 _macaddr = macaddr;
89 _channel = channel;
90 _beacons = 0;
91 _signal = 0;
92}
93
94void MScanListItem::setManufacturer( const QString& manufacturer )
95{
96 setText( col_manuf, manufacturer );
97}
98
99void MScanListItem::receivedBeacon()
100{
101 _beacons++;
102 #ifdef DEBUG
103 qDebug( "MScanListItem %s: received beacon #%d", (const char*) _macaddr, _beacons );
104 #endif
105 setText( col_sig, QString::number( _beacons ) );
106 setText( col_lastseen, QTime::currentTime().toString() );
107}
108
109void MScanListItem::dump( QTextStream& t ) const
110{
111 qDebug( "dumping scanlistitem at <%d>", this );
112 t << "<ITEM type=" << _type;
113 t << " ESSID='" << _essid;
114 t << "' MAC=" << _macaddr;
115 t << " WEP=" << _wep;
116 t << " CHANNEL=" << _channel;
117 t << " SIGNAL=" << _signal;
118 t << " BEACONS=" << _beacons;
119 t << ">\n";
120}
121
diff --git a/noncore/net/wellenreiter/gui/scanlistitem.h b/noncore/net/wellenreiter/gui/scanlistitem.h
deleted file mode 100644
index 5f6ae40..0000000
--- a/noncore/net/wellenreiter/gui/scanlistitem.h
+++ b/dev/null
@@ -1,83 +0,0 @@
1/**********************************************************************
2** Copyright (C) 2002 Michael 'Mickey' Lauer. All rights reserved.
3**
4** This file is part of Opie Environment.
5**
6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file.
10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13**
14**********************************************************************/
15
16#ifndef SCANLISTITEM_H
17#define SCANLISTITEM_H
18
19#include <cornucopia/olistview.h>
20
21#include <qtextstream.h>
22
23class QString;
24
25class MScanListItem: public OListViewItem
26{
27 public:
28
29 MScanListItem::MScanListItem( QListView* parent,
30 QString type,
31 QString essid,
32 QString macaddr,
33 bool wep,
34 int channel,
35 int signal );
36
37 MScanListItem::MScanListItem( QListViewItem* parent,
38 QString type,
39 QString essid,
40 QString macaddr,
41 bool wep,
42 int channel,
43 int signal );
44
45
46 protected:
47
48 virtual void decorateItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal );
49
50 public:
51
52 QString type;
53
54 public:
55
56 //const QString& type() { return _type; };
57 const QString& essid() { return _essid; };
58 const QString& macaddr() { return _macaddr; };
59 bool wep() { return _wep; };
60 int channel() { return _channel; };
61 int signal() { return _signal; };
62 int beacons() { return _beacons; };
63
64 void setSignal( int signal ) { /* TODO */ };
65 void receivedBeacon();
66
67 void setManufacturer( const QString& manufacturer );
68
69 void dump( QTextStream& t ) const;
70
71 private:
72 QString _type;
73 QString _essid;
74 QString _macaddr;
75 bool _wep;
76 int _channel;
77 int _signal;
78 int _beacons;
79
80};
81
82#endif
83
diff --git a/noncore/net/wellenreiter/gui/wellenreiter.cpp b/noncore/net/wellenreiter/gui/wellenreiter.cpp
index 1ccf971..dd8a365 100644
--- a/noncore/net/wellenreiter/gui/wellenreiter.cpp
+++ b/noncore/net/wellenreiter/gui/wellenreiter.cpp
@@ -123,11 +123,19 @@ Wellenreiter::~Wellenreiter()
123 // no need to delete child widgets, Qt does it all for us 123 // no need to delete child widgets, Qt does it all for us
124 124
125 delete manufacturerdb; 125 delete manufacturerdb;
126
127 // X11-only - Hmm... Closing the socket here segfaults on exit,
128 // Maybe because the notifier still has a handle to it!? Seems not to
129 // occur on Qt/Embedded
130
131 #ifdef QWS
126 if ( daemon_fd != -1 ) 132 if ( daemon_fd != -1 )
127 { 133 {
128 qDebug( "closing comm socket" ); 134 qDebug( "closing comm socket" );
129 close( daemon_fd ); 135 close( daemon_fd );
130 } 136 }
137 #endif
138
131} 139}
132 140
133void Wellenreiter::setConfigWindow( WellenreiterConfigWindow* cw ) 141void Wellenreiter::setConfigWindow( WellenreiterConfigWindow* cw )