diff options
author | bubnikv <bubnikv@gmail.com> | 2017-10-27 19:52:35 +0300 |
---|---|---|
committer | bubnikv <bubnikv@gmail.com> | 2017-10-27 19:52:35 +0300 |
commit | 2455aee97cf595563ef7d61c8abe39ad31e5514e (patch) | |
tree | 4a15aebe5603e6fb6b6a63c9743de924daaae96b /lib | |
parent | 3bc79e80d5d0618633d1ce556f561774acc59588 (diff) |
Further reduction of Perl Config.pm methods.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Slic3r/Config.pm | 44 | ||||
-rw-r--r-- | lib/Slic3r/GUI/ConfigWizard.pm | 4 | ||||
-rw-r--r-- | lib/Slic3r/GUI/Plater.pm | 2 | ||||
-rw-r--r-- | lib/Slic3r/GUI/Plater/ObjectPartsPanel.pm | 8 |
4 files changed, 7 insertions, 51 deletions
diff --git a/lib/Slic3r/Config.pm b/lib/Slic3r/Config.pm index 4b6e5d453..c5e49df6b 100644 --- a/lib/Slic3r/Config.pm +++ b/lib/Slic3r/Config.pm @@ -8,12 +8,6 @@ use utf8; use List::Util qw(first max); -# cemetery of old config settings -our @Ignore = qw(duplicate_x duplicate_y multiply_x multiply_y support_material_tool acceleration - adjust_overhang_flow standby_temperature scale rotate duplicate duplicate_grid - rotate scale duplicate_grid start_perimeters_at_concave_points start_perimeters_at_non_overhang - randomize_start seal_position bed_size print_center g0 vibration_limit gcode_arcs pressure_advance); - # C++ Slic3r::PrintConfigDef exported as a Perl hash of hashes. # The C++ counterpart is a constant singleton. our $Options = print_config_def(); @@ -29,23 +23,6 @@ $Options->{threads}{readonly} = !$Slic3r::have_threads; } } -# Fill in the underlying C++ Slic3r::DynamicPrintConfig with the content of the defaults -# provided by the C++ class Slic3r::FullPrintConfig. -# Used by the UI. -sub new_from_defaults { - my ($class, @opt_keys) = @_; - my $self = $class->new; - # Instantiating the C++ class Slic3r::FullPrintConfig. - my $defaults = Slic3r::Config::Full->new; - if (@opt_keys) { - $self->set($_, $defaults->get($_)) - for grep $defaults->has($_), @opt_keys; - } else { - $self->apply_static($defaults); - } - return $self; -} - # From command line parameters, used by slic3r.pl sub new_from_cli { my $class = shift; @@ -87,27 +64,6 @@ sub new_from_cli { return $self; } -sub merge { - my $class = shift; - my $config = $class->new; - $config->apply($_) for @_; - return $config; -} - -sub clone { - my $self = shift; - my $new = (ref $self)->new; - $new->apply($self); - return $new; -} - -sub get_value { - my ($self, $opt_key) = @_; - return $Options->{$opt_key}{ratio_over} - ? $self->get_abs_value($opt_key) - : $self->get($opt_key); -} - # CLASS METHODS: # Write a "Windows" style ini file with categories enclosed in squre brackets. diff --git a/lib/Slic3r/GUI/ConfigWizard.pm b/lib/Slic3r/GUI/ConfigWizard.pm index 19310b3c1..8cdcac052 100644 --- a/lib/Slic3r/GUI/ConfigWizard.pm +++ b/lib/Slic3r/GUI/ConfigWizard.pm @@ -202,7 +202,7 @@ sub append_option { # populate repository with the factory default my ($opt_key, $opt_index) = split /#/, $full_key, 2; - $self->config->apply(Slic3r::Config->new_from_defaults($opt_key)); + $self->config->apply(Slic3r::Config::new_from_defaults_keys($opt_key)); # draw the control my $optgroup = Slic3r::GUI::ConfigOptionsGroup->new( @@ -300,7 +300,7 @@ sub new { $self->append_text('Set the shape of your printer\'s bed, then click Next.'); - $self->config->apply(Slic3r::Config->new_from_defaults('bed_shape')); + $self->config->apply(Slic3r::Config::new_from_defaults_keys('bed_shape')); $self->{bed_shape_panel} = my $panel = Slic3r::GUI::BedShapePanel->new($self, $self->config->bed_shape); $self->{bed_shape_panel}->on_change(sub { $self->config->set('bed_shape', $self->{bed_shape_panel}->GetValue); diff --git a/lib/Slic3r/GUI/Plater.pm b/lib/Slic3r/GUI/Plater.pm index 827170a8b..c4b401cce 100644 --- a/lib/Slic3r/GUI/Plater.pm +++ b/lib/Slic3r/GUI/Plater.pm @@ -49,7 +49,7 @@ sub new { my $class = shift; my ($parent) = @_; my $self = $class->SUPER::new($parent, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL); - $self->{config} = Slic3r::Config->new_from_defaults(qw( + $self->{config} = Slic3r::Config::new_from_defaults_keys(qw( bed_shape complete_objects extruder_clearance_radius skirts skirt_distance brim_width variable_layer_height serial_port serial_speed octoprint_host octoprint_apikey nozzle_diameter single_extruder_multi_material diff --git a/lib/Slic3r/GUI/Plater/ObjectPartsPanel.pm b/lib/Slic3r/GUI/Plater/ObjectPartsPanel.pm index 469794766..039c642c7 100644 --- a/lib/Slic3r/GUI/Plater/ObjectPartsPanel.pm +++ b/lib/Slic3r/GUI/Plater/ObjectPartsPanel.pm @@ -312,7 +312,7 @@ sub selection_changed { $config = $self->{model_object}->config; } # get default values - my $default_config = Slic3r::Config->new_from_defaults(@opt_keys); + my $default_config = Slic3r::Config::new_from_defaults_keys(@opt_keys); # append default extruder push @opt_keys, 'extruder'; @@ -490,12 +490,12 @@ sub CanClose { # validate options before allowing user to dismiss the dialog # the validate method only works on full configs so we have # to merge our settings with the default ones - my $config = Slic3r::Config->merge($self->GetParent->GetParent->GetParent->GetParent->GetParent->config, $self->model_object->config); + my $config = $self->GetParent->GetParent->GetParent->GetParent->GetParent->config->clone; eval { + $config->apply($self->model_object->config); $config->validate; }; - return 0 if Slic3r::GUI::catch_error($self); - return 1; + return ! Slic3r::GUI::catch_error($self); } sub PartsChanged { |