Add EventCenter
This commit is contained in:
19
src/event/EventCenter.cpp
Normal file
19
src/event/EventCenter.cpp
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
//
|
||||||
|
// Created by Krad on 2021/10/11.
|
||||||
|
//
|
||||||
|
|
||||||
|
#include "EventCenter.h"
|
||||||
|
|
||||||
|
void EventCenter::triggerEvent(GUIEvents event, QObject *sender, QObject *data) {
|
||||||
|
switch (event) {
|
||||||
|
#define ADD_EVENT_VALUE(val)\
|
||||||
|
case GUIEvents:: val :\
|
||||||
|
{\
|
||||||
|
emit val(sender,data);\
|
||||||
|
}
|
||||||
|
ADD_EVENT()
|
||||||
|
#undef ADD_EVENT_VALUE
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
39
src/event/EventCenter.h
Normal file
39
src/event/EventCenter.h
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
//
|
||||||
|
// Created by Krad on 2021/10/11.
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef GUI_EVENTCENTER_H
|
||||||
|
#define GUI_EVENTCENTER_H
|
||||||
|
|
||||||
|
#include <QObject>
|
||||||
|
|
||||||
|
#define ADD_EVENT()\
|
||||||
|
ADD_EVENT_VALUE(PatientSelected)\
|
||||||
|
ADD_EVENT_VALUE(GUIErrorRaise)
|
||||||
|
|
||||||
|
enum GUIEvents{
|
||||||
|
#define ADD_EVENT_VALUE(val) val,
|
||||||
|
ADD_EVENT()
|
||||||
|
#undef ADD_EVENT_VALUE
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class EventCenter:public QObject {
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
static EventCenter* Default(){
|
||||||
|
static EventCenter instance;
|
||||||
|
return &instance;
|
||||||
|
}
|
||||||
|
void triggerEvent(GUIEvents event,QObject* sender,QObject* data);
|
||||||
|
signals:
|
||||||
|
#define ADD_EVENT_VALUE(val)\
|
||||||
|
void val(QObject* sender,QObject* data);
|
||||||
|
ADD_EVENT()
|
||||||
|
#undef ADD_EVENT_VALUE
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#endif //GUI_EVENTCENTER_H
|
||||||
Reference in New Issue
Block a user