Refactor EventsCenter.

This commit is contained in:
Krad
2022-07-27 13:09:34 +08:00
parent d9ad380d49
commit 6f94cbf42c
2 changed files with 10 additions and 11 deletions

View File

@@ -3,5 +3,3 @@
//
#include "EventsCenter.h"
EventsCenter* EventsCenter::instance = new EventsCenter;

View File

@@ -8,9 +8,11 @@
#include <QtCore/QObject>
#include "QtCore/qmap.h"
#include "QString"
#define aLLEventMacro() \
_add_Event(DefaultEvent)\
_add_Event(DragEvent)
_add_Event(DragEvent)\
_add_Event(SyncStateChanged)
enum Events{
@@ -31,18 +33,19 @@ public:
class EventsCenter:public QObject {
Q_OBJECT
public:
static EventsCenter* Instance(){
return instance;
static EventsCenter* Default(){
static EventsCenter instance;
return &instance;
}
static void TriggerEvent(Events eventId, EventObject &callData){
Instance()->triggerEvent(eventId, callData);
static void TriggerEvent(Events eventId, EventObject* callData = nullptr){
Default()->triggerEvent(eventId, callData);
}
signals:
#define _add_Event(enum) void enum (EventObject &);
#define _add_Event(enum) void enum (EventObject *);
aLLEventMacro()
#undef _add_Event
private:
void triggerEvent(Events eventId, EventObject &callData){
void triggerEvent(Events eventId, EventObject *callData){
switch (eventId) {
#define _add_Event(enum) \
case Events::enum:\
@@ -58,8 +61,6 @@ private:
break;
}
}
static EventsCenter* instance;
};