feat(parameter): populate parameterPanel
This commit is contained in:
@@ -42,17 +42,18 @@ EnzoUI::EnzoUI()
|
||||
|
||||
viewportSplitter_->addWidget(viewport);
|
||||
viewportSplitter_->addWidget(networkSplitter_);
|
||||
viewportSplitter_->setStretchFactor(0, 4);
|
||||
viewportSplitter_->setStretchFactor(0, 25);
|
||||
viewportSplitter_->setStretchFactor(1, 1);
|
||||
|
||||
networkSplitter_->addWidget(parametersPanel);
|
||||
networkSplitter_->addWidget(network);
|
||||
networkSplitter_->setStretchFactor(0, 1);
|
||||
networkSplitter_->setStretchFactor(1, 15);
|
||||
networkSplitter_->setStretchFactor(1, 10);
|
||||
|
||||
mainLayout_->addWidget(viewportSplitter_);
|
||||
|
||||
// connect signals
|
||||
connect(&enzo::nt::nm(), &enzo::nt::NetworkManager::updateDisplay, viewport, &Viewport::geometryChanged);
|
||||
connect(&enzo::nt::nm(), &enzo::nt::NetworkManager::updateDisplay, parametersPanel, &ParametersPanel::selectionChanged);
|
||||
|
||||
}
|
||||
|
||||
@@ -399,8 +399,8 @@ void Network::mouseReleaseEvent(QMouseEvent *event)
|
||||
NodeGraphic* prevDisplayNode = nodeStore_.at(*prevDisplayOpId);
|
||||
prevDisplayNode->setDisplayFlag(false);
|
||||
}
|
||||
nm.setDisplayOp(opId);
|
||||
static_cast<DisplayFlagButton*>(clickedDisplayFlag)->setEnabled(true);
|
||||
nm.setDisplayOp(opId);
|
||||
}
|
||||
if(state_==State::MOVING_NODE)
|
||||
{
|
||||
|
||||
@@ -4,9 +4,19 @@
|
||||
#include <QLabel>
|
||||
|
||||
|
||||
enzo::ui::AbstractFormParm::AbstractFormParm()
|
||||
enzo::ui::AbstractFormParm::AbstractFormParm(std::weak_ptr<prm::Parameter> parameter)
|
||||
{
|
||||
auto label = new QLabel("Parm name:");
|
||||
std::string name;
|
||||
if(auto sharedParameter=parameter.lock())
|
||||
{
|
||||
name = sharedParameter->getName();
|
||||
}
|
||||
else
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
auto label = new QLabel(QString::fromStdString(name+":"));
|
||||
label->setStyleSheet("QLabel{background: none}");
|
||||
label->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Preferred);
|
||||
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#include "Engine/Parameter/Parameter.h"
|
||||
#include <QWidget>
|
||||
#include <QHBoxLayout>
|
||||
#include <memory>
|
||||
|
||||
namespace enzo::ui
|
||||
{
|
||||
@@ -8,7 +10,7 @@ class AbstractFormParm
|
||||
: public QWidget
|
||||
{
|
||||
public:
|
||||
AbstractFormParm();
|
||||
AbstractFormParm(std::weak_ptr<prm::Parameter> parameter);
|
||||
|
||||
private:
|
||||
QHBoxLayout* mainLayout_;
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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_;
|
||||
|
||||
Reference in New Issue
Block a user