summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichele Calgaro <michele.calgaro@yahoo.it>2015-01-09 13:44:48 +0900
committerMichele Calgaro <michele.calgaro@yahoo.it>2015-01-09 13:44:48 +0900
commit38e12d6e1287df570c8908b6722597b2e951a738 (patch)
tree64faeefedd96e66312a253c2afd698adb601c12d
parentfbf8ee2262d6b55fdd6844504fb69af25b6d9eac (diff)
downloadtqt3-38e12d6e1287df570c8908b6722597b2e951a738.tar.gz
tqt3-38e12d6e1287df570c8908b6722597b2e951a738.zip
Fixed Multicolumn view filtering item arrangement. This relates to bug 146.
Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
-rw-r--r--src/iconview/qiconview.cpp21
1 files changed, 12 insertions, 9 deletions
diff --git a/src/iconview/qiconview.cpp b/src/iconview/qiconview.cpp
index a15a098f4..f6b2ae132 100644
--- a/src/iconview/qiconview.cpp
+++ b/src/iconview/qiconview.cpp
@@ -2347,14 +2347,15 @@ void TQIconViewItem::checkRect()
When an item is inserted the TQIconView allocates a position for it.
Existing items are rearranged if autoArrange() is TRUE. The
- default arrangement is \c LeftToRight -- the TQIconView fills up
- the \e left-most column from top to bottom, then moves one column
- \e right and fills that from top to bottom and so on. The
+ default arrangement is \c LeftToRight -- the TQIconView fills
+ the \e top-most row from left to right, then moves one row \e down
+ and fills that row from left to right and so on. The
arrangement can be modified with any of the following approaches:
\list
- \i Call setArrangement(), e.g. with \c TopToBottom which will fill
- the \e top-most row from left to right, then moves one row \e down
- and fills that row from left to right and so on.
+ \i Call setArrangement(), e.g. with \c TopToBottom which will fill up
+ the \e left-most column from top to bottom, then moves one column
+ \e right and fills that from top to bottom and so on.
+
\i Construct each TQIconViewItem using a constructor which allows
you to specify which item the new one is to follow.
\i Call setSorting() or sort() to sort the items.
@@ -6040,7 +6041,7 @@ TQIconViewItem *TQIconView::makeRowLayout( TQIconViewItem *begin, int &y, bool &
}
- } else { // -------------------------------- SOUTH ------------------------------
+ } else { // -------------------------------- TopToBottom ------------------------------
int x = y;
@@ -6075,6 +6076,7 @@ TQIconViewItem *TQIconView::makeRowLayout( TQIconViewItem *begin, int &y, bool &
// now move the items
item = begin;
+ TQIconViewItem *prevVisibleItem = NULL;
for (;;) {
item->dirty = FALSE;
if ( d->itemTextPos == Bottom ) {
@@ -6082,15 +6084,16 @@ TQIconViewItem *TQIconView::makeRowLayout( TQIconViewItem *begin, int &y, bool &
changed = item->move( x + ( w - item->width() ) / 2, d->spacing ) || changed;
else
changed = item->move( x + ( w - item->width() ) / 2,
- item->prev->y() + item->prev->height() + d->spacing ) || changed;
+ prevVisibleItem->y() + prevVisibleItem->height() + d->spacing ) || changed;
} else {
if ( item == begin )
changed = item->move( x, d->spacing ) || changed;
else
- changed = item->move( x, item->prev->y() + item->prev->height() + d->spacing ) || changed;
+ changed = item->move( x, prevVisibleItem->y() + prevVisibleItem->height() + d->spacing ) || changed;
}
if ( item == end )
break;
+ prevVisibleItem = item;
item = item->next;
while (item && (item->isVisible() == FALSE)) {
item = item->next;