diff --git a/src/ParameterWidget.cc b/src/ParameterWidget.cc index 18cd4379..82b88a37 100644 --- a/src/ParameterWidget.cc +++ b/src/ParameterWidget.cc @@ -104,32 +104,32 @@ void ParameterWidget::connectWidget() for(entry_map_t::iterator it = entries.begin(); it != entries.end(); it++) { ParameterVirtualWidget *entry ; switch (it->second->target) { - case 1:{ + case COMBOBOX:{ entry = new ParameterComboBox(it->second); break; } - case 2:{ + case SLIDER:{ entry = new ParameterSlider(it->second); break; } - case 3:{ + case CHECKBOX:{ entry = new ParameterCheckBox(it->second); break; } - case 4:{ + case TEXT:{ entry = new ParameterText(it->second); break; } - case 5:{ + case NUMBER:{ entry = new ParameterSpinBox(it->second); break; } - case 6:{ + case VECTOR:{ entry = new ParameterVector(it->second); break; } } - if(it->second->target!=0){ + if(it->second->target!=UNDEFINED){ connect(entry, SIGNAL(changed()), this, SLOT(onValueChanged())); addEntry(entry); } diff --git a/src/ParameterWidget.h b/src/ParameterWidget.h index 963086f6..fb1004a4 100644 --- a/src/ParameterWidget.h +++ b/src/ParameterWidget.h @@ -35,7 +35,8 @@ class ParameterWidget : public QWidget, public Ui::ParameterWidget, public Param { Q_OBJECT - QTimer autoPreviewTimer; + typedef enum { UNDEFINED, COMBOBOX, SLIDER, CHECKBOX, TEXT, NUMBER, VECTOR } parameter_type_t; + QTimer autoPreviewTimer; public: ParameterWidget(QWidget *parent = 0); diff --git a/src/annotation.cc b/src/annotation.cc index 5681853d..451a1447 100644 --- a/src/annotation.cc +++ b/src/annotation.cc @@ -29,7 +29,7 @@ #include "expression.h" #include "context.h" #include "evalcontext.h" - +#include #include using namespace boost::assign; // bring 'operator+=()' into scope diff --git a/src/parameterextractor.cpp b/src/parameterextractor.cpp index 43288214..cc7f59c5 100644 --- a/src/parameterextractor.cpp +++ b/src/parameterextractor.cpp @@ -8,6 +8,9 @@ ParameterExtractor::ParameterExtractor() { } +ParameterExtractor::~ParameterExtractor() +{ +} void ParameterExtractor::applyParameters(FileModule *fileModule) { if (fileModule == NULL) { diff --git a/src/parameterextractor.h b/src/parameterextractor.h index 8f4365ef..b8eebd61 100644 --- a/src/parameterextractor.h +++ b/src/parameterextractor.h @@ -15,6 +15,7 @@ protected: public: ParameterExtractor(); + virtual ~ParameterExtractor(); void setParameters(const Module *module); void applyParameters(class FileModule *fileModule); diff --git a/src/parameterobject.cpp b/src/parameterobject.cpp index d0260d69..26eb36ef 100644 --- a/src/parameterobject.cpp +++ b/src/parameterobject.cpp @@ -1,12 +1,19 @@ #include "parameterobject.h" +#include "module.h" +#include "modcontext.h" + ParameterObject::ParameterObject() { } void ParameterObject::applyParameter(class Assignment *assignment){ - assignment->second = shared_ptr(new ExpressionConst(value)); + ModuleContext ctx; + const ValuePtr defaultValue =assignment->second.get()->evaluate(&ctx); + if( defaultValue->type() == dvt ){ + assignment->second = shared_ptr(new ExpressionConst(value)); + } } int ParameterObject::setValue(const class ValuePtr defaultValue, const class ValuePtr values){