author | mickeyl <mickeyl> | 2003-03-02 17:35:53 (UTC) |
---|---|---|
committer | mickeyl <mickeyl> | 2003-03-02 17:35:53 (UTC) |
commit | b3b0d6ec136e550029b9cae7fb714d47071ea5b4 (patch) (unidiff) | |
tree | 9cc1fb741bb548c90915487572c49a1ae48e33eb | |
parent | d0e64d0c7961de1c3ecb886ae76c6701f268d767 (diff) | |
download | opie-b3b0d6ec136e550029b9cae7fb714d47071ea5b4.zip opie-b3b0d6ec136e550029b9cae7fb714d47071ea5b4.tar.gz opie-b3b0d6ec136e550029b9cae7fb714d47071ea5b4.tar.bz2 |
add child item factory to allow subclasses adding custom data items
-rw-r--r-- | noncore/net/wellenreiter/cornucopia/olistview.cpp | 14 | ||||
-rw-r--r-- | noncore/net/wellenreiter/cornucopia/olistview.h | 26 | ||||
-rw-r--r-- | noncore/net/wellenreiter/gui/scanlist.cpp | 33 | ||||
-rw-r--r-- | noncore/net/wellenreiter/gui/scanlist.h | 26 |
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 | |||
@@ -124,4 +124,9 @@ void OListView::setColumnSeparator( const QPen& p ) | |||
124 | } | 124 | } |
125 | 125 | ||
126 | OListViewItem* OListView::childFactory() | ||
127 | { | ||
128 | return new OListViewItem( this ); | ||
129 | } | ||
130 | |||
126 | #ifndef QT_NO_DATASTREAM | 131 | #ifndef QT_NO_DATASTREAM |
127 | void OListView::serializeTo( QDataStream& s ) const | 132 | void OListView::serializeTo( QDataStream& s ) const |
@@ -181,5 +186,5 @@ void OListView::serializeFrom( QDataStream& s ) | |||
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 | } |
@@ -338,4 +343,9 @@ void OListViewItem::paintCell(QPainter *p, const QColorGroup &cg, int column, in | |||
338 | } | 343 | } |
339 | 344 | ||
345 | OListViewItem* OListViewItem::childFactory() | ||
346 | { | ||
347 | return new OListViewItem( this ); | ||
348 | } | ||
349 | |||
340 | #ifndef QT_NO_DATASTREAM | 350 | #ifndef QT_NO_DATASTREAM |
341 | void OListViewItem::serializeTo( QDataStream& s ) const | 351 | void OListViewItem::serializeTo( QDataStream& s ) const |
@@ -389,5 +399,5 @@ void OListViewItem::serializeFrom( QDataStream& s ) | |||
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 | } |
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 | |||
@@ -39,5 +39,5 @@ | |||
39 | #include <qdatastream.h> | 39 | #include <qdatastream.h> |
40 | 40 | ||
41 | class OListViewFactory; | 41 | class OListViewItem; |
42 | 42 | ||
43 | /** | 43 | /** |
@@ -116,4 +116,10 @@ class OListViewFactory; | |||
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 | /** |
@@ -130,20 +136,8 @@ class OListViewFactory; | |||
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 | ||
@@ -202,4 +196,10 @@ class OListViewItem: public QListViewItem | |||
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 | /** |
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 | |||
@@ -54,4 +54,9 @@ MScanListView::~MScanListView() | |||
54 | }; | 54 | }; |
55 | 55 | ||
56 | OListViewItem* MScanListView::childFactory() | ||
57 | { | ||
58 | return new MScanListItem( this ); | ||
59 | } | ||
60 | |||
56 | void MScanListView::serializeTo( QDataStream& s) const | 61 | void MScanListView::serializeTo( QDataStream& s) const |
57 | { | 62 | { |
@@ -97,5 +102,5 @@ void MScanListView::addNewItem( QString type, QString essid, QString macaddr, bo | |||
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; |
@@ -113,10 +118,10 @@ void MScanListView::addNewItem( QString type, QString essid, QString macaddr, bo | |||
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 | { |
@@ -199,12 +204,32 @@ MScanListItem::MScanListItem( QListViewItem* parent, QString type, QString essid | |||
199 | } | 204 | } |
200 | 205 | ||
206 | OListViewItem* MScanListItem::childFactory() | ||
207 | { | ||
208 | return new MScanListItem( this ); | ||
209 | } | ||
210 | |||
201 | void MScanListItem::serializeTo( QDataStream& s ) const | 211 | void 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 | ||
206 | void MScanListItem::serializeFrom( QDataStream& s ) | 220 | void 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 | ||
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 | |||
@@ -34,4 +34,5 @@ class MScanListView: public OListView | |||
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 ); |
@@ -51,18 +52,18 @@ class MScanListItem: public OListViewItem | |||
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 | ||
@@ -87,4 +88,5 @@ class MScanListItem: public OListViewItem | |||
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 ); |