Diffstat (limited to 'libopie2/opieui/olistview.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | libopie2/opieui/olistview.cpp | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/libopie2/opieui/olistview.cpp b/libopie2/opieui/olistview.cpp index b90c786..67b4b83 100644 --- a/libopie2/opieui/olistview.cpp +++ b/libopie2/opieui/olistview.cpp | |||
@@ -166,98 +166,100 @@ void OListView::serializeTo( QDataStream& s ) const | |||
166 | for ( int i = 0; i < items; ++i ) | 166 | for ( int i = 0; i < items; ++i ) |
167 | { | 167 | { |
168 | s << *static_cast<OListViewItem*>( item ); | 168 | s << *static_cast<OListViewItem*>( item ); |
169 | item = item->nextSibling(); | 169 | item = item->nextSibling(); |
170 | } | 170 | } |
171 | 171 | ||
172 | odebug << "OListview stored." << oendl; | 172 | odebug << "OListview stored." << oendl; |
173 | } | 173 | } |
174 | 174 | ||
175 | void OListView::serializeFrom( QDataStream& s ) | 175 | void OListView::serializeFrom( QDataStream& s ) |
176 | { | 176 | { |
177 | #warning Caution... the binary format is still under construction... | 177 | #warning Caution... the binary format is still under construction... |
178 | odebug << "loading OListView..." << oendl; | 178 | odebug << "loading OListView..." << oendl; |
179 | 179 | ||
180 | int cols; | 180 | int cols; |
181 | s >> cols; | 181 | s >> cols; |
182 | odebug << "read number of columns = " << cols << oendl; | 182 | odebug << "read number of columns = " << cols << oendl; |
183 | 183 | ||
184 | while ( columns() < cols ) addColumn( QString::null ); | 184 | while ( columns() < cols ) addColumn( QString::null ); |
185 | 185 | ||
186 | for ( int i = 0; i < cols; ++i ) | 186 | for ( int i = 0; i < cols; ++i ) |
187 | { | 187 | { |
188 | QString coltext; | 188 | QString coltext; |
189 | s >> coltext; | 189 | s >> coltext; |
190 | odebug << "read text '" << coltext << "' for column " << i << "" << oendl; | 190 | odebug << "read text '" << coltext << "' for column " << i << "" << oendl; |
191 | setColumnText( i, coltext ); | 191 | setColumnText( i, coltext ); |
192 | } | 192 | } |
193 | 193 | ||
194 | int items; | 194 | int items; |
195 | s >> items; | 195 | s >> items; |
196 | odebug << "read number of items = " << items << oendl; | 196 | odebug << "read number of items = " << items << oendl; |
197 | 197 | ||
198 | for ( int i = 0; i < items; ++i ) | 198 | for ( int i = 0; i < items; ++i ) |
199 | { | 199 | { |
200 | OListViewItem* item = childFactory(); | 200 | OListViewItem* item = childFactory(); |
201 | s >> *item; | 201 | s >> *item; |
202 | } | 202 | } |
203 | 203 | ||
204 | odebug << "OListView loaded." << oendl; | 204 | odebug << "OListView loaded." << oendl; |
205 | 205 | ||
206 | } | 206 | } |
207 | 207 | ||
208 | 208 | ||
209 | void OListView::expand() | 209 | void OListView::expand() |
210 | { | 210 | { |
211 | odebug << "OListView::expand" << oendl; | 211 | odebug << "OListView::expand" << oendl; |
212 | 212 | ||
213 | QListViewItemIterator it( this ); | 213 | QListViewItemIterator it( this ); |
214 | while ( it.current() ) { | 214 | while ( it.current() ) { |
215 | it.current()->setOpen( true ); | 215 | it.current()->setOpen( true ); |
216 | ++it; | 216 | ++it; |
217 | } | 217 | } |
218 | } | 218 | } |
219 | 219 | ||
220 | 220 | ||
221 | void OListView::collapse() | 221 | void OListView::collapse() |
222 | { | 222 | { |
223 | odebug << "OListView::collapse" << oendl; | 223 | odebug << "OListView::collapse" << oendl; |
224 | QListViewItemIterator it( this ); | 224 | QListViewItemIterator it( this ); |
225 | while ( it.current() ) { | 225 | while ( it.current() ) { |
226 | it.current()->setOpen( false ); | 226 | it.current()->setOpen( false ); |
227 | ++it; | 227 | ++it; |
228 | } | 228 | } |
229 | } | 229 | } |
230 | 230 | ||
231 | 231 | ||
232 | QDataStream& operator<<( QDataStream& s, const OListView& lv ) | 232 | QDataStream& operator<<( QDataStream& s, const OListView& lv ) |
233 | { | 233 | { |
234 | lv.serializeTo( s ); | 234 | lv.serializeTo( s ); |
235 | return s; | ||
235 | } | 236 | } |
236 | 237 | ||
237 | QDataStream& operator>>( QDataStream& s, OListView& lv ) | 238 | QDataStream& operator>>( QDataStream& s, OListView& lv ) |
238 | { | 239 | { |
239 | lv.serializeFrom( s ); | 240 | lv.serializeFrom( s ); |
241 | return s; | ||
240 | } | 242 | } |
241 | #endif // QT_NO_DATASTREAM | 243 | #endif // QT_NO_DATASTREAM |
242 | 244 | ||
243 | /*====================================================================================== | 245 | /*====================================================================================== |
244 | * OListViewItem | 246 | * OListViewItem |
245 | *======================================================================================*/ | 247 | *======================================================================================*/ |
246 | 248 | ||
247 | OListViewItem::OListViewItem(QListView *parent) | 249 | OListViewItem::OListViewItem(QListView *parent) |
248 | : QListViewItem(parent) | 250 | : QListViewItem(parent) |
249 | { | 251 | { |
250 | init(); | 252 | init(); |
251 | } | 253 | } |
252 | 254 | ||
253 | 255 | ||
254 | OListViewItem::OListViewItem(QListViewItem *parent) | 256 | OListViewItem::OListViewItem(QListViewItem *parent) |
255 | : QListViewItem(parent) | 257 | : QListViewItem(parent) |
256 | { | 258 | { |
257 | init(); | 259 | init(); |
258 | } | 260 | } |
259 | 261 | ||
260 | 262 | ||
261 | OListViewItem::OListViewItem(QListView *parent, QListViewItem *after) | 263 | OListViewItem::OListViewItem(QListView *parent, QListViewItem *after) |
262 | : QListViewItem(parent, after) | 264 | : QListViewItem(parent, after) |
263 | { | 265 | { |
@@ -421,75 +423,77 @@ void OListViewItem::serializeTo( QDataStream& s ) const | |||
421 | } | 423 | } |
422 | 424 | ||
423 | // store number of items and the items itself | 425 | // store number of items and the items itself |
424 | s << items; | 426 | s << items; |
425 | item = firstChild(); | 427 | item = firstChild(); |
426 | for ( int i = 0; i < items; ++i ) | 428 | for ( int i = 0; i < items; ++i ) |
427 | { | 429 | { |
428 | s << *static_cast<OListViewItem*>( item ); | 430 | s << *static_cast<OListViewItem*>( item ); |
429 | item = item->nextSibling(); | 431 | item = item->nextSibling(); |
430 | } | 432 | } |
431 | 433 | ||
432 | odebug << "OListviewItem stored." << oendl; | 434 | odebug << "OListviewItem stored." << oendl; |
433 | } | 435 | } |
434 | 436 | ||
435 | 437 | ||
436 | void OListViewItem::serializeFrom( QDataStream& s ) | 438 | void OListViewItem::serializeFrom( QDataStream& s ) |
437 | { | 439 | { |
438 | #warning Caution... the binary format is still under construction... | 440 | #warning Caution... the binary format is still under construction... |
439 | odebug << "loading OListViewItem..." << oendl; | 441 | odebug << "loading OListViewItem..." << oendl; |
440 | 442 | ||
441 | for ( int i = 0; i < listView()->columns(); ++i ) | 443 | for ( int i = 0; i < listView()->columns(); ++i ) |
442 | { | 444 | { |
443 | QString coltext; | 445 | QString coltext; |
444 | s >> coltext; | 446 | s >> coltext; |
445 | odebug << "read text '" << coltext << "' for column " << i << "" << oendl; | 447 | odebug << "read text '" << coltext << "' for column " << i << "" << oendl; |
446 | setText( i, coltext ); | 448 | setText( i, coltext ); |
447 | } | 449 | } |
448 | 450 | ||
449 | int items; | 451 | int items; |
450 | s >> items; | 452 | s >> items; |
451 | odebug << "read number of items = " << items << "" << oendl; | 453 | odebug << "read number of items = " << items << "" << oendl; |
452 | 454 | ||
453 | for ( int i = 0; i < items; ++i ) | 455 | for ( int i = 0; i < items; ++i ) |
454 | { | 456 | { |
455 | OListViewItem* item = childFactory(); | 457 | OListViewItem* item = childFactory(); |
456 | s >> (*item); | 458 | s >> (*item); |
457 | } | 459 | } |
458 | 460 | ||
459 | odebug << "OListViewItem loaded." << oendl; | 461 | odebug << "OListViewItem loaded." << oendl; |
460 | } | 462 | } |
461 | 463 | ||
462 | 464 | ||
463 | QDataStream& operator<<( QDataStream& s, const OListViewItem& lvi ) | 465 | QDataStream& operator<<( QDataStream& s, const OListViewItem& lvi ) |
464 | { | 466 | { |
465 | lvi.serializeTo( s ); | 467 | lvi.serializeTo( s ); |
468 | return s; | ||
466 | } | 469 | } |
467 | 470 | ||
468 | 471 | ||
469 | QDataStream& operator>>( QDataStream& s, OListViewItem& lvi ) | 472 | QDataStream& operator>>( QDataStream& s, OListViewItem& lvi ) |
470 | { | 473 | { |
471 | lvi.serializeFrom( s ); | 474 | lvi.serializeFrom( s ); |
475 | return s; | ||
472 | } | 476 | } |
473 | #endif // QT_NO_DATASTREAM | 477 | #endif // QT_NO_DATASTREAM |
474 | 478 | ||
475 | 479 | ||
476 | /*====================================================================================== | 480 | /*====================================================================================== |
477 | * OCheckListItem | 481 | * OCheckListItem |
478 | *======================================================================================*/ | 482 | *======================================================================================*/ |
479 | 483 | ||
480 | OCheckListItem::OCheckListItem( QCheckListItem* parent, const QString& text, Type t ) | 484 | OCheckListItem::OCheckListItem( QCheckListItem* parent, const QString& text, Type t ) |
481 | :QCheckListItem( parent, text, t ) | 485 | :QCheckListItem( parent, text, t ) |
482 | { | 486 | { |
483 | init(); | 487 | init(); |
484 | } | 488 | } |
485 | 489 | ||
486 | 490 | ||
487 | OCheckListItem::OCheckListItem( QListViewItem* parent, const QString& text, Type t) | 491 | OCheckListItem::OCheckListItem( QListViewItem* parent, const QString& text, Type t) |
488 | :QCheckListItem( parent, text, t ) | 492 | :QCheckListItem( parent, text, t ) |
489 | { | 493 | { |
490 | init(); | 494 | init(); |
491 | } | 495 | } |
492 | 496 | ||
493 | 497 | ||
494 | OCheckListItem::OCheckListItem( QListView* parent, const QString& text, Type t ) | 498 | OCheckListItem::OCheckListItem( QListView* parent, const QString& text, Type t ) |
495 | :QCheckListItem( parent, text, t ) | 499 | :QCheckListItem( parent, text, t ) |
@@ -594,82 +598,82 @@ void OCheckListItem::paintCell(QPainter *p, const QColorGroup &cg, int column, i | |||
594 | p->setPen( pen ); | 598 | p->setPen( pen ); |
595 | p->drawLine( width-1, 0, width-1, height() ); | 599 | p->drawLine( width-1, 0, width-1, height() ); |
596 | } | 600 | } |
597 | 601 | ||
598 | 602 | ||
599 | /*====================================================================================== | 603 | /*====================================================================================== |
600 | * ONamedListView | 604 | * ONamedListView |
601 | *======================================================================================*/ | 605 | *======================================================================================*/ |
602 | 606 | ||
603 | ONamedListView::ONamedListView( QWidget *parent, const char *name ) | 607 | ONamedListView::ONamedListView( QWidget *parent, const char *name ) |
604 | :OListView( parent, name ) | 608 | :OListView( parent, name ) |
605 | { | 609 | { |
606 | } | 610 | } |
607 | 611 | ||
608 | 612 | ||
609 | ONamedListView::~ONamedListView() | 613 | ONamedListView::~ONamedListView() |
610 | { | 614 | { |
611 | } | 615 | } |
612 | 616 | ||
613 | 617 | ||
614 | void ONamedListView::addColumns( const QStringList& columns ) | 618 | void ONamedListView::addColumns( const QStringList& columns ) |
615 | { | 619 | { |
616 | for ( QStringList::ConstIterator it = columns.begin(); it != columns.end(); ++it ) | 620 | for ( QStringList::ConstIterator it = columns.begin(); it != columns.end(); ++it ) |
617 | { | 621 | { |
618 | odebug << "adding column " << *it << "" << oendl; | 622 | odebug << "adding column " << *it << "" << oendl; |
619 | addColumn( *it ); | 623 | addColumn( *it ); |
620 | } | 624 | } |
621 | } | 625 | } |
622 | 626 | ||
623 | 627 | ||
624 | int ONamedListView::findColumn( const QString& text ) const | 628 | int ONamedListView::findColumn( const QString& text ) const |
625 | { | 629 | { |
626 | //FIXME: If used excessively, this will slow down performance of updates | 630 | //FIXME: If used excessively, this will slow down performance of updates |
627 | //FIXME: because of the linear search over all column texts. | 631 | //FIXME: because of the linear search over all column texts. |
628 | //FIXME: I will optimize later by using a hash map. | 632 | //FIXME: I will optimize later by using a hash map. |
629 | for ( int i = 0; i < columns(); ++i ) | 633 | for ( int i = 0; i < columns(); ++i ) |
630 | if ( columnText( i ) == text ) | 634 | if ( columnText( i ) == text ) |
631 | return i; | 635 | return i; |
632 | return -1; | 636 | return -1; |
633 | } | 637 | } |
634 | 638 | ||
635 | 639 | ||
636 | ONamedListViewItem* ONamedListView::find( int column, const QString& text, int recurse ) const | 640 | ONamedListViewItem* ONamedListView::find( int column, const QString& text, int recurse ) const |
637 | { | 641 | { |
638 | return find( (ONamedListViewItem*) firstChild(), column, text, recurse ); | 642 | return find( (ONamedListViewItem*) firstChild(), column, text, recurse ); |
639 | } | 643 | } |
640 | 644 | ||
641 | 645 | ||
642 | ONamedListViewItem* ONamedListView::find( ONamedListViewItem* item, int column, const QString& text, int recurse ) const | 646 | ONamedListViewItem* ONamedListView::find( ONamedListViewItem* item, int column, const QString& text, int recurse ) const |
643 | { | 647 | { |
644 | ONamedListViewItem* result; | 648 | ONamedListViewItem* result; |
645 | while ( item && item->text( column ) != text ) | 649 | while ( item && item->text( column ) != text ) |
646 | { | 650 | { |
647 | odebug << "checked " << item->text( column ) << "" << oendl; | 651 | odebug << "checked " << item->text( column ) << "" << oendl; |
648 | 652 | ||
649 | if ( recurse < 0 || recurse > 0 ) | 653 | if ( recurse < 0 || recurse > 0 ) |
650 | { | 654 | { |
651 | odebug << "recursion is " << recurse << " - recursing into..." << oendl; | 655 | odebug << "recursion is " << recurse << " - recursing into..." << oendl; |
652 | result = find( (ONamedListViewItem*) item->firstChild(), column, text, recurse-1 ); | 656 | result = find( (ONamedListViewItem*) item->firstChild(), column, text, recurse-1 ); |
653 | if ( result ) return result; | 657 | if ( result ) return result; |
654 | } | 658 | } |
655 | 659 | ||
656 | 660 | ||
657 | item = (ONamedListViewItem*) item->itemBelow(); | 661 | item = (ONamedListViewItem*) item->itemBelow(); |
658 | } | 662 | } |
659 | if ( item && item->text( column ) == text ) | 663 | if ( item && item->text( column ) == text ) |
660 | return item; | 664 | return item; |
661 | else | 665 | else |
662 | return 0; | 666 | return 0; |
663 | } | 667 | } |
664 | 668 | ||
665 | 669 | ||
666 | ONamedListViewItem* ONamedListView::find( const QString& column, const QString& text, int recurse ) const | 670 | ONamedListViewItem* ONamedListView::find( const QString& column, const QString& text, int recurse ) const |
667 | { | 671 | { |
668 | int col = findColumn( column ); | 672 | int col = findColumn( column ); |
669 | if ( col != -1 ) | 673 | if ( col != -1 ) |
670 | return find( (ONamedListViewItem*) firstChild(), col, text, recurse ); | 674 | return find( (ONamedListViewItem*) firstChild(), col, text, recurse ); |
671 | else | 675 | else |
672 | return 0; | 676 | return 0; |
673 | } | 677 | } |
674 | 678 | ||
675 | 679 | ||
@@ -704,61 +708,61 @@ ONamedListViewItem::ONamedListViewItem( QListViewItem* parent, const QStringList | |||
704 | ONamedListViewItem::ONamedListViewItem( QListView* parent, QListViewItem* after, const QStringList& texts ) | 708 | ONamedListViewItem::ONamedListViewItem( QListView* parent, QListViewItem* after, const QStringList& texts ) |
705 | :OListViewItem( parent, after ) | 709 | :OListViewItem( parent, after ) |
706 | { | 710 | { |
707 | setText( texts ); | 711 | setText( texts ); |
708 | } | 712 | } |
709 | 713 | ||
710 | 714 | ||
711 | ONamedListViewItem::ONamedListViewItem( QListViewItem* parent, QListViewItem* after, const QStringList& texts ) | 715 | ONamedListViewItem::ONamedListViewItem( QListViewItem* parent, QListViewItem* after, const QStringList& texts ) |
712 | :OListViewItem( parent, after ) | 716 | :OListViewItem( parent, after ) |
713 | { | 717 | { |
714 | setText( texts ); | 718 | setText( texts ); |
715 | } | 719 | } |
716 | 720 | ||
717 | 721 | ||
718 | ONamedListViewItem::~ONamedListViewItem() | 722 | ONamedListViewItem::~ONamedListViewItem() |
719 | { | 723 | { |
720 | } | 724 | } |
721 | 725 | ||
722 | 726 | ||
723 | void ONamedListViewItem::setText( const QStringList& texts ) | 727 | void ONamedListViewItem::setText( const QStringList& texts ) |
724 | { | 728 | { |
725 | int col = 0; | 729 | int col = 0; |
726 | for ( QStringList::ConstIterator it = texts.begin(); it != texts.end(); ++it ) | 730 | for ( QStringList::ConstIterator it = texts.begin(); it != texts.end(); ++it ) |
727 | { | 731 | { |
728 | odebug << "setting column " << col << " = text " << *it << "" << oendl; | 732 | odebug << "setting column " << col << " = text " << *it << "" << oendl; |
729 | OListViewItem::setText( col++, *it ); | 733 | OListViewItem::setText( col++, *it ); |
730 | } | 734 | } |
731 | 735 | ||
732 | } | 736 | } |
733 | 737 | ||
734 | 738 | ||
735 | void ONamedListViewItem::setText( const QString& column, const QString& text ) | 739 | void ONamedListViewItem::setText( const QString& column, const QString& text ) |
736 | { | 740 | { |
737 | //FIXME: If used excessively, this will slow down performance of updates | 741 | //FIXME: If used excessively, this will slow down performance of updates |
738 | //FIXME: because of the linear search over all column texts. | 742 | //FIXME: because of the linear search over all column texts. |
739 | //FIXME: I will optimize later by using a hash map. | 743 | //FIXME: I will optimize later by using a hash map. |
740 | int col = ( (ONamedListView*) listView() )->findColumn( column ); | 744 | int col = ( (ONamedListView*) listView() )->findColumn( column ); |
741 | if ( col != -1 ) | 745 | if ( col != -1 ) |
742 | OListViewItem::setText( col, text ); | 746 | OListViewItem::setText( col, text ); |
743 | else | 747 | else |
744 | owarn << "ONamedListViewItem::setText(): Warning! Columntext '" << column << "' not found." << oendl; | 748 | owarn << "ONamedListViewItem::setText(): Warning! Columntext '" << column << "' not found." << oendl; |
745 | } | 749 | } |
746 | 750 | ||
747 | 751 | ||
748 | ONamedListViewItem* ONamedListViewItem::find( int column, const QString& text, int recurse ) const | 752 | ONamedListViewItem* ONamedListViewItem::find( int column, const QString& text, int recurse ) const |
749 | { | 753 | { |
750 | return ( (ONamedListView*) listView() )->find( (ONamedListViewItem*) firstChild(), column, text, recurse ); | 754 | return ( (ONamedListView*) listView() )->find( (ONamedListViewItem*) firstChild(), column, text, recurse ); |
751 | } | 755 | } |
752 | 756 | ||
753 | 757 | ||
754 | ONamedListViewItem* ONamedListViewItem::find( const QString& column, const QString& text, int recurse ) const | 758 | ONamedListViewItem* ONamedListViewItem::find( const QString& column, const QString& text, int recurse ) const |
755 | { | 759 | { |
756 | int col = ( (ONamedListView*) listView() )->findColumn( column ); | 760 | int col = ( (ONamedListView*) listView() )->findColumn( column ); |
757 | if ( col != -1 ) | 761 | if ( col != -1 ) |
758 | return ( (ONamedListView*) listView() )->find( (ONamedListViewItem*) firstChild(), col, text, recurse ); | 762 | return ( (ONamedListView*) listView() )->find( (ONamedListViewItem*) firstChild(), col, text, recurse ); |
759 | else | 763 | else |
760 | return 0; | 764 | return 0; |
761 | } | 765 | } |
762 | 766 | ||
763 | } | 767 | } |
764 | } | 768 | } |