Ignore:
Timestamp:
Aug 2, 2010, 9:27:30 PM (15 years ago)
Author:
Dmitry A. Kuminov
Message:

trunk: Merged in qt 4.6.3 sources from branches/vendor/nokia/qt.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk

  • trunk/src/gui/itemviews/qtreeview.cpp

    r651 r769  
    24752475        QVector<QTreeViewItem> insertedItems(delta);
    24762476        for (int i = 0; i < delta; ++i) {
    2477             insertedItems[i].index = d->model->index(i + start, 0, parent);
    2478             insertedItems[i].level = childLevel;
    2479             insertedItems[i].hasChildren = d->hasVisibleChildren(insertedItems[i].index);
    2480             insertedItems[i].hasMoreSiblings = !((i == delta - 1) && (parentRowCount == end +1));
     2477            QTreeViewItem &item = insertedItems[i];
     2478            item.index = d->model->index(i + start, 0, parent);
     2479            item.level = childLevel;
     2480            item.hasChildren = d->hasVisibleChildren(item.index);
     2481            item.hasMoreSiblings = !((i == delta - 1) && (parentRowCount == end +1));
    24812482        }
    24822483        if (d->viewItems.isEmpty())
     
    37703771            viewItems[previousSibiling].hasMoreSiblings = false;
    37713772
    3772 
    3773         updateChildCount(parentItem, -removedCount);
    3774         if (parentItem != -1 && viewItems.at(parentItem).total == 0)
    3775             viewItems[parentItem].hasChildren = false; //every children have been removed;
     3773        if (parentItem != -1) {
     3774            if (viewItems.at(parentItem).expanded) {
     3775                updateChildCount(parentItem, -removedCount);
     3776                if (viewItems.at(parentItem).total == 0)
     3777                    viewItems[parentItem].hasChildren = false; //every children have been removed;
     3778            } else if (viewItems[parentItem].hasChildren && !hasVisibleChildren(parent)) {
     3779                viewItems[parentItem].hasChildren = false;
     3780            }
     3781        }
    37763782        if (after) {
    37773783            q->updateGeometries();
Note: See TracChangeset for help on using the changeset viewer.