<div dir="ltr"><div>In our onelab GUI, I'm trying to add the name of a user-selected input file to a list of choices for a string parameter, kind=file. </div><div><br></div><div>The idea is to allow the user to select an input file for a simulation, and if that file name is not already in the list of choices for parameter /04InputFile, then add it to the list.</div><div><br></div><div>The code below used to work, but now things only seem to work for a hard-wired list of filenames.  Do I need to call setChanged or something?</div><div><br></div><div><br></div><div>  std::vector<onelab::string> ps;<br>  std::vector<std::string> choices;<br>  std::map<std::string, std::string> attrP, attrB;<br><br></div><div>  //-------------------------------------<br>  // select input/parameter file<br>  //-------------------------------------<br>  ps.clear(); choices.clear();<br>  c->get(ps, name + "/04InputFile");<br>  if (ps.empty()) {<br>    ps.resize(1);<br>    ps[0].setKind("file");<br>    ps[0].setLabel("Input File");<br>    ps[0].setName(name + "/04InputFile");<br>    ps[0].setValue   ("no input");<br>    choices.push_back("no input");<br>    ps[0].setChoices(choices);<br>    ps[0].setAttributes(attrB);<br>    c->set(ps[0]);<br>  } <br>  else <br>  {<br>    tmpstr = ps[0].getValue();<br>    std::vector<std::string> ch = ps[0].getChoices();<br>    std::vector<std::string>::iterator it;<br>    it = std::find(ch.begin(), ch.end(), tmpstr);<br>    if (it == ch.end()) {<br>      ch.push_back(tmpstr);   // not found, add to list.<br>      ps[0].setChoices(ch);     // not getting added to list ?<br>      c->set(ps[0]);<br>    }<br>  }</div><div><span><br></span></div><div>thanks for any help!<br></div><div>Nigel</div><div><br></div></div>