on xenial help sign in
Extract common code to a function
a6e2355Albert Astals
plugins/DashViews/verticaljournal.cpp+15−16
@@ -71,14 +71,8 @@ void VerticalJournal::setModel(QAbstractItemModel *model)
71 createDelegateModel();
71 createDelegateModel();
72 }
72 }
73 m_delegateModel->setModel(QVariant::fromValue<QAbstractItemModel *>(model));
73 m_delegateModel->setModel(QVariant::fromValue<QAbstractItemModel *>(model));
74− // Cleanup the existing items
74+
75− for (int i = 0; i < m_columnVisibleItems.count(); ++i) {
75+ cleanupExistingItems();
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();
82
76
83 Q_EMIT modelChanged();
77 Q_EMIT modelChanged();
84 polish();
78 polish();
@@ -97,14 +91,7 @@ void VerticalJournal::setDelegate(QQmlComponent *delegate)
97 createDelegateModel();
91 createDelegateModel();
98 }
92 }
99
93
100− // Cleanup the existing items
94+ cleanupExistingItems();
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();
108
95
109 m_delegateModel->setDelegate(delegate);
96 m_delegateModel->setDelegate(delegate);
110
97
@@ -432,6 +419,18 @@ void VerticalJournal::positionItem(int modelIndex, QQuickItem *item)
432 }
419 }
433}
420}
434
421
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+
435void VerticalJournal::releaseItem(const ViewItem &item)
434void VerticalJournal::releaseItem(const ViewItem &item)
436{
435{
437#if (QT_VERSION < QT_VERSION_CHECK(5, 1, 0))
436#if (QT_VERSION < QT_VERSION_CHECK(5, 1, 0))
plugins/DashViews/verticaljournal.h+1−1
@@ -138,7 +138,7 @@ private:
138 QQuickItem *createItem(int modelIndex, bool asynchronous);
138 QQuickItem *createItem(int modelIndex, bool asynchronous);
139 void positionItem(int modelIndex, QQuickItem *item);
139 void positionItem(int modelIndex, QQuickItem *item);
140 void doRelayout();
140 void doRelayout();
141−
141+ void cleanupExistingItems();
142 void releaseItem(const ViewItem &item);
142 void releaseItem(const ViewItem &item);
143
143
144#if (QT_VERSION < QT_VERSION_CHECK(5, 1, 0))
144#if (QT_VERSION < QT_VERSION_CHECK(5, 1, 0))