diff options
Diffstat (limited to 'archivemodel.h')
-rw-r--r-- | archivemodel.h | 20 |
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: |