Added validation on all settings. #611
This commit is contained in:
parent
1f50d9c7e8
commit
1b6a9c0c3b
@ -1340,6 +1340,33 @@ sub validate {
|
|||||||
# --extrusion-multiplier
|
# --extrusion-multiplier
|
||||||
die "Invalid value for --extrusion-multiplier\n"
|
die "Invalid value for --extrusion-multiplier\n"
|
||||||
if defined first { $_ <= 0 } @{$self->extrusion_multiplier};
|
if defined first { $_ <= 0 } @{$self->extrusion_multiplier};
|
||||||
|
|
||||||
|
# general validation, quick and dirty
|
||||||
|
foreach my $opt_key (keys %$Options) {
|
||||||
|
my $opt = $Options->{$opt_key};
|
||||||
|
next unless defined $self->$opt_key;
|
||||||
|
next unless defined $opt->{cli} && $opt->{cli} =~ /=(.+)$/;
|
||||||
|
my $type = $1;
|
||||||
|
my @values = ();
|
||||||
|
if ($type =~ s/\@$//) {
|
||||||
|
die "Invalid value for $opt_key\n" if ref($self->$opt_key) ne 'ARRAY';
|
||||||
|
@values = @{ $self->$opt_key };
|
||||||
|
} else {
|
||||||
|
@values = ($self->$opt_key);
|
||||||
|
}
|
||||||
|
foreach my $value (@values) {
|
||||||
|
if ($type eq 'i' || $type eq 'f') {
|
||||||
|
die "Invalid value for $opt_key\n"
|
||||||
|
if ($type eq 'i' && $value !~ /^\d+$/)
|
||||||
|
|| ($type eq 'f' && $value !~ /^(?:\d+|\d*\.\d+)$/)
|
||||||
|
|| (defined $opt->{min} && $value < $opt->{min})
|
||||||
|
|| (defined $opt->{max} && $value > $opt->{max});
|
||||||
|
} elsif ($type eq 's' && $opt->{type} eq 'select') {
|
||||||
|
die "Invalid value for $opt_key\n"
|
||||||
|
unless first { $_ eq $value } @{ $opt->{values} };
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
sub replace_options {
|
sub replace_options {
|
||||||
|
Loading…
Reference in New Issue
Block a user