Author: asterix Date: 2009-01-28 14:16:02 +0100 (Wed, 28 Jan 2009) New Revision: 11040
Modified: trunk/src/chat_control.py trunk/src/config.py trunk/src/dialogs.py Log: set speller language correctly, and show correct error message. Fixes #4737
Modified: trunk/src/chat_control.py =================================================================== --- trunk/src/chat_control.py 2009-01-28 12:12:13 UTC (rev 11039) +++ trunk/src/chat_control.py 2009-01-28 13:16:02 UTC (rev 11040) @@ -275,29 +275,7 @@
# Attach speller if gajim.config.get('use_speller') and HAS_GTK_SPELL: - try: - spell = gtkspell.Spell(self.msg_textview) - # loop removing non-existant dictionaries - # iterating on a copy - for lang in dict(langs): - try: - spell.set_language(langs[lang]) - except Exception: - del langs[lang] - # now set the one the user selected - per_type = 'contacts' - if self.type_id == message_control.TYPE_GC: - per_type = 'rooms' - lang = gajim.config.get_per(per_type, self.contact.jid, - 'speller_language') - if not lang: - # use the default one - lang = gajim.config.get('speller_language') - if lang: - self.msg_textview.lang = lang - spell.set_language(lang) - except (gobject.GError, RuntimeError): - dialogs.AspellDictError(lang) + self.set_speller() self.conv_textview.tv.show() self._paint_banner()
@@ -307,6 +285,33 @@ self.smooth = True self.msg_textview.grab_focus()
+ def set_speller(self): + try: + lang = gajim.config.get('speller_language') + if not lang: + lang = gajim.LANG + spell = gtkspell.Spell(self.msg_textview, lang) + # loop removing non-existant dictionaries + # iterating on a copy + for lang in dict(langs): + try: + spell.set_language(langs[lang]) + except Exception: + del langs[lang] + # now set the one the user selected + per_type = 'contacts' + if self.type_id == message_control.TYPE_GC: + per_type = 'rooms' + lang = gajim.config.get_per(per_type, self.contact.jid, + 'speller_language') + if not lang: + # use the default one + lang = gajim.config.get('speller_language') + if lang: + self.msg_textview.lang = lang + spell.set_language(lang) + except (gobject.GError, RuntimeError): + dialogs.AspellDictError(lang) def on_msg_textview_populate_popup(self, textview, menu): '''we override the default context menu and we prepend an option to switch languages''' def _on_select_dictionary(widget, lang):
Modified: trunk/src/config.py =================================================================== --- trunk/src/config.py 2009-01-28 12:12:13 UTC (rev 11039) +++ trunk/src/config.py 2009-01-28 13:16:02 UTC (rev 11040) @@ -635,7 +635,7 @@ spell_obj = None
if not spell_obj: - gtkspell.Spell(ctrl.msg_textview) + ctrl.set_speller()
def remove_speller(self): for ctrl in gajim.interface.msg_win_mgr.controls():
Modified: trunk/src/dialogs.py =================================================================== --- trunk/src/dialogs.py 2009-01-28 12:12:13 UTC (rev 11039) +++ trunk/src/dialogs.py 2009-01-28 13:16:02 UTC (rev 11040) @@ -2195,12 +2195,11 @@
if gajim.config.get('use_speller') and HAS_GTK_SPELL and action == 'send': try: - spell1 = gtkspell.Spell(self.conversation_textview.tv) - spell2 = gtkspell.Spell(self.message_textview) lang = gajim.config.get('speller_language') - if lang: - spell1.set_language(lang) - spell2.set_language(lang) + if not lang: + lang = gajim.LANG + gtkspell.Spell(self.conversation_textview.tv, lang) + gtkspell.Spell(self.message_textview, lang) except gobject.GError: AspellDictError(lang)