diff options
author | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2018-03-08 09:27:37 +0100 |
---|---|---|
committer | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2018-03-08 09:27:38 +0100 |
commit | 332ce6734d29fb03852d04de6bc648289ff1c35d (patch) | |
tree | 30713dba37e3a98c7606c18f044ab4a815863288 /tests/auto/widgets/itemviews | |
parent | 2056bc6bc51efa1da61098ba3d213a4e25d9e7d8 (diff) | |
parent | caa5a20479bd58fda4380181691f772a1f3c1da4 (diff) |
Merge remote-tracking branch 'origin/5.11' into dev
Change-Id: Idf471ca5c6cf211813466b539ce45bdc1ae9b97c
Diffstat (limited to 'tests/auto/widgets/itemviews')
-rw-r--r-- | tests/auto/widgets/itemviews/qtreeview/tst_qtreeview.cpp | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/tests/auto/widgets/itemviews/qtreeview/tst_qtreeview.cpp b/tests/auto/widgets/itemviews/qtreeview/tst_qtreeview.cpp index 5293ba487a..347d2a81e6 100644 --- a/tests/auto/widgets/itemviews/qtreeview/tst_qtreeview.cpp +++ b/tests/auto/widgets/itemviews/qtreeview/tst_qtreeview.cpp @@ -162,6 +162,7 @@ private slots: void renderToPixmap(); void styleOptionViewItem(); void keyboardNavigationWithDisabled(); + void saveRestoreState(); void statusTip_data(); void statusTip(); @@ -4076,6 +4077,58 @@ void tst_QTreeView::keyboardNavigationWithDisabled() QCOMPARE(view.currentIndex(), model.index(6, 0)); } +class RemoveColumnOne : public QSortFilterProxyModel +{ +public: + bool filterAcceptsColumn(int source_column, const QModelIndex &) const override + { + if (m_removeColumn) + return source_column != 1; + return true; + } + void removeColumn() + { + m_removeColumn = true; + invalidate(); + } +private: + bool m_removeColumn = false; +}; + + +void tst_QTreeView::saveRestoreState() +{ + QStandardItemModel model; + for (int i = 0; i < 100; i++) { + QList<QStandardItem *> items; + items << new QStandardItem(QLatin1String("item ") + QString::number(i)) << new QStandardItem(QStringLiteral("hidden by proxy")) << new QStandardItem(QStringLiteral("hidden by user")); + model.appendRow(items); + } + QCOMPARE(model.columnCount(), 3); + + RemoveColumnOne proxy; + proxy.setSourceModel(&model); + QCOMPARE(proxy.columnCount(), 3); + + QTreeView view; + view.setModel(&proxy); + view.resize(500, 500); + view.show(); + view.header()->hideSection(2); + QVERIFY(view.header()->isSectionHidden(2)); + proxy.removeColumn(); + QCOMPARE(proxy.columnCount(), 2); + QVERIFY(view.header()->isSectionHidden(1)); + const QByteArray data = view.header()->saveState(); + + QTreeView view2; + view2.setModel(&proxy); + view2.resize(500, 500); + view2.show(); + view2.header()->restoreState(data); + QVERIFY(view2.header()->isSectionHidden(1)); +} + class Model_11466 : public QAbstractItemModel { Q_OBJECT |