Kaydet (Commit) ba4002e5 authored tarafından Enrico Tröger's avatar Enrico Tröger

Fix duplicating the recent files and projects lists when closing a project.

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3707 ea778897-0a13-0410-b9d1-a72fbfd435f5
üst 54f406a5
2009-04-15 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
* src/keyfile.c, src/keyfile.h, src/project.c:
Fix duplicating the recent files and projects lists when closing
a project.
2009-04-09 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de> 2009-04-09 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
* src/symbols.c: * src/symbols.c:
......
...@@ -507,6 +507,7 @@ void configuration_save(void) ...@@ -507,6 +507,7 @@ void configuration_save(void)
project_save_prefs(config); /* save project filename, etc. */ project_save_prefs(config); /* save project filename, etc. */
save_recent_files(config, ui_prefs.recent_queue, "recent_files"); save_recent_files(config, ui_prefs.recent_queue, "recent_files");
save_recent_files(config, ui_prefs.recent_projects_queue, "recent_projects"); save_recent_files(config, ui_prefs.recent_projects_queue, "recent_projects");
if (cl_options.load_session) if (cl_options.load_session)
configuration_save_session_files(config); configuration_save_session_files(config);
...@@ -533,8 +534,8 @@ static void load_recent_files(GKeyFile *config, GQueue *queue, const gchar *key) ...@@ -533,8 +534,8 @@ static void load_recent_files(GKeyFile *config, GQueue *queue, const gchar *key)
gchar *filename = g_strdup(recent_files[i]); gchar *filename = g_strdup(recent_files[i]);
g_queue_push_tail(queue, filename); g_queue_push_tail(queue, filename);
} }
g_strfreev(recent_files);
} }
g_strfreev(recent_files);
} }
...@@ -542,7 +543,7 @@ static void load_recent_files(GKeyFile *config, GQueue *queue, const gchar *key) ...@@ -542,7 +543,7 @@ static void load_recent_files(GKeyFile *config, GQueue *queue, const gchar *key)
* Load session list from the given keyfile, and store it in the global * Load session list from the given keyfile, and store it in the global
* session_files variable for later file loading * session_files variable for later file loading
* */ * */
void configuration_load_session_files(GKeyFile *config) void configuration_load_session_files(GKeyFile *config, gboolean read_recent_files)
{ {
guint i; guint i;
gboolean have_session_files; gboolean have_session_files;
...@@ -552,8 +553,11 @@ void configuration_load_session_files(GKeyFile *config) ...@@ -552,8 +553,11 @@ void configuration_load_session_files(GKeyFile *config)
session_notebook_page = utils_get_setting_integer(config, "files", "current_page", -1); session_notebook_page = utils_get_setting_integer(config, "files", "current_page", -1);
load_recent_files(config, ui_prefs.recent_queue, "recent_files"); if (read_recent_files)
load_recent_files(config, ui_prefs.recent_projects_queue, "recent_projects"); {
load_recent_files(config, ui_prefs.recent_queue, "recent_files");
load_recent_files(config, ui_prefs.recent_projects_queue, "recent_projects");
}
/* the project may load another list than the main setting */ /* the project may load another list than the main setting */
if (session_files != NULL) if (session_files != NULL)
...@@ -865,7 +869,7 @@ void configuration_reload_default_session(void) ...@@ -865,7 +869,7 @@ void configuration_reload_default_session(void)
g_key_file_load_from_file(config, configfile, G_KEY_FILE_NONE, NULL); g_key_file_load_from_file(config, configfile, G_KEY_FILE_NONE, NULL);
configuration_load_session_files(config); configuration_load_session_files(config, FALSE);
g_key_file_free(config); g_key_file_free(config);
g_free(configfile); g_free(configfile);
...@@ -889,7 +893,7 @@ gboolean configuration_load(void) ...@@ -889,7 +893,7 @@ gboolean configuration_load(void)
load_dialog_prefs(config); load_dialog_prefs(config);
load_ui_prefs(config); load_ui_prefs(config);
project_load_prefs(config); project_load_prefs(config);
configuration_load_session_files(config); configuration_load_session_files(config, TRUE);
g_key_file_free(config); g_key_file_free(config);
g_free(configfile); g_free(configfile);
......
...@@ -47,7 +47,7 @@ void configuration_reload_default_session(void); ...@@ -47,7 +47,7 @@ void configuration_reload_default_session(void);
void configuration_save_default_session(void); void configuration_save_default_session(void);
void configuration_load_session_files(GKeyFile *config); void configuration_load_session_files(GKeyFile *config, gboolean read_recent_files);
void configuration_save_session_files(GKeyFile *config); void configuration_save_session_files(GKeyFile *config);
......
...@@ -341,7 +341,7 @@ void project_close(gboolean open_default) ...@@ -341,7 +341,7 @@ void project_close(gboolean open_default)
document_close_all(); document_close_all();
/* after closing all tabs let's open the tabs found in the default config */ /* after closing all tabs let's open the tabs found in the default config */
if (open_default == TRUE && cl_options.load_session) if (open_default && cl_options.load_session)
{ {
configuration_reload_default_session(); configuration_reload_default_session();
configuration_open_files(); configuration_open_files();
...@@ -953,7 +953,7 @@ static gboolean load_config(const gchar *filename) ...@@ -953,7 +953,7 @@ static gboolean load_config(const gchar *filename)
/* now close all open files */ /* now close all open files */
document_close_all(); document_close_all();
/* read session files so they can be opened with configuration_open_files() */ /* read session files so they can be opened with configuration_open_files() */
configuration_load_session_files(config); configuration_load_session_files(config, FALSE);
} }
g_signal_emit_by_name(geany_object, "project-open", config); g_signal_emit_by_name(geany_object, "project-open", config);
g_key_file_free(config); g_key_file_free(config);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment