From 58aa82644b9ae35d571e4cac6b7a79366c551925 Mon Sep 17 00:00:00 2001
From: Christophe Geuzaine <cgeuzaine@ulg.ac.be>
Date: Wed, 7 May 2014 10:30:44 +0000
Subject: [PATCH] Solver.AutoHideNewViews -> Solver.AutoShowViews (with more
 options ;-)

---
 Common/Context.h        |  2 +-
 Common/DefaultOptions.h |  4 ++--
 Common/Gmsh.cpp         |  4 ++--
 Common/GmshMessage.cpp  |  8 ++++----
 Common/OpenFile.cpp     |  8 ++++----
 Common/OpenFile.h       |  4 ++--
 Common/Options.cpp      |  6 +++---
 Common/Options.h        |  2 +-
 Fltk/onelabGroup.cpp    | 12 ++++++------
 9 files changed, 25 insertions(+), 25 deletions(-)

diff --git a/Common/Context.h b/Common/Context.h
index 6b392906bf..c507956b6c 100644
--- a/Common/Context.h
+++ b/Common/Context.h
@@ -242,7 +242,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, showInvisibleParameters;
+    int autoShowViews, autoShowLastStep, autoCheck, showInvisibleParameters;
   }solver;
   // print options
   struct{
diff --git a/Common/DefaultOptions.h b/Common/DefaultOptions.h
index 51a8df661a..4fd4a7b80f 100644
--- a/Common/DefaultOptions.h
+++ b/Common/DefaultOptions.h
@@ -1213,8 +1213,8 @@ StringXNumber SolverOptions_Number[] = {
     "Automatically mesh if necesssary" },
   { F|O, "AutoMergeFile" , opt_solver_auto_merge_file , 1. ,
     "Automatically merge result files" },
-  { F|O, "AutoHideNewViews" , opt_solver_auto_hide_new_views , 0. ,
-    "Automcatically hide newly merged results" },
+  { F|O, "AutoShowViews" , opt_solver_auto_show_views , 2. ,
+    "Automcatically show newly merged results (0: none; 1: all; 2: last one)" },
   { F|O, "AutoShowLastStep" , opt_solver_auto_show_last_step , 1. ,
     "Automatically show the last time step in newly merged results" },
 
diff --git a/Common/Gmsh.cpp b/Common/Gmsh.cpp
index de1d912590..3d244860b0 100644
--- a/Common/Gmsh.cpp
+++ b/Common/Gmsh.cpp
@@ -168,8 +168,8 @@ int GmshMergeFile(const std::string &fileName)
 
 int GmshMergePostProcessingFile(const std::string &fileName)
 {
-  return MergePostProcessingFile(fileName, CTX::instance()->solver.autoShowLastStep,
-                                 CTX::instance()->solver.autoHideNewViews, true);
+  return MergePostProcessingFile(fileName, CTX::instance()->solver.autoShowViews,
+                                 CTX::instance()->solver.autoShowLastStep, true);
 }
 
 int GmshWriteFile(const std::string &fileName)
diff --git a/Common/GmshMessage.cpp b/Common/GmshMessage.cpp
index b2de8be27b..3b96500486 100644
--- a/Common/GmshMessage.cpp
+++ b/Common/GmshMessage.cpp
@@ -751,8 +751,8 @@ public:
   void sendMergeFileRequest(const std::string &name)
   {
     if(name.find(".geo") != std::string::npos){
-      MergePostProcessingFile(name, CTX::instance()->solver.autoShowLastStep,
-			      CTX::instance()->solver.autoHideNewViews, true);
+      MergePostProcessingFile(name, CTX::instance()->solver.autoShowViews,
+                              CTX::instance()->solver.autoShowLastStep, true);
       GModel::current()->setFileName(name);
     }
     else if((name.find(".opt") != std::string::npos)){
@@ -762,8 +762,8 @@ public:
       MergeFile(name);
     }
     else
-      MergePostProcessingFile(name, CTX::instance()->solver.autoShowLastStep,
-			      CTX::instance()->solver.autoHideNewViews, true);
+      MergePostProcessingFile(name, CTX::instance()->solver.autoShowViews,
+                              CTX::instance()->solver.autoShowLastStep, true);
   }
   void sendInfo(const std::string &msg){ Msg::Info("%s", msg.c_str()); }
   void sendWarning(const std::string &msg){ Msg::Warning("%s", msg.c_str()); }
diff --git a/Common/OpenFile.cpp b/Common/OpenFile.cpp
index 1044646a4d..b4e0bc686a 100644
--- a/Common/OpenFile.cpp
+++ b/Common/OpenFile.cpp
@@ -511,8 +511,8 @@ int MergeFile(const std::string &fileName, bool warnIfMissing, bool setWindowTit
   return status;
 }
 
-int MergePostProcessingFile(const std::string &fileName, bool showLastStep,
-                            bool hideNewViews, bool warnIfMissing)
+int MergePostProcessingFile(const std::string &fileName, int showViews,
+                            bool showLastStep, bool warnIfMissing)
 {
 #if defined(HAVE_POST)
   // check if there is a mesh in the file
@@ -560,13 +560,13 @@ int MergePostProcessingFile(const std::string &fileName, bool showLastStep,
   old->setVisibility(1);
 
   // hide everything except the onelab X-Y graphs
-  if(hideNewViews){
+  if(showViews == 0){
     for(unsigned int i = 0; i < PView::list.size(); i++){
       if(PView::list[i]->getData()->getFileName().substr(0, 6) != "ONELAB")
         PView::list[i]->getOptions()->visible = 0;
     }
   }
-  else if(n < PView::list.size()){
+  else if(showViews == 2 && n < PView::list.size()){
     // if we created new views, assume we only want to see those (and the
     // onelab X-Y graphs)
     for(unsigned int i = 0; i < n; i++){
diff --git a/Common/OpenFile.h b/Common/OpenFile.h
index c27007cf5f..0812c73782 100644
--- a/Common/OpenFile.h
+++ b/Common/OpenFile.h
@@ -14,8 +14,8 @@ void OpenProject(const std::string &filename, bool setWindowTitle=true);
 void OpenProjectMacFinder(const char *fileName);
 int MergeFile(const std::string &fileName, bool warnIfMissing=false,
               bool setWindowTitle=true, bool setBoundingBox=true);
-int MergePostProcessingFile(const std::string &fileName, bool showLastStep=false,
-                            bool hideNewViews=false, bool warnIfMissing=false);
+int MergePostProcessingFile(const std::string &fileName, int showViews=2,
+                            bool showLastStep=false, bool warnIfMissing=false);
 void ClearProject();
 void SetBoundingBox(double xmin, double xmax,
                     double ymin, double ymax,
diff --git a/Common/Options.cpp b/Common/Options.cpp
index 22b0bbd544..f86cf3b5e9 100644
--- a/Common/Options.cpp
+++ b/Common/Options.cpp
@@ -6211,11 +6211,11 @@ double opt_solver_auto_merge_file(OPT_ARGS_NUM)
   return CTX::instance()->solver.autoMergeFile;
 }
 
-double opt_solver_auto_hide_new_views(OPT_ARGS_NUM)
+double opt_solver_auto_show_views(OPT_ARGS_NUM)
 {
   if(action & GMSH_SET)
-    CTX::instance()->solver.autoHideNewViews = (int)val;
-  return CTX::instance()->solver.autoHideNewViews;
+    CTX::instance()->solver.autoShowViews = (int)val;
+  return CTX::instance()->solver.autoShowViews;
 }
 
 double opt_solver_auto_show_last_step(OPT_ARGS_NUM)
diff --git a/Common/Options.h b/Common/Options.h
index a18a83e5fb..7e58906fbe 100644
--- a/Common/Options.h
+++ b/Common/Options.h
@@ -512,7 +512,7 @@ double opt_solver_auto_archive_output_files(OPT_ARGS_NUM);
 double opt_solver_auto_check(OPT_ARGS_NUM);
 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_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);
diff --git a/Fltk/onelabGroup.cpp b/Fltk/onelabGroup.cpp
index d5110e28a0..add4729741 100644
--- a/Fltk/onelabGroup.cpp
+++ b/Fltk/onelabGroup.cpp
@@ -342,8 +342,8 @@ bool gmshLocalNetworkClient::receiveMessage(gmshLocalNetworkClient *master)
   case GmshSocket::GMSH_MERGE_FILE:
     if(CTX::instance()->solver.autoMergeFile){
       unsigned int n = PView::list.size();
-      MergePostProcessingFile(message, CTX::instance()->solver.autoShowLastStep,
-                              CTX::instance()->solver.autoHideNewViews, true);
+      MergePostProcessingFile(message, CTX::instance()->solver.autoShowViews,
+                              CTX::instance()->solver.autoShowLastStep, true);
       drawContext::global()->draw();
       if(FlGui::available() && n != PView::list.size()){
         FlGui::instance()->rebuildTree(true);
@@ -939,8 +939,8 @@ void onelab_option_cb(Fl_Widget *w, void *data)
     CTX::instance()->solver.autoMesh = val;
   else if(what == "merge")
     CTX::instance()->solver.autoMergeFile = val;
-  else if(what == "hide")
-    CTX::instance()->solver.autoHideNewViews = val;
+  else if(what == "show")
+    CTX::instance()->solver.autoShowViews = val ? 2 : 0;
   else if(what == "step")
     CTX::instance()->solver.autoShowLastStep = val;
   else if(what == "invisible"){
@@ -1158,7 +1158,7 @@ onelabGroup::onelabGroup(int x, int y, int w, int h, const char *l)
              FL_MENU_TOGGLE);
   _gear->add("Merge results automatically", 0, onelab_option_cb, (void*)"merge",
              FL_MENU_TOGGLE);
-  _gear->add("Hide new views", 0, onelab_option_cb, (void*)"hide",
+  _gear->add("Show new views", 0, onelab_option_cb, (void*)"show",
              FL_MENU_TOGGLE);
   _gear->add("Always show last step", 0, onelab_option_cb, (void*)"step",
              FL_MENU_TOGGLE);
@@ -1933,7 +1933,7 @@ void onelabGroup::updateGearMenu()
                    CTX::instance()->solver.autoCheck,
                    CTX::instance()->solver.autoMesh,
                    CTX::instance()->solver.autoMergeFile,
-                   CTX::instance()->solver.autoHideNewViews,
+                   CTX::instance()->solver.autoShowViews,
                    CTX::instance()->solver.autoShowLastStep,
                    CTX::instance()->solver.showInvisibleParameters};
   for(int i = 0; i < 8; i++){
-- 
GitLab