Walls And Holes  1
tiletemplateset.h
Go to the documentation of this file.
1 #ifndef TILESET_H
2 #define TILESET_H
3 
4 #include "tiletemplate.h"
5 
6 #include <QAbstractItemModel>
7 #include <QList>
8 
14 class TileTemplateSet : public QAbstractItemModel
15 {
16  Q_OBJECT
17 
18 public:
19  explicit TileTemplateSet(QString name = "New Tile Template Set",
20  QObject *parent = nullptr);
21 
22  //General Items::
23 
24  //Adds the given tileTemplate to the end of the tileList
25  //should pass new TileTemplate(...) to this
26  void addTileTemplate(TileTemplate *tileTemplate, bool dontAffectSaveStatus = false);
27 
28  //removes the tiletemplate at the specified index
29  void removeTileTemplate(int index);
30 
31  TileTemplate *tileTemplateAt(int i) { return mTileTemplates[i]; }
32  const TileTemplate *cTileTemplateAt(int i) const { return mTileTemplates[i]; }
33 
34  QString name() const { return mName; }
35  void setName(QString name) { changed(); mName = name; }
36 
37  int size() const { return mTileTemplates.size(); }
38 
39  const QList<TileTemplate *> &cTileTemplates() const { return mTileTemplates; }
40 
41  //Model Functions::
42  QModelIndex index(int row, int,
43  const QModelIndex &parent = QModelIndex()) const override;
44  QModelIndex parent(const QModelIndex &) const override;
45 
46  int rowCount(const QModelIndex &parent = QModelIndex()) const override;
47  int columnCount(const QModelIndex &parent = QModelIndex()) const override;
48 
49  QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
50 
51  // Editable:
52  bool setData(const QModelIndex &index, const QVariant &value,
53  int role = Qt::EditRole) override;
54 
55  Qt::ItemFlags flags(const QModelIndex& index) const override;
56 
57 private slots:
58  void templateChanged() { changed(); }
59 
60 protected:
61  //should be called whenever data needing to be saved changes
62  //To be used in sub classes
63  virtual void changed() {}
64 
65 private:
66  QString mName;
67 
68  QList<TileTemplate *> mTileTemplates;
69 };
70 
71 #endif // TILESET_H
int columnCount(const QModelIndex &parent=QModelIndex()) const override
Definition: tiletemplateset.cpp:64
QModelIndex parent(const QModelIndex &) const override
Definition: tiletemplateset.cpp:51
const TileTemplate * cTileTemplateAt(int i) const
Definition: tiletemplateset.h:32
QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const override
Definition: tiletemplateset.cpp:72
Qt::ItemFlags flags(const QModelIndex &index) const override
Definition: tiletemplateset.cpp:115
The TileTemplateSet class Stores a list of tile templates. Also implements the item model for them...
Definition: tiletemplateset.h:14
void addTileTemplate(TileTemplate *tileTemplate, bool dontAffectSaveStatus=false)
Definition: tiletemplateset.cpp:10
void removeTileTemplate(int index)
Definition: tiletemplateset.cpp:28
TileTemplate * tileTemplateAt(int i)
Definition: tiletemplateset.h:31
TileTemplateSet(QString name="New Tile Template Set", QObject *parent=nullptr)
Definition: tiletemplateset.cpp:5
QModelIndex index(int row, int, const QModelIndex &parent=QModelIndex()) const override
Definition: tiletemplateset.cpp:43
virtual void changed()
Definition: tiletemplateset.h:63
int rowCount(const QModelIndex &parent=QModelIndex()) const override
Definition: tiletemplateset.cpp:56
int size() const
Definition: tiletemplateset.h:37
QString name() const
Definition: tiletemplateset.h:34
const QList< TileTemplate * > & cTileTemplates() const
Definition: tiletemplateset.h:39
Definition: tiletemplate.h:13
bool setData(const QModelIndex &index, const QVariant &value, int role=Qt::EditRole) override
Definition: tiletemplateset.cpp:98
void setName(QString name)
Definition: tiletemplateset.h:35