diff options
Diffstat (limited to 'seriesmetadatamodel.h')
-rw-r--r-- | seriesmetadatamodel.h | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/seriesmetadatamodel.h b/seriesmetadatamodel.h index a6c74c3..b96ef90 100644 --- a/seriesmetadatamodel.h +++ b/seriesmetadatamodel.h @@ -19,42 +19,48 @@ class QLineEdit; class QPlainTextEdit; class QDateEdit; class QLabel; +class QTreeView; #include "smtreemodel.h" class SeriesMetadataModel : public SmTreeModel { Q_OBJECT public: - enum CumstomRoles { SeriesPartIdRole = Qt::UserRole + 1, ReleaseYearRole = Qt::UserRole + 2, SourceMediumRole = Qt::UserRole + 3, SubjectRole = Qt::UserRole + 4, ReleaseGroupRole = Qt::UserRole + 5, EncoderOptsRole = Qt::UserRole + 6, CommentRole = Qt::UserRole + 7, PassesRole = Qt::UserRole + 8, AddedRole = Qt::UserRole + 9 }; - enum Fields { SeriesPartId = 0, ReleaseYear = 1, SourceMedium = 2, Subject = 3, ReleaseGroup = 4, EncoderOpts = 5, Comment = 6, Passes = 7, Added = 8 }; + enum Fields { ReleaseYear = 0, SourceMedium = 1, Subject = 2, ReleaseGroup = 3, EncoderOpts = 4, Comment = 5, Passes = 6, Added = 7 }; explicit SeriesMetadataModel(const QStringList &headers, QObject *parent = 0); virtual ~SeriesMetadataModel(); //data int currentId() const { return mCurrentId; } - virtual QVariant data(const QModelIndex &index, int role) const; + int numFields() const { return mDataFields; } + virtual QVariant data(int column) const; const QList<QVariant> dataList(const QModelIndex &index) const; const QList<QVariant> fieldList(int field, bool distinct = true) const; virtual bool setData(const QModelIndex &index, const QVariant &value, int role); - virtual bool setData(const QModelIndex &parent, const QVariant &value, int row, int column, int role = Qt::EditRole); + void setAllData(int seriesId, const QList<QVariant> &data); + const QString columnName(int column) const { return mDisplayColumnNames.value(column); } //misc bool hasRecord(int seriesPartId) const; + Qt::ItemFlags flags(const QModelIndex &index) const; public slots: void populate(int seriesPartId); void update(); private: + void createTree(const QList<QVariant> &data); const int mColumns; - bool mDataChanged; + const int mDataFields; int mCurrentId; QSqlDatabase mDb; QSqlQuery *mPopulateQuery; QSqlQuery *mPresentQuery; - QSqlQuery *mUpdateQuery; + QSqlQuery *mUpdateAllQuery; QSqlQuery *mInsertQuery; - QHash<int, QString> mColumnNames; + QHash<int, QString> mDbColumnNames; + QHash<int, QString> mDisplayColumnNames; + QList<QVariant> mData; }; class MetadataWidget : public QWidget { @@ -90,7 +96,7 @@ class MetadataDisplay : public QWidget { private: SeriesMetadataModel *mModel; - QLabel *mDisplay; + QTreeView *mDisplay; }; |