diff options
author | Arno <am@disconnect.de> | 2012-10-04 06:59:44 +0200 |
---|---|---|
committer | Arno <am@disconnect.de> | 2012-10-04 07:01:29 +0200 |
commit | 184448e767ccdeae66fe4d795757cace98033b0e (patch) | |
tree | 26cafbb4fbafe94406413439c0cbd36f5cd66cc3 /picfilesmodel.h | |
parent | deeec5306a37e2280626f3486a07629570aafe92 (diff) | |
download | SheMov-184448e767ccdeae66fe4d795757cace98033b0e.tar.gz SheMov-184448e767ccdeae66fe4d795757cace98033b0e.tar.bz2 SheMov-184448e767ccdeae66fe4d795757cace98033b0e.zip |
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.
Diffstat (limited to 'picfilesmodel.h')
-rw-r--r-- | picfilesmodel.h | 49 |
1 files changed, 49 insertions, 0 deletions
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<QVariant> dataList(const QModelIndex &idx) const; + QList<QList<QVariant> > allFiles() const; + void removeFiles(const QList<QPersistentModelIndex> &files); + bool changeMappings(const QList<int> &fileIds, const QList<int> &mappingIds); + QList<MappingData> mappingDataFromFile(int fileId) const; + QList<MappingData> mappingDataFromFiles(const QList<int> fileIds) const; + + public slots: + void populate(); + + private: + QList<int> mappingPIdsFromFiles(QList<int> fileIds) const; + QSqlDatabase mDb; + MappingTreeModel *mMappingTreeModel; + QString mPopulateQS; + QString mMappingsQS; + QSqlQuery *mDeleteFileQ; + QSqlQuery *mDeleteMappingsQ; + QSqlQuery *mAddMappingsQ; + QList<int> mMappingIds; +}; + +#endif // PICFILESMODEL_H |