summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@digia.com>2014-09-23 15:44:47 +0200
committerEike Ziller <eike.ziller@digia.com>2014-09-24 10:37:59 +0200
commit3ea0020d3b74560cd918af88b911781aceeceaef (patch)
tree7d57f4998106e44cc2cb93ffe861cb56d4c872e4
parent276a5f5acf955d2351663961053bd896d0ecd713 (diff)
Abstract proxy model: Add missing delegation of supportedDragActions
Change-Id: I4d2519aaa46d3ca075330c6680dd3672249cbefe Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
-rw-r--r--src/corelib/itemmodels/qabstractproxymodel.cpp9
-rw-r--r--src/corelib/itemmodels/qabstractproxymodel.h1
-rw-r--r--tests/auto/corelib/itemmodels/qabstractproxymodel/tst_qabstractproxymodel.cpp20
3 files changed, 30 insertions, 0 deletions
diff --git a/src/corelib/itemmodels/qabstractproxymodel.cpp b/src/corelib/itemmodels/qabstractproxymodel.cpp
index 5250e2bf15..dcb7cc0d64 100644
--- a/src/corelib/itemmodels/qabstractproxymodel.cpp
+++ b/src/corelib/itemmodels/qabstractproxymodel.cpp
@@ -428,6 +428,15 @@ QStringList QAbstractProxyModel::mimeTypes() const
/*!
\reimp
*/
+Qt::DropActions QAbstractProxyModel::supportedDragActions() const
+{
+ Q_D(const QAbstractProxyModel);
+ return d->model->supportedDragActions();
+}
+
+/*!
+ \reimp
+ */
Qt::DropActions QAbstractProxyModel::supportedDropActions() const
{
Q_D(const QAbstractProxyModel);
diff --git a/src/corelib/itemmodels/qabstractproxymodel.h b/src/corelib/itemmodels/qabstractproxymodel.h
index f1d3d0b07c..01b5f09c8e 100644
--- a/src/corelib/itemmodels/qabstractproxymodel.h
+++ b/src/corelib/itemmodels/qabstractproxymodel.h
@@ -96,6 +96,7 @@ public:
bool dropMimeData(const QMimeData *data, Qt::DropAction action,
int row, int column, const QModelIndex &parent) Q_DECL_OVERRIDE;
QStringList mimeTypes() const;
+ Qt::DropActions supportedDragActions() const;
Qt::DropActions supportedDropActions() const;
Q_SIGNALS:
diff --git a/tests/auto/corelib/itemmodels/qabstractproxymodel/tst_qabstractproxymodel.cpp b/tests/auto/corelib/itemmodels/qabstractproxymodel/tst_qabstractproxymodel.cpp
index f36bbbc5b6..18678a35c0 100644
--- a/tests/auto/corelib/itemmodels/qabstractproxymodel/tst_qabstractproxymodel.cpp
+++ b/tests/auto/corelib/itemmodels/qabstractproxymodel/tst_qabstractproxymodel.cpp
@@ -72,6 +72,7 @@ private slots:
void submit();
void testRoleNames();
void testSwappingRowsProxy();
+ void testDragAndDrop();
};
// Subclass that exposes the protected functions.
@@ -495,6 +496,25 @@ void tst_QAbstractProxyModel::testSwappingRowsProxy()
}
}
+class StandardItemModelWithCustomDragAndDrop : public QStandardItemModel
+{
+public:
+ QStringList mimeTypes() const { return QStringList() << QStringLiteral("foo/mimetype"); }
+ Qt::DropActions supportedDragActions() const { return Qt::CopyAction | Qt::LinkAction; }
+ Qt::DropActions supportedDropActions() const { return Qt::MoveAction; }
+};
+
+void tst_QAbstractProxyModel::testDragAndDrop()
+{
+ StandardItemModelWithCustomDragAndDrop sourceModel;
+ SubQAbstractProxyModel proxy;
+ proxy.setSourceModel(&sourceModel);
+ QCOMPARE(proxy.mimeTypes(), sourceModel.mimeTypes());
+ QCOMPARE(proxy.supportedDragActions(), sourceModel.supportedDragActions());
+ QCOMPARE(proxy.supportedDropActions(), sourceModel.supportedDropActions());
+}
+
+
QTEST_MAIN(tst_QAbstractProxyModel)
#include "tst_qabstractproxymodel.moc"