src/gui/itemviews/qtreeview.cpp
branchRCL_3
changeset 8 3f74d0d4af4c
parent 4 3b1da2848fc7
equal deleted inserted replaced
6:dee5afe5301f 8:3f74d0d4af4c
  2472             }
  2472             }
  2473         }
  2473         }
  2474 
  2474 
  2475         QVector<QTreeViewItem> insertedItems(delta);
  2475         QVector<QTreeViewItem> insertedItems(delta);
  2476         for (int i = 0; i < delta; ++i) {
  2476         for (int i = 0; i < delta; ++i) {
  2477             insertedItems[i].index = d->model->index(i + start, 0, parent);
  2477             QTreeViewItem &item = insertedItems[i];
  2478             insertedItems[i].level = childLevel;
  2478             item.index = d->model->index(i + start, 0, parent);
  2479             insertedItems[i].hasChildren = d->hasVisibleChildren(insertedItems[i].index);
  2479             item.level = childLevel;
  2480             insertedItems[i].hasMoreSiblings = !((i == delta - 1) && (parentRowCount == end +1));
  2480             item.hasChildren = d->hasVisibleChildren(item.index);
       
  2481             item.hasMoreSiblings = !((i == delta - 1) && (parentRowCount == end +1));
  2481         }
  2482         }
  2482         if (d->viewItems.isEmpty())
  2483         if (d->viewItems.isEmpty())
  2483             d->defaultItemHeight = indexRowSizeHint(insertedItems[0].index);
  2484             d->defaultItemHeight = indexRowSizeHint(insertedItems[0].index);
  2484 
  2485 
  2485         int insertPos;
  2486         int insertPos;
  3767         }
  3768         }
  3768 
  3769 
  3769         if (previousSibiling != -1 && after && model->rowCount(parent) == start)
  3770         if (previousSibiling != -1 && after && model->rowCount(parent) == start)
  3770             viewItems[previousSibiling].hasMoreSiblings = false;
  3771             viewItems[previousSibiling].hasMoreSiblings = false;
  3771 
  3772 
  3772 
  3773         if (parentItem != -1) {
  3773         updateChildCount(parentItem, -removedCount);
  3774             if (viewItems.at(parentItem).expanded) {
  3774         if (parentItem != -1 && viewItems.at(parentItem).total == 0)
  3775                 updateChildCount(parentItem, -removedCount);
  3775             viewItems[parentItem].hasChildren = false; //every children have been removed;
  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         }
  3776         if (after) {
  3782         if (after) {
  3777             q->updateGeometries();
  3783             q->updateGeometries();
  3778             viewport->update();
  3784             viewport->update();
  3779         } else {
  3785         } else {
  3780             //we have removed items: we should at least update the scroll bar values.
  3786             //we have removed items: we should at least update the scroll bar values.