summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets/itemviews
diff options
context:
space:
mode:
authorQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2018-03-08 09:27:37 +0100
committerQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2018-03-08 09:27:38 +0100
commit332ce6734d29fb03852d04de6bc648289ff1c35d (patch)
tree30713dba37e3a98c7606c18f044ab4a815863288 /tests/auto/widgets/itemviews
parent2056bc6bc51efa1da61098ba3d213a4e25d9e7d8 (diff)
parentcaa5a20479bd58fda4380181691f772a1f3c1da4 (diff)
Merge remote-tracking branch 'origin/5.11' into dev
Diffstat (limited to 'tests/auto/widgets/itemviews')
-rw-r--r--tests/auto/widgets/itemviews/qtreeview/tst_qtreeview.cpp53
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