diff --git a/Common/GmshMessage.cpp b/Common/GmshMessage.cpp index ea648eba9c809301909fe016034e9e5ebb18d806..6900c87ca148d7853582b22069082405ba4f54dc 100644 --- a/Common/GmshMessage.cpp +++ b/Common/GmshMessage.cpp @@ -885,18 +885,20 @@ void Msg::ExchangeOnelabParameter(const std::string &key, ps[0].setValue(val[0]); // use local value else val[0] = ps[0].getValue(); // use value from server - // keep track of these attributes, which can be changed server-side (unless, - // for the range/choices, when explicitely setting these attributes as - // ReadOnly) - if(!(fopt.count("ReadOnlyRange") && fopt["ReadOnlyRange"][0])){ - if(ps[0].getMin() != -onelab::parameter::maxNumber() || - ps[0].getMax() != onelab::parameter::maxNumber() || - ps[0].getStep() != 0.) noRange = false; - if(ps[0].getChoices().size()) noChoices = false; + // keep track of these attributes, which can be changed server-side (unless + // they are not visible or, for the range/choices, when explicitely setting + // these attributes as ReadOnly) + if(ps[0].getVisible()){ + if(!(fopt.count("ReadOnlyRange") && fopt["ReadOnlyRange"][0])){ + if(ps[0].getMin() != -onelab::parameter::maxNumber() || + ps[0].getMax() != onelab::parameter::maxNumber() || + ps[0].getStep() != 0.) noRange = false; + if(ps[0].getChoices().size()) noChoices = false; + } + if(ps[0].getAttribute("Loop").size()) noLoop = false; + if(ps[0].getAttribute("Graph").size()) noGraph = false; + if(ps[0].getAttribute("Closed").size()) noClosed = false; } - if(ps[0].getAttribute("Loop").size()) noLoop = false; - if(ps[0].getAttribute("Graph").size()) noGraph = false; - if(ps[0].getAttribute("Closed").size()) noClosed = false; } else{ ps.resize(1); @@ -977,10 +979,13 @@ void Msg::ExchangeOnelabParameter(const std::string &key, ps[0].setValue(val); // use local value else val = ps[0].getValue(); // use value from server - // keep track of these attributes, which can be changed server-side - if(ps[0].getChoices().size()) noChoices = false; - if(ps[0].getAttribute("Closed").size()) noClosed = false; - if(ps[0].getAttribute("MultipleSelection").size()) noMultipleSelection = false; + // keep track of these attributes, which can be changed server-side (unless + // they are not visible) + if(ps[0].getVisible()){ + if(ps[0].getChoices().size()) noChoices = false; + if(ps[0].getAttribute("Closed").size()) noClosed = false; + if(ps[0].getAttribute("MultipleSelection").size()) noMultipleSelection = false; + } } else{ ps.resize(1);