[Gmsh] adding strings to onelab parameter choices
Nigel Nunn
nnnunnn at gmail.com
Mon Jan 16 17:37:54 CET 2017
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.
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.
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?
std::vector<onelab::string> ps;
std::vector<std::string> choices;
std::map<std::string, std::string> attrP, attrB;
//-------------------------------------
// select input/parameter file
//-------------------------------------
ps.clear(); choices.clear();
c->get(ps, name + "/04InputFile");
if (ps.empty()) {
ps.resize(1);
ps[0].setKind("file");
ps[0].setLabel("Input File");
ps[0].setName(name + "/04InputFile");
ps[0].setValue ("no input");
choices.push_back("no input");
ps[0].setChoices(choices);
ps[0].setAttributes(attrB);
c->set(ps[0]);
}
else
{
tmpstr = ps[0].getValue();
std::vector<std::string> ch = ps[0].getChoices();
std::vector<std::string>::iterator it;
it = std::find(ch.begin(), ch.end(), tmpstr);
if (it == ch.end()) {
ch.push_back(tmpstr); // not found, add to list.
ps[0].setChoices(ch); // not getting added to list ?
c->set(ps[0]);
}
}
thanks for any help!
Nigel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://onelab.info/pipermail/gmsh/attachments/20170117/4c926a3f/attachment.html>
More information about the gmsh
mailing list