summaryrefslogtreecommitdiffstats
path: root/tests/auto
diff options
context:
space:
mode:
authorDavid Faure <david.faure@kdab.com>2017-05-28 10:49:21 +0200
committerLiang Qi <liang.qi@qt.io>2017-05-31 18:54:00 +0000
commitf33cf18d882ada727da0f378525e55d9421e3b16 (patch)
treeccd9d3034dd5a8a3794c1ccd7af9550fbc2f2a27 /tests/auto
parent32a94e54b58f311f37689f4bc8e0c8a54f0f9216 (diff)
QAbstractItemModel::supportedDragActions: fix regression
This method now returns -1 by default, due to commit 6255cb893d which mistakenly replaced -1 with Qt::IgnoreAction (0x0). As a result, dropping is forbidden in a number of applications (I detected this in zanshin). Change-Id: I4922451216e08d5d3fe36f8ba87364a361b691bf Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Diffstat (limited to 'tests/auto')
-rw-r--r--tests/auto/corelib/itemmodels/qabstractitemmodel/tst_qabstractitemmodel.cpp22
-rw-r--r--tests/auto/corelib/itemmodels/qstringlistmodel/tst_qstringlistmodel.cpp9
-rw-r--r--tests/auto/gui/itemmodels/qstandarditemmodel/tst_qstandarditemmodel.cpp8
3 files changed, 39 insertions, 0 deletions
diff --git a/tests/auto/corelib/itemmodels/qabstractitemmodel/tst_qabstractitemmodel.cpp b/tests/auto/corelib/itemmodels/qabstractitemmodel/tst_qabstractitemmodel.cpp
index dcd9eda4bb..9f67ccd9c9 100644
--- a/tests/auto/corelib/itemmodels/qabstractitemmodel/tst_qabstractitemmodel.cpp
+++ b/tests/auto/corelib/itemmodels/qabstractitemmodel/tst_qabstractitemmodel.cpp
@@ -101,6 +101,7 @@ private slots:
void testRoleNames();
void testDragActions();
+ void dragActionsFallsBackToDropActions();
void testFunctionPointerSignalConnection();
@@ -2157,6 +2158,27 @@ void tst_QAbstractItemModel::testDragActions()
QVERIFY(actions & Qt::MoveAction);
}
+class OverrideDropActions : public QStringListModel
+{
+ Q_OBJECT
+public:
+ OverrideDropActions(QObject *parent = 0)
+ : QStringListModel(parent)
+ {
+ }
+ Qt::DropActions supportedDropActions() const override
+ {
+ return Qt::MoveAction;
+ }
+};
+
+void tst_QAbstractItemModel::dragActionsFallsBackToDropActions()
+{
+ QAbstractItemModel *model = new OverrideDropActions(this);
+ QCOMPARE(model->supportedDragActions(), Qt::MoveAction);
+ QCOMPARE(model->supportedDropActions(), Qt::MoveAction);
+}
+
class SignalConnectionTester : public QObject
{
Q_OBJECT
diff --git a/tests/auto/corelib/itemmodels/qstringlistmodel/tst_qstringlistmodel.cpp b/tests/auto/corelib/itemmodels/qstringlistmodel/tst_qstringlistmodel.cpp
index f99241da3b..adc8c59bf7 100644
--- a/tests/auto/corelib/itemmodels/qstringlistmodel/tst_qstringlistmodel.cpp
+++ b/tests/auto/corelib/itemmodels/qstringlistmodel/tst_qstringlistmodel.cpp
@@ -80,6 +80,8 @@ private slots:
void setData_emits_both_roles_data();
void setData_emits_both_roles();
+
+ void supportedDragDropActions();
};
void tst_QStringListModel::rowsAboutToBeRemoved_rowsRemoved_data()
@@ -250,5 +252,12 @@ void tst_QStringListModel::setData_emits_both_roles()
expected);
}
+void tst_QStringListModel::supportedDragDropActions()
+{
+ QStringListModel model;
+ QCOMPARE(model.supportedDragActions(), Qt::CopyAction | Qt::MoveAction);
+ QCOMPARE(model.supportedDropActions(), Qt::CopyAction | Qt::MoveAction);
+}
+
QTEST_MAIN(tst_QStringListModel)
#include "tst_qstringlistmodel.moc"
diff --git a/tests/auto/gui/itemmodels/qstandarditemmodel/tst_qstandarditemmodel.cpp b/tests/auto/gui/itemmodels/qstandarditemmodel/tst_qstandarditemmodel.cpp
index dca718a6d8..cff26be7bb 100644
--- a/tests/auto/gui/itemmodels/qstandarditemmodel/tst_qstandarditemmodel.cpp
+++ b/tests/auto/gui/itemmodels/qstandarditemmodel/tst_qstandarditemmodel.cpp
@@ -125,6 +125,7 @@ private slots:
void itemRoleNames();
void getMimeDataWithInvalidModelIndex();
+ void supportedDragDropActions();
private:
QAbstractItemModel *m_model;
@@ -1666,5 +1667,12 @@ void tst_QStandardItemModel::getMimeDataWithInvalidModelIndex()
QVERIFY(!data);
}
+void tst_QStandardItemModel::supportedDragDropActions()
+{
+ QStandardItemModel model;
+ QCOMPARE(model.supportedDragActions(), Qt::CopyAction | Qt::MoveAction);
+ QCOMPARE(model.supportedDropActions(), Qt::CopyAction | Qt::MoveAction);
+}
+
QTEST_MAIN(tst_QStandardItemModel)
#include "tst_qstandarditemmodel.moc"