fix(geometrySpreadsheet): geometry updates with displayGeoChanged signal
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -25,6 +25,7 @@ public:
|
||||
void setDisplayOp(OpId opId);
|
||||
|
||||
boost::signals2::signal<void (nt::OpId)> displayNodeChanged;
|
||||
boost::signals2::signal<void (enzo::geo::Geometry& geometry)> displayGeoChanged;
|
||||
|
||||
#ifdef UNIT_TEST
|
||||
void _reset();
|
||||
@@ -47,9 +48,6 @@ private:
|
||||
std::optional<OpId> displayOp_=std::nullopt;
|
||||
|
||||
|
||||
Q_SIGNALS:
|
||||
void updateDisplay(enzo::geo::Geometry& geometry);
|
||||
|
||||
};
|
||||
|
||||
inline enzo::nt::NetworkManager& nm() {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
@@ -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_;
|
||||
|
||||
@@ -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);});
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user