diff --git a/src/modules/interface/qt/data/ReadableItemModel.h b/src/modules/interface/qt/data/ReadableItemModel.h new file mode 100644 index 0000000..c6444f4 --- /dev/null +++ b/src/modules/interface/qt/data/ReadableItemModel.h @@ -0,0 +1,34 @@ +#pragma once + +#include +#include + +#include + +class ReadableItemModel : public QStandardItemModel { +public: + ReadableItemModel() : QStandardItemModel() {} +protected: + QStringList mimeTypes() const override {return QStringList(ReadableData::mimeType());} + QMimeData *mimeData(const QModelIndexList &indices) const override { + if (indices.size() < 1) { + return nullptr; + } + + QVariantList itemDataList; + + for (QModelIndex modelIndex : indices) { + itemDataList.append(itemFromIndex(modelIndex)->data(Qt::UserRole)); + } + + QByteArray b_data; + QDataStream stream(&b_data, QIODevice::WriteOnly); + + stream << itemDataList; + + QMimeData *data = new QMimeData; + data->setData(ReadableData::mimeType(), b_data); + + return data; + } +};