Branch: refs/heads/master Author: Enrico Tröger enrico.troeger@uvena.de Committer: Enrico Tröger enrico.troeger@uvena.de Date: Sun, 28 Sep 2014 10:14:02 UTC Commit: 5a94d9561ceee5628742bb90d279e49858586e5d https://github.com/geany/geany-plugins/commit/5a94d9561ceee5628742bb90d279e4...
Log Message: ----------- Add option to perform a spell check on document open (closes SF #137)
Modified Paths: -------------- spellcheck/src/gui.c spellcheck/src/gui.h spellcheck/src/scplugin.c spellcheck/src/scplugin.h
Modified: spellcheck/src/gui.c 14 lines changed, 14 insertions(+), 0 deletions(-) =================================================================== @@ -272,6 +272,20 @@ static void perform_spell_check_cb(GtkWidget *menu_item, GeanyDocument *doc) }
+static gboolean perform_check_delayed_cb(gpointer doc) +{ + perform_check((GeanyDocument*)doc); + return FALSE; +} + + +void sc_gui_document_open_cb(GObject *obj, GeanyDocument *doc, gpointer user_data) +{ + if (sc_info->check_on_document_open && main_is_realized()) + g_idle_add(perform_check_delayed_cb, doc); +} + + void sc_gui_update_editor_menu_cb(GObject *obj, const gchar *word, gint pos, GeanyDocument *doc, gpointer user_data) {
Modified: spellcheck/src/gui.h 2 lines changed, 2 insertions(+), 0 deletions(-) =================================================================== @@ -39,6 +39,8 @@ void sc_gui_update_editor_menu_cb(GObject *obj, const gchar *word, gint pos, gboolean sc_gui_editor_notify(GObject *object, GeanyEditor *editor, SCNotification *nt, gpointer data);
+void sc_gui_document_open_cb(GObject *obj, GeanyDocument *doc, gpointer user_data); + void sc_gui_update_toolbar(void);
void sc_gui_update_menu(void);
Modified: spellcheck/src/scplugin.c 21 lines changed, 19 insertions(+), 2 deletions(-) =================================================================== @@ -69,7 +69,8 @@ PLUGIN_KEY_GROUP(spellcheck, KB_COUNT) PluginCallback plugin_callbacks[] = { { "update-editor-menu", (GCallback) &sc_gui_update_editor_menu_cb, FALSE, NULL }, - { "editor-notify", (GCallback) &sc_gui_editor_notify, FALSE, NULL }, + { "document-open", (GCallback) &sc_gui_document_open_cb, FALSE, NULL }, + { "document-reload", (GCallback) &sc_gui_document_open_cb, FALSE, NULL }, { NULL, NULL, FALSE, NULL } };
@@ -112,6 +113,9 @@ static void configure_response_cb(GtkDialog *dialog, gint response, gpointer use sc_info->check_while_typing = (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON( g_object_get_data(G_OBJECT(dialog), "check_type"))));
+ sc_info->check_on_document_open = (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON( + g_object_get_data(G_OBJECT(dialog), "check_on_open")))); + sc_info->use_msgwin = (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON( g_object_get_data(G_OBJECT(dialog), "check_msgwin"))));
@@ -126,6 +130,8 @@ static void configure_response_cb(GtkDialog *dialog, gint response, gpointer use g_key_file_set_string(config, "spellcheck", "language", sc_info->default_language); g_key_file_set_boolean(config, "spellcheck", "check_while_typing", sc_info->check_while_typing); + g_key_file_set_boolean(config, "spellcheck", "check_on_document_open", + sc_info->check_on_document_open); g_key_file_set_boolean(config, "spellcheck", "use_msgwin", sc_info->use_msgwin); g_key_file_set_boolean(config, "spellcheck", "show_toolbar_item", @@ -175,6 +181,8 @@ void plugin_init(GeanyData *data) "spellcheck", "language", default_lang); sc_info->check_while_typing = utils_get_setting_boolean(config, "spellcheck", "check_while_typing", FALSE); + sc_info->check_on_document_open = utils_get_setting_boolean(config, + "spellcheck", "check_on_document_open", FALSE); sc_info->show_toolbar_item = utils_get_setting_boolean(config, "spellcheck", "show_toolbar_item", TRUE); sc_info->show_editor_menu_item = utils_get_setting_boolean(config, @@ -243,7 +251,8 @@ static void dictionary_dir_button_clicked_cb(GtkButton *button, gpointer item)
GtkWidget *plugin_configure(GtkDialog *dialog) { - GtkWidget *label, *vbox, *combo, *check_type, *check_msgwin, *check_toolbar, *check_editor_menu; + GtkWidget *label, *vbox, *combo, *check_type, *check_on_open, + *check_msgwin, *check_toolbar, *check_editor_menu; #ifdef HAVE_ENCHANT_1_5 GtkWidget *entry_dir, *hbox, *button, *image; #endif @@ -254,6 +263,13 @@ GtkWidget *plugin_configure(GtkDialog *dialog) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_type), sc_info->check_while_typing); gtk_box_pack_start(GTK_BOX(vbox), check_type, FALSE, FALSE, 6);
+ check_on_open = gtk_check_button_new_with_label(_("Check spelling when opening a document")); + ui_widget_set_tooltip_text(check_on_open, + _("Enabling this option will check every document after it is opened in Geany. " + "Reloading a document will also trigger a re-check.")); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_on_open), sc_info->check_on_document_open); + gtk_box_pack_start(GTK_BOX(vbox), check_on_open, FALSE, FALSE, 6); + check_toolbar = gtk_check_button_new_with_label( _("Show toolbar item to toggle spell checking")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_toolbar), sc_info->show_toolbar_item); @@ -314,6 +330,7 @@ GtkWidget *plugin_configure(GtkDialog *dialog) #endif g_object_set_data(G_OBJECT(dialog), "combo", combo); g_object_set_data(G_OBJECT(dialog), "check_type", check_type); + g_object_set_data(G_OBJECT(dialog), "check_on_open", check_on_open); g_object_set_data(G_OBJECT(dialog), "check_msgwin", check_msgwin); g_object_set_data(G_OBJECT(dialog), "check_toolbar", check_toolbar); g_object_set_data(G_OBJECT(dialog), "check_editor_menu", check_editor_menu);
Modified: spellcheck/src/scplugin.h 1 lines changed, 1 insertions(+), 0 deletions(-) =================================================================== @@ -35,6 +35,7 @@ typedef struct gchar *dictionary_dir; gboolean use_msgwin; gboolean check_while_typing; + gboolean check_on_document_open; gboolean show_toolbar_item; gboolean show_editor_menu_item; GPtrArray *dicts;
-------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).