@@ -71,14 +71,8 @@ void VerticalJournal::setModel(QAbstractItemModel *model)
7171 createDelegateModel();
7272 }
7373 m_delegateModel->setModel(QVariant::fromValue<QAbstractItemModel *>(model));
74− // Cleanup the existing items
75− for (int i = 0; i < m_columnVisibleItems.count(); ++i) {
76− QList<ViewItem> &column = m_columnVisibleItems[i];
77− Q_FOREACH(const ViewItem &item, column)
78− releaseItem(item);
79− column.clear();
80− }
81− m_indexColumnMap.clear();
74+
75+ cleanupExistingItems();
8276
8377 Q_EMIT modelChanged();
8478 polish();
@@ -97,14 +91,7 @@ void VerticalJournal::setDelegate(QQmlComponent *delegate)
9791 createDelegateModel();
9892 }
9993
100− // Cleanup the existing items
101− for (int i = 0; i < m_columnVisibleItems.count(); ++i) {
102− QList<ViewItem> &column = m_columnVisibleItems[i];
103− Q_FOREACH(const ViewItem &item, column)
104− releaseItem(item);
105− column.clear();
106− }
107− m_indexColumnMap.clear();
94+ cleanupExistingItems();
10895
10996 m_delegateModel->setDelegate(delegate);
11097
@@ -432,6 +419,18 @@ void VerticalJournal::positionItem(int modelIndex, QQuickItem *item)
432419 }
433420}
434421
422+void VerticalJournal::cleanupExistingItems()
423+{
424+ // Cleanup the existing items
425+ for (int i = 0; i < m_columnVisibleItems.count(); ++i) {
426+ QList<ViewItem> &column = m_columnVisibleItems[i];
427+ Q_FOREACH(const ViewItem &item, column)
428+ releaseItem(item);
429+ column.clear();
430+ }
431+ m_indexColumnMap.clear();
432+}
433+
435434void VerticalJournal::releaseItem(const ViewItem &item)
436435{
437436#if (QT_VERSION < QT_VERSION_CHECK(5, 1, 0))