From bcb2c91a1554bbfcb4e00a0e8123c42c8d0093b9 Mon Sep 17 00:00:00 2001
From: Christophe Geuzaine <cgeuzaine@ulg.ac.be>
Date: Wed, 18 Mar 2015 19:31:46 +0000
Subject: [PATCH] cleanup view menu + new Alt+Shift+t shortcut

---
 Common/CommandLine.cpp     |  1 +
 Fltk/FlGui.cpp             |  9 ++++
 Fltk/viewButton.cpp        | 86 +++++++++++++++++++-------------------
 doc/texinfo/shortcuts.texi |  2 +
 4 files changed, 54 insertions(+), 44 deletions(-)

diff --git a/Common/CommandLine.cpp b/Common/CommandLine.cpp
index d9b2c643ad..b7b9060a67 100644
--- a/Common/CommandLine.cpp
+++ b/Common/CommandLine.cpp
@@ -227,6 +227,7 @@ std::vector<std::pair<std::string, std::string> > GetShortcutsUsage(const std::s
   s.push_back(mp("Alt+Shift+l",    "Hide/show mesh lines"));
   s.push_back(mp("Alt+Shift+p",    "Hide/show mesh points"));
   s.push_back(mp("Alt+Shift+s",    "Hide/show mesh surface edges"));
+  s.push_back(mp("Alt+Shift+t",    "Same as Alt+t, but skip numeric mode"));
   s.push_back(mp("Alt+Shift+v",    "Hide/show mesh volume edges"));
   s.push_back(mp("Alt+Shift+w",    "Reverse all mesh normals"));
   s.push_back(mp("Alt+Shift+x",    "Set -X view"));
diff --git a/Fltk/FlGui.cpp b/Fltk/FlGui.cpp
index 01c0b0dcce..96a961a7dd 100644
--- a/Fltk/FlGui.cpp
+++ b/Fltk/FlGui.cpp
@@ -732,6 +732,15 @@ int FlGui::testGlobalShortcuts(int event)
           (i, GMSH_SET | GMSH_GUI, opt_view_intervals_type(i, GMSH_GET, 0) + 1);
     status = 2;
   }
+  else if(Fl::test_shortcut(FL_ALT + FL_SHIFT + 't')) {
+    for(unsigned int i = 0; i < PView::list.size(); i++)
+      if(opt_view_visible(i, GMSH_GET, 0)){
+        int t = opt_view_intervals_type(i, GMSH_GET, 0) + 1;
+        if(t == 4) t = 1; // skip numeric display
+        opt_view_intervals_type(i, GMSH_SET | GMSH_GUI, t);
+      }
+    status = 2;
+  }
   else if(Fl::test_shortcut(FL_ALT + 'r')) {
     for(unsigned int i = 0; i < PView::list.size(); i++)
       if(opt_view_visible(i, GMSH_GET, 0))
diff --git a/Fltk/viewButton.cpp b/Fltk/viewButton.cpp
index 2e6f62ae4e..a003528e17 100644
--- a/Fltk/viewButton.cpp
+++ b/Fltk/viewButton.cpp
@@ -291,64 +291,62 @@ viewButton::viewButton(int x, int y, int w, int h, int num, Fl_Color col)
 
   _popup->add("Options", 'o',
               (Fl_Callback *) view_options_cb, (void *)num, 0);
-  _popup->add("Plugins", 'p',
-              (Fl_Callback *) plugin_cb, (void *)num, FL_MENU_DIVIDER);
+  _popup->add("_Plugins", 'p',
+              (Fl_Callback *) plugin_cb, (void *)num, 0);
 
   _popup->add("Reload", 'r',
               (Fl_Callback *) view_reload_cb, (void *)num, 0);
+  _popup->add("Reload Views/All", 0,
+              (Fl_Callback *) view_reload_all_cb, (void *)num, 0);
+  _popup->add("Reload Views/Visible", 0,
+              (Fl_Callback *) view_reload_visible_cb, (void *)num, 0);
+  _popup->add("_Create Alias", 0,
+              (Fl_Callback *) view_alias_with_options_cb, (void *)num, 0);
+
   _popup->add("Remove", FL_Delete,
               (Fl_Callback *) view_remove_cb, (void *)num, 0);
-  _popup->add("Create Alias", 0,
-              (Fl_Callback *) view_alias_with_options_cb, (void *)num, 0);
-  _popup->add("Apply As Background Mesh", 0,
-              (Fl_Callback *) view_applybgmesh_cb, (void *)num, 0);
-  _popup->add("Save As...", 0,
-              (Fl_Callback *) view_save_cb, (void *)num, FL_MENU_DIVIDER);
+  _popup->add("_Remove Views/All", 0,
+              (Fl_Callback *) view_remove_all_cb, (void *)-1, 0);
+  _popup->add("Remove Views/Visible", 0,
+              (Fl_Callback *) view_remove_all_cb, (void *)-2, 0);
+  _popup->add("Remove Views/Invisible", 0,
+              (Fl_Callback *) view_remove_all_cb, (void *)-3, 0);
+  _popup->add("Remove Views/Other", 0,
+              (Fl_Callback *) view_remove_other_cb, (void *)num, 0);
+  _popup->add("Remove Views/Empty", 0,
+              (Fl_Callback *) view_remove_all_cb, (void *)-4, 0);
+  _popup->add("Remove Views/With Same Name", 0,
+              (Fl_Callback *) view_remove_all_cb, (void *)num, 0);
 
   _popup->add("Sort By Name", 0,
-              (Fl_Callback *) view_sort_cb, (void *)0, FL_MENU_DIVIDER);
-
-  _popup->add("All/Reload", 0,
-              (Fl_Callback *) view_reload_all_cb, (void *)num, 0);
-  _popup->add("All/Remove", 0,
-              (Fl_Callback *) view_remove_all_cb, (void *)-1, 0);
-  _popup->add("All/Combine Elements", 0,
-              (Fl_Callback *) view_combine_space_all_cb, (void *)num, 0);
-  _popup->add("All/Combine Time Steps", 0,
-              (Fl_Callback *) view_combine_time_all_cb, (void *)num, 0);
-  _popup->add("All/Set Visibility On", 0,
+              (Fl_Callback *) view_sort_cb, (void *)0, 0);
+  _popup->add("Set Visibility/All On", 0,
               (Fl_Callback *) view_all_visible_cb, (void *)-1, 0);
-  _popup->add("All/Set Visibility Off", 0,
+  _popup->add("Set Visibility/All Off", 0,
               (Fl_Callback *) view_all_visible_cb, (void *)-2, 0);
-  _popup->add("All/Invert Visibility", 0,
+  _popup->add("Set Visibility/Invert", 0,
               (Fl_Callback *) view_all_visible_cb, (void *)-3, 0);
+  _popup->add("Set Visibility/Same Name On", 0,
+              (Fl_Callback *) view_all_visible_cb, (void *)num, 0);
 
-  _popup->add("Visible/Reload", 0,
-              (Fl_Callback *) view_reload_visible_cb, (void *)num, 0);
-  _popup->add("Visible/Remove", 0,
-              (Fl_Callback *) view_remove_all_cb, (void *)-2, 0);
-  _popup->add("Visible/Combine Elements", 0,
+  _popup->add("Combine Elements/From All Views", 0,
+              (Fl_Callback *) view_combine_space_all_cb, (void *)num, 0);
+  _popup->add("Combine Elements/From Visible Views", 0,
               (Fl_Callback *) view_combine_space_visible_cb, (void *)num, 0);
-  _popup->add("Visible/Combine Time Steps", 0,
-              (Fl_Callback *) view_combine_time_visible_cb, (void *)num, 0);
-
-  _popup->add("Invisible/Remove", 0,
-              (Fl_Callback *) view_remove_all_cb, (void *)-3, 0);
-
-  _popup->add("Other/Remove", 0,
-              (Fl_Callback *) view_remove_other_cb, (void *)num, 0);
-
-  _popup->add("Empty/Remove", 0,
-              (Fl_Callback *) view_remove_all_cb, (void *)-4, 0);
-
-  _popup->add("Same Name/Remove", 0,
-              (Fl_Callback *) view_remove_all_cb, (void *)num, 0);
-  _popup->add("Same Name/Combine Elements", 0,
+  _popup->add("Combine Elements/From All Views With Same Name", 0,
               (Fl_Callback *) view_combine_space_by_name_cb, (void *)num, 0);
-  _popup->add("Same Name/Combine Time Steps", 0,
+
+  _popup->add("_Combine Time Steps/From All Views", 0,
+              (Fl_Callback *) view_combine_time_all_cb, (void *)num, 0);
+  _popup->add("Combine Time Steps/From Visible Views", 0,
+              (Fl_Callback *) view_combine_time_visible_cb, (void *)num, 0);
+  _popup->add("Combine Time Steps/From All Views With Same Name", 0,
               (Fl_Callback *) view_combine_time_by_name_cb, (void *)num, 0);
-  _popup->add("Same Name/Set Visibility On", 0,
-              (Fl_Callback *) view_all_visible_cb, (void *)num, 0);
+
+  _popup->add("Apply As Background Mesh", 0,
+              (Fl_Callback *) view_applybgmesh_cb, (void *)num, 0);
+  _popup->add("Save As...", 0,
+              (Fl_Callback *) view_save_cb, (void *)num, 0);
 
   end(); // close the group
   resizable(_toggle);
diff --git a/doc/texinfo/shortcuts.texi b/doc/texinfo/shortcuts.texi
index 6e4fd29e15..d88f6060a1 100644
--- a/doc/texinfo/shortcuts.texi
+++ b/doc/texinfo/shortcuts.texi
@@ -140,6 +140,8 @@ Hide/show mesh lines
 Hide/show mesh points
 @item Alt+Shift+s
 Hide/show mesh surface edges
+@item Alt+Shift+t
+Same as Alt+t, but skip numeric mode
 @item Alt+Shift+v
 Hide/show mesh volume edges
 @item Alt+Shift+w
-- 
GitLab