# HG changeset patch # User zas_ # Date 1210511698 0 # Node ID 83d3ded39e49894c655419d61aa10f2b4204bfc1 # Parent 1fa2cb6d9d651c5f54ff8c3acce9b2b3248786a3 An option to save and restore the last path used was added. This option appears as startup.use_last_path in rc file. Preferences > General > Startup was modified accordingly. diff -r 1fa2cb6d9d65 -r 83d3ded39e49 src/main.c --- a/src/main.c Sun May 11 12:23:26 2008 +0000 +++ b/src/main.c Sun May 11 13:14:58 2008 +0000 @@ -1229,6 +1229,12 @@ &options->color_profile.screen_type, &options->color_profile.use_image); + if (options->startup.restore_path && options->startup.use_last_path) + { + g_free(options->startup.path); + options->startup.path = g_strdup(layout_get_path(NULL)); + } + save_options(); keys_save(); @@ -1302,7 +1308,7 @@ exit_program_final(); } -int main (int argc, char *argv[]) +int main(int argc, char *argv[]) { LayoutWindow *lw; gchar *path = NULL; diff -r 1fa2cb6d9d65 -r 83d3ded39e49 src/options.c --- a/src/options.c Sun May 11 12:23:26 2008 +0000 +++ b/src/options.c Sun May 11 13:14:58 2008 +0000 @@ -127,8 +127,9 @@ options->slideshow.random = FALSE; options->slideshow.repeat = FALSE; + options->startup.path = NULL; options->startup.restore_path = FALSE; - options->startup.path = NULL; + options->startup.use_last_path = FALSE; options->thumbnails.cache_into_dirs = FALSE; options->thumbnails.enable_caching = TRUE; diff -r 1fa2cb6d9d65 -r 83d3ded39e49 src/options.h --- a/src/options.h Sun May 11 12:23:26 2008 +0000 +++ b/src/options.h Sun May 11 13:14:58 2008 +0000 @@ -41,6 +41,7 @@ struct { gboolean restore_path; + gboolean use_last_path; gchar *path; } startup; diff -r 1fa2cb6d9d65 -r 83d3ded39e49 src/preferences.c --- a/src/preferences.c Sun May 11 12:23:26 2008 +0000 +++ b/src/preferences.c Sun May 11 13:14:58 2008 +0000 @@ -173,11 +173,6 @@ } layout_edit_update_all(); - g_free(options->startup.path); - options->startup.path = NULL; - buf = gtk_entry_get_text(GTK_ENTRY(startup_path_entry)); - if (buf && strlen(buf) > 0) options->startup.path = remove_trailing_slash(buf); - g_free(options->file_ops.safe_delete_path); options->file_ops.safe_delete_path = NULL; buf = gtk_entry_get_text(GTK_ENTRY(safe_delete_path_entry)); @@ -189,6 +184,12 @@ if (options->file_filter.disable != c_options->file_filter.disable) refresh = TRUE; options->startup.restore_path = c_options->startup.restore_path; + options->startup.use_last_path = c_options->startup.use_last_path; + g_free(options->startup.path); + options->startup.path = NULL; + buf = gtk_entry_get_text(GTK_ENTRY(startup_path_entry)); + if (buf && strlen(buf) > 0) options->startup.path = remove_trailing_slash(buf); + options->file_ops.confirm_delete = c_options->file_ops.confirm_delete; options->file_ops.enable_delete_key = c_options->file_ops.enable_delete_key; options->file_ops.safe_delete_enable = c_options->file_ops.safe_delete_enable; @@ -841,6 +842,7 @@ GtkWidget *label; GtkWidget *hbox; GtkWidget *vbox; + GtkWidget *subvbox; GtkWidget *group; GtkWidget *subgroup; GtkWidget *button; @@ -857,11 +859,13 @@ group = pref_group_new(vbox, FALSE, _("Startup"), GTK_ORIENTATION_VERTICAL); - button = pref_checkbox_new_int(group, _("Change to folder:"), + button = pref_checkbox_new_int(group, _("Restore folder on startup"), options->startup.restore_path, &c_options->startup.restore_path); - hbox = pref_box_new(group, FALSE, GTK_ORIENTATION_HORIZONTAL, PREF_PAD_SPACE); - pref_checkbox_link_sensitivity(button, hbox); + subvbox = pref_box_new(group, FALSE, GTK_ORIENTATION_VERTICAL, PREF_PAD_SPACE); + pref_checkbox_link_sensitivity(button, subvbox); + + hbox = pref_box_new(subvbox, FALSE, GTK_ORIENTATION_HORIZONTAL, PREF_PAD_SPACE); tabcomp = tab_completion_new(&startup_path_entry, options->startup.path, NULL, NULL); tab_completion_add_select_button(startup_path_entry, NULL, TRUE); @@ -871,6 +875,11 @@ button = pref_button_new(hbox, NULL, _("Use current"), FALSE, G_CALLBACK(startup_path_set_current), NULL); + button = pref_checkbox_new_int(subvbox, _("Use last path"), + options->startup.use_last_path, &c_options->startup.use_last_path); + pref_checkbox_link_sensitivity_swap(button, hbox); + + group = pref_group_new(vbox, FALSE, _("Thumbnails"), GTK_ORIENTATION_VERTICAL); table = pref_table_new(group, 2, 2, FALSE, FALSE); diff -r 1fa2cb6d9d65 -r 83d3ded39e49 src/rcfile.c --- a/src/rcfile.c Sun May 11 12:23:26 2008 +0000 +++ b/src/rcfile.c Sun May 11 13:14:58 2008 +0000 @@ -325,6 +325,7 @@ WRITE_SUBTITLE("Startup Options"); WRITE_BOOL(startup.restore_path); + WRITE_BOOL(startup.use_last_path); WRITE_CHAR(startup.path); @@ -646,6 +647,8 @@ COMPAT_READ_BOOL(startup_path_enable, startup.restore_path); /* 2008/05/11 */ READ_BOOL(startup.restore_path); + READ_BOOL(startup.use_last_path); + COMPAT_READ_CHAR(startup_path, startup.path); /* 2008/05/11 */ READ_CHAR(startup.path);