set speller language correctly, and show correct error message. Fixes #4737
This commit is contained in:
		
							parent
							
								
									554764400b
								
							
						
					
					
						commit
						eba3911dd7
					
				
					 3 changed files with 33 additions and 29 deletions
				
			
		| 
						 | 
					@ -275,8 +275,22 @@ class ChatControlBase(MessageControl):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		# Attach speller
 | 
							# Attach speller
 | 
				
			||||||
		if gajim.config.get('use_speller') and HAS_GTK_SPELL:
 | 
							if gajim.config.get('use_speller') and HAS_GTK_SPELL:
 | 
				
			||||||
 | 
								self.set_speller()
 | 
				
			||||||
 | 
							self.conv_textview.tv.show()
 | 
				
			||||||
 | 
							self._paint_banner()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							# For XEP-0172
 | 
				
			||||||
 | 
							self.user_nick = None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							self.smooth = True
 | 
				
			||||||
 | 
							self.msg_textview.grab_focus()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						def set_speller(self):
 | 
				
			||||||
		try:
 | 
							try:
 | 
				
			||||||
				spell = gtkspell.Spell(self.msg_textview)
 | 
								lang = gajim.config.get('speller_language')
 | 
				
			||||||
 | 
								if not lang:
 | 
				
			||||||
 | 
									lang = gajim.LANG
 | 
				
			||||||
 | 
								spell = gtkspell.Spell(self.msg_textview, lang)
 | 
				
			||||||
			# loop removing non-existant dictionaries
 | 
								# loop removing non-existant dictionaries
 | 
				
			||||||
			# iterating on a copy
 | 
								# iterating on a copy
 | 
				
			||||||
			for lang in dict(langs):
 | 
								for lang in dict(langs):
 | 
				
			||||||
| 
						 | 
					@ -298,15 +312,6 @@ class ChatControlBase(MessageControl):
 | 
				
			||||||
				spell.set_language(lang)
 | 
									spell.set_language(lang)
 | 
				
			||||||
		except (gobject.GError, RuntimeError):
 | 
							except (gobject.GError, RuntimeError):
 | 
				
			||||||
			dialogs.AspellDictError(lang)
 | 
								dialogs.AspellDictError(lang)
 | 
				
			||||||
		self.conv_textview.tv.show()
 | 
					 | 
				
			||||||
		self._paint_banner()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		# For XEP-0172
 | 
					 | 
				
			||||||
		self.user_nick = None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		self.smooth = True
 | 
					 | 
				
			||||||
		self.msg_textview.grab_focus()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	def on_msg_textview_populate_popup(self, textview, menu):
 | 
						def on_msg_textview_populate_popup(self, textview, menu):
 | 
				
			||||||
		'''we override the default context menu and we prepend an option to switch languages'''
 | 
							'''we override the default context menu and we prepend an option to switch languages'''
 | 
				
			||||||
		def _on_select_dictionary(widget, lang):
 | 
							def _on_select_dictionary(widget, lang):
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -635,7 +635,7 @@ class PreferencesWindow:
 | 
				
			||||||
					spell_obj = None
 | 
										spell_obj = None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				if not spell_obj:
 | 
									if not spell_obj:
 | 
				
			||||||
					gtkspell.Spell(ctrl.msg_textview)
 | 
										ctrl.set_speller()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	def remove_speller(self):
 | 
						def remove_speller(self):
 | 
				
			||||||
		for ctrl in gajim.interface.msg_win_mgr.controls():
 | 
							for ctrl in gajim.interface.msg_win_mgr.controls():
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2195,12 +2195,11 @@ class SingleMessageWindow:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if gajim.config.get('use_speller') and HAS_GTK_SPELL and action == 'send':
 | 
							if gajim.config.get('use_speller') and HAS_GTK_SPELL and action == 'send':
 | 
				
			||||||
			try:
 | 
								try:
 | 
				
			||||||
				spell1 = gtkspell.Spell(self.conversation_textview.tv)
 | 
					 | 
				
			||||||
				spell2 = gtkspell.Spell(self.message_textview)
 | 
					 | 
				
			||||||
				lang = gajim.config.get('speller_language')
 | 
									lang = gajim.config.get('speller_language')
 | 
				
			||||||
				if lang:
 | 
									if not lang:
 | 
				
			||||||
					spell1.set_language(lang)
 | 
										lang = gajim.LANG
 | 
				
			||||||
					spell2.set_language(lang)
 | 
									gtkspell.Spell(self.conversation_textview.tv, lang)
 | 
				
			||||||
 | 
									gtkspell.Spell(self.message_textview, lang)
 | 
				
			||||||
			except gobject.GError:
 | 
								except gobject.GError:
 | 
				
			||||||
				AspellDictError(lang)
 | 
									AspellDictError(lang)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue