diff --git a/SpeckleConnector/Connector/Interface/Browser/Bridge/Base/BaseBridge.cpp b/SpeckleConnector/Connector/Interface/Browser/Bridge/Base/BaseBridge.cpp index f40155f..881298f 100644 --- a/SpeckleConnector/Connector/Interface/Browser/Bridge/Base/BaseBridge.cpp +++ b/SpeckleConnector/Connector/Interface/Browser/Bridge/Base/BaseBridge.cpp @@ -1,5 +1,4 @@ #include "Connector/Interface/Browser/Bridge/Base/BaseBridge.h" - #include "Connector/Interface/Browser/Bridge/Base/AddModel.h" #include "Connector/Interface/Browser/Bridge/Base/GetConnectorVersion.h" #include "Connector/Interface/Browser/Bridge/Base/GetDocumentInfo.h" @@ -25,3 +24,22 @@ BaseBridge::BaseBridge() : BrowserBridge{"baseBinding"} { addMethod(); addMethod(); } //BaseBridge::BaseBridge + +/*-------------------------------------------------------------------- + Handle a project event + + event: The project event + + return: True if the event should be closed + --------------------------------------------------------------------*/ +bool BaseBridge::handle(const speckle::event::ProjectEvent& event) { + using enum speckle::event::ProjectEvent::Type; + switch (event.getType()) { + case close: + sendEvent("documentChanged"); + break; + default: + break; + } + return false; +} //BaseBridge::handle diff --git a/SpeckleConnector/Connector/Interface/Browser/Bridge/Base/BaseBridge.h b/SpeckleConnector/Connector/Interface/Browser/Bridge/Base/BaseBridge.h index e7076a4..72e3d7e 100644 --- a/SpeckleConnector/Connector/Interface/Browser/Bridge/Base/BaseBridge.h +++ b/SpeckleConnector/Connector/Interface/Browser/Bridge/Base/BaseBridge.h @@ -2,13 +2,15 @@ #define CONNECTOR_INTERFACE_BRIDGE_BASE_BRIDGE #include "Speckle/Interface/Browser/Bridge/BrowserBridge.h" +#include "Speckle/Event/Subscriber/ProjectSubscriber.h" +#include "Speckle/Event/Type/ProjectEvent.h" namespace connector::interfac::browser::bridge { /*! A browser bridge to provide configuration settings */ - class BaseBridge : public speckle::interfac::browser::bridge::BrowserBridge { + class BaseBridge : public speckle::interfac::browser::bridge::BrowserBridge, public speckle::event::ProjectSubscriber { public: // MARK: - Types @@ -22,6 +24,14 @@ namespace connector::interfac::browser::bridge { Default constructor */ BaseBridge(); + + protected: + /*! + Handle the project events + @param event The project event + @return True if the event should be closed + */ + bool handle(const speckle::event::ProjectEvent& event) override; }; }