changeset 2301:dec8d9db5770

Fix #333 Renaming file extensions https://github.com/BestImageViewer/geeqie/issues/333 The Preferences/Files tab has an additional checkbox: Disable file extension checks When checked, files can be renamed to a different extension with no warning issued.
author Colin Clark <cclark@mcb.net>
date Thu, 28 Apr 2016 21:00:14 +0100
parents 5256cfa521f6
children e79b3d4a4e2f 00c55f9a4764
files doc/docbook/GuideOptionsFiltering.xml src/filedata.c src/options.c src/options.h src/preferences.c src/rcfile.c
diffstat 6 files changed, 35 insertions(+), 20 deletions(-) [+]
line wrap: on
line diff
--- a/doc/docbook/GuideOptionsFiltering.xml	Thu Apr 28 19:41:15 2016 +0100
+++ b/doc/docbook/GuideOptionsFiltering.xml	Thu Apr 28 21:00:14 2016 +0100
@@ -11,32 +11,37 @@
     </title>
     <variablelist><varlistentry><term>
         Show hidden files or folders
-      </term><listitem><para/></listitem></varlistentry></variablelist>
-    <para>
+      </term><listitem><para>
       Enables the display of hidden files and folders, also known as dot files.
-    </para>
+    </para></listitem></varlistentry></variablelist>
+
     <variablelist><varlistentry><term>
-        Show dot directory
-      </term><listitem><para/></listitem></varlistentry></variablelist>
-    <para>
-      Enables the display of the current directory as a dot in the directories views. It may be useful for some drag'n'drop operations.
-    </para>
+        Show parent folder
+      </term><listitem><para>
+      Enables the display of the parent folder as a double dot in the directories views.
+    </para></listitem></varlistentry></variablelist>
+
     <variablelist><varlistentry><term>
         Case sensitive sort
-      </term><listitem><para/></listitem></varlistentry></variablelist>
-    <para>
+      </term><listitem><para>
       Files and folders are sorted such that upper case letters occur before lower case letters.
-    </para>
-    <para>
+    </para><para>
       Enabled result: A, B, C, a, b, c<?db2html element="br"?>
       Disabled result: A, a, B, b, C, c
-    </para>
+    </para></listitem></varlistentry></variablelist>
+
+    <variablelist><varlistentry><term>
+        Disable file extension checks
+      </term><listitem><para>
+      During rename operations, allows files to be renamed to a different extension with no warning issued.
+    </para></listitem></varlistentry></variablelist>
+
     <variablelist><varlistentry><term>
         Disable file filtering
-      </term><listitem><para/></listitem></varlistentry></variablelist>
-    <para>
+      </term><listitem><para>
       Enable this to allow Geeqie to list all files, even those that do not contain images.
-    </para>
+    </para></listitem></varlistentry></variablelist>
+
     <para/></section><section id="Groupingsidecarextensions"><title>
       Grouping sidecar extensions
     </title>
--- a/src/filedata.c	Thu Apr 28 19:41:15 2016 +0100
+++ b/src/filedata.c	Thu Apr 28 21:00:14 2016 +0100
@@ -2346,11 +2346,13 @@
 			{
 			const gchar *dest_ext = extension_from_path(fd->change->dest);
 			if (!dest_ext) dest_ext = "";
-
-			if (g_ascii_strcasecmp(fd->extension, dest_ext) != 0)
+			if (!options->file_filter.disable_file_extension_checks)
 				{
-				ret |= CHANGE_WARN_CHANGED_EXT;
-				DEBUG_1("Change checked: source and destination have different extensions: %s -> %s", fd->path, fd->change->dest);
+				if (g_ascii_strcasecmp(fd->extension, dest_ext) != 0)
+					{
+					ret |= CHANGE_WARN_CHANGED_EXT;
+					DEBUG_1("Change checked: source and destination have different extensions: %s -> %s", fd->path, fd->change->dest);
+					}
 				}
 			}
 		else
--- a/src/options.c	Thu Apr 28 19:41:15 2016 +0100
+++ b/src/options.c	Thu Apr 28 21:00:14 2016 +0100
@@ -43,6 +43,7 @@
 	options->file_filter.show_dot_directory = FALSE;
 	options->file_filter.show_hidden_files = FALSE;
 	options->file_filter.show_parent_directory = TRUE;
+	options->file_filter.disable_file_extension_checks = FALSE;
 
 	options->save_window_positions = TRUE;
 	options->tools_restore_state = TRUE;
--- a/src/options.h	Thu Apr 28 19:41:15 2016 +0100
+++ b/src/options.h	Thu Apr 28 21:00:14 2016 +0100
@@ -91,6 +91,7 @@
 		gboolean show_hidden_files;
 		gboolean show_parent_directory;
 		gboolean show_dot_directory;
+		gboolean disable_file_extension_checks;
 		gboolean disable;
 	} file_filter;
 
--- a/src/preferences.c	Thu Apr 28 19:41:15 2016 +0100
+++ b/src/preferences.c	Thu Apr 28 21:00:14 2016 +0100
@@ -200,6 +200,7 @@
 	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_file_extension_checks != c_options->file_filter.disable_file_extension_checks) refresh = TRUE;
 	if (options->file_filter.disable != c_options->file_filter.disable) refresh = TRUE;
 
 	options->file_ops.confirm_delete = c_options->file_ops.confirm_delete;
@@ -237,6 +238,7 @@
 	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_filter.disable_file_extension_checks = c_options->file_filter.disable_file_extension_checks;
 
 	options->file_sort.case_sensitive = c_options->file_sort.case_sensitive;
 	options->file_filter.disable = c_options->file_filter.disable;
@@ -1508,6 +1510,8 @@
 			      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);
+	pref_checkbox_new_int(group, _("Disable file extension checks"),
+			      options->file_filter.disable_file_extension_checks, &c_options->file_filter.disable_file_extension_checks);
 
 	ct_button = pref_checkbox_new_int(group, _("Disable File Filtering"),
 					  options->file_filter.disable, &c_options->file_filter.disable);
--- a/src/rcfile.c	Thu Apr 28 19:41:15 2016 +0100
+++ b/src/rcfile.c	Thu Apr 28 21:00:14 2016 +0100
@@ -366,6 +366,7 @@
 	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_file_extension_checks);
 	WRITE_NL(); WRITE_BOOL(*options, file_filter.disable);
 	WRITE_SEPARATOR();
 
@@ -625,6 +626,7 @@
 		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_file_extension_checks)) continue;
 		if (READ_BOOL(*options, file_filter.disable)) continue;
 		if (READ_CHAR(*options, sidecar.ext)) continue;