diff options
Diffstat (limited to 'sigmodr/tree/TreeModel.cpp')
-rw-r--r-- | sigmodr/tree/TreeModel.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/sigmodr/tree/TreeModel.cpp b/sigmodr/tree/TreeModel.cpp index 8331d7a2..723bfa4a 100644 --- a/sigmodr/tree/TreeModel.cpp +++ b/sigmodr/tree/TreeModel.cpp @@ -90,6 +90,18 @@ QStringList TreeModel::mimeTypes() const QMimeData* TreeModel::mimeData(const QModelIndexList& indexes) const { + QMimeData* data = new QMimeData; + QDomDocument document("SigmodCopyData"); + foreach (const QModelIndex& index, indexes) + { + if (!index.isValid()) + continue; + TreeItem* item = static_cast<TreeItem*>(index.internalPointer()); + if (item->canEdit()) + document.appendChild(item->copyData()); + } + data->setData("application/x-sigmod-copy+xml", document.toByteArray()); + return data; } bool TreeModel::dropMimeData(const QMimeData* data, Qt::DropAction action, const int row, const int column, const QModelIndex& parent) |