Attempt to improve artifacts
This commit is contained in:
		@@ -1,4 +0,0 @@
 | 
			
		||||
import spellchecker
 | 
			
		||||
import platform
 | 
			
		||||
if platform.system() == "Windows":
 | 
			
		||||
	from wx_ui import *
 | 
			
		||||
@@ -1,73 +0,0 @@
 | 
			
		||||
# -*- coding: utf-8 -*-
 | 
			
		||||
import logging
 | 
			
		||||
import wx_ui
 | 
			
		||||
import widgetUtils
 | 
			
		||||
import output
 | 
			
		||||
import config
 | 
			
		||||
import languageHandler
 | 
			
		||||
from enchant.checker import SpellChecker
 | 
			
		||||
from enchant.errors import DictNotFoundError
 | 
			
		||||
from enchant import tokenize
 | 
			
		||||
 | 
			
		||||
log = logging.getLogger("extra.SpellChecker.spellChecker")
 | 
			
		||||
 | 
			
		||||
class spellChecker(object):
 | 
			
		||||
	def __init__(self, text, dictionary):
 | 
			
		||||
		super(spellChecker, self).__init__()
 | 
			
		||||
		log.debug("Creating the SpellChecker object. Dictionary: %s" % (dictionary,))
 | 
			
		||||
		self.active = True
 | 
			
		||||
		try:
 | 
			
		||||
			if config.app["app-settings"]["language"] == "system":
 | 
			
		||||
				log.debug("Using the system language")
 | 
			
		||||
				self.checker = SpellChecker(languageHandler.curLang, filters=[tokenize.EmailFilter, tokenize.URLFilter])
 | 
			
		||||
			else:
 | 
			
		||||
				log.debug("Using language: %s" % (languageHandler.getLanguage(),))
 | 
			
		||||
				self.checker = SpellChecker(languageHandler.curLang, filters=[tokenize.EmailFilter, tokenize.URLFilter])
 | 
			
		||||
			self.checker.set_text(text)
 | 
			
		||||
		except DictNotFoundError:
 | 
			
		||||
			print "no dict"
 | 
			
		||||
			log.exception("Dictionary for language %s not found." % (dictionary,))
 | 
			
		||||
			wx_ui.dict_not_found_error()
 | 
			
		||||
			self.active = False
 | 
			
		||||
		if self.active == True:
 | 
			
		||||
			log.debug("Creating dialog...")
 | 
			
		||||
			self.dialog = wx_ui.spellCheckerDialog()
 | 
			
		||||
			widgetUtils.connect_event(self.dialog.ignore, widgetUtils.BUTTON_PRESSED, self.ignore)
 | 
			
		||||
			widgetUtils.connect_event(self.dialog.ignoreAll, widgetUtils.BUTTON_PRESSED, self.ignoreAll)
 | 
			
		||||
			widgetUtils.connect_event(self.dialog.replace, widgetUtils.BUTTON_PRESSED, self.replace)
 | 
			
		||||
			widgetUtils.connect_event(self.dialog.replaceAll, widgetUtils.BUTTON_PRESSED, self.replaceAll)
 | 
			
		||||
			self.check()
 | 
			
		||||
			self.dialog.get_response()
 | 
			
		||||
			self.fixed_text = self.checker.get_text()
 | 
			
		||||
 | 
			
		||||
	def check(self):
 | 
			
		||||
		try:
 | 
			
		||||
			self.checker.next()
 | 
			
		||||
			textToSay = _(u"Misspelled word: %s") % (self.checker.word,)
 | 
			
		||||
			context = u"... %s %s %s" % (self.checker.leading_context(10), self.checker.word, self.checker.trailing_context(10))
 | 
			
		||||
			self.dialog.set_title(textToSay)
 | 
			
		||||
			output.speak(textToSay)
 | 
			
		||||
			self.dialog.set_word_and_suggestions(word=self.checker.word, context=context, suggestions=self.checker.suggest())
 | 
			
		||||
		except StopIteration:
 | 
			
		||||
			log.debug("Process finished.")
 | 
			
		||||
			wx_ui.finished()
 | 
			
		||||
			self.dialog.Destroy()
 | 
			
		||||
 | 
			
		||||
	def ignore(self, ev):
 | 
			
		||||
		self.check()
 | 
			
		||||
 | 
			
		||||
	def ignoreAll(self, ev):
 | 
			
		||||
		self.checker.ignore_always(word=self.checker.word)
 | 
			
		||||
		self.check()
 | 
			
		||||
 | 
			
		||||
	def replace(self, ev):
 | 
			
		||||
		self.checker.replace(self.dialog.get_selected_suggestion())
 | 
			
		||||
		self.check()
 | 
			
		||||
 | 
			
		||||
	def replaceAll(self, ev):
 | 
			
		||||
		self.checker.replace_always(self.dialog.get_selected_suggestion())
 | 
			
		||||
		self.check()
 | 
			
		||||
 | 
			
		||||
	def clean(self):
 | 
			
		||||
		if hasattr(self, "dialog"):
 | 
			
		||||
			self.dialog.Destroy()
 | 
			
		||||
@@ -1,79 +0,0 @@
 | 
			
		||||
# -*- coding: utf-8 -*-
 | 
			
		||||
############################################################
 | 
			
		||||
#    Copyright (c) 2013, 2014 Manuel Eduardo Cortéz Vallejo <manuel@manuelcortez.net>
 | 
			
		||||
#       
 | 
			
		||||
#    This program is free software: you can redistribute it and/or modify
 | 
			
		||||
#    it under the terms of the GNU General Public License as published by
 | 
			
		||||
#    the Free Software Foundation, either version 2 of the License, or
 | 
			
		||||
#    (at your option) any later version.
 | 
			
		||||
#
 | 
			
		||||
#    This program is distributed in the hope that it will be useful,
 | 
			
		||||
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
#    GNU General Public License for more details.
 | 
			
		||||
#
 | 
			
		||||
#    You should have received a copy of the GNU General Public License
 | 
			
		||||
#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
#
 | 
			
		||||
############################################################
 | 
			
		||||
import wx
 | 
			
		||||
import application
 | 
			
		||||
 | 
			
		||||
class spellCheckerDialog(wx.Dialog):
 | 
			
		||||
	def __init__(self):
 | 
			
		||||
		super(spellCheckerDialog, self).__init__(None, 1)
 | 
			
		||||
		panel = wx.Panel(self)
 | 
			
		||||
		sizer = wx.BoxSizer(wx.VERTICAL)
 | 
			
		||||
		word = wx.StaticText(panel, -1, _(u"&Misspelled word"))
 | 
			
		||||
		self.word = wx.TextCtrl(panel, -1)
 | 
			
		||||
		wordBox = wx.BoxSizer(wx.HORIZONTAL)
 | 
			
		||||
		wordBox.Add(word, 0, wx.ALL, 5)
 | 
			
		||||
		wordBox.Add(self.word, 0, wx.ALL, 5)
 | 
			
		||||
		context = wx.StaticText(panel, -1, _(u"Con&text"))
 | 
			
		||||
		self.context = wx.TextCtrl(panel, -1)
 | 
			
		||||
		contextBox = wx.BoxSizer(wx.HORIZONTAL)
 | 
			
		||||
		contextBox.Add(context, 0, wx.ALL, 5)
 | 
			
		||||
		contextBox.Add(self.context, 0, wx.ALL, 5)
 | 
			
		||||
		suggest = wx.StaticText(panel, -1, _(u"&Suggestions"))
 | 
			
		||||
		self.suggestions = wx.ListBox(panel, -1, choices=[], style=wx.LB_SINGLE)
 | 
			
		||||
		suggestionsBox = wx.BoxSizer(wx.HORIZONTAL)
 | 
			
		||||
		suggestionsBox.Add(suggest, 0, wx.ALL, 5)
 | 
			
		||||
		suggestionsBox.Add(self.suggestions, 0, wx.ALL, 5)
 | 
			
		||||
		self.ignore = wx.Button(panel, -1, _(u"&Ignore"))
 | 
			
		||||
		self.ignoreAll = wx.Button(panel, -1, _(u"Ignore &all"))
 | 
			
		||||
		self.replace = wx.Button(panel, -1, _(u"&Replace"))
 | 
			
		||||
		self.replaceAll = wx.Button(panel, -1, _(u"Replace a&ll"))
 | 
			
		||||
		close = wx.Button(panel, wx.ID_CANCEL)
 | 
			
		||||
		btnBox = wx.BoxSizer(wx.HORIZONTAL)
 | 
			
		||||
		btnBox.Add(self.ignore, 0, wx.ALL, 5)
 | 
			
		||||
		btnBox.Add(self.ignoreAll, 0, wx.ALL, 5)
 | 
			
		||||
		btnBox.Add(self.replace, 0, wx.ALL, 5)
 | 
			
		||||
		btnBox.Add(self.replaceAll, 0, wx.ALL, 5)
 | 
			
		||||
		btnBox.Add(close, 0, wx.ALL, 5)
 | 
			
		||||
		sizer.Add(wordBox, 0, wx.ALL, 5)
 | 
			
		||||
		sizer.Add(contextBox, 0, wx.ALL, 5)
 | 
			
		||||
		sizer.Add(suggestionsBox, 0, wx.ALL, 5)
 | 
			
		||||
		sizer.Add(btnBox, 0, wx.ALL, 5)
 | 
			
		||||
		panel.SetSizer(sizer)
 | 
			
		||||
		self.SetClientSize(sizer.CalcMin())
 | 
			
		||||
 | 
			
		||||
	def get_response(self):
 | 
			
		||||
		return self.ShowModal()
 | 
			
		||||
 | 
			
		||||
	def set_title(self, title):
 | 
			
		||||
		return self.SetTitle(title)
 | 
			
		||||
 | 
			
		||||
	def set_word_and_suggestions(self, word, context, suggestions):
 | 
			
		||||
		self.word.SetValue(word)
 | 
			
		||||
		self.context.ChangeValue(context)
 | 
			
		||||
		self.suggestions.Set(suggestions)
 | 
			
		||||
		self.suggestions.SetFocus()
 | 
			
		||||
 | 
			
		||||
	def get_selected_suggestion(self):
 | 
			
		||||
		return self.suggestions.GetStringSelection()
 | 
			
		||||
 | 
			
		||||
def dict_not_found_error():
 | 
			
		||||
	wx.MessageDialog(None, _(u"An error has occurred. There are no dictionaries available for the selected language in {0}").format(application.name,), _(u"Error"), wx.ICON_ERROR).ShowModal()
 | 
			
		||||
 | 
			
		||||
def finished():
 | 
			
		||||
	wx.MessageDialog(None, _(u"Spell check complete."), application.name, style=wx.OK).ShowModal()
 | 
			
		||||
		Reference in New Issue
	
	Block a user