diff options
author | Eike Ziller <eike.ziller@digia.com> | 2014-09-23 15:44:47 +0200 |
---|---|---|
committer | Eike Ziller <eike.ziller@digia.com> | 2014-09-24 10:37:59 +0200 |
commit | 3ea0020d3b74560cd918af88b911781aceeceaef (patch) | |
tree | 7d57f4998106e44cc2cb93ffe861cb56d4c872e4 | |
parent | 276a5f5acf955d2351663961053bd896d0ecd713 (diff) |
Abstract proxy model: Add missing delegation of supportedDragActions
Change-Id: I4d2519aaa46d3ca075330c6680dd3672249cbefe
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
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" |