qt: add ReadableItemModel

This commit is contained in:
Jussi Kuokkanen 2019-11-17 15:15:24 +02:00
parent 9119d9a3f8
commit 716545f0a1

View File

@ -0,0 +1,34 @@
#pragma once
#include <QStandardItemModel>
#include <QMimeData>
#include <ReadableData.h>
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;
}
};