@@ -72,6 +72,20 @@ public:
7272 endRemoveRows();
7373 }
7474
75+ void insertString(int index, const QString& string)
76+ {
77+ beginInsertRows(QModelIndex(), index, index);
78+ m_list.insert(index, string);
79+ endInsertRows();
80+ }
81+
82+ void changeString(int i, const QString& string)
83+ {
84+ m_list[i] = string;
85+ auto idx = index(i, 0);
86+ dataChanged(idx, idx);
87+ }
88+
7589private:
7690 QStringList m_list;
7791};
@@ -488,6 +502,54 @@ private Q_SLOTS:
488502 QTRY_COMPARE(vj->implicitHeight(), 0.);
489503 }
490504
505+ void testInsertItem()
506+ {
507+ // Remove a few items from the end so the verifyItem list is smaller
508+ for (int i = 0; i < 12; ++i)
509+ model->removeLast();
510+
511+ model->insertString(0, "200");
512+
513+ QTRY_COMPARE(vj->m_columnVisibleItems.count(), 3);
514+ QTRY_COMPARE(vj->m_columnVisibleItems[0].count(), 2);
515+ QTRY_COMPARE(vj->m_columnVisibleItems[1].count(), 4);
516+ QTRY_COMPARE(vj->m_columnVisibleItems[2].count(), 3);
517+ verifyItem(vj->m_columnVisibleItems[0][0], 0, 0, 0, true);
518+ verifyItem(vj->m_columnVisibleItems[1][0], 1, 160, 0, true);
519+ verifyItem(vj->m_columnVisibleItems[2][0], 2, 320, 0, true);
520+ verifyItem(vj->m_columnVisibleItems[2][1], 3, 320, 60, true);
521+ verifyItem(vj->m_columnVisibleItems[1][1], 4, 160, 110, true);
522+ verifyItem(vj->m_columnVisibleItems[1][2], 5, 160, 130, true);
523+ verifyItem(vj->m_columnVisibleItems[1][3], 6, 160, 180, true);
524+ verifyItem(vj->m_columnVisibleItems[2][2], 7, 320, 195, true);
525+ verifyItem(vj->m_columnVisibleItems[0][1], 8, 0, 210, true);
526+ QCOMPARE(vj->implicitHeight(), 395.);
527+ }
528+
529+ void testChangeItem()
530+ {
531+ // Remove a few items from the end so the verifyItem list is smaller
532+ for (int i = 0; i < 11; ++i)
533+ model->removeLast();
534+
535+ model->changeString(0, "200");
536+
537+ QTRY_COMPARE(vj->m_columnVisibleItems.count(), 3);
538+ QTRY_COMPARE(vj->m_columnVisibleItems[0].count(), 2);
539+ QTRY_COMPARE(vj->m_columnVisibleItems[1].count(), 5);
540+ QTRY_COMPARE(vj->m_columnVisibleItems[2].count(), 2);
541+ verifyItem(vj->m_columnVisibleItems[0][0], 0, 0, 0, true);
542+ verifyItem(vj->m_columnVisibleItems[1][0], 1, 160, 0, true);
543+ verifyItem(vj->m_columnVisibleItems[2][0], 2, 320, 0, true);
544+ verifyItem(vj->m_columnVisibleItems[1][1], 3, 160, 60, true);
545+ verifyItem(vj->m_columnVisibleItems[1][2], 4, 160, 80, true);
546+ verifyItem(vj->m_columnVisibleItems[1][3], 5, 160, 130, true);
547+ verifyItem(vj->m_columnVisibleItems[2][1], 6, 320, 135, true);
548+ verifyItem(vj->m_columnVisibleItems[0][1], 7, 0, 210, true);
549+ verifyItem(vj->m_columnVisibleItems[1][4], 8, 160, 210, true);
550+ QCOMPARE(vj->implicitHeight(), 370.);
551+ }
552+
491553private:
492554 QQuickView *view;
493555 VerticalJournal *vj;