summaryrefslogtreecommitdiff
path: root/src/nautilus-operations-ui-manager.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/nautilus-operations-ui-manager.c')
-rw-r--r--src/nautilus-operations-ui-manager.c25
1 files changed, 21 insertions, 4 deletions
diff --git a/src/nautilus-operations-ui-manager.c b/src/nautilus-operations-ui-manager.c
index ab6da215c..fd56e186b 100644
--- a/src/nautilus-operations-ui-manager.c
+++ b/src/nautilus-operations-ui-manager.c
@@ -137,7 +137,15 @@ set_copy_move_dialog_text (FileConflictDialogData *data)
if (destination_is_directory)
{
- if (source_is_directory)
+ if (nautilus_file_is_symbolic_link (data->source)
+ && !nautilus_file_is_symbolic_link (data->destination))
+ {
+ primary_text = g_strdup_printf (_("You are trying to replace the destination folder ā€œ%sā€ with a symbolic link."),
+ destination_name);
+ message = g_strdup_printf(_("This is not allowed in order to avoid the deletion of the destination folder's contents."));
+ message_extra = _("Please rename the symbolic link or press the skip button.");
+ }
+ else if (source_is_directory)
{
primary_text = g_strdup_printf (_("Merge folder ā€œ%sā€?"),
destination_name);
@@ -339,10 +347,19 @@ set_replace_button_label (FileConflictDialogData *data)
source_is_directory = nautilus_file_is_directory (data->source);
destination_is_directory = nautilus_file_is_directory (data->destination);
- if (source_is_directory && destination_is_directory)
+ if (destination_is_directory)
{
- nautilus_file_conflict_dialog_set_replace_button_label (data->dialog,
- _("Merge"));
+ if (nautilus_file_is_symbolic_link (data->source)
+ && !nautilus_file_is_symbolic_link (data->destination))
+ {
+ nautilus_file_conflict_dialog_disable_replace (data->dialog);
+ nautilus_file_conflict_dialog_disable_apply_to_all (data->dialog);
+ }
+ else if (source_is_directory)
+ {
+ nautilus_file_conflict_dialog_set_replace_button_label (data->dialog,
+ _("Merge"));
+ }
}
}