diff options
Diffstat (limited to 'fileinfomodel.h')
-rw-r--r-- | fileinfomodel.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/fileinfomodel.h b/fileinfomodel.h new file mode 100644 index 0000000..326a88e --- /dev/null +++ b/fileinfomodel.h @@ -0,0 +1,47 @@ +/* + 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 FILEINFOMODEL_H +#define FILEINFOMODEL_H + +#include <QAbstractItemModel> +#include <QStringList> + +class FileInfoItem; + +class FileInfoModel : public QAbstractItemModel { + Q_OBJECT + public: + enum Mode { File, Index }; + FileInfoModel(QObject *parent = 0); + virtual ~FileInfoModel(); + QModelIndex index(int row, int column, const QModelIndex &parent) const; + QModelIndex parent(const QModelIndex &index) const; + int rowCount(const QModelIndex &parent) const; + int columnCount(const QModelIndex &parent) const; + QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const; + Qt::ItemFlags flags(const QModelIndex &index) const; + QVariant headerData(int section, Qt::Orientation o, int role) const; + void addFiles(const QStringList &files); + void addIndex(const QString &title, const QModelIndex &idx); + void clear(); + + protected: + bool insertRows(int row, int count, const QModelIndex &parent = QModelIndex()); + bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex()); + + private: + FileInfoItem *mRootItem; + QStringList mCurrentFiles; + QModelIndex mCurrentIndex; + QString mTitle; + Mode mMode; + +}; + +#endif + |