X-Git-Url: https://git.sven.stormbind.net/?a=blobdiff_plain;f=src%2Fslidemodel.h;fp=src%2Fslidemodel.h;h=6503ebcac072e6698145dcb784e0ae9f4012ddc3;hb=d483bd8e6523c23c6f1d8908a2e0611c2bc9ff4f;hp=0000000000000000000000000000000000000000;hpb=7dfa3fe589d1722d49681f42cdb0bf1e6efb5223;p=sven%2Fvym.git diff --git a/src/slidemodel.h b/src/slidemodel.h new file mode 100644 index 0000000..6503ebc --- /dev/null +++ b/src/slidemodel.h @@ -0,0 +1,85 @@ +#ifndef SLIDEMODEL_H +#define SLIDEMODEL_H + +#include +#include +#include +#include + +#include "xmlobj.h" + +class QItemSelectionModel; +class SlideItem; +class TreeItem; +class VymModel; + +class SlideModel : public QAbstractItemModel, XMLObj { + Q_OBJECT + + public: + SlideModel(VymModel *vm); + ~SlideModel(); + void clear(); + + VymModel *getVymModel(); + QVariant data(const QModelIndex &index, int role) const; + QVariant headerData(int section, Qt::Orientation orientation, + int role = Qt::DisplayRole) const; + + QModelIndex index(SlideItem *fri); + QModelIndex index(int row, int column, + const QModelIndex &parent = QModelIndex()) const; + QModelIndex parent(const QModelIndex &index) const; + + int count(); + int rowCount(const QModelIndex &parent = QModelIndex()) const; + int columnCount(const QModelIndex &parent = QModelIndex()) const; + + Qt::ItemFlags flags(const QModelIndex &index) const; + bool setData(const QModelIndex &index, const QVariant &value, + int role = Qt::EditRole); + bool setHeaderData(int section, Qt::Orientation orientation, + const QVariant &value, int role = Qt::EditRole); + + bool insertColumns(int position, int columns, + const QModelIndex &parent = QModelIndex()); + bool removeColumns(int position, int columns, + const QModelIndex &parent = QModelIndex()); + bool insertRows(int position, int rows, + const QModelIndex &parent = QModelIndex()); + bool removeRows(int position, int rows, + const QModelIndex &parent = QModelIndex()); + + SlideItem *addSlide(SlideItem *dst = NULL, int n = -1); + void deleteSlide(SlideItem *si); + bool relinkSlide(SlideItem *si, SlideItem *dst, int pos); + + SlideItem *getItem(const QModelIndex &index) const; + SlideItem *getSlide(int n); + SlideItem *findSlideID(uint n); + QString saveToDir(); + + void setSearchString(const QString &s); + QString getSearchString(); + void setSearchFlags(QTextDocument::FindFlags f); + QTextDocument::FindFlags getSearchFlags(); + + // Selection related + public: + void setSelectionModel(QItemSelectionModel *); + QItemSelectionModel *getSelectionModel(); + QModelIndex getSelectedIndex(); + SlideItem *getSelectedItem(); + + private: + QItemSelectionModel *selModel; + VymModel *vymModel; // needed for saveToDir + + private: + SlideItem *rootItem; + + QString searchString; + QTextDocument::FindFlags searchFlags; +}; + +#endif