]> git.sven.stormbind.net Git - sven/vym.git/blob - src/flagrowmaster.h
Replace Pierre as the maintainer
[sven/vym.git] / src / flagrowmaster.h
1 #ifndef FLAGROWMASTER_H
2 #define FLAGROWMASTER_H
3
4 #include <QList>
5 #include <QStringList>
6 #include <QToolBar>
7
8 #include "flag.h"
9 #include "xmlobj.h"
10
11 /*! \brief A set of flags (Flag).
12
13    A toolbar can be created from the flags in this row.
14    The data needed for represention in a vym map
15    is stored in FlagRowObj.
16  */
17
18 class FlagRowMaster : public XMLObj {
19   public:
20     enum WriteMode { NoFlags, UsedFlags, AllFlags };
21     FlagRowMaster();
22     ~FlagRowMaster();
23     Flag *createFlag(const QString &path);
24     void createConfigureAction();
25     void addActionToToolbar(QAction *a);
26     Flag *findFlagByUid(const QUuid &uid);
27     Flag *findFlagByName(const QString &name);
28     void resetUsedCounter();
29     QString saveDef(WriteMode mode);
30     void saveDataToDir(const QString &, WriteMode mode);
31     void setName(const QString &); // prefix for exporting flags to dir
32     QString getName();             // Used for debugging only
33     void setPrefix(const QString &prefix);
34     void setToolBar(QToolBar *tb);
35     void setEnabled(bool);
36     void updateToolBar(QList<QUuid> activeUids);
37
38   private:
39     QToolBar *toolbar;
40     QList<Flag *> flags;      //! Used in to define flags
41     QString rowName;          //! Name of this collection of flags
42     QString prefix;           //! Prefix for saving data: user/ or standard/
43     QAction *configureAction; //! Action to trigger loading new user flags
44 };
45 #endif