feat(cpn): add filenames to model compare (#5187)

This commit is contained in:
Neil Horne
2024-06-17 09:11:48 +10:00
committed by GitHub
parent f1b387be23
commit 98593ef084
5 changed files with 56 additions and 1 deletions
+36
View File
@@ -318,6 +318,7 @@ QMimeData * ModelsListModel::mimeData(const QModelIndexList & indexes) const
getModelsMimeData(indexes, mimeData);
getGeneralMimeData(mimeData);
getHeaderMimeData(mimeData);
getFileMimeData(mimeData);
return mimeData;
}
@@ -398,6 +399,16 @@ QMimeData *ModelsListModel::getHeaderMimeData(QMimeData * mimeData) const
return mimeData;
}
QMimeData *ModelsListModel::getFileMimeData(QMimeData * mimeData) const
{
if (!mimeData)
mimeData = new QMimeData();
QByteArray mData;
encodeFileData(&mData);
mimeData->setData("application/x-companion-filedata", mData);
return mimeData;
}
QUuid ModelsListModel::getMimeDataSourceId(const QMimeData * mimeData) const
{
MimeHeaderData header;
@@ -429,6 +440,11 @@ bool ModelsListModel::hasHeaderMimeData(const QMimeData * mimeData) const
return mimeData->hasFormat("application/x-companion-radiodata-header");
}
bool ModelsListModel::hasFileMimeData(const QMimeData * mimeData) const
{
return mimeData->hasFormat("application/x-companion-filedata");
}
// returns true if mime data origin was this data model (vs. from another file window)
bool ModelsListModel::hasOwnMimeData(const QMimeData * mimeData) const
{
@@ -460,6 +476,11 @@ void ModelsListModel::encodeHeaderData(QByteArray * data) const
stream << mimeHeaderData.instanceId;
}
void ModelsListModel::encodeFileData(QByteArray * data) const
{
*data = filename.toLatin1();
}
// static
bool ModelsListModel::decodeHeaderData(const QMimeData * mimeData, MimeHeaderData * header)
{
@@ -472,6 +493,16 @@ bool ModelsListModel::decodeHeaderData(const QMimeData * mimeData, MimeHeaderDat
return false;
}
// static
bool ModelsListModel::decodeFileData(const QMimeData * mimeData, QString * filedata)
{
if (filedata && mimeData->hasFormat("application/x-companion-filedata")) {
*filedata = mimeData->data("application/x-companion-filedata").data();
return true;
}
return false;
}
// static
bool ModelsListModel::decodeMimeData(const QMimeData * mimeData, QVector<ModelData> * models, GeneralSettings * gs, bool * hasGenSet)
{
@@ -682,6 +713,11 @@ bool ModelsListModel::isModelIdUnique(unsigned modelIdx, unsigned module, unsign
return true;
}
void ModelsListModel::setFilename(QString & name)
{
filename = name;
}
/*
ModelsListProxyModel
*/