Fix filament colors not being initialized in additional comboboxes
This commit is contained in:
parent
0a9f1c466a
commit
b4cc92b9fa
@ -1366,14 +1366,29 @@ sub on_extruders_change {
|
|||||||
|
|
||||||
my $choices = $self->{preset_choosers}{filament};
|
my $choices = $self->{preset_choosers}{filament};
|
||||||
while (@$choices < $num_extruders) {
|
while (@$choices < $num_extruders) {
|
||||||
|
# copy strings from first choice
|
||||||
my @presets = $choices->[0]->GetStrings;
|
my @presets = $choices->[0]->GetStrings;
|
||||||
push @$choices, Wx::BitmapComboBox->new($self, -1, "", wxDefaultPosition, wxDefaultSize, [@presets], wxCB_READONLY);
|
|
||||||
|
# initialize new choice
|
||||||
|
my $choice = Wx::BitmapComboBox->new($self, -1, "", wxDefaultPosition, wxDefaultSize, [@presets], wxCB_READONLY);
|
||||||
|
push @$choices, $choice;
|
||||||
|
|
||||||
|
# copy icons from first choice
|
||||||
|
$choice->SetItemBitmap($_, $choices->[0]->GetItemBitmap($_)) for 0..$#presets;
|
||||||
|
|
||||||
|
# insert new choice into sizer
|
||||||
$self->{presets_sizer}->Insert(4 + ($#$choices-1)*2, 0, 0);
|
$self->{presets_sizer}->Insert(4 + ($#$choices-1)*2, 0, 0);
|
||||||
$self->{presets_sizer}->Insert(5 + ($#$choices-1)*2, $choices->[-1], 0, wxEXPAND | wxBOTTOM, FILAMENT_CHOOSERS_SPACING);
|
$self->{presets_sizer}->Insert(5 + ($#$choices-1)*2, $choice, 0, wxEXPAND | wxBOTTOM, FILAMENT_CHOOSERS_SPACING);
|
||||||
EVT_COMBOBOX($choices->[-1], $choices->[-1], sub { $self->_on_select_preset('filament', @_) });
|
|
||||||
my $i = first { $choices->[-1]->GetString($_) eq ($Slic3r::GUI::Settings->{presets}{"filament_" . $#$choices} || '') } 0 .. $#presets;
|
# setup the listener
|
||||||
$choices->[-1]->SetSelection($i || 0);
|
EVT_COMBOBOX($choice, $choice, sub { $self->_on_select_preset('filament', @_) });
|
||||||
|
|
||||||
|
# initialize selection
|
||||||
|
my $i = first { $choice->GetString($_) eq ($Slic3r::GUI::Settings->{presets}{"filament_" . $#$choices} || '') } 0 .. $#presets;
|
||||||
|
$choice->SetSelection($i || 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# remove unused choices if any
|
||||||
while (@$choices > $num_extruders) {
|
while (@$choices > $num_extruders) {
|
||||||
$self->{presets_sizer}->Remove(4 + ($#$choices-1)*2); # label
|
$self->{presets_sizer}->Remove(4 + ($#$choices-1)*2); # label
|
||||||
$self->{presets_sizer}->Remove(4 + ($#$choices-1)*2); # wxChoice
|
$self->{presets_sizer}->Remove(4 + ($#$choices-1)*2); # wxChoice
|
||||||
|
Loading…
Reference in New Issue
Block a user