Ticket #561: slo_561_2.patch

File slo_561_2.patch, 2.8 KB (added by sayamindu, 15 years ago)

Patch which hides the buttons instead of making them insensitive

  • extensions/cpsection/language/model.py

    diff --git a/extensions/cpsection/language/model.py b/extensions/cpsection/language/model.py
    index e714dad..fe80410 100644
    a b def _write_i18n(langs): 
    7474        fd.close()
    7575    else:
    7676        fd = open(path, 'w')
    77         fd.write('LANG="%s"\n' % langs[0])
     77        fd.write('LANG="%s"\n' % langs[0].strip("\n"))
    7878        fd.write('LANGUAGE="%s"\n' % langstr)
    7979        fd.close()
    8080
  • extensions/cpsection/language/view.py

    diff --git a/extensions/cpsection/language/view.py b/extensions/cpsection/language/view.py
    index 5b7e292..b546e98 100644
    a b class Language(SectionView): 
    118118            previous_add_removes = self._add_remove_boxes[-2]
    119119            previous_add_removes.hide_all()
    120120
     121        self._determine_add_remove_visibility()
     122
    121123        combobox.show()
    122124
    123125    def _attach_to_table(self, widget, row, column, padding=20, \
    class Language(SectionView): 
    173175        remove_button.connect('clicked',
    174176                            self.__remove_button_clicked_cb)
    175177
    176         if self._selected_lang_count == 1:
    177             remove_button.set_sensitive(False)
    178 
    179178        add_remove_box = gtk.HButtonBox()
    180179        add_remove_box.set_layout(gtk.BUTTONBOX_START)
    181180        add_remove_box.set_spacing(10)
    class Language(SectionView): 
    197196
    198197    def _check_change(self):
    199198        selected_langs = self._get_selected_langs()
     199        last_lang = selected_langs[-1]
     200
     201        self._determine_add_remove_visibility(last_lang = last_lang)
     202           
    200203        self._changed = (selected_langs != self._selected_locales)
    201204
    202205        if self._changed == False:
    class Language(SectionView): 
    226229       
    227230        return new_codes
    228231
     232    def _determine_add_remove_visibility(self, last_lang = None):
     233        # We should not let users add fallback languages for English (Foo)
     234        # This is because the software is not usually _translated_ into English
     235        # which means that the fallback gets selected autmatically
     236
     237        if last_lang is None:
     238            selected_langs = self._get_selected_langs()
     239            last_lang = selected_langs[-1]
     240           
     241        add_remove_box = self._add_remove_boxes[-1]
     242        buttons = add_remove_box.get_children()
     243        add_button, remove_button = buttons
     244       
     245        if last_lang.startswith('en_US'):
     246            add_button.props.visible = False
     247        else:
     248            add_button.props.visible = True
     249
     250        if self._selected_lang_count == 1:
     251            remove_button.props.visible = False
     252        else:
     253            remove_button.props.visible = True
     254
     255
    229256    def __lang_timeout_cb(self, codes):
    230257        self._lang_sid = 0
    231258        self._model.set_languages(codes)