Revision: 4836 http://geany.svn.sourceforge.net/geany/?rev=4836&view=rev Author: ntrel Date: 2010-04-19 12:03:32 +0000 (Mon, 19 Apr 2010)
Log Message: ----------- Synchronize popup menu and plugin preferences dialog 'Show Hidden Files' option (fixes #2989288).
Modified Paths: -------------- trunk/ChangeLog trunk/plugins/filebrowser.c
Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2010-04-18 21:42:58 UTC (rev 4835) +++ trunk/ChangeLog 2010-04-19 12:03:32 UTC (rev 4836) @@ -1,3 +1,10 @@ +2010-04-19 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com> + + * plugins/filebrowser.c: + Synchronize popup menu and plugin preferences dialog 'Show Hidden + Files' option (fixes #2989288). + + 2010-04-18 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
* tagmanager/entry.c, tagmanager/entry.h,
Modified: trunk/plugins/filebrowser.c =================================================================== --- trunk/plugins/filebrowser.c 2010-04-18 21:42:58 UTC (rev 4835) +++ trunk/plugins/filebrowser.c 2010-04-19 12:03:32 UTC (rev 4836) @@ -85,6 +85,7 @@ GtkWidget *open; GtkWidget *open_external; GtkWidget *find_in_files; + GtkWidget *show_hidden_files; } popup_items;
@@ -589,6 +590,7 @@ gtk_widget_show(item); gtk_container_add(GTK_CONTAINER(menu), item); g_signal_connect(item, "activate", G_CALLBACK(on_hidden_files_clicked), NULL); + popup_items.show_hidden_files = item;
item = gtk_separator_menu_item_new(); gtk_widget_show(item); @@ -640,6 +642,8 @@ if (popup_menu == NULL) popup_menu = create_popup_menu();
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(popup_items.show_hidden_files), + show_hidden_files); gtk_menu_popup(GTK_MENU(popup_menu), NULL, NULL, NULL, NULL, event->button, event->time); /* don't return TRUE here, unless the selection won't be changed */ } @@ -1070,6 +1074,38 @@ }
+static void save_settings(void) +{ + GKeyFile *config = g_key_file_new(); + gchar *data; + gchar *config_dir = g_path_get_dirname(config_file); + + g_key_file_load_from_file(config, config_file, G_KEY_FILE_NONE, NULL); + + g_key_file_set_string(config, "filebrowser", "open_command", open_cmd); + g_key_file_set_boolean(config, "filebrowser", "show_hidden_files", show_hidden_files); + g_key_file_set_boolean(config, "filebrowser", "hide_object_files", hide_object_files); + g_key_file_set_boolean(config, "filebrowser", "fb_follow_path", fb_follow_path); + g_key_file_set_boolean(config, "filebrowser", "fb_set_project_base_path", + fb_set_project_base_path); + + if (! g_file_test(config_dir, G_FILE_TEST_IS_DIR) && utils_mkdir(config_dir, TRUE) != 0) + { + dialogs_show_msgbox(GTK_MESSAGE_ERROR, + _("Plugin configuration directory could not be created.")); + } + else + { + /* write config to file */ + data = g_key_file_to_data(config, NULL, NULL); + utils_write_file(config_file, data); + g_free(data); + } + g_free(config_dir); + g_key_file_free(config); +} + + static struct { GtkWidget *open_cmd_entry; @@ -1085,10 +1121,6 @@ { if (response == GTK_RESPONSE_OK || response == GTK_RESPONSE_APPLY) { - GKeyFile *config = g_key_file_new(); - gchar *data; - gchar *config_dir = g_path_get_dirname(config_file); - g_free(open_cmd); open_cmd = g_strdup(gtk_entry_get_text(GTK_ENTRY(pref_widgets.open_cmd_entry))); show_hidden_files = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(pref_widgets.show_hidden_checkbox)); @@ -1097,33 +1129,8 @@ fb_set_project_base_path = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON( pref_widgets.set_project_base_path_checkbox));
- g_key_file_load_from_file(config, config_file, G_KEY_FILE_NONE, NULL); - - g_key_file_set_string(config, "filebrowser", "open_command", open_cmd); - g_key_file_set_boolean(config, "filebrowser", "show_hidden_files", show_hidden_files); - g_key_file_set_boolean(config, "filebrowser", "hide_object_files", hide_object_files); - g_key_file_set_boolean(config, "filebrowser", "fb_follow_path", fb_follow_path); - g_key_file_set_boolean(config, "filebrowser", "fb_set_project_base_path", - fb_set_project_base_path); - - if (! g_file_test(config_dir, G_FILE_TEST_IS_DIR) && utils_mkdir(config_dir, TRUE) != 0) - { - dialogs_show_msgbox(GTK_MESSAGE_ERROR, - _("Plugin configuration directory could not be created.")); - } - else - { - /* write config to file */ - data = g_key_file_to_data(config, NULL, NULL); - utils_write_file(config_file, data); - g_free(data); - } - /* apply the changes */ refresh(); - - g_free(config_dir); - g_key_file_free(config); } }
@@ -1191,6 +1198,8 @@
void plugin_cleanup(void) { + save_settings(); + g_free(config_file); g_free(open_cmd); g_free(filter);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.