]> git.sven.stormbind.net Git - sven/vym.git/blobdiff - src/flagrowmaster.h
New upstream version 2.9.22
[sven/vym.git] / src / flagrowmaster.h
diff --git a/src/flagrowmaster.h b/src/flagrowmaster.h
new file mode 100644 (file)
index 0000000..aaf0978
--- /dev/null
@@ -0,0 +1,45 @@
+#ifndef FLAGROWMASTER_H
+#define FLAGROWMASTER_H
+
+#include <QList>
+#include <QStringList>
+#include <QToolBar>
+
+#include "flag.h"
+#include "xmlobj.h"
+
+/*! \brief A set of flags (Flag).
+
+   A toolbar can be created from the flags in this row.
+   The data needed for represention in a vym map
+   is stored in FlagRowObj.
+ */
+
+class FlagRowMaster : public XMLObj {
+  public:
+    enum WriteMode { NoFlags, UsedFlags, AllFlags };
+    FlagRowMaster();
+    ~FlagRowMaster();
+    Flag *createFlag(const QString &path);
+    void createConfigureAction();
+    void addActionToToolbar(QAction *a);
+    Flag *findFlagByUid(const QUuid &uid);
+    Flag *findFlagByName(const QString &name);
+    void resetUsedCounter();
+    QString saveDef(WriteMode mode);
+    void saveDataToDir(const QString &, WriteMode mode);
+    void setName(const QString &); // prefix for exporting flags to dir
+    QString getName();             // Used for debugging only
+    void setPrefix(const QString &prefix);
+    void setToolBar(QToolBar *tb);
+    void setEnabled(bool);
+    void updateToolBar(QList<QUuid> activeUids);
+
+  private:
+    QToolBar *toolbar;
+    QList<Flag *> flags;      //! Used in to define flags
+    QString rowName;          //! Name of this collection of flags
+    QString prefix;           //! Prefix for saving data: user/ or standard/
+    QAction *configureAction; //! Action to trigger loading new user flags
+};
+#endif