From 875f4f88943b53030b7298855e486bbb5638d571 Mon Sep 17 00:00:00 2001
From: Yann Leboulanger <asterix@lagaule.org>
Date: Sun, 10 Sep 2006 22:25:07 +0000
Subject: [PATCH] check if dictionary is installed when enabling spell checking
 and at gajim startup. For #2387

---
 src/config.py | 20 ++++++++++++++++++--
 src/gajim.py  | 15 +++++++++++++++
 2 files changed, 33 insertions(+), 2 deletions(-)

diff --git a/src/config.py b/src/config.py
index 170121acb5..dd8e7bce38 100644
--- a/src/config.py
+++ b/src/config.py
@@ -620,7 +620,23 @@ class PreferencesWindow:
 		gajim.config.set('use_speller', active)
 		gajim.interface.save_config()
 		if active:
-			self.apply_speller()
+			lang = gajim.config.get('speller_language')
+			if not lang:
+				lang = gajim.LANG
+			tv = gtk.TextView()
+			try:
+				spell = gtkspell.Spell(tv, lang)
+			except:
+				dialogs.ErrorDialog(
+					_('Dictionary for lang %s not available') % lang,
+					_('You have to install %s dictionary to use spellchecking, or '
+					'choose another language by setting the speller_language option.'
+					) % lang)
+				gajim.config.set('use_speller', False)
+				widget.set_active(False)
+			else:
+				gajim.config.set('speller_language', lang)
+				self.apply_speller()
 		else:
 			self.remove_speller()
 
@@ -2239,7 +2255,7 @@ class RemoveAccountWindow:
 		self.window = xml.get_widget('remove_account_window')
 		self.window.set_transient_for(gajim.interface.roster.window)
 		self.remove_and_unregister_radiobutton = xml.get_widget(
-														'remove_and_unregister_radiobutton')
+			'remove_and_unregister_radiobutton')
 		self.window.set_title(_('Removing %s account') % self.account)
 		xml.signal_autoconnect(self)
 		self.window.show_all()
diff --git a/src/gajim.py b/src/gajim.py
index 8fa3d1c765..73d865cecd 100755
--- a/src/gajim.py
+++ b/src/gajim.py
@@ -1923,6 +1923,21 @@ class Interface:
 		# get transports type from DB
 		gajim.transport_type = gajim.logger.get_transports_type()
 
+		# test is dictionnary is present for speller
+		if gajim.config.get('use_speller'):
+			lang = gajim.config.get('speller_language')
+			if not lang:
+				lang = gajim.LANG
+			tv = gtk.TextView()
+			try:
+				spell = gtkspell.Spell(tv, lang)
+			except:
+				dialogs.ErrorDialog(
+					_('Dictionary for lang %s not available') % lang,
+					_('You have to install %s dictionary to use spellchecking, or '
+					'choose another language by setting the speller_language option.'
+					) % lang)
+				gajim.config.set('use_speller', False)
 		gobject.timeout_add(100, self.autoconnect)
 		gobject.timeout_add(200, self.process_connections)
 		gobject.timeout_add(500, self.read_sleepy)
-- 
GitLab