mirror of
https://git.mirrors.martin98.com/https://github.com/slic3r/Slic3r.git
synced 2025-08-13 07:49:03 +08:00
Minor fixes about config and presets
This commit is contained in:
parent
dd6864314d
commit
9d1d5ccee9
@ -47,13 +47,13 @@ sub new {
|
||||
delete $presets{$_} for map $_->printer_name, @panels;
|
||||
|
||||
foreach my $preset_name (sort keys %presets) {
|
||||
my $config = $presets{$preset_name}->dirty_config;
|
||||
next if !$config->serial_port;
|
||||
my $preset = $presets{$preset_name};
|
||||
next if !$preset->dirty_config->serial_port;
|
||||
|
||||
my $id = &Wx::NewId();
|
||||
$menu->Append($id, $preset_name);
|
||||
EVT_MENU($menu, $id, sub {
|
||||
$self->add_printer($preset_name, $config);
|
||||
$self->add_printer($preset);
|
||||
});
|
||||
}
|
||||
$self->PopupMenu($menu, $btn->GetPosition);
|
||||
@ -100,10 +100,10 @@ sub OnActivate {
|
||||
|
||||
# get all available presets
|
||||
my %presets = ();
|
||||
{
|
||||
my %all = map { $_->name => $_ } @{wxTheApp->presets->{printer}};
|
||||
my %configs = map { my $name = $_; $name => $all{$name}->load_config } keys %all;
|
||||
%presets = map { $_ => $configs{$_} } grep $configs{$_}->serial_port, keys %all;
|
||||
foreach my $preset (@{wxTheApp->presets->{printer}}) {
|
||||
$preset->load_config;
|
||||
next if !$preset->dirty_config->serial_port;
|
||||
$presets{$preset->name} = $preset;
|
||||
}
|
||||
|
||||
# decide which ones we want to keep
|
||||
@ -124,7 +124,7 @@ sub OnActivate {
|
||||
# enable printers whose port is available
|
||||
my %ports = map { $_ => 1 } wxTheApp->scan_serial_ports;
|
||||
$active{$_} = 1
|
||||
for grep exists $ports{$presets{$_}->serial_port}, keys %presets;
|
||||
for grep exists $ports{$presets{$_}->dirty_config->serial_port}, keys %presets;
|
||||
}
|
||||
if (!%active && $self->_selected_printer_preset) {
|
||||
# enable currently selected printer if it is configured
|
||||
@ -140,7 +140,7 @@ sub OnActivate {
|
||||
$self->{sizer}->DetachWindow($panel);
|
||||
$panel->Destroy;
|
||||
}
|
||||
$self->add_printer($_, $presets{$_}) for sort keys %active;
|
||||
$self->add_printer($presets{$_}) for sort keys %active;
|
||||
|
||||
# show/hide the warning about no printers
|
||||
$self->{text_no_printers}->Show(!%presets);
|
||||
@ -156,16 +156,16 @@ sub OnActivate {
|
||||
}
|
||||
|
||||
sub add_printer {
|
||||
my ($self, $printer_name, $config) = @_;
|
||||
my ($self, $preset) = @_;
|
||||
|
||||
# check that printer doesn't exist already
|
||||
foreach my $panel ($self->print_panels) {
|
||||
if ($panel->printer_name eq $printer_name) {
|
||||
if ($panel->printer_name eq $preset->name) {
|
||||
return $panel;
|
||||
}
|
||||
}
|
||||
|
||||
my $printer_panel = Slic3r::GUI::Controller::PrinterPanel->new($self, $printer_name, $config);
|
||||
my $printer_panel = Slic3r::GUI::Controller::PrinterPanel->new($self, $preset->name, $preset);
|
||||
$self->{sizer}->Prepend($printer_panel, 0, wxEXPAND | wxTOP | wxLEFT | wxRIGHT, 10);
|
||||
$self->Layout;
|
||||
|
||||
|
@ -16,11 +16,11 @@ use constant STATUS_TIMER_INTERVAL => 1000; # milliseconds
|
||||
use constant TEMP_TIMER_INTERVAL => 5000; # milliseconds
|
||||
|
||||
sub new {
|
||||
my ($class, $parent, $printer_name, $config) = @_;
|
||||
my ($class, $parent, $printer_name, $preset) = @_;
|
||||
my $self = $class->SUPER::new($parent, -1, wxDefaultPosition, [500, 250]);
|
||||
|
||||
$self->printer_name($printer_name || 'Printer');
|
||||
$self->config($config);
|
||||
$self->config($preset->dirty_config);
|
||||
$self->manual_control_config({
|
||||
xy_travel_speed => 130,
|
||||
z_travel_speed => 10,
|
||||
@ -103,7 +103,7 @@ sub new {
|
||||
}
|
||||
my $serial_port_sizer = Wx::BoxSizer->new(wxHORIZONTAL);
|
||||
{
|
||||
$self->{serial_port_combobox} = Wx::ComboBox->new($self, -1, $config->serial_port, wxDefaultPosition, wxDefaultSize, []);
|
||||
$self->{serial_port_combobox} = Wx::ComboBox->new($self, -1, $self->config->serial_port, wxDefaultPosition, wxDefaultSize, []);
|
||||
$self->{serial_port_combobox}->SetFont($Slic3r::GUI::small_font);
|
||||
$self->update_serial_ports;
|
||||
$serial_port_sizer->Add($self->{serial_port_combobox}, 0, wxRIGHT | wxALIGN_CENTER_VERTICAL, 1);
|
||||
@ -125,7 +125,7 @@ sub new {
|
||||
}
|
||||
my $serial_speed_sizer = Wx::BoxSizer->new(wxHORIZONTAL);
|
||||
{
|
||||
$self->{serial_speed_combobox} = Wx::ComboBox->new($self, -1, $config->serial_speed, wxDefaultPosition, wxDefaultSize,
|
||||
$self->{serial_speed_combobox} = Wx::ComboBox->new($self, -1, $self->config->serial_speed, wxDefaultPosition, wxDefaultSize,
|
||||
["57600", "115200", "250000"]);
|
||||
$self->{serial_speed_combobox}->SetFont($Slic3r::GUI::small_font);
|
||||
$serial_speed_sizer->Add($self->{serial_speed_combobox}, 0, wxALIGN_CENTER_VERTICAL, 0);
|
||||
|
@ -584,6 +584,8 @@ sub _on_select_preset {
|
||||
# and the dirty options.
|
||||
$o_config->clear;
|
||||
foreach my $opt_key (@$shortcuts, $presets[0]->dirty_options) {
|
||||
# Don't add shortcut for shortcuts!
|
||||
next if $opt_key eq 'shortcuts';
|
||||
$o_config->set($opt_key, $config->get($opt_key));
|
||||
}
|
||||
|
||||
|
@ -1384,7 +1384,7 @@ PrintConfigDef::PrintConfigDef()
|
||||
|
||||
def = this->add("support_material_interface_speed", coFloatOrPercent);
|
||||
def->label = "↳ interface";
|
||||
def->category = "Support material interface speed";
|
||||
def->full_label = "Support material interface speed";
|
||||
def->gui_type = "f_enum_open";
|
||||
def->category = "Support material";
|
||||
def->tooltip = "Speed for printing support material interface layers. If expressed as percentage (for example 50%) it will be calculated over support material speed.";
|
||||
|
Loading…
x
Reference in New Issue
Block a user