Walls And Holes  1
tiletemplatesetsmanager.h
Go to the documentation of this file.
1 #ifndef TILETEMPLATESETSMANAGER_H
2 #define TILETEMPLATESETSMANAGER_H
3 
4 #include "tilemap.h"
6 
7 #include <QObject>
8 #include <QUndoStack>
9 
16 class TileTemplateSetsManager : public QObject
17 {
18  Q_OBJECT
19 
20 public:
21  explicit TileTemplateSetsManager(QUndoStack *undoStack, TileMap *tileMap = nullptr, QObject *parent = nullptr);
22 
27  void newTileTemplateSet();
28 
34  void addTileTemplateSet(SavableTileTemplateSet *tileTemplateSet);
35 
47  bool removeTileTemplateSet(SavableTileTemplateSet *tileTemplateSet);
48 
55  bool removeTileTemplateSet(int index);
56 
67  bool removeTileTemplate(int templateSetIndex, int templateIndex);
68 
74  void addTileTemplate(int templateSetIndex, TileTemplate *newTemplate);
75 
81 
87  SavableTileTemplateSet *loadTileTemplateSet(bool tryToRelocateOnFail = false);
88 
96  SavableTileTemplateSet *loadTileTemplateSet(QString path, bool tryToRelocateOnFail = false);
97 
98  SavableTileTemplateSet *tileTemplateSetAt(int i) { return mTileTemplateSets[i]; }
99  const QList<SavableTileTemplateSet *> &tileTemplateSets() { return mTileTemplateSets; }
100 
101  void setTileMap(TileMap *tileMap) { mTileMap = tileMap; }
102 
103 signals:
110  void tileTemplateSetAdded(SavableTileTemplateSet *tileTemplateSet);
111 
118 
119 private:
120  TileMap *mTileMap;
121 
122  QList<SavableTileTemplateSet *> mTileTemplateSets;
123 
124  QUndoStack *mUndoStack;
125 };
126 
127 #endif // TILETEMPLATESETSMANAGER_H
void addTileTemplate(int templateSetIndex, TileTemplate *newTemplate)
addTileTemplate Adds a new tile template to the given template set.
Definition: tiletemplatesetsmanager.cpp:219
void newTileTemplateSet()
newTileTemplateSet Opens dialogs to create a new tileTemplateSet
Definition: tiletemplatesetsmanager.cpp:24
void tileTemplateSetAboutToBeRemoved(SavableTileTemplateSet *tileTemplateSet)
tileTemplateSetAboutToBeRemoved emitted right before the given tileTemplateSet is removed and deleted...
bool removeTileTemplate(int templateSetIndex, int templateIndex)
removeTileTemplate Attempts to remove the template specified at this index. If mTileMap uses that tem...
Definition: tiletemplatesetsmanager.cpp:171
SavableTileTemplateSet * tileTemplateSetAt(int i)
Definition: tiletemplatesetsmanager.h:98
The TileTemplateSetsManager class Handles the active tileTemplateSets of the application. Can create dialogs to interact with the user. May modify the attached TileMap when removing templateSets.
Definition: tiletemplatesetsmanager.h:16
void saveAllTileTemplateSets()
saveAllTileTemplateSets Saves all unsaved tileTemplateSets
Definition: tiletemplatesetsmanager.cpp:253
void tileTemplateSetAdded(SavableTileTemplateSet *tileTemplateSet)
tileTemplateSetAdded Emitted whenever a new TileTemplateSet is added to the manager: Either by loadin...
void setTileMap(TileMap *tileMap)
Definition: tiletemplatesetsmanager.h:101
bool removeTileTemplateSet(SavableTileTemplateSet *tileTemplateSet)
removeTileTemplateSet Attempts to remove the given templateSet from the application. If any of the templates of the set are in use, the user will be presented with a dialog, if they confirm the removal, then any tiles using templates from the set will be erased. If the set is not saved, the user will be prompted to save the set before it is removed.
Definition: tiletemplatesetsmanager.cpp:69
void addTileTemplateSet(SavableTileTemplateSet *tileTemplateSet)
addTileTemplateSet Adds the given tileTemplateSet to the application
Definition: tiletemplatesetsmanager.cpp:42
Definition: tiletemplate.h:13
SavableTileTemplateSet * loadTileTemplateSet(bool tryToRelocateOnFail=false)
loadTileTemplateSet Opens dialogs to locate the templateSet to load, then loads it ...
Definition: tiletemplatesetsmanager.cpp:259
The SavableTileTemplateSet class A TileTemplateSet which is tightly bound to a file. Needs to be used with any custom TileTemplateSet (anything other that default map tileTemplates).
Definition: savabletiletemplateset.h:12
TileTemplateSetsManager(QUndoStack *undoStack, TileMap *tileMap=nullptr, QObject *parent=nullptr)
Definition: tiletemplatesetsmanager.cpp:17
Definition: tilemap.h:14
const QList< SavableTileTemplateSet * > & tileTemplateSets()
Definition: tiletemplatesetsmanager.h:99