With
e9fc136 we learned buttons for parent folder in directory list.
This disabled the ".." handle in the view itself.
This was found to be not optimal as the users are used to it.
With this patch, that entry is now configurable in preferences. It is
enabled by default but could be disabled if the user don't like it.
options->file_filter.disable = FALSE;
options->file_filter.show_dot_directory = FALSE;
options->file_filter.show_hidden_files = FALSE;
+ options->file_filter.show_parent_directory = TRUE;
options->save_window_positions = TRUE;
options->tools_restore_state = TRUE;
/* file filtering */
struct {
gboolean show_hidden_files;
+ gboolean show_parent_directory;
gboolean show_dot_directory;
gboolean disable;
} file_filter;
config_entry_to_option(safe_delete_path_entry, &options->file_ops.safe_delete_path, remove_trailing_slash);
if (options->file_filter.show_hidden_files != c_options->file_filter.show_hidden_files) refresh = TRUE;
+ if (options->file_filter.show_parent_directory != c_options->file_filter.show_parent_directory) refresh = TRUE;
if (options->file_filter.show_dot_directory != c_options->file_filter.show_dot_directory) refresh = TRUE;
if (options->file_sort.case_sensitive != c_options->file_sort.case_sensitive) refresh = TRUE;
if (options->file_filter.disable != c_options->file_filter.disable) refresh = TRUE;
options->thumbnails.spec_standard = c_options->thumbnails.spec_standard;
options->metadata.enable_metadata_dirs = c_options->metadata.enable_metadata_dirs;
options->file_filter.show_hidden_files = c_options->file_filter.show_hidden_files;
+ options->file_filter.show_parent_directory = c_options->file_filter.show_parent_directory;
options->file_filter.show_dot_directory = c_options->file_filter.show_dot_directory;
options->file_sort.case_sensitive = c_options->file_sort.case_sensitive;
pref_checkbox_new_int(group, _("Show hidden files or folders"),
options->file_filter.show_hidden_files, &c_options->file_filter.show_hidden_files);
+ pref_checkbox_new_int(group, _("Show parent folder (..)"),
+ options->file_filter.show_parent_directory, &c_options->file_filter.show_parent_directory);
pref_checkbox_new_int(group, _("Case sensitive sort"),
options->file_sort.case_sensitive, &c_options->file_sort.case_sensitive);
/* Filtering Options */
WRITE_NL(); WRITE_BOOL(*options, file_filter.show_hidden_files);
+ WRITE_NL(); WRITE_BOOL(*options, file_filter.show_parent_directory);
WRITE_NL(); WRITE_BOOL(*options, file_filter.show_dot_directory);
WRITE_NL(); WRITE_BOOL(*options, file_filter.disable);
WRITE_SEPARATOR();
/* Filtering options */
if (READ_BOOL(*options, file_filter.show_hidden_files)) continue;
+ if (READ_BOOL(*options, file_filter.show_parent_directory)) continue;
if (READ_BOOL(*options, file_filter.show_dot_directory)) continue;
if (READ_BOOL(*options, file_filter.disable)) continue;
if (READ_CHAR(*options, sidecar.ext)) continue;
ret = filelist_read(vd->dir_fd, NULL, &VDLIST(vd)->list);
VDLIST(vd)->list = filelist_sort(VDLIST(vd)->list, sort_type, sort_ascend);
- /* add . */
+ /* add . and .. */
+
+ if (options->file_filter.show_parent_directory && strcmp(vd->dir_fd->path, G_DIR_SEPARATOR_S) != 0)
+ {
+ filepath = g_build_filename(vd->dir_fd->path, "..", NULL);
+ fd = file_data_new_dir(filepath);
+ VDLIST(vd)->list = g_list_prepend(VDLIST(vd)->list, fd);
+ g_free(filepath);
+ }
if (options->file_filter.show_dot_directory)
{