diff options
author | Jochen Becher <jochen_becher@gmx.de> | 2015-06-04 12:35:59 +0200 |
---|---|---|
committer | Jochen Becher <jochen_becher@gmx.de> | 2015-06-15 08:12:56 +0000 |
commit | 431b25ad27e1905060b85ed01dda8dc194e06a21 (patch) | |
tree | aaf231cbdfd5c3ed382d65d4459b37773e7a305f /src/plugins/projectexplorer/projectmodels.cpp | |
parent | d3118771422c71821908ac2ab88d1dcfba1a4d98 (diff) | |
download | qt-creator-431b25ad27e1905060b85ed01dda8dc194e06a21.tar.gz |
Introduce dragging for all explorer nodes.
Extend drop support with variant values. A drop may be a file drop or a
value drop or both.
Rename Utils::FileDropSupport to Utils::DropSupport and add methods to
add not only files but any QVariant value to the mime data. Project
explorer adds dragged nodes (which will be needed for future ModelEditor
plugin).
Change-Id: I799542c60fdecb3e64af0d3ba47b6caa9adbcfd7
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
Diffstat (limited to 'src/plugins/projectexplorer/projectmodels.cpp')
-rw-r--r-- | src/plugins/projectexplorer/projectmodels.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/plugins/projectexplorer/projectmodels.cpp b/src/plugins/projectexplorer/projectmodels.cpp index 5986f54876..4fa29622db 100644 --- a/src/plugins/projectexplorer/projectmodels.cpp +++ b/src/plugins/projectexplorer/projectmodels.cpp @@ -37,6 +37,7 @@ #include <coreplugin/fileiconprovider.h> #include <utils/algorithm.h> +#include <utils/dropsupport.h> #include <QDebug> #include <QFileInfo> @@ -313,7 +314,7 @@ Qt::ItemFlags FlatModel::flags(const QModelIndex &index) const // We claim that everything is editable // That's slightly wrong // We control the only view, and that one does the checks - Qt::ItemFlags f = Qt::ItemIsSelectable|Qt::ItemIsEnabled; + Qt::ItemFlags f = Qt::ItemIsSelectable|Qt::ItemIsEnabled|Qt::ItemIsDragEnabled; if (Node *node = nodeForIndex(index)) { if (node == m_rootNode) return 0; // no flags for session node... @@ -321,8 +322,6 @@ Qt::ItemFlags FlatModel::flags(const QModelIndex &index) const // either folder or file node if (node->supportedActions(node).contains(Rename)) f = f | Qt::ItemIsEditable; - if (node->asFileNode()) - f = f | Qt::ItemIsDragEnabled; } } return f; @@ -490,16 +489,17 @@ Qt::DropActions FlatModel::supportedDragActions() const QStringList FlatModel::mimeTypes() const { - return Utils::FileDropSupport::mimeTypesForFilePaths(); + return Utils::DropSupport::mimeTypesForFilePaths(); } QMimeData *FlatModel::mimeData(const QModelIndexList &indexes) const { - auto data = new Utils::FileDropMimeData; + auto data = new Utils::DropMimeData; foreach (const QModelIndex &index, indexes) { Node *node = nodeForIndex(index); if (node->asFileNode()) data->addFile(node->path().toString()); + data->addValue(QVariant::fromValue(node)); } return data; } |