diff options
author | Liang Qi <liang.qi@qt.io> | 2016-08-05 08:58:48 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2016-08-05 08:58:48 +0200 |
commit | 69ef0481fc22ec3f0d7fa220a47a27fecf76a710 (patch) | |
tree | f6d96cc257fcb27e12151f079c583251df4c4720 /tests/auto/widgets/itemviews/qtreeview/tst_qtreeview.cpp | |
parent | dbfd7f304c4d91096e104ec2383d92a37502d836 (diff) | |
parent | 91a2c8630b2204831566ab8e523c747f9d8ec927 (diff) |
Merge remote-tracking branch 'origin/5.6' into 5.7
Conflicts:
tests/auto/widgets/itemviews/qtreeview/tst_qtreeview.cpp
Change-Id: I6f3878b204464313aa2f9d988d3b35121d4d9867
Diffstat (limited to 'tests/auto/widgets/itemviews/qtreeview/tst_qtreeview.cpp')
-rw-r--r-- | tests/auto/widgets/itemviews/qtreeview/tst_qtreeview.cpp | 159 |
1 files changed, 59 insertions, 100 deletions
diff --git a/tests/auto/widgets/itemviews/qtreeview/tst_qtreeview.cpp b/tests/auto/widgets/itemviews/qtreeview/tst_qtreeview.cpp index 938c8a47ac..611aaa92e6 100644 --- a/tests/auto/widgets/itemviews/qtreeview/tst_qtreeview.cpp +++ b/tests/auto/widgets/itemviews/qtreeview/tst_qtreeview.cpp @@ -31,7 +31,7 @@ #include <QtTest/QtTest> #include <QtGui/QtGui> #include <QtWidgets/QtWidgets> -#include <private/qabstractitemview_p.h> +#include <private/qtreeview_p.h> #ifndef QT_NO_DRAGANDDROP Q_DECLARE_METATYPE(QAbstractItemView::DragDropMode) @@ -57,49 +57,6 @@ static void initStandardTreeModel(QStandardItemModel *model) model->insertRow(2, item); } -class tst_QTreeView; -struct PublicView : public QTreeView -{ - friend class tst_QTreeView; - inline void executeDelayedItemsLayout() - { QTreeView::executeDelayedItemsLayout(); } - - enum PublicCursorAction { - MoveUp = QAbstractItemView::MoveUp, - MoveDown = QAbstractItemView::MoveDown, - MoveLeft = QAbstractItemView::MoveLeft, - MoveRight = QAbstractItemView::MoveRight, - MoveHome = QAbstractItemView::MoveHome, - MoveEnd = QAbstractItemView::MoveEnd, - MovePageUp = QAbstractItemView::MovePageUp, - MovePageDown = QAbstractItemView::MovePageDown, - MoveNext = QAbstractItemView::MoveNext, - MovePrevious = QAbstractItemView::MovePrevious - }; - - // enum PublicCursorAction and moveCursor() are protected in QTreeView. - inline QModelIndex doMoveCursor(PublicCursorAction ca, Qt::KeyboardModifiers kbm) - { return QTreeView::moveCursor((CursorAction)ca, kbm); } - - inline void setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags command) - { - QTreeView::setSelection(rect, command); - } - inline int state() - { - return QTreeView::state(); - } - - inline int rowHeight(QModelIndex idx) { return QTreeView::rowHeight(idx); } - inline int indexRowSizeHint(const QModelIndex &index) const { return QTreeView::indexRowSizeHint(index); } - - inline QModelIndexList selectedIndexes() const { return QTreeView::selectedIndexes(); } - - inline QStyleOptionViewItem viewOptions() const { return QTreeView::viewOptions(); } - inline int sizeHintForColumn(int column) const { return QTreeView::sizeHintForColumn(column); } - QAbstractItemViewPrivate* aiv_priv() { return static_cast<QAbstractItemViewPrivate*>(d_ptr.data()); } -}; - // Make a widget frameless to prevent size constraints of title bars // from interfering (Windows). static inline void setFrameless(QWidget *w) @@ -640,33 +597,34 @@ void tst_QTreeView::dragDropModeFromDragEnabledAndAcceptDrops_data() QTest::addColumn<bool>("dragEnabled"); QTest::addColumn<bool>("acceptDrops"); QTest::addColumn<QAbstractItemView::DragDropMode>("dragDropMode"); - QTest::addColumn<QAbstractItemView::DragDropMode>("setBehavior"); - - QTest::newRow("NoDragDrop -1") << false << false << QAbstractItemView::NoDragDrop << QAbstractItemView::DragDropMode(-1); - QTest::newRow("NoDragDrop 0") << false << false << QAbstractItemView::NoDragDrop << QAbstractItemView::NoDragDrop; - QTest::newRow("NoDragDrop 1") << false << false << QAbstractItemView::NoDragDrop << QAbstractItemView::DragOnly; - QTest::newRow("NoDragDrop 2") << false << false << QAbstractItemView::NoDragDrop << QAbstractItemView::DropOnly; - QTest::newRow("NoDragDrop 3") << false << false << QAbstractItemView::NoDragDrop << QAbstractItemView::DragDrop; - QTest::newRow("NoDragDrop 4") << false << false << QAbstractItemView::NoDragDrop << QAbstractItemView::InternalMove; - QTest::newRow("DragOnly -1") << true << false << QAbstractItemView::DragOnly << QAbstractItemView::DragDropMode(-1); - QTest::newRow("DragOnly 0") << true << false << QAbstractItemView::DragOnly << QAbstractItemView::NoDragDrop; - QTest::newRow("DragOnly 1") << true << false << QAbstractItemView::DragOnly << QAbstractItemView::DragOnly; - QTest::newRow("DragOnly 2") << true << false << QAbstractItemView::DragOnly << QAbstractItemView::DropOnly; - QTest::newRow("DragOnly 3") << true << false << QAbstractItemView::DragOnly << QAbstractItemView::DragDrop; - QTest::newRow("DragOnly 4") << true << false << QAbstractItemView::DragOnly << QAbstractItemView::InternalMove; - QTest::newRow("DropOnly -1") << false << true << QAbstractItemView::DropOnly << QAbstractItemView::DragDropMode(-1); - QTest::newRow("DropOnly 0") << false << true << QAbstractItemView::DropOnly << QAbstractItemView::NoDragDrop; - QTest::newRow("DropOnly 1") << false << true << QAbstractItemView::DropOnly << QAbstractItemView::DragOnly; - QTest::newRow("DropOnly 2") << false << true << QAbstractItemView::DropOnly << QAbstractItemView::DropOnly; - QTest::newRow("DropOnly 3") << false << true << QAbstractItemView::DropOnly << QAbstractItemView::DragDrop; - QTest::newRow("DropOnly 4") << false << true << QAbstractItemView::DropOnly << QAbstractItemView::InternalMove; - QTest::newRow("DragDrop -1") << true << true << QAbstractItemView::DragDrop << QAbstractItemView::DragDropMode(-1); - QTest::newRow("DragDrop 0") << true << true << QAbstractItemView::DragDrop << QAbstractItemView::DragDropMode(-1); - QTest::newRow("DragDrop 1") << true << true << QAbstractItemView::DragDrop << QAbstractItemView::NoDragDrop; - QTest::newRow("DragDrop 2") << true << true << QAbstractItemView::DragDrop << QAbstractItemView::DragOnly; - QTest::newRow("DragDrop 3") << true << true << QAbstractItemView::DragDrop << QAbstractItemView::DropOnly; - QTest::newRow("DragDrop 4") << true << true << QAbstractItemView::DragDrop << QAbstractItemView::DragDrop; - QTest::newRow("DragDrop 5") << true << true << QAbstractItemView::InternalMove << QAbstractItemView::InternalMove; + QTest::addColumn<bool>("setBehavior"); + QTest::addColumn<QAbstractItemView::DragDropMode>("behavior"); + + QTest::newRow("NoDragDrop -1") << false << false << QAbstractItemView::NoDragDrop << false << QAbstractItemView::DragDropMode(); + QTest::newRow("NoDragDrop 0") << false << false << QAbstractItemView::NoDragDrop << true << QAbstractItemView::NoDragDrop; + QTest::newRow("NoDragDrop 1") << false << false << QAbstractItemView::NoDragDrop << true << QAbstractItemView::DragOnly; + QTest::newRow("NoDragDrop 2") << false << false << QAbstractItemView::NoDragDrop << true << QAbstractItemView::DropOnly; + QTest::newRow("NoDragDrop 3") << false << false << QAbstractItemView::NoDragDrop << true << QAbstractItemView::DragDrop; + QTest::newRow("NoDragDrop 4") << false << false << QAbstractItemView::NoDragDrop << true << QAbstractItemView::InternalMove; + QTest::newRow("DragOnly -1") << true << false << QAbstractItemView::DragOnly << false << QAbstractItemView::DragDropMode(); + QTest::newRow("DragOnly 0") << true << false << QAbstractItemView::DragOnly << true << QAbstractItemView::NoDragDrop; + QTest::newRow("DragOnly 1") << true << false << QAbstractItemView::DragOnly << true << QAbstractItemView::DragOnly; + QTest::newRow("DragOnly 2") << true << false << QAbstractItemView::DragOnly << true << QAbstractItemView::DropOnly; + QTest::newRow("DragOnly 3") << true << false << QAbstractItemView::DragOnly << true << QAbstractItemView::DragDrop; + QTest::newRow("DragOnly 4") << true << false << QAbstractItemView::DragOnly << true << QAbstractItemView::InternalMove; + QTest::newRow("DropOnly -1") << false << true << QAbstractItemView::DropOnly << false << QAbstractItemView::DragDropMode(); + QTest::newRow("DropOnly 0") << false << true << QAbstractItemView::DropOnly << true << QAbstractItemView::NoDragDrop; + QTest::newRow("DropOnly 1") << false << true << QAbstractItemView::DropOnly << true << QAbstractItemView::DragOnly; + QTest::newRow("DropOnly 2") << false << true << QAbstractItemView::DropOnly << true << QAbstractItemView::DropOnly; + QTest::newRow("DropOnly 3") << false << true << QAbstractItemView::DropOnly << true << QAbstractItemView::DragDrop; + QTest::newRow("DropOnly 4") << false << true << QAbstractItemView::DropOnly << true << QAbstractItemView::InternalMove; + QTest::newRow("DragDrop -1") << true << true << QAbstractItemView::DragDrop << false << QAbstractItemView::DragDropMode(); + QTest::newRow("DragDrop 0") << true << true << QAbstractItemView::DragDrop << false << QAbstractItemView::DragDropMode(); + QTest::newRow("DragDrop 1") << true << true << QAbstractItemView::DragDrop << true << QAbstractItemView::NoDragDrop; + QTest::newRow("DragDrop 2") << true << true << QAbstractItemView::DragDrop << true << QAbstractItemView::DragOnly; + QTest::newRow("DragDrop 3") << true << true << QAbstractItemView::DragDrop << true << QAbstractItemView::DropOnly; + QTest::newRow("DragDrop 4") << true << true << QAbstractItemView::DragDrop << true << QAbstractItemView::DragDrop; + QTest::newRow("DragDrop 5") << true << true << QAbstractItemView::InternalMove << true << QAbstractItemView::InternalMove; } void tst_QTreeView::dragDropModeFromDragEnabledAndAcceptDrops() @@ -674,13 +632,14 @@ void tst_QTreeView::dragDropModeFromDragEnabledAndAcceptDrops() QFETCH(bool, acceptDrops); QFETCH(bool, dragEnabled); QFETCH(QAbstractItemView::DragDropMode, dragDropMode); - QFETCH(QAbstractItemView::DragDropMode, setBehavior); + QFETCH(bool, setBehavior); + QFETCH(QAbstractItemView::DragDropMode, behavior); QTreeView view; QCOMPARE(view.dragDropMode(), QAbstractItemView::NoDragDrop); - if (setBehavior != QAbstractItemView::DragDropMode(-1)) - view.setDragDropMode(setBehavior); + if (setBehavior) + view.setDragDropMode(behavior); view.setAcceptDrops(acceptDrops); view.setDragEnabled(dragEnabled); @@ -1752,7 +1711,7 @@ void tst_QTreeView::moveCursor() QFETCH(bool, scrollPerPixel); QtTestModel model(8, 6); - PublicView view; + QTreeView view; view.setUniformRowHeights(uniformRowHeights); view.setModel(&model); view.setRowHidden(0, QModelIndex(), true); @@ -1771,7 +1730,7 @@ void tst_QTreeView::moveCursor() QCOMPARE(view.currentIndex(), expected); //then pressing down should go to the next line - QModelIndex actual = view.doMoveCursor(PublicView::MoveDown, Qt::NoModifier); + QModelIndex actual = view.moveCursor(QTreeView::MoveDown, Qt::NoModifier); expected = model.index(2, 1, QModelIndex()); QCOMPARE(actual, expected); @@ -1780,7 +1739,7 @@ void tst_QTreeView::moveCursor() // PageUp was broken with uniform row heights turned on view.setCurrentIndex(model.index(1, 0)); - actual = view.doMoveCursor(PublicView::MovePageUp, Qt::NoModifier); + actual = view.moveCursor(QTreeView::MovePageUp, Qt::NoModifier); expected = model.index(0, 0, QModelIndex()); QCOMPARE(actual, expected); @@ -1879,7 +1838,7 @@ void tst_QTreeView::setSelection() QtTestModel model(10, 5); model.levels = 1; model.setDecorationsEnabled(true); - PublicView view; + QTreeView view; view.resize(400, 300); view.show(); view.setRootIsDecorated(false); @@ -2067,7 +2026,7 @@ void tst_QTreeView::rowsAboutToBeRemoved() } } - PublicView view; + QTreeView view; view.setModel(&model); view.show(); QModelIndex index = model.index(0,0, QModelIndex()); @@ -2081,7 +2040,7 @@ void tst_QTreeView::rowsAboutToBeRemoved() QSignalSpy spy1(&model, SIGNAL(rowsAboutToBeRemoved(QModelIndex,int,int))); model.removeRows(1,1); - QCOMPARE(view.state(), 0); + QCOMPARE(int(view.state()), 0); // Should not be 5 (or any other number for that sake :) QCOMPARE(spy1.count(), 1); @@ -2184,7 +2143,7 @@ void tst_QTreeView::rowsAboutToBeRemoved_move() view.resize(600,800); view.show(); view.doItemsLayout(); - static_cast<PublicView *>(&view)->executeDelayedItemsLayout(); + static_cast<QTreeView *>(&view)->executeDelayedItemsLayout(); parent = indexThatWantsToLiveButWillDieDieITellYou.parent(); QCOMPARE(view.isExpanded(indexThatWantsToLiveButWillDieDieITellYou), true); QCOMPARE(parent.isValid(), true); @@ -2292,7 +2251,7 @@ void tst_QTreeView::spanningItems() { QtTestModel model; model.rows = model.cols = 10; - PublicView view; + QTreeView view; view.setModel(&model); view.show(); @@ -2431,7 +2390,7 @@ void tst_QTreeView::selectionWithHiddenItems() void tst_QTreeView::selectAll() { QStandardItemModel model(4,4); - PublicView view2; + QTreeView view2; view2.setModel(&model); view2.setSelectionMode(QAbstractItemView::ExtendedSelection); view2.selectAll(); // Should work with an empty model @@ -2440,13 +2399,13 @@ void tst_QTreeView::selectAll() for (int i = 0; i < model.rowCount(); ++i) model.setData(model.index(i,0), QLatin1String("row ") + QString::number(i)); - PublicView view; + QTreeView view; view.setModel(&model); int selectedCount = view.selectedIndexes().count(); view.selectAll(); QCOMPARE(view.selectedIndexes().count(), selectedCount); - PublicView view3; + QTreeView view3; view3.setModel(&model); view3.setSelectionMode(QAbstractItemView::NoSelection); view3.selectAll(); @@ -2809,7 +2768,7 @@ void tst_QTreeView::evilModel() { QFETCH(bool, visible); // init - PublicView view; + QTreeView view; EvilModel model; view.setModel(&model); view.setVisible(visible); @@ -2867,7 +2826,7 @@ void tst_QTreeView::evilModel() view.setSelection(rect, QItemSelectionModel::Select); model.change(); - view.doMoveCursor(PublicView::MoveDown, Qt::NoModifier); + view.moveCursor(QTreeView::MoveDown, Qt::NoModifier); model.change(); view.resizeColumnToContents(1); @@ -2978,7 +2937,7 @@ void tst_QTreeView::evilModel() void tst_QTreeView::indexRowSizeHint() { QStandardItemModel model(10, 1); - PublicView view; + QTreeView view; view.setModel(&model); @@ -3024,7 +2983,7 @@ void tst_QTreeView::renderToPixmap_data() void tst_QTreeView::renderToPixmap() { QFETCH(int, row); - PublicView view; + QTreeView view; QStandardItemModel model; model.appendRow(new QStandardItem("Spanning")); @@ -3040,7 +2999,7 @@ void tst_QTreeView::renderToPixmap() // We select the index at row=1 for coverage. QItemSelection sel(model.index(row,0), model.index(row,1)); QRect rect; - view.aiv_priv()->renderToPixmap(sel.indexes(), &rect); + view.d_func()->renderToPixmap(sel.indexes(), &rect); } #endif } @@ -3102,7 +3061,7 @@ void tst_QTreeView::styleOptionViewItem() bool allCollapsed; }; - PublicView view; + QTreeView view; QStandardItemModel model; view.setModel(&model); MyDelegate delegate; @@ -3158,7 +3117,7 @@ void tst_QTreeView::styleOptionViewItem() delegate.count = 0; QItemSelection sel(model.index(0,0), model.index(0,modelColumns-1)); QRect rect; - view.aiv_priv()->renderToPixmap(sel.indexes(), &rect); + view.d_func()->renderToPixmap(sel.indexes(), &rect); if (delegate.count != visibleColumns) { qDebug() << rect << view.rect() << view.isVisible(); } @@ -3186,7 +3145,7 @@ void tst_QTreeView::styleOptionViewItem() delegate.count = 0; QItemSelection sel(model.index(0,0), model.index(0,modelColumns-1)); QRect rect; - view.aiv_priv()->renderToPixmap(sel.indexes(), &rect); + view.d_func()->renderToPixmap(sel.indexes(), &rect); if (delegate.count != visibleColumns) { qDebug() << rect << view.rect() << view.isVisible(); } @@ -4148,7 +4107,7 @@ void tst_QTreeView::taskQTBUG_13567_removeLastItemRegression() // Note: define QT_BUILD_INTERNAL to run this test void tst_QTreeView::taskQTBUG_25333_adjustViewOptionsForIndex() { - PublicView view; + QTreeView view; QStandardItemModel model; QStandardItem *item1 = new QStandardItem("Item1"); QStandardItem *item2 = new QStandardItem("Item2"); @@ -4174,9 +4133,9 @@ void tst_QTreeView::taskQTBUG_25333_adjustViewOptionsForIndex() { QStyleOptionViewItem option; - view.aiv_priv()->adjustViewOptionsForIndex(&option, model.indexFromItem(item1)); + view.d_func()->adjustViewOptionsForIndex(&option, model.indexFromItem(item1)); - view.aiv_priv()->adjustViewOptionsForIndex(&option, model.indexFromItem(item3)); + view.d_func()->adjustViewOptionsForIndex(&option, model.indexFromItem(item3)); } #endif @@ -4282,7 +4241,7 @@ void tst_QTreeView::quickExpandCollapse() //this unit tests makes sure the state after the animation is restored correctly //after starting a 2nd animation while the first one was still on-going //this tests that the stateBeforeAnimation is not set to AnimatingState - PublicView tree; + QTreeView tree; tree.setAnimated(true); QStandardItemModel model; QStandardItem *root = new QStandardItem("root"); @@ -4296,13 +4255,13 @@ void tst_QTreeView::quickExpandCollapse() tree.show(); QTest::qWaitForWindowExposed(&tree); - int initialState = tree.state(); + const QAbstractItemView::State initialState = tree.state(); tree.expand(rootIndex); - QCOMPARE(tree.state(), (int)PublicView::AnimatingState); + QCOMPARE(tree.state(), QTreeView::AnimatingState); tree.collapse(rootIndex); - QCOMPARE(tree.state(), (int)PublicView::AnimatingState); + QCOMPARE(tree.state(), QTreeView::AnimatingState); QTest::qWait(500); //the animation lasts for 250ms max so 500 should be enough |