Revision: 4971 http://geany.svn.sourceforge.net/geany/?rev=4971&view=rev Author: statc Date: 2010-05-31 09:24:21 +0000 (Mon, 31 May 2010)
Log Message: ----------- Apply patches by Dimitar Zhekov to not save settings edited in the Preferences Dialog to geany.conf on exit.
Modified Paths: -------------- branches/sm/ChangeLog.sm branches/sm/src/keyfile.c branches/sm/src/keyfile.h branches/sm/src/main.c branches/sm/src/prefs.c branches/sm/src/project.c
Modified: branches/sm/ChangeLog.sm =================================================================== --- branches/sm/ChangeLog.sm 2010-05-31 09:23:56 UTC (rev 4970) +++ branches/sm/ChangeLog.sm 2010-05-31 09:24:21 UTC (rev 4971) @@ -3,6 +3,9 @@ * src/main.c: Fix a bug: files specified in command line did not open together with default session if the session "referenced" a project. + * src/keyfile.c, src/keyfile.h, src/main.c, src/prefs.c, src/project.c: + Apply patches by Dimitar Zhekov to not save settings edited in the + Preferences Dialog to geany.conf on exit.
2010-02-23 Eugene Arshinov <earshinov(at)gmail(dot)com>
Modified: branches/sm/src/keyfile.c =================================================================== --- branches/sm/src/keyfile.c 2010-05-31 09:23:56 UTC (rev 4970) +++ branches/sm/src/keyfile.c 2010-05-31 09:24:21 UTC (rev 4971) @@ -332,8 +332,14 @@ }
-static void save_dialog_prefs(GKeyFile *config) +void configuration_save_dialog_prefs(void) { + GKeyFile *config = g_key_file_new(); + gchar *configfile = g_strconcat(app->configdir, G_DIR_SEPARATOR_S, "geany.conf", NULL); + gchar *data; + + g_key_file_load_from_file(config, configfile, G_KEY_FILE_NONE, NULL); + /* new settings should be added in init_pref_groups() */ settings_action(config, SETTING_WRITE);
@@ -481,6 +487,14 @@ g_key_file_set_string(config, "VTE", "last_dir", vte_info.dir); } #endif + + /* write the file */ + data = g_key_file_to_data(config, NULL, NULL); + utils_write_file(configfile, data); + g_free(data); + + g_key_file_free(config); + g_free(configfile); }
@@ -546,7 +560,6 @@ /* this signal can be used e.g. to prepare any settings before Stash code reads them below */ g_signal_emit_by_name(geany_object, "save-settings", config);
- save_dialog_prefs(config); save_ui_prefs(config); project_save_prefs(config); /* save project filename, etc. */ save_recent_files(config, ui_prefs.recent_queue, "recent_files");
Modified: branches/sm/src/keyfile.h =================================================================== --- branches/sm/src/keyfile.h 2010-05-31 09:23:56 UTC (rev 4970) +++ branches/sm/src/keyfile.h 2010-05-31 09:24:21 UTC (rev 4971) @@ -37,6 +37,8 @@
void configuration_add_pref_group(struct StashGroup *group, gboolean for_prefs_dialog);
+void configuration_save_dialog_prefs(void); + void configuration_save(void);
gboolean configuration_load(void);
Modified: branches/sm/src/main.c =================================================================== --- branches/sm/src/main.c 2010-05-31 09:23:56 UTC (rev 4970) +++ branches/sm/src/main.c 2010-05-31 09:24:21 UTC (rev 4971) @@ -1196,7 +1196,8 @@ if (interactive && !document_account_for_unsaved()) return FALSE;
- configuration_save(); + if (!cl_options.new_instance) + configuration_save();
if (app->project) project_save(FALSE);
Modified: branches/sm/src/prefs.c =================================================================== --- branches/sm/src/prefs.c 2010-05-31 09:23:56 UTC (rev 4970) +++ branches/sm/src/prefs.c 2010-05-31 09:24:21 UTC (rev 4971) @@ -1182,7 +1182,7 @@ ui_update_view_editor_menu_items();
/* store all settings */ - configuration_save(); + configuration_save_dialog_prefs(); }
if (response != GTK_RESPONSE_APPLY)
Modified: branches/sm/src/project.c =================================================================== --- branches/sm/src/project.c 2010-05-31 09:23:56 UTC (rev 4970) +++ branches/sm/src/project.c 2010-05-31 09:24:21 UTC (rev 4971) @@ -1006,7 +1006,8 @@ if (project_prefs.project_session) { /* save current (non-project) session (it could has been changed since program startup) */ - configuration_save_default_session(); + if (!cl_options.new_instance) + configuration_save_default_session(); /* now close all open files */ document_close_all(FALSE); /* read session files so they can be opened with configuration_open_files() */
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.