nodeview: implement dragging items from project explorer into node view

This commit is contained in:
itsmattkc
2022-05-11 14:55:07 -07:00
parent 83e7707025
commit c0ad244397
8 changed files with 281 additions and 145 deletions
+4 -4
View File
@@ -271,7 +271,7 @@ Qt::ItemFlags ProjectViewModel::flags(const QModelIndex &index) const
QStringList ProjectViewModel::mimeTypes() const
{
// Allow data from this model and a file list from external sources
return {QStringLiteral("application/x-oliveprojectitemdata"), QStringLiteral("text/uri-list")};
return {Project::kItemMimeType, QStringLiteral("text/uri-list")};
}
QMimeData *ProjectViewModel::mimeData(const QModelIndexList &indexes) const
@@ -312,7 +312,7 @@ QMimeData *ProjectViewModel::mimeData(const QModelIndexList &indexes) const
}
// Set byte array as the mime data and return the mime data
data->setData(QStringLiteral("application/x-oliveprojectitemdata"), encoded_data);
data->setData(Project::kItemMimeType, encoded_data);
return data;
}
@@ -331,9 +331,9 @@ bool ProjectViewModel::dropMimeData(const QMimeData *data, Qt::DropAction action
// Probe mime data for its format
QStringList mime_formats = data->formats();
if (mime_formats.contains(QStringLiteral("application/x-oliveprojectitemdata"))) {
if (mime_formats.contains(Project::kItemMimeType)) {
// Data is drag/drop data from this model
QByteArray model_data = data->data(QStringLiteral("application/x-oliveprojectitemdata"));
QByteArray model_data = data->data(Project::kItemMimeType);
// Use QDataStream to deserialize the data
QDataStream stream(&model_data, QIODevice::ReadOnly);