00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef DIGESTDBVIEWEVENTS_H
00026 #define DIGESTDBVIEWEVENTS_H
00027
00028
00029 #include "MvcCore/viewevents.h"
00030 #include "MvcCore/genericcontainers.h"
00031
00032 #include "mvcdigestdb.h"
00033 #include "digestdbcontainers.h"
00034
00035
00059 class VDigestDbEvent : public VEvent {
00060 public:
00061 enum Type {
00062 ClassesAdded = VEvent::User,
00063 ClassesAboutToBeRemoved,
00064 ClassesRemoved,
00065 ClassesUpdated,
00066 CollectionsAdded,
00067 CollectionsAboutToBeRemoved,
00068 CollectionsRemoved,
00069 CollectionsUpdated,
00070 ExperimentsAdded,
00071 ExperimentsAboutToBeRemoved,
00072 ExperimentsRemoved,
00073 ExperimentsUpdated,
00074 GesturesAdded,
00075 GesturesAboutToBeRemoved,
00076 GesturesChangedClasses,
00077 GesturesChangedCollections,
00078 GesturesRemoved,
00079 GesturesUpdated,
00080 TrainedRecogsAdded,
00081 TrainedRecogsAboutToBeRemoved,
00082 TrainedRecogsRemoved,
00083 TrainedRecogsUpdated,
00084 User = VEvent::User + 1000
00085 };
00086
00087 VDigestDbEvent( Type type, MvcBase* sender, QObject* originalSender )
00088 : VEvent((VEvent::Type)type, sender),
00089 m_originalSender(originalSender) {}
00090
00092 inline static MvcModuleId_t classModuleId() { return MvcDigestDb::id(); }
00094 virtual MvcModuleId_t moduleId() const { return classModuleId(); }
00095
00096 QObject* originalSender() const { return m_originalSender; }
00097
00098 private:
00099 QObject* m_originalSender;
00100 };
00101
00102
00103 class VClassesEvent : public VDigestDbEvent, public IdSetContainer {
00104 public:
00105 VClassesEvent( Type type, const IdSet& idSet,
00106 MvcBase* sender, QObject* originalSender )
00107 : VDigestDbEvent(type, sender, originalSender),
00108 IdSetContainer(idSet) {}
00109 };
00110
00111 class VCollectionsEvent : public VDigestDbEvent, public IdSetContainer {
00112 public:
00113 VCollectionsEvent( Type type, const IdSet& idSet,
00114 MvcBase* sender, QObject* originalSender )
00115 : VDigestDbEvent(type, sender, originalSender),
00116 IdSetContainer(idSet) {}
00117 };
00118
00119 class VExperimentsEvent : public VDigestDbEvent, public IdSetContainer {
00120 public:
00121 VExperimentsEvent( Type type, const IdSet& idSet,
00122 MvcBase* sender, QObject* originalSender )
00123 : VDigestDbEvent(type, sender, originalSender),
00124 IdSetContainer(idSet) {}
00125 };
00126
00127 class VGesturesEvent : public VDigestDbEvent, public IdSetContainer {
00128 public:
00129 VGesturesEvent( Type type, const IdSet& idSet,
00130 MvcBase* sender, QObject* originalSender )
00131 : VDigestDbEvent(type, sender, originalSender),
00132 IdSetContainer(idSet) {}
00133 };
00134
00136 class VGesturesChangedClassesEvent : public VGesturesEvent,
00137 public AddSetContainer<int>,
00138 public RemoveSetContainer<int> {
00139 public:
00140 VGesturesChangedClassesEvent( const IdSet& idSet,
00141 const IdSet& addSet,
00142 const IdSet& removeSet,
00143 MvcBase* sender, QObject* originalSender )
00144 : VGesturesEvent(GesturesChangedClasses, idSet, sender, originalSender),
00145 AddSetContainer<int>(addSet),
00146 RemoveSetContainer<int>(removeSet) {}
00147 };
00148
00150 class VGesturesChangedCollectionsEvent : public VGesturesEvent,
00151 public AddSetContainer<int>,
00152 public RemoveSetContainer<int> {
00153 public:
00154 VGesturesChangedCollectionsEvent( const IdSet& idSet,
00155 const IdSet& addSet,
00156 const IdSet& removeSet,
00157 MvcBase* sender, QObject* originalSender )
00158 : VGesturesEvent(GesturesChangedCollections, idSet, sender, originalSender),
00159 AddSetContainer<int>(addSet),
00160 RemoveSetContainer<int>(removeSet) {}
00161 };
00162
00163 class VTrainedRecogsEvent : public VDigestDbEvent, public IdSetContainer {
00164 public:
00165 VTrainedRecogsEvent( Type type, const IdSet& idSet,
00166 MvcBase* sender, QObject* originalSender )
00167 : VDigestDbEvent(type, sender, originalSender),
00168 IdSetContainer(idSet) {}
00169 };
00170
00171
00172 #endif // ! DIGESTDBVIEWEVENTS_H