feat(parameter): persistant parameter value

This commit is contained in:
parker
2025-07-23 20:31:02 +01:00
parent ae78e15931
commit 884c7a094a
6 changed files with 60 additions and 24 deletions

View File

@@ -2,32 +2,46 @@
#include "Gui/Parameters/AbstractSliderParm.h"
#include <qboxlayout.h>
#include <QLabel>
#include <iostream>
enzo::ui::AbstractFormParm::AbstractFormParm(std::weak_ptr<prm::Parameter> parameter)
: parameter_{parameter}
{
std::string name;
if(auto sharedParameter=parameter.lock())
if(auto sharedParameter=parameter_.lock())
{
name = sharedParameter->getName();
std::string name = sharedParameter->getName();
auto label = new QLabel(QString::fromStdString(name+":"));
label->setStyleSheet("QLabel{background: none}");
label->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Preferred);
auto slider = new AbstractSliderParm();
connect(slider, &AbstractSliderParm::valueChanged, this, &AbstractFormParm::changeValue);
slider->setValue(sharedParameter->evalFloat());
mainLayout_ = new QHBoxLayout();
mainLayout_->addWidget(label);
mainLayout_->addWidget(slider);
mainLayout_->setContentsMargins(0,0,0,0);
setFixedHeight(24);
setProperty("class", "Parameter");
setStyleSheet(".Parameter { background-color: none;}");
setLayout(mainLayout_);
}
}
void enzo::ui::AbstractFormParm::changeValue(enzo::bt::floatT value)
{
if(auto sharedParameter=parameter_.lock())
{
sharedParameter->setFloat(value);
}
else
{
return;
std::cout << "ERROR: parameter no longer exists\n";
}
auto label = new QLabel(QString::fromStdString(name+":"));
label->setStyleSheet("QLabel{background: none}");
label->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Preferred);
mainLayout_ = new QHBoxLayout();
mainLayout_->addWidget(label);
mainLayout_->addWidget(new AbstractSliderParm());
mainLayout_->setContentsMargins(0,0,0,0);
setFixedHeight(24);
setProperty("class", "Parameter");
setStyleSheet(".Parameter { background-color: none;}");
setLayout(mainLayout_);
}