summaryrefslogtreecommitdiffstats
path: root/tqtinterface/qt4/src/iconview/tqiconview.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tqtinterface/qt4/src/iconview/tqiconview.cpp')
-rw-r--r--tqtinterface/qt4/src/iconview/tqiconview.cpp131
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;
+ }
}
}
}