diff options
Diffstat (limited to 'src/nautilus-operations-ui-manager.c')
-rw-r--r-- | src/nautilus-operations-ui-manager.c | 25 |
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")); + } } } |