diff --git a/Common/Context.h b/Common/Context.h index f99cce39f93206f8984f6b5eeca66c1d931d0bdc..b24360a542fd5d21a0a3bd19f35df45a76443ec5 100644 --- a/Common/Context.h +++ b/Common/Context.h @@ -240,7 +240,7 @@ class CTX { std::string socketName; std::string name[NUM_SOLVERS], executable[NUM_SOLVERS], remoteLogin[NUM_SOLVERS]; int autoSaveDatabase, autoArchiveOutputFiles, autoMesh, autoMergeFile; - int autoHideNewViews, autoShowLastStep, autoCheck; + int autoHideNewViews, autoShowLastStep, autoCheck, showInvisibleParameters; }solver; // print options struct{ diff --git a/Common/DefaultOptions.h b/Common/DefaultOptions.h index a54ea64ec120feb9a146f6d44049479751946027..721b818f1685d16791ba140247b8d485c9a58cb9 100644 --- a/Common/DefaultOptions.h +++ b/Common/DefaultOptions.h @@ -1209,6 +1209,9 @@ StringXNumber SolverOptions_Number[] = { { F|O, "Plugins" , opt_solver_plugins , 0. , "Enable default solver plugins?" }, + { F|O, "ShowInvisibleParameters" , opt_solver_show_invisible_parameters , 0. , + "Show all parameters, even those marked invisible" }, + { F|O, "Timeout" , opt_solver_timeout , 5. , "Time (in seconds) before closing the socket if no connection is happening" }, diff --git a/Common/Options.cpp b/Common/Options.cpp index 378842645fb76a1402775eaf6859d0f96c3ebe8f..67773b4e9f5b36babd45d793bf0b1a528c2c9480 100644 --- a/Common/Options.cpp +++ b/Common/Options.cpp @@ -6180,6 +6180,13 @@ double opt_solver_auto_show_last_step(OPT_ARGS_NUM) return CTX::instance()->solver.autoShowLastStep; } +double opt_solver_show_invisible_parameters(OPT_ARGS_NUM) +{ + if(action & GMSH_SET) + CTX::instance()->solver.showInvisibleParameters = (int)val; + return CTX::instance()->solver.showInvisibleParameters; +} + double opt_post_horizontal_scales(OPT_ARGS_NUM) { if(action & GMSH_SET) diff --git a/Common/Options.h b/Common/Options.h index 7829fa9b840406f26c51841d17cb57c9f29ce16c..c6a5c5ce2bfaa115eb1b23a8314d64fcbdcbbcba 100644 --- a/Common/Options.h +++ b/Common/Options.h @@ -509,6 +509,7 @@ double opt_solver_auto_mesh(OPT_ARGS_NUM); double opt_solver_auto_merge_file(OPT_ARGS_NUM); double opt_solver_auto_hide_new_views(OPT_ARGS_NUM); double opt_solver_auto_show_last_step(OPT_ARGS_NUM); +double opt_solver_show_invisible_parameters(OPT_ARGS_NUM); double opt_post_horizontal_scales(OPT_ARGS_NUM); double opt_post_link(OPT_ARGS_NUM); double opt_post_smooth(OPT_ARGS_NUM); diff --git a/Fltk/onelabGroup.cpp b/Fltk/onelabGroup.cpp index b72dd9bfe244faf70f761b719fc72c104ec77cb9..c2f7cbd50cdc0040bbc7ba9c963b375fabb38eb9 100644 --- a/Fltk/onelabGroup.cpp +++ b/Fltk/onelabGroup.cpp @@ -875,6 +875,10 @@ void onelab_option_cb(Fl_Widget *w, void *data) CTX::instance()->solver.autoHideNewViews = val; else if(what == "step") CTX::instance()->solver.autoShowLastStep = val; + else if(what == "invisible"){ + CTX::instance()->solver.showInvisibleParameters = val; + FlGui::instance()->onelab->rebuildTree(true); + } } static void onelab_choose_executable_cb(Fl_Widget *w, void *data) @@ -1088,7 +1092,9 @@ onelabGroup::onelabGroup(int x, int y, int w, int h, const char *l) FL_MENU_TOGGLE); _gear->add("Hide new views", 0, onelab_option_cb, (void*)"hide", FL_MENU_TOGGLE); - _gear->add("_Always show last step", 0, onelab_option_cb, (void*)"step", + _gear->add("Always show last step", 0, onelab_option_cb, (void*)"step", + FL_MENU_TOGGLE); + _gear->add("_Show hidden parameters", 0, onelab_option_cb, (void*)"invisible", FL_MENU_TOGGLE); _gearOptionsEnd = _gear->menu()->size(); @@ -1638,7 +1644,8 @@ void onelabGroup::rebuildTree(bool deleteWidgets) std::vector<onelab::number> numbers; onelab::server::instance()->get(numbers); for(unsigned int i = 0; i < numbers.size(); i++){ - if(!numbers[i].getVisible()) continue; + if(!numbers[i].getVisible() && !CTX::instance()->solver.showInvisibleParameters) + continue; if(numbers[i].getAttribute("Closed") == "1") closed.insert(numbers[i].getPath()); _addParameter(numbers[i]); @@ -1647,7 +1654,8 @@ void onelabGroup::rebuildTree(bool deleteWidgets) std::vector<onelab::string> strings; onelab::server::instance()->get(strings); for(unsigned int i = 0; i < strings.size(); i++){ - if(!strings[i].getVisible()) continue; + if(!strings[i].getVisible() && !CTX::instance()->solver.showInvisibleParameters) + continue; if(strings[i].getAttribute("Closed") == "1") closed.insert(strings[i].getPath()); _addParameter(strings[i]); @@ -1656,7 +1664,8 @@ void onelabGroup::rebuildTree(bool deleteWidgets) std::vector<onelab::region> regions; onelab::server::instance()->get(regions); for(unsigned int i = 0; i < regions.size(); i++){ - if(!regions[i].getVisible()) continue; + if(!regions[i].getVisible() && !CTX::instance()->solver.showInvisibleParameters) + continue; if(regions[i].getAttribute("Closed") == "1") closed.insert(regions[i].getPath()); _addParameter(regions[i]); @@ -1665,7 +1674,8 @@ void onelabGroup::rebuildTree(bool deleteWidgets) std::vector<onelab::function> functions; onelab::server::instance()->get(functions); for(unsigned int i = 0; i < functions.size(); i++){ - if(!functions[i].getVisible()) continue; + if(!functions[i].getVisible() && !CTX::instance()->solver.showInvisibleParameters) + continue; if(functions[i].getAttribute("Closed") == "1") closed.insert(functions[i].getPath()); _addParameter(functions[i]); @@ -1826,14 +1836,15 @@ void onelabGroup::rebuildSolverList() { // update gear menu Fl_Menu_Item* menu = (Fl_Menu_Item*)_gear->menu(); - int values[7] = {CTX::instance()->solver.autoSaveDatabase, + int values[8] = {CTX::instance()->solver.autoSaveDatabase, CTX::instance()->solver.autoArchiveOutputFiles, CTX::instance()->solver.autoCheck, CTX::instance()->solver.autoMesh, CTX::instance()->solver.autoMergeFile, CTX::instance()->solver.autoHideNewViews, - CTX::instance()->solver.autoShowLastStep}; - for(int i = 0; i < 7; i++){ + CTX::instance()->solver.autoShowLastStep, + CTX::instance()->solver.showInvisibleParameters}; + for(int i = 0; i < 8; i++){ int idx = _gearOptionsStart - 1 + i; if(values[i]) menu[idx].set();