Add option to show or hide zoom toolbar.
authorCarl Hetherington <carl@carlh.net>
Mon, 3 Jan 2011 03:11:31 +0000 (03:11 +0000)
committerCarl Hetherington <carl@carlh.net>
Mon, 3 Jan 2011 03:11:31 +0000 (03:11 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@8413 d708f5d6-7413-0410-9779-e7cbd77b26cf

gtk2_ardour/editor.cc
gtk2_ardour/editor_actions.cc
gtk2_ardour/rc_option_editor.cc
libs/ardour/ardour/rc_configuration_vars.h
libs/gtkmm2ext/gtkmm2ext/tearoff.h
libs/gtkmm2ext/tearoff.cc

index f231a93f6aa8588fb6ce980fde59086c6a1edf1e..8c49af3cf4d897c1c29f59738c7ed69589a5dabd 100644 (file)
@@ -810,16 +810,14 @@ Editor::set_entered_track (TimeAxisView* tav)
 void
 Editor::show_window ()
 {
-       if (! is_visible ()) {
+       if (!is_visible ()) {
                show_all ();
 
-               /* re-hide editor list if necessary */
+               /* re-hide stuff if necessary */
                editor_list_button_toggled ();
-
-               /* re-hide summary widget if necessary */
                parameter_changed ("show-summary");
-
                parameter_changed ("show-edit-group-tabs");
+               parameter_changed ("show-zoom-tools");
 
                /* now reset all audio_time_axis heights, because widgets might need
                   to be re-hidden
@@ -3969,7 +3967,9 @@ Editor::maximise_editing_space ()
        if (Config->get_keep_tearoffs()) {
                _mouse_mode_tearoff->set_visible (true);
                _tools_tearoff->set_visible (true);
-               _zoom_tearoff->set_visible (true);
+               if (Config->get_show_zoom_tools ()) {
+                       _zoom_tearoff->set_visible (true);
+               }
        }
 
 }
@@ -3991,7 +3991,9 @@ Editor::restore_editing_space ()
 
        _mouse_mode_tearoff->set_visible (true);
        _tools_tearoff->set_visible (true);
-       _zoom_tearoff->set_visible (true);
+       if (Config->get_show_zoom_tools ()) {
+               _zoom_tearoff->set_visible (true);
+       }
        post_maximal_editor_width = this->get_width();
        post_maximal_editor_height = this->get_height();
 
index c2ff86d1a82005c862a4eaf66043894329555a19..a33d76132b24e383dffa6ddf6132dfe47ea99055 100644 (file)
@@ -20,6 +20,8 @@
 #include <gio/gio.h>
 #include <gtk/gtkiconfactory.h>
 
+#include "gtkmm2ext/tearoff.h"
+
 #include "ardour/ardour.h"
 #include "ardour/profile.h"
 #include "ardour/session.h"
@@ -1243,6 +1245,8 @@ Editor::parameter_changed (std::string p)
                }
        } else if (p == "timecode-offset" || p == "timecode-offset-negative") {
                update_just_timecode ();
+       } else if (p == "show-zoom-tools") {
+               _zoom_tearoff->set_visible (Config->get_show_zoom_tools(), true);
        }
 }
 
index 0c3d4f25626c6b0ceef3d8fd6e9dae7141fddd38..be65cef513473501bd6d00482b09ad200aa98089 100644 (file)
@@ -1041,6 +1041,14 @@ RCOptionEditor::RCOptionEditor ()
                     sigc::mem_fun (*_rc_config, &RCConfiguration::set_show_waveforms_while_recording)
                     ));
 
+       add_option (_("Editor"),
+                   new BoolOption (
+                           "show-zoom-tools",
+                           _("Show zoom toolbar"),
+                           sigc::mem_fun (*_rc_config, &RCConfiguration::get_show_zoom_tools),
+                           sigc::mem_fun (*_rc_config, &RCConfiguration::set_show_zoom_tools)
+                           ));
+
        /* AUDIO */
 
        add_option (_("Audio"), new OptionEditorHeading (_("Buffering")));
index d06edac230322ef0c5b6c85280b95abd7cc33b62..f8bdab0a82127aba3cf50a958d6359a022cb0c51 100644 (file)
@@ -157,3 +157,6 @@ CONFIG_VARIABLE (int32_t, processor_usage, "processor-usage", -1)
 CONFIG_VARIABLE (bool, denormal_protection, "denormal-protection", false)
 CONFIG_VARIABLE (DenormalModel, denormal_model, "denormal-model", DenormalNone)
 
+/* visibility of toolbar components */
+
+CONFIG_VARIABLE (bool, show_zoom_tools, "show-zoom-tools", true)
index 051217aedb156d8ead41039dce3e5ea5db33aa3a..38cc3d2a1a66d5aedfafdcf2a96e24a4c2673123 100644 (file)
@@ -35,7 +35,7 @@ class TearOff : public Gtk::HBox
        TearOff (Gtk::Widget& contents, bool allow_resize = false);
        virtual ~TearOff ();
 
-       void set_visible (bool yn);
+       void set_visible (bool yn, bool force = false);
        void set_can_be_torn_off (bool);
        bool can_be_torn_off () const { return _can_be_torn_off; }
 
index bc8829d94f619b7862f8ade32b855e3f3bfae16a..0f214dda955b1cd6bc32471a5dfe3d9a24829642 100644 (file)
@@ -112,7 +112,7 @@ TearOff::set_can_be_torn_off (bool yn)
 }
 
 void
-TearOff::set_visible (bool yn)
+TearOff::set_visible (bool yn, bool force)
 {
        /* don't change visibility if torn off */
 
@@ -120,7 +120,7 @@ TearOff::set_visible (bool yn)
                return;
        }
 
-       if (_visible != yn) {
+       if (_visible != yn || force) {
                _visible = yn;
                if (yn) {
                        show_all();