handlermanager.h
Go to the documentation of this file.
1 #ifndef DNAI_CORE_HANDLERMANAGER_H
2 #define DNAI_CORE_HANDLERMANAGER_H
3 
4 #include <QObject>
5 
6 #include "entitymanager.h"
7 
8 #include "projecthandler.h"
9 #include "declaratorhandler.h"
10 #include "variablehandler.h"
11 #include "objecthandler.h"
12 #include "functionhandler.h"
13 #include "enumhandler.h"
14 #include "listhandler.h"
15 #include "globalhandler.h"
16 
17 namespace dnai
18 {
19  namespace gcore
20  {
21  class HandlerManager : public QObject
22  {
23  Q_OBJECT
24  Q_PROPERTY(ProjectHandler *project READ project CONSTANT)
25  Q_PROPERTY(DeclaratorHandler *declarator READ declarator CONSTANT)
26  Q_PROPERTY(VariableHandler *variable READ variable CONSTANT)
27  Q_PROPERTY(EnumHandler *enumeration READ enumeration CONSTANT)
28  Q_PROPERTY(FunctionHandler *Function READ function CONSTANT)
29  Q_PROPERTY(GlobalHandler *global READ global CONSTANT)
30  Q_PROPERTY(ObjectHandler *Class READ getClass CONSTANT)
31  Q_PROPERTY(ListHandler *List READ List CONSTANT)
32 
33  Q_PROPERTY(QList<QVariant> types READ types NOTIFY typesChanged)
34 
35  private:
37 
38  public:
39  static HandlerManager &Instance();
40 
41  public:
42  void setup();
43 
44  /*
45  * QML Properties
46  */
47  public:
55  ListHandler *List();
56 
57  /*
58  * Inner c++ properties
59  */
60  public:
68 
69  public:
70  QList<QVariant> types();
71  Q_INVOKABLE dnai::models::Entity *getType(int index);
72  Q_INVOKABLE int getTypeIndex(QUuid typeuid);
73 
74  public:
75  dnai::models::Entity *getEntity(QUuid guid);
76  Q_INVOKABLE dnai::models::Entity *getEntityGui(QUuid guid);
77  Q_INVOKABLE dnai::models::Entity *getEntity(quint32 id);
78  Q_INVOKABLE dnai::models::Entity *getEntityByFullName(const QString &name);
79 
80  public slots:
81  void onEntityAdded(::core::EntityID id, models::Entity &entity);
82  void onEntityRemoved(::core::EntityID id, models::Entity &entity);
83 
84  signals:
85  void typesChanged(QList<QVariant> types);
86 
87  private:
89 
90  private:
99 
100  private:
101  QList<models::Entity *> m_types;
102  };
103  }
104 }
105 
106 #endif // DNAI_CORE_HANDLERMANAGER_H
EnumHandler m_enumeration
Definition: handlermanager.h:94
Definition: enumhandler.h:14
VariableHandler * variable()
Definition: globalhandler.h:12
dnai::models::Entity * getEntity(QUuid guid)
Definition: handlermanager.cpp:148
FunctionHandler * function()
Definition: handlermanager.cpp:72
VariableHandler m_variable
Definition: handlermanager.h:93
ObjectHandler m_object
Definition: handlermanager.h:97
DeclaratorHandler * declarator()
Definition: entitymanager.h:15
VariableHandler & Variable()
Definition: handlermanager.cpp:102
DeclaratorHandler & Declarator()
Definition: handlermanager.cpp:97
EntityManager m_manager
Definition: handlermanager.h:88
Definition: projecthandler.h:15
Definition: objecthandler.h:16
ObjectHandler & Class()
void onEntityAdded(::core::EntityID id, models::Entity &entity)
Definition: handlermanager.cpp:170
Definition: project.h:22
GlobalHandler m_global
Definition: handlermanager.h:96
DeclaratorHandler m_declarator
Definition: handlermanager.h:92
EnumHandler & Enumeration()
Definition: handlermanager.cpp:107
Q_INVOKABLE dnai::models::Entity * getEntityGui(QUuid guid)
Definition: handlermanager.cpp:153
void typesChanged(QList< QVariant > types)
Definition: moc_handlermanager.cpp:283
Q_INVOKABLE int getTypeIndex(QUuid typeuid)
Definition: handlermanager.cpp:143
QList< models::Entity * > m_types
Definition: handlermanager.h:101
Q_INVOKABLE dnai::models::Entity * getType(int index)
Definition: handlermanager.cpp:138
Definition: functionhandler.h:18
ObjectHandler * getClass()
Definition: handlermanager.cpp:82
GlobalHandler & Global()
Definition: handlermanager.cpp:117
void onEntityRemoved(::core::EntityID id, models::Entity &entity)
Definition: handlermanager.cpp:184
Definition: api.h:13
QList< QVariant > types()
GlobalHandler * global()
EnumHandler * enumeration()
FunctionHandler m_function
Definition: handlermanager.h:95
FunctionHandler & Function()
ProjectHandler m_project
Definition: handlermanager.h:91
void setup()
Definition: handlermanager.cpp:34
Definition: listhandler.h:12
static HandlerManager & Instance()
Definition: handlermanager.cpp:21
Definition: handlermanager.h:21
Q_INVOKABLE dnai::models::Entity * getEntityByFullName(const QString &name)
Definition: handlermanager.cpp:165
Definition: variablehandler.h:14
Definition: declaratorhandler.h:15
ListHandler m_list
Definition: handlermanager.h:98
ProjectHandler * project()