From a1a50d48905f83c178f9923f24d7879eb73f9980 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20Genov=C3=A9s?= Date: Sun, 27 Jan 2019 16:42:36 +0100 Subject: [PATCH] Remember autospellchek status --- data/de.wolfvollprecht.UberWriter.gschema.xml | 7 ++ data/ui/Preferences.ui | 1 - uberwriter/UberwriterWindow.py | 84 ++++++++----------- 3 files changed, 42 insertions(+), 50 deletions(-) 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,