summaryrefslogtreecommitdiff
path: root/libopie2/opieui
authormickeyl <mickeyl>2003-05-01 14:00:37 (UTC)
committer mickeyl <mickeyl>2003-05-01 14:00:37 (UTC)
commit95e533a6ac257d3b95cd8905660008fb7dcd33f1 (patch) (unidiff)
treec671954f59eaa70db2285f9abe49fd8b4512dd12 /libopie2/opieui
parent1d721ddb247e9000e29fba3150e0cce5f59f543e (diff)
downloadopie-95e533a6ac257d3b95cd8905660008fb7dcd33f1.zip
opie-95e533a6ac257d3b95cd8905660008fb7dcd33f1.tar.gz
opie-95e533a6ac257d3b95cd8905660008fb7dcd33f1.tar.bz2
- restructure opieui example directory
- start work on ONamedListViewItem providing a slightly higher level interface
Diffstat (limited to 'libopie2/opieui') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opieui/olistview.cpp109
-rw-r--r--libopie2/opieui/olistview.h177
2 files changed, 235 insertions, 51 deletions
diff --git a/libopie2/opieui/olistview.cpp b/libopie2/opieui/olistview.cpp
index 2b2f09a..8f97cc6 100644
--- a/libopie2/opieui/olistview.cpp
+++ b/libopie2/opieui/olistview.cpp
@@ -220,2 +220,3 @@ OListViewItem::OListViewItem(QListView *parent)
220 220
221
221OListViewItem::OListViewItem(QListViewItem *parent) 222OListViewItem::OListViewItem(QListViewItem *parent)
@@ -226,2 +227,3 @@ OListViewItem::OListViewItem(QListViewItem *parent)
226 227
228
227OListViewItem::OListViewItem(QListView *parent, QListViewItem *after) 229OListViewItem::OListViewItem(QListView *parent, QListViewItem *after)
@@ -232,2 +234,3 @@ OListViewItem::OListViewItem(QListView *parent, QListViewItem *after)
232 234
235
233OListViewItem::OListViewItem(QListViewItem *parent, QListViewItem *after) 236OListViewItem::OListViewItem(QListViewItem *parent, QListViewItem *after)
@@ -238,2 +241,3 @@ OListViewItem::OListViewItem(QListViewItem *parent, QListViewItem *after)
238 241
242
239OListViewItem::OListViewItem(QListView *parent, 243OListViewItem::OListViewItem(QListView *parent,
@@ -246,2 +250,3 @@ OListViewItem::OListViewItem(QListView *parent,
246 250
251
247OListViewItem::OListViewItem(QListViewItem *parent, 252OListViewItem::OListViewItem(QListViewItem *parent,
@@ -254,2 +259,3 @@ OListViewItem::OListViewItem(QListViewItem *parent,
254 259
260
255OListViewItem::OListViewItem(QListView *parent, QListViewItem *after, 261OListViewItem::OListViewItem(QListView *parent, QListViewItem *after,
@@ -262,2 +268,3 @@ OListViewItem::OListViewItem(QListView *parent, QListViewItem *after,
262 268
269
263OListViewItem::OListViewItem(QListViewItem *parent, QListViewItem *after, 270OListViewItem::OListViewItem(QListViewItem *parent, QListViewItem *after,
@@ -270,2 +277,3 @@ OListViewItem::OListViewItem(QListViewItem *parent, QListViewItem *after,
270 277
278
271OListViewItem::~OListViewItem() 279OListViewItem::~OListViewItem()
@@ -274,2 +282,3 @@ OListViewItem::~OListViewItem()
274 282
283
275void OListViewItem::init() 284void OListViewItem::init()
@@ -279,2 +288,3 @@ void OListViewItem::init()
279 288
289
280const QColor &OListViewItem::backgroundColor() 290const QColor &OListViewItem::backgroundColor()
@@ -285,2 +295,3 @@ const QColor &OListViewItem::backgroundColor()
285 295
296
286bool OListViewItem::isAlternate() 297bool OListViewItem::isAlternate()
@@ -328,2 +339,3 @@ bool OListViewItem::isAlternate()
328 339
340
329void OListViewItem::paintCell(QPainter *p, const QColorGroup &cg, int column, int width, int alignment) 341void OListViewItem::paintCell(QPainter *p, const QColorGroup &cg, int column, int width, int alignment)
@@ -350,2 +362,3 @@ void OListViewItem::paintCell(QPainter *p, const QColorGroup &cg, int column, in
350 362
363
351OListViewItem* OListViewItem::childFactory() 364OListViewItem* OListViewItem::childFactory()
@@ -355,2 +368,3 @@ OListViewItem* OListViewItem::childFactory()
355 368
369
356#ifndef QT_NO_DATASTREAM 370#ifndef QT_NO_DATASTREAM
@@ -387,2 +401,4 @@ void OListViewItem::serializeTo( QDataStream& s ) const
387} 401}
402
403
388void OListViewItem::serializeFrom( QDataStream& s ) 404void OListViewItem::serializeFrom( QDataStream& s )
@@ -413,2 +429,3 @@ void OListViewItem::serializeFrom( QDataStream& s )
413 429
430
414QDataStream& operator<<( QDataStream& s, const OListViewItem& lvi ) 431QDataStream& operator<<( QDataStream& s, const OListViewItem& lvi )
@@ -418,2 +435,3 @@ QDataStream& operator<<( QDataStream& s, const OListViewItem& lvi )
418 435
436
419QDataStream& operator>>( QDataStream& s, OListViewItem& lvi ) 437QDataStream& operator>>( QDataStream& s, OListViewItem& lvi )
@@ -423 +441,92 @@ QDataStream& operator>>( QDataStream& s, OListViewItem& lvi )
423#endif // QT_NO_DATASTREAM 441#endif // QT_NO_DATASTREAM
442
443
444/*======================================================================================
445 * ONamedListView
446 *======================================================================================*/
447
448ONamedListView::ONamedListView( QWidget *parent, const char *name )
449 :OListView( parent, name )
450{
451}
452
453
454ONamedListView::~ONamedListView()
455{
456}
457
458
459void ONamedListView::addColumns( const QStringList& columns )
460{
461 for ( QStringList::ConstIterator it = columns.begin(); it != columns.end(); ++it )
462 {
463 qDebug( "adding column %s", (const char*) *it );
464 addColumn( *it );
465 }
466}
467
468
469/*======================================================================================
470 * ONamedListViewItem
471 *======================================================================================*/
472
473ONamedListViewItem::ONamedListViewItem( QListView* parent, const QStringList& texts )
474 :OListViewItem( parent )
475{
476 setText( texts );
477}
478
479
480ONamedListViewItem::ONamedListViewItem( QListViewItem* parent, const QStringList& texts )
481 :OListViewItem( parent )
482{
483 setText( texts );
484}
485
486
487ONamedListViewItem::ONamedListViewItem( QListView* parent, QListViewItem* after, const QStringList& texts )
488 :OListViewItem( parent, after )
489{
490 setText( texts );
491}
492
493
494ONamedListViewItem::ONamedListViewItem( QListViewItem* parent, QListViewItem* after, const QStringList& texts )
495 :OListViewItem( parent, after )
496{
497 setText( texts );
498}
499
500
501ONamedListViewItem::~ONamedListViewItem()
502{
503}
504
505
506void ONamedListViewItem::setText( const QStringList& texts )
507{
508 int col = 0;
509 for ( QStringList::ConstIterator it = texts.begin(); it != texts.end(); ++it )
510 {
511 qDebug( "setting column %d = text %s", col, (const char*) *it );
512 OListViewItem::setText( col++, *it );
513 }
514
515}
516
517
518void ONamedListViewItem::setText( const QString& column, const QString& text )
519{
520 //FIXME: If used excessively, this will slow down performance of updates
521 //FIXME: because of the linear search over all column texts.
522 //FIXME: I will optimize later by using a hash map.
523 for ( int i = 0; i < listView()->columns(); ++i )
524 {
525 if ( listView()->columnText( i ) == column )
526 {
527 OListViewItem::setText( i, text );
528 return;
529 }
530 }
531 qWarning( "ONamedListViewItem::setText(): Warning! Columntext '%s' not found.", (const char*) column );
532}
diff --git a/libopie2/opieui/olistview.h b/libopie2/opieui/olistview.h
index b62e278..99770bf 100644
--- a/libopie2/opieui/olistview.h
+++ b/libopie2/opieui/olistview.h
@@ -40,3 +40,9 @@ class OListViewItem;
40 40
41/*======================================================================================
42 * OListView
43 *======================================================================================*/
44
41/** 45/**
46 * @brief A list/tree widget.
47 *
42 * A @ref QListView variant featuring visual and functional enhancements 48 * A @ref QListView variant featuring visual and functional enhancements
@@ -46,5 +52,4 @@ class OListViewItem;
46 * @author Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de> 52 * @author Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de>
47 * @short OListView list/tree widget.
48 */ 53 */
49 class OListView: public QListView 54class OListView: public QListView
50{ 55{
@@ -54,7 +59,6 @@ class OListViewItem;
54 * 59 *
55 * The parameters @p parent and @p name are handled by 60 * The parameters @a parent and @a name are handled by
56 * @ref QListView, as usual. 61 * @ref QListView, as usual.
57 */ 62 */
58 OListView ( QWidget *parent = 0, const char *name = 0 ); 63 OListView( QWidget* parent = 0, const char* name = 0 );
59
60 /** 64 /**
@@ -63,3 +67,2 @@ class OListViewItem;
63 virtual ~OListView(); 67 virtual ~OListView();
64
65 /** 68 /**
@@ -68,3 +71,2 @@ class OListViewItem;
68 void setFullWidth( bool fullWidth ); 71 void setFullWidth( bool fullWidth );
69
70 /** 72 /**
@@ -73,3 +75,2 @@ class OListViewItem;
73 bool fullWidth() const; 75 bool fullWidth() const;
74
75 /** 76 /**
@@ -78,3 +79,2 @@ class OListViewItem;
78 virtual int addColumn( const QString& label, int width = -1 ); 79 virtual int addColumn( const QString& label, int width = -1 );
79
80 /** 80 /**
@@ -83,3 +83,2 @@ class OListViewItem;
83 virtual int addColumn( const QIconSet& iconset, const QString& label, int width = -1 ); 83 virtual int addColumn( const QIconSet& iconset, const QString& label, int width = -1 );
84
85 /** 84 /**
@@ -88,24 +87,17 @@ class OListViewItem;
88 virtual void removeColumn(int index); 87 virtual void removeColumn(int index);
89
90 /** 88 /**
91 * sets the alternate background background color. 89 * Set the alternate background background @a color.
90 * Set to an invalid color to disable alternate colors.
92 * This only has an effect if the items are OListViewItems 91 * This only has an effect if the items are OListViewItems
93 *
94 * @param c the color to use for every other item. Set to an invalid
95 * color to disable alternate colors.
96 */ 92 */
97 void setAlternateBackground( const QColor &c ); 93 void setAlternateBackground( const QColor& color );
98
99 /** 94 /**
100 * sets the column separator pen. 95 * Sets the column separator @a pen.
101 *
102 * @param p the pen used to draw the column separator.
103 */ 96 */
104 void setColumnSeparator( const QPen &p ); 97 void setColumnSeparator( const QPen& pen );
105 98
106 /** 99 /**
107 * @return the alternate background color 100 * @returns the alternate background color
108 */ 101 */
109 const QColor& alternateBackground() const; 102 const QColor& alternateBackground() const;
110
111 /** 103 /**
@@ -114,19 +106,14 @@ class OListViewItem;
114 const QPen& columnSeparator() const; 106 const QPen& columnSeparator() const;
115
116 /** 107 /**
117 * create a list view item as child of this object 108 * Create a list view item as child of this object
118 * @return the new object 109 * @returns the new object
119 */ 110 */
120 virtual OListViewItem* childFactory(); 111 virtual OListViewItem* childFactory();
121
122#ifndef QT_NO_DATASTREAM 112#ifndef QT_NO_DATASTREAM
123 /** 113 /**
124 * serialize this object to a @ref QDataStream 114 * Serialize this object to @ref QDataStream @a stream
125 * @param s the stream used to serialize this object.
126 */ 115 */
127 virtual void serializeTo( QDataStream& s ) const; 116 virtual void serializeTo( QDataStream& stream ) const;
128
129 /** 117 /**
130 * serialize this object from a @ref QDataStream 118 * Serialize this object from a @ref QDataStream @a stream
131 * @param s the stream used to serialize this object.
132 */ 119 */
@@ -143,14 +130,16 @@ class OListViewItem;
143/** 130/**
144 * \relates QListView 131 * @relates OListView
145 * Writes a listview to the stream and returns a reference to the stream. 132 * Writes @a listview to the @a stream and returns a reference to the stream.
146 */ 133 */
147QDataStream& operator<<( QDataStream& s, const OListView& lv ); 134QDataStream& operator<<( QDataStream& stream, const OListView& listview );
148/** 135/**
149 * \relates QListView 136 * @relates OListView
150 * Reads a listview from the stream and returns a reference to the stream. 137 * Reads @a listview from the @a stream and returns a reference to the stream.
151 */ 138 */
152QDataStream& operator>>( QDataStream& s, OListView& lv ); 139QDataStream& operator>>( QDataStream& stream, OListView& listview );
153#endif // QT_NO_DATASTREAM 140#endif // QT_NO_DATASTREAM
154 141
155//****************************** OListViewItem ****************************************************************** 142/*======================================================================================
143 * OListViewItem
144 *======================================================================================*/
156 145
@@ -159,2 +148,5 @@ class OListViewItem: public QListViewItem
159 public: 148 public:
149 /**
150 * Constructors.
151 */
160 OListViewItem( QListView * parent ); 152 OListViewItem( QListView * parent );
@@ -187,16 +179,29 @@ class OListViewItem: public QListViewItem
187 QString = QString::null, QString = QString::null ); 179 QString = QString::null, QString = QString::null );
188 180 /**
181 * Destructor.
182 */
189 virtual ~OListViewItem(); 183 virtual ~OListViewItem();
190 184 /**
185 * @returns the background color of the list item.
186 */
191 const QColor& backgroundColor(); 187 const QColor& backgroundColor();
188 /**
189 * @returns true, if the item is at an odd position and
190 * thus have to be painted with the alternate background color.
191 */
192 bool isAlternate(); 192 bool isAlternate();
193 /**
194 * @note: Reimplemented for internal purposes - the API is not affected
195 *
196 */
193 void paintCell( QPainter *p, const QColorGroup &cg, int column, int width, int alignment ); 197 void paintCell( QPainter *p, const QColorGroup &cg, int column, int width, int alignment );
198 /**
199 * Perform object initialization.
200 */
194 void init(); 201 void init();
195
196 /** 202 /**
197 * create a list view item as child of this object 203 * create a list view item as child of this object
198 * @return the new object 204 * @returns the new object
199 */ 205 */
200 virtual OListViewItem* childFactory(); 206 virtual OListViewItem* childFactory();
201
202 #ifndef QT_NO_DATASTREAM 207 #ifndef QT_NO_DATASTREAM
@@ -222,14 +227,84 @@ class OListViewItem: public QListViewItem
222/** 227/**
223 * \relates QListViewItem 228 * @relates QListViewItem
224 * Writes a listview item and all subitems recursively to the stream 229 * Writes listview @a item and all subitems recursively to @a stream
225 * and returns a reference to the stream. 230 * and returns a reference to the stream.
226 */ 231 */
227QDataStream& operator<<( QDataStream &s, const OListViewItem& lvi ); 232QDataStream& operator<<( QDataStream& stream, const OListViewItem& item );
228/** 233/**
229 * \relates QListViewItem 234 * @relates QListViewItem
230 * Reads a listview item from the stream and returns a reference to the stream. 235 * Reads listview @a item from @a stream and returns a reference to the stream.
231 */ 236 */
232QDataStream& operator>>( QDataStream &s, OListViewItem& lvi ); 237QDataStream& operator>>( QDataStream& stream, OListViewItem& item );
233#endif // QT_NO_DATASTREAM 238#endif // QT_NO_DATASTREAM
234 239
240/*======================================================================================
241 * ONamedListView
242 *======================================================================================*/
243
244/**
245 * @brief An OListView variant with named columns.
246 *
247 * This class provides a higher-level interface to the columns in an OListView.
248 *
249 * @author Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de>
250 */
251class ONamedListView: public OListView
252{
253 public:
254 /**
255 * Constructor.
256 *
257 * The parameters @a parent and @a name are handled by
258 * @ref OListView, as usual.
259 */
260 ONamedListView( QWidget* parent = 0, const char* name = 0 );
261 /**
262 * Destructor.
263 */
264 virtual ~ONamedListView();
265 /**
266 * Add a number of @a columns to the listview.
267 */
268 virtual void addColumns( const QStringList& columns );
269};
270
271/*======================================================================================
272 * ONamedListViewItem
273 *======================================================================================*/
274
275/**
276 * @brief An OListView variant with named columns.
277 *
278 * This class provides a higher-level interface to the columns in an OListViewItem.
279 *
280 * @author Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de>
281 */
282class ONamedListViewItem: public OListViewItem
283{
284 public:
285 /**
286 * Constructor. Accepts the same parameters as a @ref OListViewItem,
287 * plus a @ref QStringList which holds an arbitrary number of @a texts.
288 */
289 ONamedListViewItem( QListView* parent, const QStringList& texts );
290 ONamedListViewItem( QListViewItem* parent, const QStringList& texts );
291 ONamedListViewItem( QListView* parent, QListViewItem* after, const QStringList& texts );
292 ONamedListViewItem( QListViewItem* parent, QListViewItem* after, const QStringList& texts );
293 /**
294 * Destructor.
295 */
296 virtual ~ONamedListViewItem();
297 /**
298 * Sets the text in column @a column to @a text.
299 * This method differs from @ref QListViewItem::setText() in that it
300 * accepts a string as column indicator instead of an int.
301 */
302 virtual void setText( const QString& column, const QString& text );
303 /**
304 * Sets a number of @a texts for this item.
305 */
306 virtual void setText( const QStringList& texts );
307};
308
309
235#endif // OLISTVIEW_H 310#endif // OLISTVIEW_H