force provision of "menu-name" for all WindowProxy objects, and thus Tabbables

Actions for hide/show/attach/detach tabbables use hard-coded names which are not
translated. Using Tabbable/WindowProxy::name() to lookup the action will fail,
since the name can be translated. This changes just removes the option to not
provide a menu-name when creating these objects, and uses the name menu-name
when looking up an action by name
This commit is contained in:
Paul Davis 2020-05-01 14:28:05 -06:00
parent 51795d2e11
commit b258ad792e
8 changed files with 27 additions and 41 deletions

View File

@ -698,7 +698,7 @@ ARDOUR_UI::tabbable_state_change (Tabbable& t)
std::vector<std::string> active_action_names;
std::vector<std::string> inactive_action_names;
Glib::RefPtr<Action> action;
std::string downcased_name = downcase (t.name());
enum ViewState {
Tabbed,
Windowed,
@ -708,31 +708,31 @@ ARDOUR_UI::tabbable_state_change (Tabbable& t)
if (t.tabbed()) {
insensitive_action_names.push_back (string_compose ("attach-%1", downcased_name));
sensitive_action_names.push_back (string_compose ("show-%1", downcased_name));
sensitive_action_names.push_back (string_compose ("detach-%1", downcased_name));
sensitive_action_names.push_back (string_compose ("hide-%1", downcased_name));
insensitive_action_names.push_back (string_compose ("attach-%1", t.menu_name()));
sensitive_action_names.push_back (string_compose ("show-%1", t.menu_name()));
sensitive_action_names.push_back (string_compose ("detach-%1", t.menu_name()));
sensitive_action_names.push_back (string_compose ("hide-%1", t.menu_name()));
vs = Tabbed;
} else if (t.tabbed_by_default ()) {
insensitive_action_names.push_back (string_compose ("attach-%1", downcased_name));
insensitive_action_names.push_back (string_compose ("hide-%1", downcased_name));
sensitive_action_names.push_back (string_compose ("show-%1", downcased_name));
sensitive_action_names.push_back (string_compose ("detach-%1", downcased_name));
insensitive_action_names.push_back (string_compose ("attach-%1", t.menu_name()));
insensitive_action_names.push_back (string_compose ("hide-%1", t.menu_name()));
sensitive_action_names.push_back (string_compose ("show-%1", t.menu_name()));
sensitive_action_names.push_back (string_compose ("detach-%1", t.menu_name()));
vs = Hidden;
} else if (t.window_visible()) {
insensitive_action_names.push_back (string_compose ("detach-%1", downcased_name));
sensitive_action_names.push_back (string_compose ("show-%1", downcased_name));
sensitive_action_names.push_back (string_compose ("attach-%1", downcased_name));
sensitive_action_names.push_back (string_compose ("hide-%1", downcased_name));
insensitive_action_names.push_back (string_compose ("detach-%1", t.menu_name()));
sensitive_action_names.push_back (string_compose ("show-%1", t.menu_name()));
sensitive_action_names.push_back (string_compose ("attach-%1", t.menu_name()));
sensitive_action_names.push_back (string_compose ("hide-%1", t.menu_name()));
active_action_names.push_back (string_compose ("show-%1", downcased_name));
inactive_action_names.push_back (string_compose ("hide-%1", downcased_name));
active_action_names.push_back (string_compose ("show-%1", t.menu_name()));
inactive_action_names.push_back (string_compose ("hide-%1", t.menu_name()));
vs = Windowed;
@ -742,13 +742,13 @@ ARDOUR_UI::tabbable_state_change (Tabbable& t)
* it visible.
*/
insensitive_action_names.push_back (string_compose ("detach-%1", downcased_name));
insensitive_action_names.push_back (string_compose ("hide-%1", downcased_name));
sensitive_action_names.push_back (string_compose ("show-%1", downcased_name));
sensitive_action_names.push_back (string_compose ("attach-%1", downcased_name));
insensitive_action_names.push_back (string_compose ("detach-%1", t.menu_name()));
insensitive_action_names.push_back (string_compose ("hide-%1", t.menu_name()));
sensitive_action_names.push_back (string_compose ("show-%1", t.menu_name()));
sensitive_action_names.push_back (string_compose ("attach-%1", t.menu_name()));
active_action_names.push_back (string_compose ("hide-%1", downcased_name));
inactive_action_names.push_back (string_compose ("show-%1", downcased_name));
active_action_names.push_back (string_compose ("hide-%1", t.menu_name()));
inactive_action_names.push_back (string_compose ("show-%1", t.menu_name()));
vs = Hidden;
}

View File

@ -112,7 +112,7 @@ Mixer_UI::instance ()
}
Mixer_UI::Mixer_UI ()
: Tabbable (_content, _("Mixer"))
: Tabbable (_content, _("Mixer"), X_("mixer"))
, no_track_list_redisplay (false)
, in_group_row_change (false)
, track_menu (0)

View File

@ -32,7 +32,7 @@ const int PublicEditor::horizontal_spacing = 6;
sigc::signal<void> PublicEditor::DropDownKeys;
PublicEditor::PublicEditor (Gtk::Widget& content)
: Tabbable (content, _("Editor"))
: Tabbable (content, _("Editor"), X_("editor"))
, _suspend_route_redisplay_counter (0)
{
}

View File

@ -2294,7 +2294,7 @@ MidiPortOptions::pretty_name_edit (std::string const & path, string const & new_
RCOptionEditor::RCOptionEditor ()
: OptionEditorContainer (Config, string_compose (_("%1 Preferences"), PROGRAM_NAME))
/* pack self-as-vbox into tabbable */
, Tabbable (*this, _("Preferences"), /* detached by default */ false)
, Tabbable (*this, _("Preferences"), _("preferences"), /* detached by default */ false)
, _rc_config (Config)
, _mixer_strip_visibility ("mixer-element-visibility")
{

View File

@ -40,7 +40,6 @@ class VisibilityTracker;
class LIBGTKMM2EXT_API WindowProxy : public PBD::StatefulDestructible, public virtual sigc::trackable
{
public:
WindowProxy (const std::string& name);
WindowProxy (const std::string& name, const std::string& menu_name);
WindowProxy (const std::string& name, const std::string& menu_name, const XMLNode&);
virtual ~WindowProxy();

View File

@ -31,19 +31,6 @@ using namespace Gtk;
using namespace Gtkmm2ext;
using namespace PBD;
WindowProxy::WindowProxy (const std::string& name)
: _name (name)
, _window (0)
, _visible (false)
, _x_off (-1)
, _y_off (-1)
, _width (-1)
, _height (-1)
, vistracker (0)
, _state_mask (StateMask (Position|Size))
{
}
WindowProxy::WindowProxy (const std::string& name, const std::string& menu_name)
: _name (name)
, _menu_name (menu_name)

View File

@ -37,8 +37,8 @@ using namespace Gtk;
using namespace Gtkmm2ext;
using namespace ArdourWidgets;
Tabbable::Tabbable (Widget& w, const string& name, bool tabbed_by_default)
: WindowProxy (name)
Tabbable::Tabbable (Widget& w, const string& visible_name, string const & nontranslatable_name, bool tabbed_by_default)
: WindowProxy (visible_name, nontranslatable_name)
, _contents (w)
, _parent_notebook (0)
, tab_requested_by_state (tabbed_by_default)

View File

@ -44,7 +44,7 @@ namespace ArdourWidgets {
class LIBWIDGETS_API Tabbable : public Gtkmm2ext::WindowProxy
{
public:
Tabbable (Gtk::Widget&, const std::string&, bool tabbed_by_default = true);
Tabbable (Gtk::Widget&, const std::string& user_visible_name, std::string const & untranslated_name, bool tabbed_by_default = true);
~Tabbable ();
void add_to_notebook (Gtk::Notebook& notebook, const std::string& tab_title);