summaryrefslogtreecommitdiffstats
path: root/sigmodr/tree/TreeModel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'sigmodr/tree/TreeModel.cpp')
-rw-r--r--sigmodr/tree/TreeModel.cpp12
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)