diff options
-rw-r--r-- | src/declarative/items/qsgitemview_p_p.h | 11 | ||||
-rw-r--r-- | src/declarative/items/qsglistview.cpp | 7 |
2 files changed, 13 insertions, 5 deletions
diff --git a/src/declarative/items/qsgitemview_p_p.h b/src/declarative/items/qsgitemview_p_p.h index 3113a8b754..96aec8f2c0 100644 --- a/src/declarative/items/qsgitemview_p_p.h +++ b/src/declarative/items/qsgitemview_p_p.h @@ -95,10 +95,10 @@ public: void adjustMoveParameters(int *from, int *to, int *count) const; virtual void init(); - virtual void updateCurrent(int modelIndex); virtual void clear(); - virtual void regenerate(); virtual void updateViewport(); + + void regenerate(); void layout(); void refill(); void refill(qreal from, qreal to, bool doBuffer = false); @@ -111,6 +111,7 @@ public: QSGItem *createHighlightItem(); QSGItem *createComponentItem(QDeclarativeComponent *component, bool receiveItemGeometryChanges, bool createDefault = false); + void updateCurrent(int modelIndex); void updateTrackedItem(); void updateUnrequestedIndexes(); void updateUnrequestedPositions(); @@ -191,14 +192,14 @@ protected: virtual void visibleItemsChanged() = 0; virtual FxViewItem *newViewItem(int index, QSGItem *item) = 0; - virtual void initializeViewItem(FxViewItem *) {} virtual void repositionPackageItemAt(QSGItem *item, int index) = 0; virtual void layoutVisibleItems() = 0; - - virtual void updateSections() {} virtual void changedVisibleIndex(int newIndex) = 0; + + virtual void initializeViewItem(FxViewItem *) {} virtual void initializeCurrentItem() {} + virtual void updateSections() {} virtual void itemGeometryChanged(QSGItem *item, const QRectF &newGeometry, const QRectF &oldGeometry); }; diff --git a/src/declarative/items/qsglistview.cpp b/src/declarative/items/qsglistview.cpp index 9c3ab2a285..15042bea91 100644 --- a/src/declarative/items/qsglistview.cpp +++ b/src/declarative/items/qsglistview.cpp @@ -455,6 +455,7 @@ void QSGListViewPrivate::changedVisibleIndex(int newIndex) void QSGListViewPrivate::init() { + QSGItemViewPrivate::init(); ::memset(sectionCache, 0, sizeof(QSGItem*) * sectionCacheSize); } @@ -498,6 +499,8 @@ FxViewItem *QSGListViewPrivate::newViewItem(int modelIndex, QSGItem *item) void QSGListViewPrivate::initializeViewItem(FxViewItem *item) { + QSGItemViewPrivate::initializeViewItem(item); + QSGItemPrivate *itemPrivate = QSGItemPrivate::get(item->item); itemPrivate->addItemChangeListener(this, QSGItemPrivate::Geometry); @@ -815,6 +818,8 @@ void QSGListViewPrivate::createSection(FxListItemSG *listItem) void QSGListViewPrivate::updateSections() { + QSGItemViewPrivate::updateSections(); + if (sectionCriteria && !visibleItems.isEmpty()) { QString prevSection; if (visibleIndex > 0) @@ -871,6 +876,8 @@ void QSGListViewPrivate::updateCurrentSection() void QSGListViewPrivate::initializeCurrentItem() { + QSGItemViewPrivate::initializeCurrentItem(); + if (currentItem) { FxListItemSG *listItem = static_cast<FxListItemSG *>(currentItem); |