diff --git a/src/nautilus-filename-validator.c b/src/nautilus-filename-validator.c index bc6ad7221..e54cd197c 100644 --- a/src/nautilus-filename-validator.c +++ b/src/nautilus-filename-validator.c @@ -17,6 +17,7 @@ struct _NautilusFilenameValidator NautilusDirectory *containing_directory; gboolean target_is_folder; + gboolean allow_override; char *original_name; const char *feedback_text; @@ -43,6 +44,7 @@ enum PROP_NEW_NAME, PROP_CONTAINING_DIRECTORY, PROP_PASSED, + PROP_ALLOW_OVERRIDE, PROP_TARGET_IS_FOLDER, NUM_PROPERTIES }; @@ -200,7 +202,8 @@ filename_validator_process_new_name (NautilusFilenameValidator *self) !nautilus_filename_validator_ignore_existing_file (self, existing_file); - gboolean passed = (self->valid_name && !self->duplicated_name); + gboolean passed = (self->valid_name && + (self->allow_override || !self->duplicated_name)); if (self->passed != passed) { @@ -378,6 +381,12 @@ nautilus_filename_validator_set_property (GObject *object, } break; + case PROP_ALLOW_OVERRIDE: + { + self->allow_override = g_value_get_boolean (value); + } + break; + case PROP_TARGET_IS_FOLDER: { self->target_is_folder = g_value_get_boolean (value); @@ -453,6 +462,10 @@ nautilus_filename_validator_class_init (NautilusFilenameValidatorClass *klass) g_param_spec_object ("containing-directory", NULL, NULL, NAUTILUS_TYPE_DIRECTORY, G_PARAM_WRITABLE | G_PARAM_STATIC_STRINGS); + properties[PROP_ALLOW_OVERRIDE] = + g_param_spec_boolean ("allow-override", NULL, NULL, + FALSE, + G_PARAM_WRITABLE | G_PARAM_STATIC_STRINGS); properties[PROP_TARGET_IS_FOLDER] = g_param_spec_boolean ("target-is-folder", NULL, NULL, FALSE, @@ -460,3 +473,9 @@ nautilus_filename_validator_class_init (NautilusFilenameValidatorClass *klass) g_object_class_install_properties (object_class, NUM_PROPERTIES, properties); } + +gboolean +nautilus_filename_validator_will_override (NautilusFilenameValidator *self) +{ + return (self->allow_override && self->passed && self->duplicated_name); +} diff --git a/src/nautilus-filename-validator.h b/src/nautilus-filename-validator.h index ff9444e24..4473e76b9 100644 --- a/src/nautilus-filename-validator.h +++ b/src/nautilus-filename-validator.h @@ -24,3 +24,4 @@ void nautilus_filename_validator_set_original_name (NautilusFilenameVa const char *original_name); void nautilus_filename_validator_validate (NautilusFilenameValidator *self); void nautilus_filename_validator_try_accept (NautilusFilenameValidator *self); +gboolean nautilus_filename_validator_will_override (NautilusFilenameValidator *self);