diff --git a/src/Engine/Network/NetworkManager.cpp b/src/Engine/Network/NetworkManager.cpp index bd2da98..9bd3824 100644 --- a/src/Engine/Network/NetworkManager.cpp +++ b/src/Engine/Network/NetworkManager.cpp @@ -35,7 +35,7 @@ enzo::nt::OpId enzo::nt::NetworkManager::addOperator(op::OpInfo opInfo) if(getDisplayOp().has_value() && getDisplayOp().value()==dependentId) { cookOp(dependentId); - updateDisplay(dependentOp.getOutputGeo(0)); + displayGeoChanged(dependentOp.getOutputGeo(0)); } } } @@ -80,7 +80,7 @@ void enzo::nt::NetworkManager::setDisplayOp(OpId opId) cookOp(opId); enzo::nt::GeometryOperator& displayOp = getGeoOperator(opId); - updateDisplay(displayOp.getOutputGeo(0)); + displayGeoChanged(displayOp.getOutputGeo(0)); displayNodeChanged(opId); } diff --git a/src/Engine/Network/NetworkManager.h b/src/Engine/Network/NetworkManager.h index a68619f..f90b935 100644 --- a/src/Engine/Network/NetworkManager.h +++ b/src/Engine/Network/NetworkManager.h @@ -25,6 +25,7 @@ public: void setDisplayOp(OpId opId); boost::signals2::signal displayNodeChanged; + boost::signals2::signal displayGeoChanged; #ifdef UNIT_TEST void _reset(); @@ -47,9 +48,6 @@ private: std::optional displayOp_=std::nullopt; -Q_SIGNALS: - void updateDisplay(enzo::geo::Geometry& geometry); - }; inline enzo::nt::NetworkManager& nm() { diff --git a/src/Gui/GeometrySpreadsheetPanel/GeometrySpreadsheetModel.cpp b/src/Gui/GeometrySpreadsheetPanel/GeometrySpreadsheetModel.cpp index cb5c395..fff71d8 100644 --- a/src/Gui/GeometrySpreadsheetPanel/GeometrySpreadsheetModel.cpp +++ b/src/Gui/GeometrySpreadsheetPanel/GeometrySpreadsheetModel.cpp @@ -14,13 +14,12 @@ GeometrySpreadsheetModel::GeometrySpreadsheetModel(const QStringList &strings, Q } -void GeometrySpreadsheetModel::selectionChanged(enzo::nt::OpId opId) +void GeometrySpreadsheetModel::geometryChanged(enzo::geo::Geometry& geometry) { beginResetModel(); - enzo::nt::NetworkManager& nm = enzo::nt::nm(); - opId_ = opId; + // enzo::nt::NetworkManager& nm = enzo::nt::nm(); IC(); - geometry_ = nm.getGeoOperator(opId).getOutputGeo(0); + geometry_ = geometry; // get sizes const auto attribCount = geometry_.getNumAttributes(enzo::ga::AttributeOwner::POINT); diff --git a/src/Gui/GeometrySpreadsheetPanel/GeometrySpreadsheetModel.h b/src/Gui/GeometrySpreadsheetPanel/GeometrySpreadsheetModel.h index a4385df..65f2e98 100644 --- a/src/Gui/GeometrySpreadsheetPanel/GeometrySpreadsheetModel.h +++ b/src/Gui/GeometrySpreadsheetPanel/GeometrySpreadsheetModel.h @@ -18,7 +18,7 @@ public: int role = Qt::DisplayRole) const override; int indexFromSection(unsigned int section) const; - void selectionChanged(enzo::nt::OpId opId); + void geometryChanged(enzo::geo::Geometry& geometry); private: diff --git a/src/Gui/GeometrySpreadsheetPanel/GeometrySpreadsheetPanel.cpp b/src/Gui/GeometrySpreadsheetPanel/GeometrySpreadsheetPanel.cpp index e169249..1226b42 100644 --- a/src/Gui/GeometrySpreadsheetPanel/GeometrySpreadsheetPanel.cpp +++ b/src/Gui/GeometrySpreadsheetPanel/GeometrySpreadsheetPanel.cpp @@ -36,9 +36,9 @@ GeometrySpreadsheetPanel::GeometrySpreadsheetPanel(QWidget *parent, Qt::WindowFl setLayout(mainLayout_); } -void GeometrySpreadsheetPanel::selectionChanged(enzo::nt::OpId opId) +void GeometrySpreadsheetPanel::geometryChanged(enzo::geo::Geometry& geometry) { - model_->selectionChanged(opId); + model_->geometryChanged(geometry); view_->update(); } diff --git a/src/Gui/GeometrySpreadsheetPanel/GeometrySpreadsheetPanel.h b/src/Gui/GeometrySpreadsheetPanel/GeometrySpreadsheetPanel.h index fd931db..18714ca 100644 --- a/src/Gui/GeometrySpreadsheetPanel/GeometrySpreadsheetPanel.h +++ b/src/Gui/GeometrySpreadsheetPanel/GeometrySpreadsheetPanel.h @@ -12,7 +12,7 @@ class GeometrySpreadsheetPanel public: GeometrySpreadsheetPanel(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags()); public Q_SLOTS: - void selectionChanged(enzo::nt::OpId opId); + void geometryChanged(enzo::geo::Geometry& geometry); private: QVBoxLayout* mainLayout_; QWidget* bgWidget_; diff --git a/src/Gui/Interface.cpp b/src/Gui/Interface.cpp index d56d863..c3873fa 100644 --- a/src/Gui/Interface.cpp +++ b/src/Gui/Interface.cpp @@ -1,5 +1,6 @@ #include "Gui/Interface.h" #include "Engine/Network/NetworkManager.h" +#include "Engine/Operator/Geometry.h" #include "Gui/GeometrySpreadsheetPanel/GeometrySpreadsheetPanel.h" #include "Gui/ParametersPanel/ParametersPanel.h" #include "Gui/Viewport/Viewport.h" @@ -61,8 +62,7 @@ EnzoUI::EnzoUI() mainLayout_->addWidget(viewportSplitter_); // connect signals - connect(&enzo::nt::nm(), &enzo::nt::NetworkManager::updateDisplay, viewport, &Viewport::geometryChanged); enzo::nt::nm().displayNodeChanged.connect([parametersPanel](enzo::nt::OpId opId){parametersPanel->selectionChanged(opId);}); - enzo::nt::nm().displayNodeChanged.connect([geometrySpreadsheetPanel](enzo::nt::OpId opId){geometrySpreadsheetPanel->selectionChanged(opId);}); - // connect(&enzo::nt::nm(), &enzo::nt::NetworkManager::updateDisplay, parametersPanel, &ParametersPanel::selectionChanged); + enzo::nt::nm().displayGeoChanged.connect([geometrySpreadsheetPanel](enzo::geo::Geometry& geometry){geometrySpreadsheetPanel->geometryChanged(geometry);}); + enzo::nt::nm().displayGeoChanged.connect([viewport](enzo::geo::Geometry& geometry){viewport->setGeometry(geometry);}); } diff --git a/src/Gui/Viewport/Viewport.cpp b/src/Gui/Viewport/Viewport.cpp index 746f374..b2aa903 100644 --- a/src/Gui/Viewport/Viewport.cpp +++ b/src/Gui/Viewport/Viewport.cpp @@ -20,7 +20,7 @@ Viewport::Viewport(QWidget *parent, Qt::WindowFlags f) this->setLayout(mainLayout_); } -void Viewport::geometryChanged(enzo::geo::Geometry& geometry) +void Viewport::setGeometry(enzo::geo::Geometry& geometry) { openGLWidget_->geometryChanged(geometry); } diff --git a/src/Gui/Viewport/Viewport.h b/src/Gui/Viewport/Viewport.h index fe86376..88868c1 100644 --- a/src/Gui/Viewport/Viewport.h +++ b/src/Gui/Viewport/Viewport.h @@ -8,6 +8,7 @@ class Viewport { public: Viewport(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags()); + void setGeometry(enzo::geo::Geometry& geometry); private: QVBoxLayout* mainLayout_; ViewportGLWidget* openGLWidget_; @@ -23,6 +24,4 @@ private: QPointF leftStartPos_; bool rightMouseDown_=false; QPointF rightStartPos_; -public Q_SLOTS: - void geometryChanged(enzo::geo::Geometry& geometry); };