feat(parameter): populate parameterPanel

This commit is contained in:
parker
2025-07-23 19:54:40 +01:00
parent c3fabfa47b
commit ae78e15931
15 changed files with 79 additions and 22 deletions

View File

@@ -1,7 +1,10 @@
#include "Gui/ParametersPanel/ParametersPanel.h"
#include "Engine/Operator/GeometryOperator.h"
#include "Gui/Parameters/AbstractSliderParm.h"
#include "Gui/Parameters/AbstractFormParm.h"
#include "Gui/Parameters/FloatParm.h"
#include "Engine/Network/NetworkManager.h"
#include <memory>
#include <qboxlayout.h>
#include <QSpinBox>
#include <qnamespace.h>
@@ -29,15 +32,34 @@ ParametersPanel::ParametersPanel(QWidget *parent, Qt::WindowFlags f)
mainLayout_->addLayout(parametersLayout_);
mainLayout_->addWidget(bgWidget_);
// parametersLayout_->addWidget(new enzo::ui::AbstractSliderParm());
// parametersLayout_->addWidget(new enzo::ui::AbstractSliderParm());
// parametersLayout_->addWidget(new enzo::ui::FloatParm());
// parametersLayout_->addWidget(new enzo::ui::FloatParm());
parametersLayout_->addWidget(new enzo::ui::AbstractFormParm());
parametersLayout_->addWidget(new enzo::ui::AbstractFormParm());
parametersLayout_->addWidget(new enzo::ui::AbstractFormParm());
parametersLayout_->addWidget(new enzo::ui::AbstractFormParm());
// parametersLayout_->addWidget(new enzo::ui::AbstractFormParm());
// parametersLayout_->addWidget(new enzo::ui::AbstractFormParm());
// parametersLayout_->addWidget(new enzo::ui::AbstractFormParm());
// parametersLayout_->addWidget(new enzo::ui::AbstractFormParm());
setLayout(mainLayout_);
}
void ParametersPanel::selectionChanged()
{
enzo::nt::NetworkManager& nm = enzo::nt::nm();
std::optional<enzo::nt::OpId> displayOpId = nm.getDisplayOp();
if(!displayOpId.has_value()) return;
// clear layout safely
QLayoutItem *child;
while ((child = parametersLayout_->takeAt(0)) != nullptr) {
delete child->widget();
delete child;
}
enzo::nt::GeometryOperator& displayOp = nm.getGeoOperator(displayOpId.value());
auto parameters = displayOp.getParameters();
for(auto parameter : parameters)
{
parametersLayout_->addWidget(new enzo::ui::AbstractFormParm(parameter));
}
}

View File

@@ -8,6 +8,8 @@ class ParametersPanel
{
public:
ParametersPanel(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags());
public slots:
void selectionChanged();
private:
QVBoxLayout* mainLayout_;
QVBoxLayout* parametersLayout_;