diff options
| author | Patrick Storz <eduard.braun2@gmx.de> | 2019-09-10 21:06:16 +0000 |
|---|---|---|
| committer | Patrick Storz <eduard.braun2@gmx.de> | 2019-09-10 21:06:16 +0000 |
| commit | 9ef11983740d45efd39152a6f34de3a0102ccbe7 (patch) | |
| tree | f016f43a9d2927eaaf1d0397c88271497deb1bab /src/ui/desktop/menubar.cpp | |
| parent | Fix tutorials (diff) | |
| download | inkscape-9ef11983740d45efd39152a6f34de3a0102ccbe7.tar.gz inkscape-9ef11983740d45efd39152a6f34de3a0102ccbe7.zip | |
Menubar: Fix translation of submenu names
* drop underscore from submenus' "name" attribute
and extract for translation by default
* avoid crash for submenus missing a name
* fix ITS rules (only top-level menu names where extracted)
Diffstat (limited to 'src/ui/desktop/menubar.cpp')
| -rw-r--r-- | src/ui/desktop/menubar.cpp | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/src/ui/desktop/menubar.cpp b/src/ui/desktop/menubar.cpp index 5e2b4edcd..8852f344b 100644 --- a/src/ui/desktop/menubar.cpp +++ b/src/ui/desktop/menubar.cpp @@ -114,7 +114,7 @@ set_name(Glib::ustring const &name, Gtk::MenuItem* menuitem) label->set_markup_with_mnemonic(name); } else { std::cerr << "set_name: could not find label!" << std::endl; - } + } } } @@ -261,7 +261,7 @@ checkitem_update(Gtk::CheckMenuItem* menuitem, SPAction* action) menuitem->set_active(active); } else { std::cerr << "checkitem_update: unknown action" << std::endl; - } + } } static Gtk::CheckMenuItem* @@ -279,7 +279,7 @@ build_menu_check_item_from_verb(SPAction* action) checkitem_update(menuitem, action); menuitem->signal_toggled().connect( - sigc::bind<Gtk::CheckMenuItem*, SPAction*>(sigc::ptr_fun(&item_activate), menuitem, action)); + sigc::bind<Gtk::CheckMenuItem*, SPAction*>(sigc::ptr_fun(&item_activate), menuitem, action)); menuitem->signal_select().connect( sigc::bind<SPAction*>(sigc::ptr_fun(&select_action), action)); menuitem->signal_deselect().connect(sigc::bind<SPAction*>(sigc::ptr_fun(&deselect_action), action)); @@ -329,7 +329,7 @@ add_tasks(Gtk::MenuShell* menu, SPDesktop* dt) } menuitem->signal_toggled().connect( - sigc::bind<SPDesktop*, int>(sigc::ptr_fun(&task_activated), dt, i)); + sigc::bind<SPDesktop*, int>(sigc::ptr_fun(&task_activated), dt, i)); menuitem->signal_select().connect( sigc::bind<SPDesktop*, Glib::ustring>(sigc::ptr_fun(&select_task), dt, data[i][1])); menuitem->signal_deselect().connect( @@ -407,12 +407,13 @@ build_menu(Gtk::MenuShell* menu, Inkscape::XML::Node* xml, Inkscape::UI::View::V } if (name == "submenu") { - Gtk::MenuItem* menuitem = nullptr; - if (menu_ptr->attribute("_name") != nullptr) { - menuitem = Gtk::manage(new Gtk::MenuItem(_(menu_ptr->attribute("_name")), true)); - } else { - menuitem = Gtk::manage(new Gtk::MenuItem( menu_ptr->attribute("name"), true)); + const char *name = menu_ptr->attribute("name"); + if (!name) { + g_warning("menus.xml: skipping submenu without name."); + continue; } + + Gtk::MenuItem* menuitem = Gtk::manage(new Gtk::MenuItem(_(name), true)); Gtk::Menu* submenu = Gtk::manage(new Gtk::Menu()); build_menu(submenu, menu_ptr->firstChild(), view, show_icons_curr); menuitem->set_submenu(*submenu); @@ -423,7 +424,7 @@ build_menu(Gtk::MenuShell* menu, Inkscape::XML::Node* xml, Inkscape::UI::View::V continue; } - + if (name == "contextmenu") { if (menu_ptr->attribute("id")) { Glib::ustring id = menu_ptr->attribute("id"); |
