diff options
author | Sayamindu Dasgupta <sayamindu@gmail.com> | 2009-03-24 18:59:04 (GMT) |
---|---|---|
committer | Sayamindu Dasgupta <sayamindu@gmail.com> | 2009-03-24 18:59:04 (GMT) |
commit | 512e7e826ddf031ba656bbe086903784cff65bb9 (patch) | |
tree | 246aa09276ef55942fa04252e34f77efb290a90d /extensions | |
parent | 9d41bfb6aac8822b1eadad8e9998c01e7a632d16 (diff) |
CP: Disallow the user from selecting any fallbacks if English (USA) is selected (#slo:561)
Diffstat (limited to 'extensions')
-rw-r--r-- | extensions/cpsection/language/view.py | 33 |
1 files changed, 30 insertions, 3 deletions
diff --git a/extensions/cpsection/language/view.py b/extensions/cpsection/language/view.py index 5b7e292..30dc05d 100644 --- a/extensions/cpsection/language/view.py +++ b/extensions/cpsection/language/view.py @@ -118,6 +118,8 @@ class Language(SectionView): previous_add_removes = self._add_remove_boxes[-2] previous_add_removes.hide_all() + self._determine_add_remove_visibility() + combobox.show() def _attach_to_table(self, widget, row, column, padding=20, \ @@ -173,9 +175,6 @@ class Language(SectionView): remove_button.connect('clicked', self.__remove_button_clicked_cb) - if self._selected_lang_count == 1: - remove_button.set_sensitive(False) - add_remove_box = gtk.HButtonBox() add_remove_box.set_layout(gtk.BUTTONBOX_START) add_remove_box.set_spacing(10) @@ -197,6 +196,10 @@ class Language(SectionView): def _check_change(self): selected_langs = self._get_selected_langs() + last_lang = selected_langs[-1] + + self._determine_add_remove_visibility(last_lang = last_lang) + self._changed = (selected_langs != self._selected_locales) if self._changed == False: @@ -226,6 +229,30 @@ class Language(SectionView): return new_codes + def _determine_add_remove_visibility(self, last_lang = None): + # We should not let users add fallback languages for English (USA) + # This is because the software is not usually _translated_ into English + # which means that the fallback gets selected automatically + + if last_lang is None: + selected_langs = self._get_selected_langs() + last_lang = selected_langs[-1] + + add_remove_box = self._add_remove_boxes[-1] + buttons = add_remove_box.get_children() + add_button, remove_button = buttons + + if last_lang.startswith('en_US'): + add_button.props.visible = False + else: + add_button.props.visible = True + + if self._selected_lang_count == 1: + remove_button.props.visible = False + else: + remove_button.props.visible = True + + def __lang_timeout_cb(self, codes): self._lang_sid = 0 self._model.set_languages(codes) |