changeset 1f90230b20fa in tryton:default
details: https://hg.tryton.org/tryton?cmd=changeset;node=1f90230b20fa
description:
        Update primary menu after changing the language

        issue7955
        review303761006
diffstat:

 tryton/gui/main.py |  67 ++++++++++++++++++++++++++++-------------------------
 1 files changed, 35 insertions(+), 32 deletions(-)

diffs (91 lines):

diff -r b6a462a040df -r 1f90230b20fa tryton/gui/main.py
--- a/tryton/gui/main.py        Sat Jun 06 14:04:01 2020 +0200
+++ b/tryton/gui/main.py        Fri Jun 12 12:39:17 2020 +0200
@@ -138,38 +138,9 @@
         self.window.set_titlebar(self.header)
         self.set_title()
 
-        menu = Gio.Menu.new()
-        menu.append(_("Preferences..."), 'app.preferences')
-
-        section = Gio.Menu.new()
-        toolbar = Gio.Menu.new()
-        section.append_submenu(_("Toolbar"), toolbar)
-        toolbar.append(_("Default"), 'app.toolbar::default')
-        toolbar.append(_("Text and Icons"), 'app.toolbar::both')
-        toolbar.append(_("Text"), 'app.toolbar::text')
-        toolbar.append(_("Icons"), 'app.toolbar::icons')
-
-        form = Gio.Menu.new()
-        section.append_submenu(_("Form"), form)
-        form.append(_("Save Column Width"), 'app.save-tree-width')
-        form.append(_("Save Tree State"), 'app.save-tree-state')
-        form.append(_("Spell Checking"), 'app.spell-checking')
-
-        section.append(_("PDA Mode"), 'app.mode-pda')
-        section.append(_("Search Limit..."), 'app.search-limit')
-        section.append(_("Email..."), 'app.email')
-        section.append(_("Check Version"), 'app.check-version')
-
-        menu.append_section(_("Options"), section)
-
-        section = Gio.Menu.new()
-        section.append(_("Keyboard Shortcuts..."), 'app.shortcuts')
-        section.append(_("About..."), 'app.about')
-        menu.append_section(_("Help"), section)
-
-        primary_menu = Gtk.MenuButton.new()
-        primary_menu.set_menu_model(menu)
-        self.header.pack_end(primary_menu)
+        self.primary_menu = Gtk.MenuButton.new()
+        self.primary_menu.set_menu_model(self._get_primary_menu())
+        self.header.pack_end(self.primary_menu)
 
         menu = Gtk.Button.new()
         menu.set_relief(Gtk.ReliefStyle.NONE)
@@ -305,6 +276,37 @@
         rpc.logout()
         self.quit()
 
+    def _get_primary_menu(self):
+        menu = Gio.Menu.new()
+        menu.append(_("Preferences..."), 'app.preferences')
+
+        section = Gio.Menu.new()
+        toolbar = Gio.Menu.new()
+        section.append_submenu(_("Toolbar"), toolbar)
+        toolbar.append(_("Default"), 'app.toolbar::default')
+        toolbar.append(_("Text and Icons"), 'app.toolbar::both')
+        toolbar.append(_("Text"), 'app.toolbar::text')
+        toolbar.append(_("Icons"), 'app.toolbar::icons')
+
+        form = Gio.Menu.new()
+        section.append_submenu(_("Form"), form)
+        form.append(_("Save Column Width"), 'app.save-tree-width')
+        form.append(_("Save Tree State"), 'app.save-tree-state')
+        form.append(_("Spell Checking"), 'app.spell-checking')
+
+        section.append(_("PDA Mode"), 'app.mode-pda')
+        section.append(_("Search Limit..."), 'app.search-limit')
+        section.append(_("Email..."), 'app.email')
+        section.append(_("Check Version"), 'app.check-version')
+
+        menu.append_section(_("Options"), section)
+
+        section = Gio.Menu.new()
+        section.append(_("Keyboard Shortcuts..."), 'app.shortcuts')
+        section.append(_("About..."), 'app.about')
+        menu.append_section(_("Help"), section)
+        return menu
+
     def set_global_search(self):
         self.global_search_entry = Gtk.Entry.new()
         self.global_search_entry.set_width_chars(20)
@@ -535,6 +537,7 @@
             translate.setlang(prefs['language'], prefs.get('locale'))
             if CONFIG['client.lang'] != prefs['language']:
                 self.favorite_unset()
+                self.primary_menu.set_menu_model(self._get_primary_menu())
             CONFIG['client.lang'] = prefs['language']
         # Set placeholder after language is set to get correct translation
         self.global_search_entry.set_placeholder_text(_("Action"))

Reply via email to