Remember autospellchek status

ft.font-size
Manuel Genovés 2019-01-27 16:42:36 +01:00
parent d215f52fac
commit a1a50d4890
3 changed files with 42 additions and 50 deletions

View File

@ -13,6 +13,13 @@
asked to install them manually.
</description>
</key>
<key name='spellcheck' type='b'>
<default>true</default>
<summary>Spellcheck</summary>
<description>
Enable/disable spellchecking in the application.
</description>
</key>
<key name='open-file-path' type='s'>
<default>"/tmp"</default>
<summary>Open file base path</summary>

View File

@ -76,7 +76,6 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="action_name">app.spellcheck</property>
<property name="active">True</property>
</object>
<packing>
<property name="left_attach">1</property>

View File

@ -28,8 +28,9 @@ import re
from gettext import gettext as _
import gi
gi.require_version('Gtk', '3.0')
gi.require_version('WebKit2', '4.0') # pylint: disable=wrong-import-position
from gi.repository import Gtk, Gdk, GObject, GLib, Gio # pylint: disable=E0611
from gi.repository import Gtk, Gdk, GObject, GLib, Gio
from gi.repository import WebKit2 as WebKit
from gi.repository import Pango # pylint: disable=E0611
@ -44,7 +45,7 @@ from uberwriter_lib.gtkspellcheck import SpellChecker
from .MarkupBuffer import MarkupBuffer
from .UberwriterTextEditor import TextEditor
from .UberwriterInlinePreview import UberwriterInlinePreview
from .UberwriterSidebar import UberwriterSidebar
# from .UberwriterSidebar import UberwriterSidebar
from .UberwriterSearchAndReplace import UberwriterSearchAndReplace
from .Settings import Settings
# from .UberwriterAutoCorrect import UberwriterAutoCorrect
@ -223,23 +224,7 @@ class UberwriterWindow(Gtk.ApplicationWindow):
# Setting up spellcheck
self.auto_correct = None
try:
self.spell_checker = SpellChecker(
self.text_editor, locale.getdefaultlocale()[0],
collapse=False)
if self.auto_correct:
self.auto_correct.set_language(self.spell_checker.language)
self.spell_checker.connect_language_change( #pylint: disable=no-member
self.auto_correct.set_language)
self.spellcheck = True
except:
self.spell_checker = None
self.spellcheck = False
if self.spellcheck:
self.spell_checker.append_filter('[#*]+', SpellChecker.FILTER_WORD)
self.toggle_spellcheck(self.settings.get_value("spellcheck"))
self.did_change = False
###
@ -385,7 +370,7 @@ class UberwriterWindow(Gtk.ApplicationWindow):
self.focusmode = True
self.text_editor.grab_focus()
self.check_scroll(self.text_buffer.get_insert())
if self.spellcheck:
if self.spell_checker:
self.spell_checker._misspelled.set_property('underline', 0)
self.click_event = self.text_editor.connect("button-release-event",
self.on_focusmode_click)
@ -403,7 +388,7 @@ class UberwriterWindow(Gtk.ApplicationWindow):
self.text_editor.grab_focus()
self.update_line_and_char_count()
self.check_scroll()
if self.spellcheck:
if self.spell_checker:
self.spell_checker._misspelled.set_property('underline', 4)
_click_event = self.text_editor.disconnect(self.click_event)
@ -753,37 +738,38 @@ class UberwriterWindow(Gtk.ApplicationWindow):
status {gtk bool} -- Desired status of the spellchecking
"""
if self.spellcheck:
if status.get_boolean():
self.spell_checker.enable()
else:
self.spell_checker.disable()
elif status.get_boolean():
self.spell_checker = SpellChecker(
self.text_editor, self, locale.getdefaultlocale()[0],
collapse=False)
if self.auto_correct:
self.auto_correct.set_language(self.spell_checker.language)
self.spell_checker.connect_language_change( # pylint: disable=no-member
self.auto_correct.set_language)
if status.get_boolean():
try:
self.spellcheck = True
self.spell_checker.enable()
except:
self.spell_checker = None
self.spellcheck = False
dialog = Gtk.MessageDialog(self,
Gtk.DialogFlags.MODAL \
| Gtk.DialogFlags.DESTROY_WITH_PARENT,
Gtk.MessageType.INFO,
Gtk.ButtonsType.NONE,
_("You can not enable the Spell Checker.")
)
dialog.format_secondary_text(
_("Please install 'hunspell' or 'aspell' dictionarys"
+ " for your language from the software center."))
_response = dialog.run()
try:
self.spell_checker = SpellChecker(
self.text_editor, locale.getdefaultlocale()[0],
collapse=False)
if self.auto_correct:
self.auto_correct.set_language(self.spell_checker.language)
self.spell_checker.connect_language_change( # pylint: disable=no-member
self.auto_correct.set_language)
except:
self.spell_checker = None
dialog = Gtk.MessageDialog(self,
Gtk.DialogFlags.MODAL \
| Gtk.DialogFlags.DESTROY_WITH_PARENT,
Gtk.MessageType.INFO,
Gtk.ButtonsType.NONE,
_("You can not enable the Spell Checker.")
)
dialog.format_secondary_text(
_("Please install 'hunspell' or 'aspell' dictionarys"
+ " for your language from the software center."))
_response = dialog.run()
return
return
else:
try:
self.spell_checker.disable()
except:
pass
return
def on_drag_data_received(self, _widget, drag_context, _x, _y,