Revision: 3428 http://geany.svn.sourceforge.net/geany/?rev=3428&view=rev Author: ntrel Date: 2008-12-28 17:25:09 +0000 (Sun, 28 Dec 2008)
Log Message: ----------- Add ui_hookup_widget() macro to the API. Make saving Stash string settings NULL-safe. Move fif_extra_options search setting code to search.c.
Modified Paths: -------------- trunk/ChangeLog trunk/src/keyfile.c trunk/src/plugindata.h trunk/src/search.c trunk/src/search.h trunk/src/stash.c trunk/src/ui_utils.c trunk/src/ui_utils.h
Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2008-12-28 16:20:52 UTC (rev 3427) +++ trunk/ChangeLog 2008-12-28 17:25:09 UTC (rev 3428) @@ -9,6 +9,11 @@ Add stash_group_add_string_vector(). * src/main.c: Fix creating a new configuration directory (oops). + * src/ui_utils.h, src/plugindata.h, src/stash.c, src/keyfile.c, + src/search.c, src/search.h, src/ui_utils.c: + Add ui_hookup_widget() macro to the API. + Make saving Stash string settings NULL-safe. + Move fif_extra_options search setting code to search.c.
2008-12-27 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
Modified: trunk/src/keyfile.c =================================================================== --- trunk/src/keyfile.c 2008-12-28 16:20:52 UTC (rev 3427) +++ trunk/src/keyfile.c 2008-12-28 17:25:09 UTC (rev 3428) @@ -479,9 +479,6 @@ g_key_file_set_string_list(config, PACKAGE, "custom_commands", (const gchar**) ui_prefs.custom_commands, g_strv_length(ui_prefs.custom_commands)); } - - /* search */ - g_key_file_set_string(config, "search", "fif_extra_options", search_prefs.fif_extra_options ? search_prefs.fif_extra_options : ""); }
@@ -815,9 +812,6 @@ (GEANY_MSGWIN_HEIGHT + GEANY_WINDOW_DEFAULT_HEIGHT - 440));
g_free(geo); - - /* search */ - search_prefs.fif_extra_options = utils_get_setting_string(config, "search", "fif_extra_options", ""); }
Modified: trunk/src/plugindata.h =================================================================== --- trunk/src/plugindata.h 2008-12-28 16:20:52 UTC (rev 3427) +++ trunk/src/plugindata.h 2008-12-28 17:25:09 UTC (rev 3428) @@ -45,13 +45,13 @@ enum { /** The Application Programming Interface (API) version, incremented * whenever any plugin data types are modified or appended to. */ - GEANY_API_VERSION = 121, + GEANY_API_VERSION = 122,
/** The Application Binary Interface (ABI) version, incremented whenever * existing fields in the plugin data types have to be changed or reordered. */ /* This should usually stay the same if fields are only appended, assuming only pointers to * structs and not structs themselves are declared by plugins. */ - GEANY_ABI_VERSION = 54 + GEANY_ABI_VERSION = 55 };
/** Check the plugin can be loaded by Geany.
Modified: trunk/src/search.c =================================================================== --- trunk/src/search.c 2008-12-28 16:20:52 UTC (rev 3427) +++ trunk/src/search.c 2008-12-28 17:25:09 UTC (rev 3428) @@ -82,10 +82,11 @@ static struct { gint fif_mode; + gchar *fif_extra_options; } -settings; +settings = {0, NULL};
-GeanyPrefGroup *fif_prefs = NULL; +static GeanyPrefGroup *fif_prefs = NULL;
static struct @@ -101,9 +102,8 @@ GtkWidget *dir_combo; GtkWidget *search_combo; GtkWidget *encoding_combo; - GtkWidget *extra_entry; } -find_in_files = {NULL, NULL, NULL, NULL}; +find_in_files = {NULL, NULL, NULL};
static gboolean search_read_io(GIOChannel *source, GIOCondition condition, gpointer data); @@ -157,6 +157,8 @@ "radio_grep", FIF_GREP, "radio_egrep", FIF_EGREP, NULL); + stash_group_add_entry(group, &settings.fif_extra_options, + "fif_extra_options", "", "entry_extra"); }
@@ -744,11 +746,9 @@ gtk_button_set_focus_on_click(GTK_BUTTON(check_extra), FALSE);
entry_extra = gtk_entry_new(); - if (search_prefs.fif_extra_options) - gtk_entry_set_text(GTK_ENTRY(entry_extra), search_prefs.fif_extra_options); gtk_widget_set_sensitive(entry_extra, FALSE); ui_widget_set_tooltip_text(entry_extra, _("Other options to pass to Grep")); - find_in_files.extra_entry = entry_extra; + ui_hookup_widget(widgets.find_in_files_dialog, entry_extra, "entry_extra");
/* enable entry_extra when check_extra is checked */ g_signal_connect(check_extra, "toggled", @@ -1192,15 +1192,13 @@
if (extra) { - gchar *text = g_strdup(gtk_entry_get_text(GTK_ENTRY(find_in_files.extra_entry))); + g_strstrip(settings.fif_extra_options);
- text = g_strstrip(text); - if (*text != 0) + if (*settings.fif_extra_options != 0) { g_string_append_c(gstr, ' '); - g_string_append(gstr, text); + g_string_append(gstr, settings.fif_extra_options); } - g_free(text); } return gstr; } @@ -1223,11 +1221,6 @@ GeanyEncodingIndex enc_idx = gtk_combo_box_get_active( GTK_COMBO_BOX(find_in_files.encoding_combo));
- /* update extra options pref */ - g_free(search_prefs.fif_extra_options); - search_prefs.fif_extra_options = g_strdup(gtk_entry_get_text(GTK_ENTRY( - find_in_files.extra_entry))); - if (!NZV(utf8_dir)) ui_set_statusbar(FALSE, _("Invalid directory for find in files.")); else if (NZV(search_text))
Modified: trunk/src/search.h =================================================================== --- trunk/src/search.h 2008-12-28 16:20:52 UTC (rev 3427) +++ trunk/src/search.h 2008-12-28 17:25:09 UTC (rev 3428) @@ -42,7 +42,6 @@
typedef struct GeanySearchPrefs { - gchar *fif_extra_options; gboolean suppress_dialogs; gboolean use_current_word; gboolean use_current_file_dir; /* find in files directory to use on showing dialog */
Modified: trunk/src/stash.c =================================================================== --- trunk/src/stash.c 2008-12-28 16:20:52 UTC (rev 3427) +++ trunk/src/stash.c 2008-12-28 17:25:09 UTC (rev 3428) @@ -149,7 +149,8 @@ se->default_value); break; case SETTING_WRITE: - g_key_file_set_string(config, group->name, se->key_name, *setting); + g_key_file_set_string(config, group->name, se->key_name, + *setting ? *setting : ""); break; } }
Modified: trunk/src/ui_utils.c =================================================================== --- trunk/src/ui_utils.c 2008-12-28 16:20:52 UTC (rev 3427) +++ trunk/src/ui_utils.c 2008-12-28 17:25:09 UTC (rev 3428) @@ -21,7 +21,7 @@ * $Id$ */
-/** @file ui_utils.c +/** @file ui_utils.h * User Interface general utility functions. */
@@ -1726,13 +1726,14 @@ }
-/** This function returns a widget in a component created by Glade. +/** This function returns a widget from a name in a component, usually created by Glade. * Call it with the toplevel widget in the component (i.e. a window/dialog), * or alternatively any widget in the component, and the name of the widget * you want returned. * @param widget Widget with the @a widget_name property set. * @param widget_name Name to lookup. - * @return The widget found. */ + * @return The widget found. + * @see ui_hookup_widget(). */ GtkWidget *ui_lookup_widget(GtkWidget *widget, const gchar *widget_name) { GtkWidget *parent, *found_widget;
Modified: trunk/src/ui_utils.h =================================================================== --- trunk/src/ui_utils.h 2008-12-28 16:20:52 UTC (rev 3427) +++ trunk/src/ui_utils.h 2008-12-28 17:25:09 UTC (rev 3428) @@ -24,6 +24,16 @@ #ifndef GEANY_UI_UTILS_H #define GEANY_UI_UTILS_H 1
+/** Set a name to lookup @a widget from @a owner. + * @param owner Usually a @c GtkWindow. + * @param widget Widget. + * @param widget_name Name. + * @see ui_lookup_widget(). */ +#define ui_hookup_widget(owner, widget, widget_name) \ + g_object_set_data_full(G_OBJECT(owner), widget_name, \ + g_object_ref(widget), (GDestroyNotify)g_object_unref); + + typedef struct GeanyInterfacePrefs { gboolean sidebar_symbol_visible;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.