diff --git a/Common/onelabUtils.cpp b/Common/onelabUtils.cpp index b152f8df5b7ad2c5eb742215bcc83fab61b36869..40541f5be235ce1276946bb6c4ca01e4d476fb98 100644 --- a/Common/onelabUtils.cpp +++ b/Common/onelabUtils.cpp @@ -295,6 +295,11 @@ namespace onelabUtils { { bool redraw = false; + // do nothing in case of a python metamodel + std::vector<onelab::number> pn; + onelab::server::instance()->get(pn, "IsPyMetamodel"); + if(pn.size() && pn[0].getValue()) return redraw; + onelab::server::citer it = onelab::server::instance()->findClient("Gmsh"); if(it == onelab::server::instance()->lastClient()) return redraw; diff --git a/Fltk/onelabGroup.cpp b/Fltk/onelabGroup.cpp index 6a94ac994395654db321d4b14ce011297eb2d925..71bc0b7ac22e78aa71d97d7ff6311389d38b9fb3 100644 --- a/Fltk/onelabGroup.cpp +++ b/Fltk/onelabGroup.cpp @@ -780,6 +780,7 @@ static void resetDb(bool runGmshClient) // clear the db onelab::server::instance()->clear(); + // run Gmsh client for non-python metamodels if(runGmshClient && onelab::server::instance()->findClient("Gmsh") != onelab::server::instance()->lastClient()) onelabUtils::runGmshClient("reset", CTX::instance()->solver.autoMesh); @@ -890,18 +891,11 @@ void onelab_cb(Fl_Widget *w, void *data) if(action == "compute") initializeLoops(); - // check whether we are running a metamodel (.py) - std::vector<onelab::number> pn; - onelab::server::instance()->get(pn, "IsPyMetamodel"); - bool isPyMetamodel = (pn.size() && pn[0].getValue()); - do{ // enter loop - // if the client is not a python metamodel, run Gmsh - if(!isPyMetamodel){ - if(onelabUtils::runGmshClient(action, CTX::instance()->solver.autoMesh)) - drawContext::global()->draw(); - } + //run Gmsh client for non-python metamodels + if(onelabUtils::runGmshClient(action, CTX::instance()->solver.autoMesh)) + drawContext::global()->draw(); if(action == "compute") FlGui::instance()->onelab->checkForErrors("Gmsh"); @@ -2165,40 +2159,3 @@ void flgui_wait_cb(double time) FlGui::instance()->wait(time); } -/* -int metamodel_cb(const std::string &name, const std::string &action) -{ -#if defined(HAVE_ONELAB_METAMODEL) - if(FlGui::instance()->onelab->isBusy()) - FlGui::instance()->onelab->show(); - else{ - initializeMetamodel(Msg::GetExecutableName(),Msg::GetOnelabClient(), - &flgui_wait_cb,Msg::GetVerbosity()); - - onelab::number n("IsMetamodel", 1.); - n.setVisible(false); - onelab::server::instance()->set(n); - std::vector<std::string> split = SplitFileName(name); - onelab::string s1("Arguments/WorkingDir", - split[0].size() ? split[0] : GetCurrentWorkdir()); - s1.setVisible(false); - s1.setAttribute("NotInDb","True"); - onelab::server::instance()->set(s1); - onelab::string s2("Arguments/FileName", split[1]); - s2.setVisible(false); - onelab::server::instance()->set(s2); - - FlGui::instance()->onelab->rebuildSolverList(); - - if(FlGui::instance()->available()){ - onelab_cb(0, (void*)"check"); - } - else - metamodel(action); - } - return 1; -#else - return 0; -#endif -} -*/