From 1851405e2de53e2f9cd0bc4cfeb34aa65fac3ef0 Mon Sep 17 00:00:00 2001 From: Christophe Geuzaine <cgeuzaine@ulg.ac.be> Date: Wed, 25 Jan 2012 11:33:35 +0000 Subject: [PATCH] - introduce 1ms wait to reduce CPU usage - allow changing some gear options during computation - new option to not merge results at all --- Fltk/onelabWindow.cpp | 19 +++++++++++++------ Fltk/onelabWindow.h | 3 ++- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/Fltk/onelabWindow.cpp b/Fltk/onelabWindow.cpp index 9ae6d5a84a..67f5fde6ab 100644 --- a/Fltk/onelabWindow.cpp +++ b/Fltk/onelabWindow.cpp @@ -152,7 +152,7 @@ bool onelab::localNetworkClient::run() if(_pid < 0 || (command.empty() && !CTX::instance()->solver.listen)) break; - int stop = server->NonBlockingWait(sock, 0., 0.); + int stop = server->NonBlockingWait(sock, 0.001, 0.); if(stop || _pid < 0 || (command.empty() && !CTX::instance()->solver.listen)) break; @@ -267,6 +267,7 @@ bool onelab::localNetworkClient::run() break; case GmshSocket::GMSH_MERGE_FILE: { + if(!FlGui::instance()->onelab->mergeAuto()) break; int n = PView::list.size(); for(int i = 0; i < n; i++){ if(PView::list[i]->getData()->getFileName().substr(0, 6) != "OneLab") @@ -840,9 +841,11 @@ onelabWindow::onelabWindow(int deltaFontSize) _gear->add("Reset database", 0, onelab_cb, (void*)"reset"); _gear->add("_Print database", 0, onelab_cb, (void*)"dump"); _gear->add("Remesh automatically", 0, 0, 0, FL_MENU_TOGGLE); + _gear->add("Merge results automatically", 0, 0, 0, FL_MENU_TOGGLE); _gear->add("_Hide new views", 0, 0, 0, FL_MENU_TOGGLE); ((Fl_Menu_Item*)_gear->menu())[2].set(); - ((Fl_Menu_Item*)_gear->menu())[3].clear(); + ((Fl_Menu_Item*)_gear->menu())[3].set(); + ((Fl_Menu_Item*)_gear->menu())[4].clear(); _gearFrozenMenuSize = _gear->menu()->size(); Fl_Box *resbox = new Fl_Box(WB, WB, @@ -1001,23 +1004,27 @@ void onelabWindow::setButtonMode(const std::string &butt0, const std::string &bu _butt[1]->activate(); _butt[1]->label("Compute"); _butt[1]->callback(onelab_cb, (void*)"compute"); - _gear->activate(); + for(int i = 0; i < _gear->menu()->size(); i++) + ((Fl_Menu_Item*)_gear->menu())[i].activate(); } else if(butt1 == "stop"){ _butt[1]->activate(); _butt[1]->label("Stop"); _butt[1]->callback(onelab_cb, (void*)"stop"); - _gear->deactivate(); + for(int i = 0; i < _gear->menu()->size(); i++) + if(i < 1 || i > 4) ((Fl_Menu_Item*)_gear->menu())[i].deactivate(); } else if(butt1 == "kill"){ _butt[1]->activate(); _butt[1]->label("Kill"); _butt[1]->callback(onelab_cb, (void*)"kill"); - _gear->deactivate(); + for(int i = 0; i < _gear->menu()->size(); i++) + if(i < 1 || i > 4) ((Fl_Menu_Item*)_gear->menu())[i].deactivate(); } else{ _butt[1]->deactivate(); - _gear->deactivate(); + for(int i = 0; i < _gear->menu()->size(); i++) + if(i < 1 || i > 4) ((Fl_Menu_Item*)_gear->menu())[i].deactivate(); } } diff --git a/Fltk/onelabWindow.h b/Fltk/onelabWindow.h index 371ce316ed..e7cd4c980e 100644 --- a/Fltk/onelabWindow.h +++ b/Fltk/onelabWindow.h @@ -40,7 +40,8 @@ class onelabWindow{ void show(){ _win->show(); } int shown(){ return _win->shown(); } int meshAuto(){ return _gear->menu()[2].value(); } - int hideNewViews(){ return _gear->menu()[3].value(); } + int mergeAuto(){ return _gear->menu()[3].value(); } + int hideNewViews(){ return _gear->menu()[4].value(); } std::string getPath(Fl_Tree_Item *item) { char path[1024]; -- GitLab