From 16c59decd591bbeb5a0b496b0ac4a15b7a6dab2b Mon Sep 17 00:00:00 2001
From: Christophe Geuzaine <cgeuzaine@ulg.ac.be>
Date: Wed, 26 Mar 2014 20:48:55 +0000
Subject: [PATCH] add missing gear menu update

---
 Fltk/onelabGroup.cpp | 12 ++++++++----
 Fltk/onelabGroup.h   |  1 +
 2 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/Fltk/onelabGroup.cpp b/Fltk/onelabGroup.cpp
index 4464c65022..49227e3fd5 100644
--- a/Fltk/onelabGroup.cpp
+++ b/Fltk/onelabGroup.cpp
@@ -762,7 +762,7 @@ void onelab_cb(Fl_Widget *w, void *data)
 
   if(action == "refresh"){
     updateGraphs();
-    FlGui::instance()->rebuildTree(false); // for Amandine
+    FlGui::instance()->rebuildTree(true);
     return;
   }
 
@@ -1909,9 +1909,8 @@ std::string onelabGroup::getPath(Fl_Tree_Item *item)
   return std::string(path);
 }
 
-void onelabGroup::rebuildSolverList()
+void onelabGroup::updateGearMenu()
 {
-  // update gear menu
   Fl_Menu_Item* menu = (Fl_Menu_Item*)_gear->menu();
   int values[8] = {CTX::instance()->solver.autoSaveDatabase,
                    CTX::instance()->solver.autoArchiveOutputFiles,
@@ -1928,8 +1927,12 @@ void onelabGroup::rebuildSolverList()
     else
       menu[idx].clear();
   }
+}
+
+void onelabGroup::rebuildSolverList()
+{
+  updateGearMenu();
 
-  // update Gmsh solver menu
   std::vector<std::string> names, exes, hosts;
   for(int i = 0; i < NUM_SOLVERS; i++){
     if(opt_solver_name(i, GMSH_GET, "").size()){
@@ -2038,6 +2041,7 @@ void solver_cb(Fl_Widget *w, void *data)
       onelab_cb(0, (void*)"check");
     else
       onelab_cb(0, (void*)"refresh");
+    FlGui::instance()->onelab->updateGearMenu();
   }
 
   CTX::instance()->launchSolverAtStartup = -1;
diff --git a/Fltk/onelabGroup.h b/Fltk/onelabGroup.h
index 3373b24a4d..f125872ab3 100644
--- a/Fltk/onelabGroup.h
+++ b/Fltk/onelabGroup.h
@@ -47,6 +47,7 @@ class onelabGroup : public Fl_Group{
   void _addGmshMenus();
  public:
   onelabGroup(int x, int y, int w, int h, const char *l=0);
+  void updateGearMenu();
   void rebuildSolverList();
   void rebuildTree(bool deleteWidgets);
   void enableTreeWidgetResize(bool value){ _enableTreeWidgetResize = value; }
-- 
GitLab