diff --git a/contrib/onelab/OnelabClients.cpp b/contrib/onelab/OnelabClients.cpp index 41aa9bb550e6ecc084360b06aa6afa0cf4c112aa..6f93146be1d3880a6012f0745f3e208ddb639483 100644 --- a/contrib/onelab/OnelabClients.cpp +++ b/contrib/onelab/OnelabClients.cpp @@ -473,7 +473,7 @@ bool localSolverClient::buildRmCommand(std::string &cmd){ return false; } -void localSolverClient::addNumberChoice(std::string name, double val) +void localSolverClient::addNumberChoice(std::string name, double val, bool readOnly) { std::vector<double> choices; std::vector<onelab::number> ps; @@ -486,7 +486,7 @@ void localSolverClient::addNumberChoice(std::string name, double val) ps[0].setName(name); } //ps[0].setAttribute("Highlight","Coral"); - //ps[0].setReadOnly(false); + ps[0].setReadOnly(readOnly); ps[0].setValue(val); choices.push_back(val); ps[0].setChoices(choices); @@ -502,7 +502,7 @@ void localSolverClient::PostArray(std::vector<std::string> choices) std::string fileName = getWorkingDir()+choices[4*i]; //checkIfPresent or make available locally double val=find_in_array(lin,col,read_array(fileName,' ')); - addNumberChoice(choices[4*i+3],val); + addNumberChoice(choices[4*i+3],val,true); OLMsg::Info("Upload parameter <%s>=%e from file <%s>", choices[4*i+3].c_str(),val,fileName.c_str()); i++; @@ -657,7 +657,6 @@ void MetaModel::construct() parse_onefile( genericNameFromArgs + onelabExtension); closeOnelabBlock(); saveCommandLines(); - //onelab::server::instance()->setChanged(true, getName()); } void MetaModel::analyze() { diff --git a/contrib/onelab/OnelabClients.h b/contrib/onelab/OnelabClients.h index 08db4637870fa0d859477a363a0378aea88a2fc3..e5428f6d5a549bf1ade308afda881cabc8d262bc 100644 --- a/contrib/onelab/OnelabClients.h +++ b/contrib/onelab/OnelabClients.h @@ -177,7 +177,7 @@ class localSolverClient : public onelab::localClient{ virtual bool checkCommandLine(); virtual void analyze() =0; virtual void compute() =0; - void addNumberChoice(std::string name, double val); + void addNumberChoice(std::string name, double val, bool readOnly=false); void PostArray(std::vector<std::string> choices); void GmshMerge(std::vector<std::string> choices); }; diff --git a/contrib/onelab/OnelabParser.cpp b/contrib/onelab/OnelabParser.cpp index aedcfde264739f7ef88a31fd811cee9dc0de137a..ffe4291c0f83875f29d58a3ee0749b5fa96a8ed8 100644 --- a/contrib/onelab/OnelabParser.cpp +++ b/contrib/onelab/OnelabParser.cpp @@ -530,8 +530,10 @@ void localSolverClient::parse_sentence(std::string line) { if(numbers.empty()){ numbers.resize(1); numbers[0].setName(name); - if(arguments[0].empty()) + if(arguments[0].empty()){ val=0; + numbers[0].setReadOnly(true); + } else val=atof(resolveGetVal(arguments[0]).c_str()); numbers[0].setValue(val); diff --git a/contrib/onelab/loader.cpp b/contrib/onelab/loader.cpp index be29f428f23a3602227b8df741ec2290835a6296..c8cfacc16b0de6696c0d2446fc70e55466d62167 100644 --- a/contrib/onelab/loader.cpp +++ b/contrib/onelab/loader.cpp @@ -1,5 +1,5 @@ #include "StringUtils.h" -#include "onelabUtils.h" +//#include "onelabUtils.h" #include "OnelabClients.h" #include "metamodel.h" #include <algorithm> @@ -37,11 +37,16 @@ void initializeLoop(const std::string &level) } } } - // force this to make sure that we remesh, even if a mesh exists and // we did not actually change a Gmsh parameter if(changed) - onelab::server::instance()->setChanged(true, "Gmsh"); + onelab::server::instance()->setChanged(true, "Gmsh"); +} +void initializeLoops() +{ + initializeLoop("1"); + initializeLoop("2"); + initializeLoop("3"); } bool incrementLoop(const std::string &level) @@ -93,13 +98,6 @@ bool incrementLoop(const std::string &level) return recompute; } -void initializeLoops() -{ - initializeLoop("1"); - initializeLoop("2"); - initializeLoop("3"); -} - bool incrementLoops() { bool ret = false;