Go to the documentation of this file.
1 #ifndef DNAI_CORE_ENUMHANDLER_H
2 #define DNAI_CORE_ENUMHANDLER_H
3 
4 #include <queue>
5 
6 #include <QObject>
7 
8 #include "entitymanager.h"
9 
10 namespace dnai
11 {
12  namespace gcore
13  {
14  class EnumHandler : public QObject
15  {
16  Q_OBJECT
17 
18  public:
20  ~EnumHandler() = default;
21 
22  public:
23  void setup();
24 
25  signals:
26  void valueSet(dnai::models::Entity *enumeration, QString name, QString value);
27  void valueRemoved(dnai::models::Entity *enumeration, QString name);
28 
29  public slots:
30  void onEntityAdded(::core::EntityID id, models::Entity &entity);
31 
32  public:
33  Q_INVOKABLE void renameValue(quint32 entity, QString name, QString newName, bool save = true);
34  Q_INVOKABLE void setValue(quint32 entity, QString name, QString value, bool save = true);
35  Q_INVOKABLE void removeValue(quint32 entity, QString const &name, bool save = true);
36 
37  private:
38  void onValueSet(::core::EntityID enumeration, QString const &name, QString const &value);
39  void onSetValueError(::core::EntityID enumeration, QString const &name, QString const &value, QString const &message);
40 
41  void onValueRemoved(::core::EntityID enumeration, QString const &name);
42  void onRemoveValueError(::core::EntityID enumeration, QString const &name, QString const &message);
43 
44  private:
46 
47  private:
48  std::queue<QString> m_pendingRemove;
49  };
50  }
51 }
52 
53 #endif // DNAI_CORE_ENUMHANDLER_H
Definition: enumhandler.h:14
void valueRemoved(dnai::models::Entity *enumeration, QString name)
Definition: moc_enumhandler.cpp:207
EntityManager & manager
Definition: enumhandler.h:45
Definition: entitymanager.h:15
EnumHandler(EntityManager &manager)
Definition: enumhandler.cpp:22
std::queue< QString > m_pendingRemove
Definition: enumhandler.h:48
void setup()
Definition: enumhandler.cpp:28
Q_INVOKABLE void renameValue(quint32 entity, QString name, QString newName, bool save=true)
Definition: enumhandler.cpp:54
void onEntityAdded(::core::EntityID id, models::Entity &entity)
Definition: enumhandler.cpp:39
Definition: api.h:13
void onRemoveValueError(::core::EntityID enumeration, QString const &name, QString const &message)
Definition: enumhandler.cpp:155
void onValueRemoved(::core::EntityID enumeration, QString const &name)
Definition: enumhandler.cpp:144
void onSetValueError(::core::EntityID enumeration, QString const &name, QString const &value, QString const &message)
Definition: enumhandler.cpp:138
Definition: entity.h:71
Q_INVOKABLE void setValue(quint32 entity, QString name, QString value, bool save=true)
Definition: enumhandler.cpp:73
void valueSet(dnai::models::Entity *enumeration, QString name, QString value)
Definition: moc_enumhandler.cpp:200
void onValueSet(::core::EntityID enumeration, QString const &name, QString const &value)
Definition: enumhandler.cpp:115
Q_INVOKABLE void removeValue(quint32 entity, QString const &name, bool save=true)
Definition: enumhandler.cpp:96