summaryrefslogtreecommitdiffstats
path: root/picfilesmodel.h
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2012-10-04 06:59:44 +0200
committerArno <am@disconnect.de>2012-10-04 07:01:29 +0200
commit184448e767ccdeae66fe4d795757cace98033b0e (patch)
tree26cafbb4fbafe94406413439c0cbd36f5cd66cc3 /picfilesmodel.h
parentdeeec5306a37e2280626f3486a07629570aafe92 (diff)
downloadSheMov-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.h49
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