-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 | |||
@@ -102,48 +102,53 @@ void OListView::removeColumn( int index ) | |||
102 | } | 102 | } |
103 | 103 | ||
104 | const QColor& OListView::alternateBackground() const | 104 | const QColor& OListView::alternateBackground() const |
105 | { | 105 | { |
106 | return m_alternateBackground; | 106 | return m_alternateBackground; |
107 | } | 107 | } |
108 | 108 | ||
109 | void OListView::setAlternateBackground( const QColor &c ) | 109 | void OListView::setAlternateBackground( const QColor &c ) |
110 | { | 110 | { |
111 | m_alternateBackground = c; | 111 | m_alternateBackground = c; |
112 | repaint(); | 112 | repaint(); |
113 | } | 113 | } |
114 | 114 | ||
115 | const QPen& OListView::columnSeparator() const | 115 | const QPen& OListView::columnSeparator() const |
116 | { | 116 | { |
117 | return m_columnSeparator; | 117 | return m_columnSeparator; |
118 | } | 118 | } |
119 | 119 | ||
120 | void OListView::setColumnSeparator( const QPen& p ) | 120 | void OListView::setColumnSeparator( const QPen& p ) |
121 | { | 121 | { |
122 | m_columnSeparator = p; | 122 | m_columnSeparator = p; |
123 | repaint(); | 123 | repaint(); |
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 |
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 | ||
191 | QDataStream& operator<<( QDataStream& s, const OListView& lv ) | 196 | QDataStream& operator<<( QDataStream& s, const OListView& lv ) |
192 | { | 197 | { |
193 | lv.serializeTo( s ); | 198 | lv.serializeTo( s ); |
194 | } | 199 | } |
195 | 200 | ||
196 | QDataStream& operator>>( QDataStream& s, OListView& lv ) | 201 | QDataStream& 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 | ||
204 | OListViewItem::OListViewItem(QListView *parent) | 209 | OListViewItem::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 | ||
318 | void OListViewItem::paintCell(QPainter *p, const QColorGroup &cg, int column, int width, int alignment) | 323 | void 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 | ||
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 |
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 | } |
372 | void OListViewItem::serializeFrom( QDataStream& s ) | 382 | void 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 | ||
398 | QDataStream& operator<<( QDataStream& s, const OListViewItem& lvi ) | 408 | QDataStream& operator<<( QDataStream& s, const OListViewItem& lvi ) |
399 | { | 409 | { |
400 | lvi.serializeTo( s ); | 410 | lvi.serializeTo( s ); |
401 | } | 411 | } |
402 | 412 | ||
403 | QDataStream& operator>>( QDataStream& s, OListViewItem& lvi ) | 413 | QDataStream& 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 | ||
41 | class OListViewFactory; | 41 | class 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 | */ |
155 | QDataStream& operator<<( QDataStream& s, const OListView& lv ); | 149 | QDataStream& 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 | */ |
160 | QDataStream& operator>>( QDataStream& s, OListView& lv ); | 154 | QDataStream& operator>>( QDataStream& s, OListView& lv ); |
161 | #endif // QT_NO_DATASTREAM | 155 | #endif // QT_NO_DATASTREAM |
162 | 156 | ||
163 | //****************************** OListViewItem ****************************************************************** | 157 | //****************************** OListViewItem ****************************************************************** |
164 | 158 | ||
165 | class OListViewItem: public QListViewItem | 159 | class 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 | ||
52 | MScanListView::~MScanListView() | 52 | MScanListView::~MScanListView() |
53 | { | 53 | { |
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 | { |
58 | qDebug( "serializing MScanListView" ); | 63 | qDebug( "serializing MScanListView" ); |
59 | OListView::serializeTo( s ); | 64 | OListView::serializeTo( s ); |
60 | } | 65 | } |
61 | 66 | ||
62 | void MScanListView::serializeFrom( QDataStream& s) | 67 | void 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 | ||
68 | void MScanListView::setManufacturerDB( ManufacturerDB* manufacturerdb ) | 73 | void MScanListView::setManufacturerDB( ManufacturerDB* manufacturerdb ) |
69 | { | 74 | { |
70 | _manufacturerdb = manufacturerdb; | 75 | _manufacturerdb = manufacturerdb; |
71 | } | 76 | } |
72 | 77 | ||
73 | void MScanListView::addNewItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal ) | 78 | void 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; | |||
177 | const int col_wep = 4; | 182 | const int col_wep = 4; |
178 | const int col_traffic = 5; | 183 | const int col_traffic = 5; |
179 | const int col_manuf = 6; | 184 | const int col_manuf = 6; |
180 | const int col_firstseen = 7; | 185 | const int col_firstseen = 7; |
181 | const int col_lastseen = 8; | 186 | const int col_lastseen = 8; |
182 | 187 | ||
183 | MScanListItem::MScanListItem( QListView* parent, QString type, QString essid, QString macaddr, | 188 | MScanListItem::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 | ||
193 | MScanListItem::MScanListItem( QListViewItem* parent, QString type, QString essid, QString macaddr, | 198 | MScanListItem::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 | ||
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 | ||
211 | void MScanListItem::decorateItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal ) | 236 | void 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 | ||
23 | class QString; | 23 | class QString; |
24 | class ManufacturerDB; | 24 | class ManufacturerDB; |
25 | 25 | ||
26 | class MScanListView: public OListView | 26 | class 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 | ||
49 | class MScanListItem: public OListViewItem | 50 | 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: |
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 | ||
107 | class MScanListViewFactory : public OListViewFactory | 109 | class MScanListViewFactory : public OListViewFactory |
108 | { | 110 | { |
109 | public: | 111 | public: |
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 ); |