Skip to content
Snippets Groups Projects
Commit b15c3720 authored by Christophe Geuzaine's avatar Christophe Geuzaine
Browse files

db save/load seems to work

parent e965f95c
No related branches found
No related tags found
No related merge requests found
...@@ -215,10 +215,11 @@ namespace onelab{ ...@@ -215,10 +215,11 @@ namespace onelab{
while(!feof(fp)){ while(!feof(fp)){
int numc = 0; int numc = 0;
if(!fscanf(fp, "%d ", &numc)) break; // space is important if(!fscanf(fp, "%d ", &numc)) break; // space is important
if(!numc) break;
msg.push_back(""); msg.push_back("");
for(int i = 0; i < numc; i++) for(int i = 0; i < numc; i++)
msg.back() += fgetc(fp); msg.back() += fgetc(fp);
if(!fgets(tmp, sizeof(tmp), fp)) return false; // end of line if(!fgets(tmp, sizeof(tmp), fp)) break; // end of line
} }
fclose(fp); fclose(fp);
return true; return true;
......
...@@ -422,10 +422,17 @@ void onelab_cb(Fl_Widget *w, void *data) ...@@ -422,10 +422,17 @@ void onelab_cb(Fl_Widget *w, void *data)
Msg::Info("Writing database `onelab.db'..."); Msg::Info("Writing database `onelab.db'...");
onelab::server::instance()->toFile("onelab.db"); onelab::server::instance()->toFile("onelab.db");
Msg::Info("Done writing database"); Msg::Info("Done writing database");
FlGui::instance()->showMessages();
return; return;
} }
if(action == "load"){
std::string name = "onelab.db";
Msg::Info("Loading database '%s'...", name.c_str());
onelab::server::instance()->fromFile(name);
Msg::Info("Done loading database '%s'", name.c_str());
action = "check";
}
if(action == "reset"){ if(action == "reset"){
// clear everything except model names and command line setup // clear everything except model names and command line setup
std::vector<onelab::string> modelNames; std::vector<onelab::string> modelNames;
...@@ -570,15 +577,16 @@ onelabWindow::onelabWindow(int deltaFontSize) ...@@ -570,15 +577,16 @@ onelabWindow::onelabWindow(int deltaFontSize)
(_butt[0]->x() - WB - BB/2, _butt[0]->y(), BB/2, BH, "@-1gmsh_gear"); (_butt[0]->x() - WB - BB/2, _butt[0]->y(), BB/2, BH, "@-1gmsh_gear");
_gear->align(FL_ALIGN_CENTER | FL_ALIGN_INSIDE); _gear->align(FL_ALIGN_CENTER | FL_ALIGN_INSIDE);
_gear->add("Reset database", 0, onelab_cb, (void*)"reset"); _gear->add("Reset database", 0, onelab_cb, (void*)"reset");
_gear->add("_Print database", 0, onelab_cb, (void*)"dump"); _gear->add("Print database", 0, onelab_cb, (void*)"dump");
_gear->add("_Load database", 0, onelab_cb, (void*)"load");
_gear->add("Remesh automatically", 0, 0, 0, FL_MENU_TOGGLE); _gear->add("Remesh automatically", 0, 0, 0, FL_MENU_TOGGLE);
_gear->add("Merge results 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); _gear->add("Hide new views", 0, 0, 0, FL_MENU_TOGGLE);
_gear->add("_Always show last step", 0, 0, 0, FL_MENU_TOGGLE); _gear->add("_Always show last step", 0, 0, 0, FL_MENU_TOGGLE);
((Fl_Menu_Item*)_gear->menu())[2].set();
((Fl_Menu_Item*)_gear->menu())[3].set(); ((Fl_Menu_Item*)_gear->menu())[3].set();
((Fl_Menu_Item*)_gear->menu())[4].clear(); ((Fl_Menu_Item*)_gear->menu())[4].set();
((Fl_Menu_Item*)_gear->menu())[5].set(); ((Fl_Menu_Item*)_gear->menu())[5].clear();
((Fl_Menu_Item*)_gear->menu())[6].set();
_gearFrozenMenuSize = _gear->menu()->size(); _gearFrozenMenuSize = _gear->menu()->size();
Fl_Box *resbox = new Fl_Box(WB, WB, Fl_Box *resbox = new Fl_Box(WB, WB,
...@@ -1019,19 +1027,19 @@ void onelabWindow::setButtonMode(const std::string &butt0, const std::string &bu ...@@ -1019,19 +1027,19 @@ void onelabWindow::setButtonMode(const std::string &butt0, const std::string &bu
_butt[1]->label("Stop"); _butt[1]->label("Stop");
_butt[1]->callback(onelab_cb, (void*)"stop"); _butt[1]->callback(onelab_cb, (void*)"stop");
for(int i = 0; i < _gear->menu()->size(); i++) for(int i = 0; i < _gear->menu()->size(); i++)
if(i < 1 || i > 5) ((Fl_Menu_Item*)_gear->menu())[i].deactivate(); if(i < 1 || i > 6) ((Fl_Menu_Item*)_gear->menu())[i].deactivate();
} }
else if(butt1 == "kill"){ else if(butt1 == "kill"){
_butt[1]->activate(); _butt[1]->activate();
_butt[1]->label("Kill"); _butt[1]->label("Kill");
_butt[1]->callback(onelab_cb, (void*)"kill"); _butt[1]->callback(onelab_cb, (void*)"kill");
for(int i = 0; i < _gear->menu()->size(); i++) for(int i = 0; i < _gear->menu()->size(); i++)
if(i < 1 || i > 5) ((Fl_Menu_Item*)_gear->menu())[i].deactivate(); if(i < 1 || i > 6) ((Fl_Menu_Item*)_gear->menu())[i].deactivate();
} }
else{ else{
_butt[1]->deactivate(); _butt[1]->deactivate();
for(int i = 0; i < _gear->menu()->size(); i++) for(int i = 0; i < _gear->menu()->size(); i++)
if(i < 1 || i > 5) ((Fl_Menu_Item*)_gear->menu())[i].deactivate(); if(i < 1 || i > 6) ((Fl_Menu_Item*)_gear->menu())[i].deactivate();
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment