Put the Default Extruder option in a less confusing position
This commit is contained in:
parent
4bf23c67bb
commit
b9e8fbacb7
@ -196,7 +196,8 @@ sub _build_field {
|
|||||||
|
|
||||||
my $field;
|
my $field;
|
||||||
my $tooltip = $opt->{tooltip};
|
my $tooltip = $opt->{tooltip};
|
||||||
if ($opt->{type} =~ /^(i|f|s|s@|percent|slider)$/) {
|
my $type = $opt->{gui_type} || $opt->{type};
|
||||||
|
if ($type =~ /^(i|i_enum_open|i_enum_closed|f|s|s@|percent|slider)$/) {
|
||||||
my $style = 0;
|
my $style = 0;
|
||||||
$style = wxTE_MULTILINE if $opt->{multiline};
|
$style = wxTE_MULTILINE if $opt->{multiline};
|
||||||
# default width on Windows is too large
|
# default width on Windows is too large
|
||||||
@ -204,30 +205,82 @@ sub _build_field {
|
|||||||
|
|
||||||
my $on_change = sub {
|
my $on_change = sub {
|
||||||
my $value = $field->GetValue;
|
my $value = $field->GetValue;
|
||||||
$value ||= 0 if $opt->{type} =~ /^(i|f|percent)$/; # prevent crash trying to pass empty strings to Config
|
$value ||= 0 if $type =~ /^(i|i_enum_open|i_enum_closed|f|percent)$/; # prevent crash trying to pass empty strings to Config
|
||||||
$self->_on_change($opt_key, $value);
|
$self->_on_change($opt_key, $value);
|
||||||
};
|
};
|
||||||
if ($opt->{type} eq 'i') {
|
if ($type eq 'i') {
|
||||||
$field = Wx::SpinCtrl->new($self->parent, -1, $opt->{default}, wxDefaultPosition, $size, $style, $opt->{min} || 0, $opt->{max} || 2147483647, $opt->{default});
|
$field = Wx::SpinCtrl->new($self->parent, -1, $opt->{default}, wxDefaultPosition, $size, $style, $opt->{min} || 0, $opt->{max} || 2147483647, $opt->{default});
|
||||||
$self->_setters->{$opt_key} = sub { $field->SetValue($_[0]) };
|
$self->_setters->{$opt_key} = sub { $field->SetValue($_[0]) };
|
||||||
EVT_SPINCTRL ($self->parent, $field, $on_change);
|
EVT_SPINCTRL ($self->parent, $field, $on_change);
|
||||||
EVT_TEXT ($self->parent, $field, $on_change);
|
EVT_TEXT ($self->parent, $field, $on_change);
|
||||||
EVT_KILL_FOCUS($field, $on_kill_focus);
|
EVT_KILL_FOCUS($field, $on_kill_focus);
|
||||||
} elsif ($opt->{values}) {
|
} elsif ($type eq 'i_enum_open' || $type eq 'i_enum_closed') {
|
||||||
$field = Wx::ComboBox->new($self->parent, -1, $opt->{default}, wxDefaultPosition, $size, $opt->{labels} || $opt->{values});
|
$field = Wx::ComboBox->new($self->parent, -1, $opt->{default}, wxDefaultPosition, $size, $opt->{labels} || $opt->{values});
|
||||||
$self->_setters->{$opt_key} = sub {
|
$self->_setters->{$opt_key} = sub {
|
||||||
$field->SetValue($_[0]);
|
my ($value) = @_;
|
||||||
|
|
||||||
|
if ($opt->{gui_flags} =~ /\bshow_value\b/) {
|
||||||
|
$field->SetValue($value);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($opt->{values}) {
|
||||||
|
# check whether we have a value index
|
||||||
|
my $value_idx = first { $opt->{values}[$_] eq $value } 0..$#{$opt->{values}};
|
||||||
|
if (defined $value_idx) {
|
||||||
|
$field->SetSelection($value_idx);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($opt->{labels} && $value <= $#{$opt->{labels}}) {
|
||||||
|
$field->SetValue($opt->{labels}[$value]);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
$field->SetValue($value);
|
||||||
};
|
};
|
||||||
|
$self->_setters->{$opt_key}->($opt->{default}); # use label if any
|
||||||
EVT_COMBOBOX($self->parent, $field, sub {
|
EVT_COMBOBOX($self->parent, $field, sub {
|
||||||
# Without CallAfter, the field text is not populated on Windows.
|
# Without CallAfter, the field text is not populated on Windows.
|
||||||
wxTheApp->CallAfter(sub {
|
wxTheApp->CallAfter(sub {
|
||||||
$field->SetValue($opt->{values}[ $field->GetSelection ]); # set the text field to the selected value
|
my $value = $field->GetSelection;
|
||||||
$self->_on_change($opt_key, $on_change);
|
my $label;
|
||||||
|
|
||||||
|
if ($opt->{values}) {
|
||||||
|
$label = $value = $opt->{values}[$value];
|
||||||
|
} elsif ($value <= $#{$opt->{labels}}) {
|
||||||
|
$label = $opt->{labels}[$value];
|
||||||
|
} else {
|
||||||
|
$label = $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
$field->SetValue($label);
|
||||||
|
$self->_on_change($opt_key, $value);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
EVT_TEXT($self->parent, $field, $on_change);
|
EVT_TEXT($self->parent, $field, sub {
|
||||||
EVT_KILL_FOCUS($field, $on_kill_focus);
|
my ($s, $event) = @_;
|
||||||
} elsif ($opt->{type} eq 'slider') {
|
$event->Skip;
|
||||||
|
wxTheApp->CallAfter(sub {
|
||||||
|
my $label = $field->GetValue;
|
||||||
|
if (defined (my $value = first { $opt->{labels}[$_] eq $label } 0..$#{$opt->{labels}})) {
|
||||||
|
if ($opt->{values}) {
|
||||||
|
$value = $opt->{values}[$value];
|
||||||
|
}
|
||||||
|
$self->_on_change($opt_key, $value);
|
||||||
|
} elsif ($label !~ /^[0-9]+$/) {
|
||||||
|
# if typed text is not numeric, select the default value
|
||||||
|
my $default = 0;
|
||||||
|
if ($opt->{values}) {
|
||||||
|
$default = $opt->{values}[0];
|
||||||
|
}
|
||||||
|
$self->_setters->{$opt_key}->($default);
|
||||||
|
$self->_on_change($opt_key, $default);
|
||||||
|
} else {
|
||||||
|
$self->_on_change($opt_key, $label);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
} elsif ($type eq 'slider') {
|
||||||
my $scale = 10;
|
my $scale = 10;
|
||||||
$field = Wx::BoxSizer->new(wxHORIZONTAL);
|
$field = Wx::BoxSizer->new(wxHORIZONTAL);
|
||||||
my $slider = Wx::Slider->new($self->parent, -1, ($opt->{default} // $opt->{min})*$scale, ($opt->{min} // 0)*$scale, ($opt->{max} // 100)*$scale, wxDefaultPosition, $size);
|
my $slider = Wx::Slider->new($self->parent, -1, ($opt->{default} // $opt->{min})*$scale, ($opt->{min} // 0)*$scale, ($opt->{max} // 100)*$scale, wxDefaultPosition, $size);
|
||||||
@ -251,14 +304,14 @@ sub _build_field {
|
|||||||
}
|
}
|
||||||
$field->Disable if $opt->{readonly};
|
$field->Disable if $opt->{readonly};
|
||||||
$tooltip .= " (default: " . $opt->{default} . ")" if ($opt->{default});
|
$tooltip .= " (default: " . $opt->{default} . ")" if ($opt->{default});
|
||||||
} elsif ($opt->{type} eq 'bool') {
|
} elsif ($type eq 'bool') {
|
||||||
$field = Wx::CheckBox->new($self->parent, -1, "");
|
$field = Wx::CheckBox->new($self->parent, -1, "");
|
||||||
$field->SetValue($opt->{default});
|
$field->SetValue($opt->{default});
|
||||||
$field->Disable if $opt->{readonly};
|
$field->Disable if $opt->{readonly};
|
||||||
EVT_CHECKBOX($self->parent, $field, sub { $self->_on_change($opt_key, $field->GetValue); });
|
EVT_CHECKBOX($self->parent, $field, sub { $self->_on_change($opt_key, $field->GetValue); });
|
||||||
$self->_setters->{$opt_key} = sub { $field->SetValue($_[0]) };
|
$self->_setters->{$opt_key} = sub { $field->SetValue($_[0]) };
|
||||||
$tooltip .= " (default: " . ($opt->{default} ? 'yes' : 'no') . ")" if defined($opt->{default});
|
$tooltip .= " (default: " . ($opt->{default} ? 'yes' : 'no') . ")" if defined($opt->{default});
|
||||||
} elsif ($opt->{type} eq 'point') {
|
} elsif ($type eq 'point') {
|
||||||
$field = Wx::BoxSizer->new(wxHORIZONTAL);
|
$field = Wx::BoxSizer->new(wxHORIZONTAL);
|
||||||
my $field_size = Wx::Size->new(40, -1);
|
my $field_size = Wx::Size->new(40, -1);
|
||||||
my @items = (
|
my @items = (
|
||||||
@ -281,7 +334,7 @@ sub _build_field {
|
|||||||
$x_field->SetValue($_[0][0]);
|
$x_field->SetValue($_[0][0]);
|
||||||
$y_field->SetValue($_[0][1]);
|
$y_field->SetValue($_[0][1]);
|
||||||
};
|
};
|
||||||
} elsif ($opt->{type} eq 'select') {
|
} elsif ($type eq 'select') {
|
||||||
$field = Wx::ComboBox->new($self->parent, -1, "", wxDefaultPosition, wxDefaultSize, $opt->{labels} || $opt->{values}, wxCB_READONLY);
|
$field = Wx::ComboBox->new($self->parent, -1, "", wxDefaultPosition, wxDefaultSize, $opt->{labels} || $opt->{values}, wxCB_READONLY);
|
||||||
EVT_COMBOBOX($self->parent, $field, sub {
|
EVT_COMBOBOX($self->parent, $field, sub {
|
||||||
$self->_on_change($opt_key, $opt->{values}[$field->GetSelection]);
|
$self->_on_change($opt_key, $opt->{values}[$field->GetSelection]);
|
||||||
@ -295,7 +348,7 @@ sub _build_field {
|
|||||||
. $opt->{labels}[ first { $opt->{values}[$_] eq $opt->{default} } 0..$#{$opt->{values}} ]
|
. $opt->{labels}[ first { $opt->{values}[$_] eq $opt->{default} } 0..$#{$opt->{values}} ]
|
||||||
. ")" if ($opt->{default});
|
. ")" if ($opt->{default});
|
||||||
} else {
|
} else {
|
||||||
die "Unsupported option type: " . $opt->{type};
|
die "Unsupported option type: " . $type;
|
||||||
}
|
}
|
||||||
if ($tooltip && $field->can('SetToolTipString')) {
|
if ($tooltip && $field->can('SetToolTipString')) {
|
||||||
$field->SetToolTipString($tooltip);
|
$field->SetToolTipString($tooltip);
|
||||||
@ -387,7 +440,7 @@ sub _trigger_options {
|
|||||||
opt_key => $full_key,
|
opt_key => $full_key,
|
||||||
config => 1,
|
config => 1,
|
||||||
label => ($self->full_labels && defined $config_opt->{full_label}) ? $config_opt->{full_label} : $config_opt->{label},
|
label => ($self->full_labels && defined $config_opt->{full_label}) ? $config_opt->{full_label} : $config_opt->{label},
|
||||||
(map { $_ => $config_opt->{$_} } qw(type tooltip sidetext width height full_width min max labels values multiline readonly)),
|
(map { $_ => $config_opt->{$_} } qw(type gui_type gui_flags tooltip sidetext width height full_width min max labels values multiline readonly)),
|
||||||
default => $self->_get_config($opt_key, $index),
|
default => $self->_get_config($opt_key, $index),
|
||||||
on_change => sub { return $self->_set_config($opt_key, $index, $_[0]) },
|
on_change => sub { return $self->_set_config($opt_key, $index, $_[0]) },
|
||||||
};
|
};
|
||||||
|
@ -150,6 +150,7 @@ sub selection_changed {
|
|||||||
$self->{settings_panel}->set_config(undef);
|
$self->{settings_panel}->set_config(undef);
|
||||||
|
|
||||||
if (my $itemData = $self->get_selection) {
|
if (my $itemData = $self->get_selection) {
|
||||||
|
my ($config, @opt_keys);
|
||||||
if ($itemData->{type} eq 'volume') {
|
if ($itemData->{type} eq 'volume') {
|
||||||
# select volume in 3D preview
|
# select volume in 3D preview
|
||||||
if ($self->{canvas}) {
|
if ($self->{canvas}) {
|
||||||
@ -162,9 +163,11 @@ sub selection_changed {
|
|||||||
my $material = $self->{model_object}->model->get_material($volume->material_id // '_');
|
my $material = $self->{model_object}->model->get_material($volume->material_id // '_');
|
||||||
$material //= $volume->assign_unique_material;
|
$material //= $volume->assign_unique_material;
|
||||||
$self->{staticbox}->SetLabel('Part Settings');
|
$self->{staticbox}->SetLabel('Part Settings');
|
||||||
$self->{settings_panel}->enable;
|
|
||||||
$self->{settings_panel}->set_opt_keys([ 'extruder', @{Slic3r::Config::PrintRegion->new->get_keys} ]);
|
# get default values
|
||||||
$self->{settings_panel}->set_config($material->config);
|
@opt_keys = @{Slic3r::Config::PrintRegion->new->get_keys};
|
||||||
|
|
||||||
|
$config = $material->config;
|
||||||
} elsif ($itemData->{type} eq 'object') {
|
} elsif ($itemData->{type} eq 'object') {
|
||||||
# select all object volumes in 3D preview
|
# select all object volumes in 3D preview
|
||||||
if ($self->{canvas}) {
|
if ($self->{canvas}) {
|
||||||
@ -173,12 +176,21 @@ sub selection_changed {
|
|||||||
|
|
||||||
# attach object config to settings panel
|
# attach object config to settings panel
|
||||||
$self->{staticbox}->SetLabel('Object Settings');
|
$self->{staticbox}->SetLabel('Object Settings');
|
||||||
$self->{settings_panel}->enable;
|
@opt_keys = (map @{$_->get_keys}, Slic3r::Config::PrintObject->new, Slic3r::Config::PrintRegion->new);
|
||||||
$self->{settings_panel}->set_opt_keys(
|
$config = $self->{model_object}->config;
|
||||||
[ 'extruder', map @{$_->get_keys}, Slic3r::Config::PrintObject->new, Slic3r::Config::PrintRegion->new ]
|
|
||||||
);
|
|
||||||
$self->{settings_panel}->set_config($self->{model_object}->config);
|
|
||||||
}
|
}
|
||||||
|
# get default values
|
||||||
|
my $default_config = Slic3r::Config->new_from_defaults(@opt_keys);
|
||||||
|
|
||||||
|
# append default extruder
|
||||||
|
push @opt_keys, 'extruder';
|
||||||
|
$default_config->set('extruder', 0);
|
||||||
|
$config->set_ifndef('extruder', 0);
|
||||||
|
$self->{settings_panel}->set_default_config($default_config);
|
||||||
|
$self->{settings_panel}->set_config($config);
|
||||||
|
$self->{settings_panel}->set_opt_keys(\@opt_keys);
|
||||||
|
$self->{settings_panel}->set_fixed_options([qw(extruder)]);
|
||||||
|
$self->{settings_panel}->enable;
|
||||||
}
|
}
|
||||||
|
|
||||||
$self->{canvas}->Render if $self->{canvas};
|
$self->{canvas}->Render if $self->{canvas};
|
||||||
|
@ -17,8 +17,10 @@ sub new {
|
|||||||
my $class = shift;
|
my $class = shift;
|
||||||
my ($parent, %params) = @_;
|
my ($parent, %params) = @_;
|
||||||
my $self = $class->SUPER::new($parent, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL);
|
my $self = $class->SUPER::new($parent, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL);
|
||||||
$self->{config} = $params{config}; # may be passed as undef
|
$self->{default_config} = Slic3r::Config->new;
|
||||||
|
$self->{config} = Slic3r::Config->new;
|
||||||
$self->{on_change} = $params{on_change};
|
$self->{on_change} = $params{on_change};
|
||||||
|
$self->{fixed_options} = {};
|
||||||
|
|
||||||
$self->{sizer} = Wx::BoxSizer->new(wxVERTICAL);
|
$self->{sizer} = Wx::BoxSizer->new(wxVERTICAL);
|
||||||
|
|
||||||
@ -36,7 +38,7 @@ sub new {
|
|||||||
my $id = &Wx::NewId();
|
my $id = &Wx::NewId();
|
||||||
$menu->Append($id, $self->{option_labels}{$opt_key});
|
$menu->Append($id, $self->{option_labels}{$opt_key});
|
||||||
EVT_MENU($menu, $id, sub {
|
EVT_MENU($menu, $id, sub {
|
||||||
$self->{config}->apply(Slic3r::Config->new_from_defaults($opt_key));
|
$self->{config}->apply($self->{default_config}->get($opt_key));
|
||||||
$self->update_optgroup;
|
$self->update_optgroup;
|
||||||
$self->{on_change}->() if $self->{on_change};
|
$self->{on_change}->() if $self->{on_change};
|
||||||
});
|
});
|
||||||
@ -59,6 +61,17 @@ sub new {
|
|||||||
return $self;
|
return $self;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub set_default_config {
|
||||||
|
my ($self, $config) = @_;
|
||||||
|
$self->{default_config} = $config;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub set_config {
|
||||||
|
my ($self, $config) = @_;
|
||||||
|
$self->{config} = $config;
|
||||||
|
$self->update_optgroup;
|
||||||
|
}
|
||||||
|
|
||||||
sub set_opt_keys {
|
sub set_opt_keys {
|
||||||
my ($self, $opt_keys) = @_;
|
my ($self, $opt_keys) = @_;
|
||||||
|
|
||||||
@ -69,9 +82,9 @@ sub set_opt_keys {
|
|||||||
$self->{options} = [ sort { $self->{option_labels}{$a} cmp $self->{option_labels}{$b} } @$opt_keys ];
|
$self->{options} = [ sort { $self->{option_labels}{$a} cmp $self->{option_labels}{$b} } @$opt_keys ];
|
||||||
}
|
}
|
||||||
|
|
||||||
sub set_config {
|
sub set_fixed_options {
|
||||||
my ($self, $config) = @_;
|
my ($self, $opt_keys) = @_;
|
||||||
$self->{config} = $config;
|
$self->{fixed_options} = { map {$_ => 1} @$opt_keys };
|
||||||
$self->update_optgroup;
|
$self->update_optgroup;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -102,8 +115,8 @@ sub update_optgroup {
|
|||||||
my ($line) = @_;
|
my ($line) = @_;
|
||||||
my ($opt_key) = @{$line->{options}}; # we assume that we have one option per line
|
my ($opt_key) = @{$line->{options}}; # we assume that we have one option per line
|
||||||
|
|
||||||
# if this option is not listed in the ones the user can add, disallow deleting it
|
# disallow deleting fixed options
|
||||||
return undef if !first { $_ eq $opt_key } @{$self->{options}};
|
return undef if $self->{fixed_options}{$opt_key};
|
||||||
|
|
||||||
my $btn = Wx::BitmapButton->new($self, -1, Wx::Bitmap->new("$Slic3r::var/delete.png", wxBITMAP_TYPE_PNG),
|
my $btn = Wx::BitmapButton->new($self, -1, Wx::Bitmap->new("$Slic3r::var/delete.png", wxBITMAP_TYPE_PNG),
|
||||||
wxDefaultPosition, wxDefaultSize, Wx::wxBORDER_NONE);
|
wxDefaultPosition, wxDefaultSize, Wx::wxBORDER_NONE);
|
||||||
|
@ -432,6 +432,8 @@ class ConfigOptionDef
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
ConfigOptionType type;
|
ConfigOptionType type;
|
||||||
|
std::string gui_type;
|
||||||
|
std::string gui_flags;
|
||||||
std::string label;
|
std::string label;
|
||||||
std::string full_label;
|
std::string full_label;
|
||||||
std::string category;
|
std::string category;
|
||||||
|
@ -144,11 +144,17 @@ PrintConfigDef::build_def() {
|
|||||||
Options["extra_perimeters"].cli = "extra-perimeters!";
|
Options["extra_perimeters"].cli = "extra-perimeters!";
|
||||||
|
|
||||||
Options["extruder"].type = coInt;
|
Options["extruder"].type = coInt;
|
||||||
Options["extruder"].label = "Default extruder";
|
Options["extruder"].gui_type = "i_enum_open";
|
||||||
|
Options["extruder"].label = "Extruder";
|
||||||
Options["extruder"].category = "Extruders";
|
Options["extruder"].category = "Extruders";
|
||||||
Options["extruder"].tooltip = "The extruder to use (unless more specific extruder settings are specified).";
|
Options["extruder"].tooltip = "The extruder to use (unless more specific extruder settings are specified).";
|
||||||
Options["extruder"].cli = "extruder=i";
|
Options["extruder"].cli = "extruder=i";
|
||||||
Options["extruder"].min = 1;
|
Options["extruder"].min = 0; // 0 = inherit defaults
|
||||||
|
Options["extruder"].enum_labels.push_back("default"); // override label for item 0
|
||||||
|
Options["extruder"].enum_labels.push_back("1");
|
||||||
|
Options["extruder"].enum_labels.push_back("2");
|
||||||
|
Options["extruder"].enum_labels.push_back("3");
|
||||||
|
Options["extruder"].enum_labels.push_back("4");
|
||||||
|
|
||||||
Options["extruder_clearance_height"].type = coFloat;
|
Options["extruder_clearance_height"].type = coFloat;
|
||||||
Options["extruder_clearance_height"].label = "Height";
|
Options["extruder_clearance_height"].label = "Height";
|
||||||
@ -218,6 +224,8 @@ PrintConfigDef::build_def() {
|
|||||||
Options["fill_angle"].max = 359;
|
Options["fill_angle"].max = 359;
|
||||||
|
|
||||||
Options["fill_density"].type = coPercent;
|
Options["fill_density"].type = coPercent;
|
||||||
|
Options["fill_density"].gui_type = "i_enum_open";
|
||||||
|
Options["fill_density"].gui_flags = "show_value";
|
||||||
Options["fill_density"].label = "Fill density";
|
Options["fill_density"].label = "Fill density";
|
||||||
Options["fill_density"].category = "Infill";
|
Options["fill_density"].category = "Infill";
|
||||||
Options["fill_density"].tooltip = "Density of internal infill, expressed in the range 0% - 100%.";
|
Options["fill_density"].tooltip = "Density of internal infill, expressed in the range 0% - 100%.";
|
||||||
|
@ -81,14 +81,16 @@ class DynamicPrintConfig : public DynamicConfig
|
|||||||
if (this->has("extruder")) {
|
if (this->has("extruder")) {
|
||||||
int extruder = this->option("extruder")->getInt();
|
int extruder = this->option("extruder")->getInt();
|
||||||
this->erase("extruder");
|
this->erase("extruder");
|
||||||
if (!this->has("infill_extruder"))
|
if (extruder != 0) {
|
||||||
this->option("infill_extruder", true)->setInt(extruder);
|
if (!this->has("infill_extruder"))
|
||||||
if (!this->has("perimeter_extruder"))
|
this->option("infill_extruder", true)->setInt(extruder);
|
||||||
this->option("perimeter_extruder", true)->setInt(extruder);
|
if (!this->has("perimeter_extruder"))
|
||||||
if (!this->has("support_material_extruder"))
|
this->option("perimeter_extruder", true)->setInt(extruder);
|
||||||
this->option("support_material_extruder", true)->setInt(extruder);
|
if (!this->has("support_material_extruder"))
|
||||||
if (!this->has("support_material_interface_extruder"))
|
this->option("support_material_extruder", true)->setInt(extruder);
|
||||||
this->option("support_material_interface_extruder", true)->setInt(extruder);
|
if (!this->has("support_material_interface_extruder"))
|
||||||
|
this->option("support_material_interface_extruder", true)->setInt(extruder);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (this->has("spiral_vase") && this->opt<ConfigOptionBool>("spiral_vase", true)->value) {
|
if (this->has("spiral_vase") && this->opt<ConfigOptionBool>("spiral_vase", true)->value) {
|
||||||
{
|
{
|
||||||
|
@ -154,6 +154,8 @@ print_config_def()
|
|||||||
throw "Unknown option type";
|
throw "Unknown option type";
|
||||||
}
|
}
|
||||||
(void)hv_stores( hv, "type", newSVpv(opt_type, 0) );
|
(void)hv_stores( hv, "type", newSVpv(opt_type, 0) );
|
||||||
|
(void)hv_stores( hv, "gui_type", newSVpvn(optdef->gui_type.c_str(), optdef->gui_type.length()) );
|
||||||
|
(void)hv_stores( hv, "gui_flags", newSVpvn(optdef->gui_flags.c_str(), optdef->gui_flags.length()) );
|
||||||
(void)hv_stores( hv, "label", newSVpvn_utf8(optdef->label.c_str(), optdef->label.length(), true) );
|
(void)hv_stores( hv, "label", newSVpvn_utf8(optdef->label.c_str(), optdef->label.length(), true) );
|
||||||
if (!optdef->full_label.empty())
|
if (!optdef->full_label.empty())
|
||||||
(void)hv_stores( hv, "full_label", newSVpvn_utf8(optdef->full_label.c_str(), optdef->full_label.length(), true) );
|
(void)hv_stores( hv, "full_label", newSVpvn_utf8(optdef->full_label.c_str(), optdef->full_label.length(), true) );
|
||||||
|
Loading…
Reference in New Issue
Block a user