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. asked to install them manually.
</description> </description>
</key> </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'> <key name='open-file-path' type='s'>
<default>"/tmp"</default> <default>"/tmp"</default>
<summary>Open file base path</summary> <summary>Open file base path</summary>

View File

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

View File

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