diff --git a/data/de.wolfvollprecht.UberWriter.gschema.xml b/data/de.wolfvollprecht.UberWriter.gschema.xml
index 64fcd99..70b3ecd 100644
--- a/data/de.wolfvollprecht.UberWriter.gschema.xml
+++ b/data/de.wolfvollprecht.UberWriter.gschema.xml
@@ -13,6 +13,13 @@
asked to install them manually.
+
+ true
+ Spellcheck
+
+ Enable/disable spellchecking in the application.
+
+
"/tmp"
Open file base path
diff --git a/data/ui/Preferences.ui b/data/ui/Preferences.ui
index 9325450..119095a 100644
--- a/data/ui/Preferences.ui
+++ b/data/ui/Preferences.ui
@@ -76,7 +76,6 @@
True
True
app.spellcheck
- True
1
diff --git a/uberwriter/UberwriterWindow.py b/uberwriter/UberwriterWindow.py
index 3cd143b..a9010ca 100644
--- a/uberwriter/UberwriterWindow.py
+++ b/uberwriter/UberwriterWindow.py
@@ -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,