diff options
author | Liang Qi <liang.qi@theqtcompany.com> | 2015-11-04 20:18:14 +0100 |
---|---|---|
committer | Liang Qi <liang.qi@theqtcompany.com> | 2015-11-04 20:18:14 +0100 |
commit | 4159ee840549df11287294f0928e90f35f3e06ff (patch) | |
tree | 4a3947e37d54bdb78b4042e9ced20dbf181b5a2c /tests/auto/widgets/itemviews | |
parent | 59dbf1786f22ec4ac88d8f9d38cac5cfb82acaea (diff) | |
parent | c8c39ecc37c156ac2677de09a26548dfc274b564 (diff) |
Merge remote-tracking branch 'origin/5.6' into dev
Conflicts:
config.tests/unix/ptrsize.test
configure
src/corelib/global/qnamespace.h
src/network/socket/qabstractsocket.cpp
tests/auto/other/networkselftest/networkselftest.pro
Change-Id: Ic78abb4a34f9068567cea876861d4220f5a07672
Diffstat (limited to 'tests/auto/widgets/itemviews')
3 files changed, 48 insertions, 12 deletions
diff --git a/tests/auto/widgets/itemviews/qabstractitemview/tst_qabstractitemview.cpp b/tests/auto/widgets/itemviews/qabstractitemview/tst_qabstractitemview.cpp index 25a154e2a1..5e6d4120b3 100644 --- a/tests/auto/widgets/itemviews/qabstractitemview/tst_qabstractitemview.cpp +++ b/tests/auto/widgets/itemviews/qabstractitemview/tst_qabstractitemview.cpp @@ -250,6 +250,7 @@ private slots: void QTBUG39324_settingSameInstanceOfIndexWidget(); void sizeHintChangeTriggersLayout(); void shiftSelectionAfterChangingModelContents(); + void QTBUG48968_reentrant_updateEditorGeometries(); }; class MyAbstractItemDelegate : public QAbstractItemDelegate @@ -1990,5 +1991,42 @@ void tst_QAbstractItemView::shiftSelectionAfterChangingModelContents() QVERIFY(selected.contains(indexE)); } +void tst_QAbstractItemView::QTBUG48968_reentrant_updateEditorGeometries() +{ + + QStandardItemModel *m = new QStandardItemModel(this); + for (int i=0; i<10; ++i) { + QStandardItem *item = new QStandardItem(QString("Item number %1").arg(i)); + item->setEditable(true); + for (int j=0; j<5; ++j) { + QStandardItem *child = new QStandardItem(QString("Child Item number %1").arg(j)); + item->setChild(j, 0, child); + } + m->setItem(i, 0, item); + } + + QTreeView tree; + tree.setModel(m); + tree.setRootIsDecorated(false); + QObject::connect(&tree, SIGNAL(doubleClicked(QModelIndex)), &tree, SLOT(setRootIndex(QModelIndex))); + tree.show(); + QTest::qWaitForWindowActive(&tree); + + // Trigger editing idx + QModelIndex idx = m->index(1, 0); + const QPoint pos = tree.visualRect(idx).center(); + QTest::mouseClick(tree.viewport(), Qt::LeftButton, Qt::NoModifier, pos); + QTest::mouseDClick(tree.viewport(), Qt::LeftButton, Qt::NoModifier, pos); + + // Add more children to idx + QStandardItem *item = m->itemFromIndex(idx); + for (int j=5; j<10; ++j) { + QStandardItem *child = new QStandardItem(QString("Child Item number %1").arg(j)); + item->setChild(j, 0, child); + } + + // No crash, all fine. +} + QTEST_MAIN(tst_QAbstractItemView) #include "tst_qabstractitemview.moc" diff --git a/tests/auto/widgets/itemviews/qlistview/tst_qlistview.cpp b/tests/auto/widgets/itemviews/qlistview/tst_qlistview.cpp index 50309ecd84..6d811ff4e1 100644 --- a/tests/auto/widgets/itemviews/qlistview/tst_qlistview.cpp +++ b/tests/auto/widgets/itemviews/qlistview/tst_qlistview.cpp @@ -2017,8 +2017,7 @@ void tst_QListView::styleOptionViewItem() public: void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const { - QVERIFY(qstyleoption_cast<const QStyleOptionViewItemV4 *>(&option)); - QStyleOptionViewItemV4 opt(option); + QStyleOptionViewItem opt(option); initStyleOption(&opt, index); QCOMPARE(opt.index, index); diff --git a/tests/auto/widgets/itemviews/qtreeview/tst_qtreeview.cpp b/tests/auto/widgets/itemviews/qtreeview/tst_qtreeview.cpp index bdbd4e9941..dec6a66a7f 100644 --- a/tests/auto/widgets/itemviews/qtreeview/tst_qtreeview.cpp +++ b/tests/auto/widgets/itemviews/qtreeview/tst_qtreeview.cpp @@ -3082,7 +3082,7 @@ void tst_QTreeView::styleOptionViewItem() { class MyDelegate : public QStyledItemDelegate { - static QString posToString(QStyleOptionViewItemV4::ViewItemPosition pos) { + static QString posToString(QStyleOptionViewItem::ViewItemPosition pos) { static const char* s_pos[] = { "Invalid", "Beginning", "Middle", "End", "OnlyOne" }; return s_pos[pos]; } @@ -3095,8 +3095,7 @@ void tst_QTreeView::styleOptionViewItem() void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index ) const { - QVERIFY(qstyleoption_cast<const QStyleOptionViewItemV4 *>(&option)); - QStyleOptionViewItemV4 opt(option); + QStyleOptionViewItem opt(option); initStyleOption(&opt, index); QVERIFY(!opt.text.isEmpty()); @@ -3104,20 +3103,20 @@ void tst_QTreeView::styleOptionViewItem() //qDebug() << index << opt.text; if (allCollapsed) - QCOMPARE(!(opt.features & QStyleOptionViewItemV2::Alternate), !(index.row() % 2)); - QCOMPARE(!(opt.features & QStyleOptionViewItemV2::HasCheckIndicator), !opt.text.contains("Checkable")); + QCOMPARE(!(opt.features & QStyleOptionViewItem::Alternate), !(index.row() % 2)); + QCOMPARE(!(opt.features & QStyleOptionViewItem::HasCheckIndicator), !opt.text.contains("Checkable")); if (opt.text.contains("Beginning")) - QCOMPARE(posToString(opt.viewItemPosition), posToString(QStyleOptionViewItemV4::Beginning)); + QCOMPARE(posToString(opt.viewItemPosition), posToString(QStyleOptionViewItem::Beginning)); if (opt.text.contains("Middle")) - QCOMPARE(posToString(opt.viewItemPosition), posToString(QStyleOptionViewItemV4::Middle)); + QCOMPARE(posToString(opt.viewItemPosition), posToString(QStyleOptionViewItem::Middle)); if (opt.text.contains("End")) - QCOMPARE(posToString(opt.viewItemPosition), posToString(QStyleOptionViewItemV4::End)); + QCOMPARE(posToString(opt.viewItemPosition), posToString(QStyleOptionViewItem::End)); if (opt.text.contains("OnlyOne")) - QCOMPARE(posToString(opt.viewItemPosition), posToString(QStyleOptionViewItemV4::OnlyOne)); + QCOMPARE(posToString(opt.viewItemPosition), posToString(QStyleOptionViewItem::OnlyOne)); if (opt.text.contains("Checked")) QCOMPARE(opt.checkState, Qt::Checked); @@ -4206,7 +4205,7 @@ void tst_QTreeView::taskQTBUG_25333_adjustViewOptionsForIndex() #ifdef QT_BUILD_INTERNAL { - QStyleOptionViewItemV4 option; + QStyleOptionViewItem option; view.aiv_priv()->adjustViewOptionsForIndex(&option, model.indexFromItem(item1)); |