BaseBridge listens to project events

This commit is contained in:
David Kekesi
2024-10-21 16:35:30 +02:00
parent 3be1676b1a
commit 5363819e8d
2 changed files with 30 additions and 2 deletions
@@ -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<RemoveModel>();
addMethod<UpdateModel>();
} //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
@@ -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;
};
}