[latexila] spell: update language button in prefs dialog when setting changes



commit 2cea2666bc4de1c34a1aec259effa6eeb4891cd1
Author: Sébastien Wilmet <swilmet gnome org>
Date:   Thu Oct 1 15:01:00 2015 +0200

    spell: update language button in prefs dialog when setting changes
    
    The setting can change with the Reset All button, for example, so it's
    better to support it.

 src/preferences_dialog.vala |   25 ++++++++++++++++++-------
 1 files changed, 18 insertions(+), 7 deletions(-)
---
diff --git a/src/preferences_dialog.vala b/src/preferences_dialog.vala
index fec0da4..8a2f0f1 100644
--- a/src/preferences_dialog.vala
+++ b/src/preferences_dialog.vala
@@ -299,13 +299,7 @@ public class PreferencesDialog : Dialog
         Gspell.LanguageChooserButton spell_language_button =
             builder.get_object ("spell_language_button") as Gspell.LanguageChooserButton;
 
-        unowned Gspell.Language? lang = null;
-        string lang_key = editor_settings.get_string ("spell-checking-language");
-        if (lang_key[0] != '\0')
-            lang = Gspell.Language.from_key (lang_key);
-
-        Gspell.Checker checker = new Gspell.Checker (lang);
-        spell_language_button.set_language (checker.get_language ());
+        update_spell_language_button (editor_settings, spell_language_button);
 
         spell_language_button.notify["language"].connect (() =>
         {
@@ -321,6 +315,11 @@ public class PreferencesDialog : Dialog
                 editor_settings.set_string ("spell-checking-language", "");
         });
 
+        editor_settings.changed["spell-checking-language"].connect (() =>
+        {
+            update_spell_language_button (editor_settings, spell_language_button);
+        });
+
         /* Inline checker */
 
         var inline_spell_checkbutton = builder.get_object ("inline_spell_checkbutton");
@@ -328,6 +327,18 @@ public class PreferencesDialog : Dialog
             "active", SettingsBindFlags.DEFAULT);
     }
 
+    private void update_spell_language_button (GLib.Settings editor_settings,
+        Gspell.LanguageChooserButton spell_language_button)
+    {
+        unowned Gspell.Language? lang = null;
+        string lang_key = editor_settings.get_string ("spell-checking-language");
+        if (lang_key[0] != '\0')
+            lang = Gspell.Language.from_key (lang_key);
+
+        Gspell.Checker checker = new Gspell.Checker (lang);
+        spell_language_button.set_language (checker.get_language ());
+    }
+
     private void init_other_tab (Builder builder)
     {
         GLib.Settings latex_settings =


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]