Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/extensions
diff options
context:
space:
mode:
authorSayamindu Dasgupta <sayamindu@gmail.com>2009-03-24 18:59:04 (GMT)
committer Sayamindu Dasgupta <sayamindu@gmail.com>2009-03-24 18:59:04 (GMT)
commit512e7e826ddf031ba656bbe086903784cff65bb9 (patch)
tree246aa09276ef55942fa04252e34f77efb290a90d /extensions
parent9d41bfb6aac8822b1eadad8e9998c01e7a632d16 (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.py33
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)