mirror of
https://gitlab.gnome.org/GNOME/nautilus
synced 2024-10-01 05:23:56 +00:00
filename-validator: Introduce :allow-override
This property is going to be set to TRUE by the upcoming FileChooser. If turned on, the validator will still provide feedback on duplated names, but it will accept them nonetheless if otherwise valid. It's up to the FileChooser to confirm the user wants to override the existing file.
This commit is contained in:
parent
300c8af5da
commit
b1d7eaf666
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue