summaryrefslogtreecommitdiffstats
path: root/archivemodel.h
diff options
context:
space:
mode:
Diffstat (limited to 'archivemodel.h')
-rw-r--r--archivemodel.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/archivemodel.h b/archivemodel.h
index 4ef39fa..a9994d0 100644
--- a/archivemodel.h
+++ b/archivemodel.h
@@ -12,6 +12,7 @@
#include <QThread>
#include <QDataStream>
#include <QMutex>
+#include <QSet>
#include "smtreemodel.h"
@@ -35,6 +36,7 @@ class ArchiveModel : public SmTreeModel {
virtual bool removeNode(const QModelIndex &idx);
QStringList indexToPath(const QModelIndex &idx) const;
QModelIndexList pathToIndex(const QStringList &path) const;
+ QSet<int> seriesPartIds(const QModelIndex &idx) const;
signals:
void needRefresh();
@@ -64,6 +66,24 @@ class ArchiveModel : public SmTreeModel {
int mOrder;
};
+class ArchiveFilesModel : public SmTreeModel {
+ Q_OBJECT
+ public:
+ enum CustomRoles { SeriesPartIdRole = Qt::UserRole + 1, FilenameRole = Qt::UserRole + 2, Md5SumRole = Qt::UserRole + 3, SizeRole = Qt::UserRole + 4, DvdNoRole = Qt::UserRole + 5, FileTypeRole = Qt::UserRole + 6, FileNumberRole = Qt::UserRole + 7, QualityRole = Qt::UserRole + 8, FileIdRole = Qt::UserRole + 9, PicSizeRole = Qt::UserRole + 10, DurationRole = Qt::UserRole + 11, FullPathRole = Qt::UserRole + 12 };
+ enum Fields { SeriesPartId = 0, Filename = 1, Md5Sum = 2, Size = 3, DvdNo = 4, FileType = 5, FileNumber = 6, Quality = 7, FileId = 8, PicSize = 9, Duration = 10, FullPath = 11 };
+ enum FileType { Movie = 1, FrontCover = 2, BackCover = 3, GeneralCover = 4 };
+ enum { NumFields = 12 };
+ explicit ArchiveFilesModel(const QStringList &headers, QObject *parent = 0);
+ virtual QVariant data(const QModelIndex &index, int role) const;
+ virtual bool setData(const QModelIndex &idx, const QVariant &value, int role);
+ void populate(const QSet<int> &seriesPartIds);
+
+ private:
+ QList<int> mSeriesPartIds;
+ QHash<int, QString> mRoleDbColumnMap;
+ QSqlDatabase mDb;
+};
+
class ArchiveCollector : public QThread {
Q_OBJECT
public: