diff src/utilops.c @ 3:c0e337a01cb7

0.8.0
author gqview
date Thu, 13 Apr 2000 12:55:19 +0000
parents b3e0e515fabf
children d907d608745f
line wrap: on
line diff
--- a/src/utilops.c	Thu Apr 13 12:53:03 2000 +0000
+++ b/src/utilops.c	Thu Apr 13 12:55:19 2000 +0000
@@ -1,6 +1,6 @@
 /*
  * GQview image viewer
- * (C)1999 John Ellis
+ * (C)2000 John Ellis
  *
  * Author: John Ellis
  *
@@ -156,11 +156,33 @@
 			fdm->source_next = work->next;
 			}
 
-		if (isfile(fdm->dest) && !fdm->confirmed && !fdm->confirm_all && !fdm->skip)
+		if (fdm->dest && fdm->source && strcmp(fdm->dest, fdm->source) == 0)
+			{
+			ConfirmDialog *cd;
+			gchar *title;
+			gchar *text;
+			if (fdm->copy)
+				{
+				title = _("Source to copy matches destination");
+				text = g_strdup_printf(_("Unable to copy file:\n%s\nto itself."), fdm->dest);
+				}
+			else
+				{
+				title = _("Source to move matches destination");
+				text = g_strdup_printf(_("Unable to move file:\n%s\nto itself."), fdm->dest);
+				}
+			cd = confirm_dialog_new(title, text, file_util_move_multiple_cancel_cb, fdm);
+			confirm_dialog_add(cd, _("Continue"), file_util_move_multiple_skip_cb);
+			g_free(text);
+			return;
+			}
+		else if (isfile(fdm->dest) && !fdm->confirmed && !fdm->confirm_all && !fdm->skip)
 			{
 			ConfirmDialog *cd;
 			gchar *text = g_strdup_printf(_("Overwrite file:\n %s\n with:\b %s"), fdm->dest, fdm->source);
-			cd = confirm_dialog_new(_("Overwrite file"), text, file_util_move_multiple_cancel_cb, fdm);
+			cd = confirm_dialog_new_with_image(_("Overwrite file"), text,
+						fdm->dest, fdm->source,
+						file_util_move_multiple_cancel_cb, fdm);
 			confirm_dialog_add(cd, _("Skip"), file_util_move_multiple_skip_cb);
 			confirm_dialog_add(cd, _("Yes to all"), file_util_move_multiple_all_cb);
 			confirm_dialog_add(cd, _("Yes"), file_util_move_multiple_ok_cb);
@@ -255,11 +277,18 @@
 
 static void file_util_move_single(FileDataSingle *fds)
 {
-	if (isfile(fds->dest) && !fds->confirmed)
+	if (fds->dest && fds->source && strcmp(fds->dest, fds->source) == 0)
+		{
+		warning_dialog(_("Source matches destination"),
+			       _("Source and destination are the same, operation cancelled."));
+		}
+	else if (isfile(fds->dest) && !fds->confirmed)
 		{
 		ConfirmDialog *cd;
 		gchar *text = g_strdup_printf(_("Overwrite file:\n%s\n with:\n%s"), fds->dest, fds->source);
-		cd = confirm_dialog_new(_("Overwrite file"), text, file_util_move_single_cancel_cb, fds);
+		cd = confirm_dialog_new_with_image(_("Overwrite file"), text,
+						   fds->dest, fds->source,
+						   file_util_move_single_cancel_cb, fds);
 		confirm_dialog_add(cd, _("Overwrite"), file_util_move_single_ok_cb);
 		g_free(text);
 		return;
@@ -296,8 +325,9 @@
 			warning_dialog(title, text);
 			g_free(text);
 			}
-		file_data_single_free(fds);
 		}
+
+	file_data_single_free(fds);
 }
 
 /*
@@ -618,7 +648,9 @@
 		{
 		ConfirmDialog *cd;
 		gchar *text = g_strdup_printf(_("Overwrite file:\n%s\nby renaming:\n%s"), fd->dest_path, fd->source_path);
-		cd = confirm_dialog_new(_("Overwrite file"), text, file_util_rename_multiple_cancel_cb, fd);
+		cd = confirm_dialog_new_with_image(_("Overwrite file"), text,
+						   fd->dest_path, fd->source_path,
+						   file_util_rename_multiple_cancel_cb, fd);
 		confirm_dialog_add(cd, _("Overwrite"), file_util_rename_multiple_ok_cb);
 		g_free(text);
 		gtk_widget_hide(fd->dialog);
@@ -799,8 +831,10 @@
 	if (isfile(fds->dest) && !fds->confirmed)
 		{
 		ConfirmDialog *cd;
-		gchar *text = g_strdup_printf(_("Overwrite file:\n%s\nwith:\n%s"), fds->dest,fds->source);
-		cd = confirm_dialog_new(_("Overwrite file"), text, file_util_rename_single_cancel_cb, fds);
+		gchar *text = g_strdup_printf(_("Overwrite file:\n%s\nby renaming:\n%s"), fds->dest,fds->source);
+		cd = confirm_dialog_new_with_image(_("Overwrite file"), text,
+						   fds->dest, fds->source,
+						   file_util_rename_single_cancel_cb, fds);
 		confirm_dialog_add(cd, _("Overwrite"), file_util_rename_single_ok_cb);
 		g_free(text);
 		return;