summaryrefslogtreecommitdiff
authormickeyl <mickeyl>2003-03-02 17:35:53 (UTC)
committer mickeyl <mickeyl>2003-03-02 17:35:53 (UTC)
commitb3b0d6ec136e550029b9cae7fb714d47071ea5b4 (patch) (unidiff)
tree9cc1fb741bb548c90915487572c49a1ae48e33eb
parentd0e64d0c7961de1c3ecb886ae76c6701f268d767 (diff)
downloadopie-b3b0d6ec136e550029b9cae7fb714d47071ea5b4.zip
opie-b3b0d6ec136e550029b9cae7fb714d47071ea5b4.tar.gz
opie-b3b0d6ec136e550029b9cae7fb714d47071ea5b4.tar.bz2
add child item factory to allow subclasses adding custom data items
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
@@ -123,6 +123,11 @@ void OListView::setColumnSeparator( const QPen& 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{
@@ -180,7 +185,7 @@ void OListView::serializeFrom( QDataStream& s )
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
@@ -337,6 +342,11 @@ void OListViewItem::paintCell(QPainter *p, const QColorGroup &cg, int column, in
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{
@@ -388,7 +398,7 @@ void OListViewItem::serializeFrom( QDataStream& s )
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
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
@@ -38,7 +38,7 @@
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
@@ -115,6 +115,12 @@ class OListViewFactory;
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
@@ -129,22 +135,10 @@ class OListViewFactory;
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
@@ -201,6 +195,12 @@ class OListViewItem: public QListViewItem
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
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
@@ -53,6 +53,11 @@ MScanListView::~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" );
@@ -96,7 +101,7 @@ void MScanListView::addNewItem( QString type, QString essid, QString macaddr, bo
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 )
@@ -112,12 +117,12 @@ void MScanListView::addNewItem( QString type, QString essid, QString macaddr, bo
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 ) );
@@ -198,14 +203,34 @@ MScanListItem::MScanListItem( QListViewItem* parent, QString type, QString essid
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 )
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
@@ -33,6 +33,7 @@ class MScanListView: public OListView
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
@@ -50,20 +51,20 @@ class 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:
@@ -86,6 +87,7 @@ class MScanListItem: public OListViewItem
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