From 184448e767ccdeae66fe4d795757cace98033b0e Mon Sep 17 00:00:00 2001 From: Arno Date: Thu, 4 Oct 2012 06:59:44 +0200 Subject: Fix Mappings in PictureViewer2 Another fix for the new MappingTreeModel database layout: Make the mappings display correctly when showing an archived picture. For performance reasons I had to make PicFilesModel global and put it into a separate file. Also clean up MappingTreeModel: remove comments and unused functions. --- picfilesmodel.h | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 picfilesmodel.h (limited to 'picfilesmodel.h') diff --git a/picfilesmodel.h b/picfilesmodel.h new file mode 100644 index 0000000..146fbfc --- /dev/null +++ b/picfilesmodel.h @@ -0,0 +1,49 @@ +/* + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version + 2 of the License, or (at your option) any later version. +*/ + +#ifndef PICFILESMODEL_H +#define PICFILESMODEL_H + +#include "smtreemodel.h" +#include "mappingtreemodel.h" + +class PicFilesModel : public SmTreeModel { + Q_OBJECT + public: + enum Roles { FileNameRole = Qt::UserRole + 1, SizeRole = Qt::UserRole + 2, MimeTypeRole = Qt::UserRole + 3, FullPathRole = Qt::UserRole + 4, IdRole = Qt::UserRole + 5, AddedRole = Qt::UserRole + 6, Md5SumRole = Qt::UserRole + 7, SizeDisplayRole = Qt::UserRole + 8 }; + enum Fields { FileName = 0, Size = 1, MimeType = 2, FullPath = 3, Id = 4, Added = 5, Md5Sum = 6, SizeDisplay = 7 }; + enum { NumFields = 8 }; + explicit PicFilesModel(const QStringList &headers, QObject *parent = 0); + ~PicFilesModel(); + void setMapping(int pMapId); + + //some data + Qt::ItemFlags flags(const QModelIndex &) const { return Qt::ItemIsEnabled | Qt::ItemIsSelectable; } + QVariant data(const QModelIndex &index, int role) const; + QList dataList(const QModelIndex &idx) const; + QList > allFiles() const; + void removeFiles(const QList &files); + bool changeMappings(const QList &fileIds, const QList &mappingIds); + QList mappingDataFromFile(int fileId) const; + QList mappingDataFromFiles(const QList fileIds) const; + + public slots: + void populate(); + + private: + QList mappingPIdsFromFiles(QList fileIds) const; + QSqlDatabase mDb; + MappingTreeModel *mMappingTreeModel; + QString mPopulateQS; + QString mMappingsQS; + QSqlQuery *mDeleteFileQ; + QSqlQuery *mDeleteMappingsQ; + QSqlQuery *mAddMappingsQ; + QList mMappingIds; +}; + +#endif // PICFILESMODEL_H -- cgit v1.2.3-70-g09d2