diff options
Diffstat (limited to 'tqtinterface/qt4/src/iconview/tqiconview.cpp')
-rw-r--r-- | tqtinterface/qt4/src/iconview/tqiconview.cpp | 131 |
1 files changed, 85 insertions, 46 deletions
diff --git a/tqtinterface/qt4/src/iconview/tqiconview.cpp b/tqtinterface/qt4/src/iconview/tqiconview.cpp index 08ab4bd..c1705c7 100644 --- a/tqtinterface/qt4/src/iconview/tqiconview.cpp +++ b/tqtinterface/qt4/src/iconview/tqiconview.cpp @@ -995,6 +995,7 @@ void TQIconViewItem::init( TQIconViewItem *after allow_rename = FALSE; allow_drag = TRUE; allow_drop = TRUE; + visible = TRUE; selected = FALSE; selectable = TRUE; #ifndef TQT_NO_TEXTEDIT @@ -1050,6 +1051,32 @@ int TQIconViewItem::rtti() const return RTTI; } +/*! + If \a b is TRUE, the item is made visible; otherwise it is hidden. +*/ + +void TQIconViewItem::setVisible( bool b ) +{ + if ( b == (bool)visible ) + return; + TQIconView *iv = iconView(); + if ( !iv ) + return; + visible = b; + if ( iv ) + iv->updateContents(); +} + +/*! + Returns TRUE if the item is visible; otherwise returns FALSE. + + \sa setVisible() +*/ + +bool TQIconViewItem::isVisible() const +{ + return (bool)visible; +} /*! Sets \a text as the text of the icon view item. This function @@ -3852,10 +3879,18 @@ void TQIconView::selectAll( bool select ) viewport()->setUpdatesEnabled( FALSE ); TQRect rr; for ( ; item; item = item->next ) { - if ( select != item->isSelected() ) { - item->setSelected( select, TRUE ); - rr = rr.unite( item->rect() ); - changed = TRUE; + if (item->isVisible()) { + if ( select != item->isSelected() ) { + item->setSelected( select, TRUE ); + rr = rr.unite( item->rect() ); + changed = TRUE; + } + else { + if ( FALSE != item->isSelected() ) { + item->setSelected( FALSE, TRUE ); + changed = TRUE; + } + } } } viewport()->setUpdatesEnabled( ue ); @@ -6148,17 +6183,19 @@ void TQIconView::updateItemContainer( TQIconViewItem *item ) return; } - c->items.append( item ); - item->d->container1 = c; + if (item->isVisible()) { + c->items.append( item ); + item->d->container1 = c; - if ( !tqcontains ) { - c = c->n; - if ( !c ) { - appendItemContainer(); - c = d->lastContainer; - } - c->items.append( item ); - item->d->container2 = c; + if ( !tqcontains ) { + c = c->n; + if ( !c ) { + appendItemContainer(); + c = d->lastContainer; + } + c->items.append( item ); + item->d->container2 = c; + } } if ( contentsWidth() < irect.right() || contentsHeight() < irect.bottom() ) resizeContents( TQMAX( contentsWidth(), irect.right() ), TQMAX( contentsHeight(), irect.bottom() ) ); @@ -6213,40 +6250,42 @@ void TQIconView::rebuildContainers() appendItemContainer(); c = d->lastContainer; while ( item ) { - if ( c->rect.tqcontains( item->rect() ) ) { - item->d->container1 = c; - item->d->container2 = 0; - c->items.append( item ); - item = item->next; - } else if ( c->rect.intersects( item->rect() ) ) { - item->d->container1 = c; - c->items.append( item ); - c = c->n; - if ( !c ) { - appendItemContainer(); - c = d->lastContainer; - } - c->items.append( item ); - item->d->container2 = c; - item = item->next; - c = c->p; - } else { - if ( d->arrangement == LeftToRight ) { - if ( item->y() < c->rect.y() && c->p ) { - c = c->p; - continue; - } + if (item->isVisible()) { + if ( c->rect.tqcontains( item->rect() ) ) { + item->d->container1 = c; + item->d->container2 = 0; + c->items.append( item ); + item = item->next; + } else if ( c->rect.intersects( item->rect() ) ) { + item->d->container1 = c; + c->items.append( item ); + c = c->n; + if ( !c ) { + appendItemContainer(); + c = d->lastContainer; + } + c->items.append( item ); + item->d->container2 = c; + item = item->next; + c = c->p; } else { - if ( item->x() < c->rect.x() && c->p ) { - c = c->p; - continue; - } - } + if ( d->arrangement == LeftToRight ) { + if ( item->y() < c->rect.y() && c->p ) { + c = c->p; + continue; + } + } else { + if ( item->x() < c->rect.x() && c->p ) { + c = c->p; + continue; + } + } - c = c->n; - if ( !c ) { - appendItemContainer(); - c = d->lastContainer; + c = c->n; + if ( !c ) { + appendItemContainer(); + c = d->lastContainer; + } } } } |