The "controller" tab and the settings of the USB/serial connection was
made configurable. Now one may hide the "controller" tab and the USB/serial connection configuration from the preferences. This is useful for someone, who never connects his printer to the computer by a cable.
This commit is contained in:
parent
510ca9f9e2
commit
d8be976356
@ -53,6 +53,8 @@ use constant FILE_WILDCARDS => {
|
|||||||
use constant MODEL_WILDCARD => join '|', @{&FILE_WILDCARDS}{qw(known stl obj amf)};
|
use constant MODEL_WILDCARD => join '|', @{&FILE_WILDCARDS}{qw(known stl obj amf)};
|
||||||
|
|
||||||
our $datadir;
|
our $datadir;
|
||||||
|
# If set, the "Controller" tab for the control of the printer over serial line and the serial port settings are hidden.
|
||||||
|
our $no_controller;
|
||||||
our $no_plater;
|
our $no_plater;
|
||||||
our $mode;
|
our $mode;
|
||||||
our $autosave;
|
our $autosave;
|
||||||
@ -64,6 +66,9 @@ our $Settings = {
|
|||||||
version_check => 1,
|
version_check => 1,
|
||||||
autocenter => 1,
|
autocenter => 1,
|
||||||
background_processing => 1,
|
background_processing => 1,
|
||||||
|
# If set, the "Controller" tab for the control of the printer over serial line and the serial port settings are hidden.
|
||||||
|
# By default, Prusa has the controller hidden.
|
||||||
|
no_controller => 1,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -115,6 +120,8 @@ sub OnInit {
|
|||||||
$Settings->{_}{mode} ||= 'expert';
|
$Settings->{_}{mode} ||= 'expert';
|
||||||
$Settings->{_}{autocenter} //= 1;
|
$Settings->{_}{autocenter} //= 1;
|
||||||
$Settings->{_}{background_processing} //= 1;
|
$Settings->{_}{background_processing} //= 1;
|
||||||
|
# If set, the "Controller" tab for the control of the printer over serial line and the serial port settings are hidden.
|
||||||
|
$Settings->{_}{no_controller} //= 1;
|
||||||
}
|
}
|
||||||
$Settings->{_}{version} = $Slic3r::VERSION;
|
$Settings->{_}{version} = $Slic3r::VERSION;
|
||||||
$self->save_settings;
|
$self->save_settings;
|
||||||
@ -122,8 +129,10 @@ sub OnInit {
|
|||||||
# application frame
|
# application frame
|
||||||
Wx::Image::AddHandler(Wx::PNGHandler->new);
|
Wx::Image::AddHandler(Wx::PNGHandler->new);
|
||||||
$self->{mainframe} = my $frame = Slic3r::GUI::MainFrame->new(
|
$self->{mainframe} = my $frame = Slic3r::GUI::MainFrame->new(
|
||||||
mode => $mode // $Settings->{_}{mode},
|
mode => $mode // $Settings->{_}{mode},
|
||||||
no_plater => $no_plater,
|
# If set, the "Controller" tab for the control of the printer over serial line and the serial port settings are hidden.
|
||||||
|
no_controller => $no_controller // $Settings->{_}{no_controller},
|
||||||
|
no_plater => $no_plater,
|
||||||
);
|
);
|
||||||
$self->SetTopWindow($frame);
|
$self->SetTopWindow($frame);
|
||||||
|
|
||||||
|
@ -24,6 +24,8 @@ sub new {
|
|||||||
# store input params
|
# store input params
|
||||||
$self->{mode} = $params{mode};
|
$self->{mode} = $params{mode};
|
||||||
$self->{mode} = 'expert' if $self->{mode} !~ /^(?:simple|expert)$/;
|
$self->{mode} = 'expert' if $self->{mode} !~ /^(?:simple|expert)$/;
|
||||||
|
# If set, the "Controller" tab for the control of the printer over serial line and the serial port settings are hidden.
|
||||||
|
$self->{no_controller} = $params{no_controller};
|
||||||
$self->{no_plater} = $params{no_plater};
|
$self->{no_plater} = $params{no_plater};
|
||||||
$self->{loaded} = 0;
|
$self->{loaded} = 0;
|
||||||
|
|
||||||
@ -96,7 +98,9 @@ sub _init_tabpanel {
|
|||||||
|
|
||||||
if (!$self->{no_plater}) {
|
if (!$self->{no_plater}) {
|
||||||
$panel->AddPage($self->{plater} = Slic3r::GUI::Plater->new($panel), "Plater");
|
$panel->AddPage($self->{plater} = Slic3r::GUI::Plater->new($panel), "Plater");
|
||||||
$panel->AddPage($self->{controller} = Slic3r::GUI::Controller->new($panel), "Controller");
|
if (!$self->{no_controller}) {
|
||||||
|
$panel->AddPage($self->{controller} = Slic3r::GUI::Controller->new($panel), "Controller");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
$self->{options_tabs} = {};
|
$self->{options_tabs} = {};
|
||||||
|
|
||||||
@ -109,7 +113,9 @@ sub _init_tabpanel {
|
|||||||
my $class_prefix = $self->{mode} eq 'simple' ? "Slic3r::GUI::SimpleTab::" : "Slic3r::GUI::Tab::";
|
my $class_prefix = $self->{mode} eq 'simple' ? "Slic3r::GUI::SimpleTab::" : "Slic3r::GUI::Tab::";
|
||||||
for my $tab_name (qw(print filament printer)) {
|
for my $tab_name (qw(print filament printer)) {
|
||||||
my $tab;
|
my $tab;
|
||||||
$tab = $self->{options_tabs}{$tab_name} = ($class_prefix . ucfirst $tab_name)->new($panel);
|
$tab = $self->{options_tabs}{$tab_name} = ($class_prefix . ucfirst $tab_name)->new(
|
||||||
|
$panel,
|
||||||
|
no_controller => $self->{no_controller});
|
||||||
$tab->on_value_change(sub {
|
$tab->on_value_change(sub {
|
||||||
my ($opt_key, $value) = @_;
|
my ($opt_key, $value) = @_;
|
||||||
|
|
||||||
@ -136,7 +142,9 @@ sub _init_tabpanel {
|
|||||||
if ($self->{plater}) {
|
if ($self->{plater}) {
|
||||||
$self->{plater}->update_presets($tab_name, @_);
|
$self->{plater}->update_presets($tab_name, @_);
|
||||||
$self->{plater}->on_config_change($tab->config);
|
$self->{plater}->on_config_change($tab->config);
|
||||||
$self->{controller}->update_presets($tab_name, @_);
|
if ($self->{controller}) {
|
||||||
|
$self->{controller}->update_presets($tab_name, @_);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
$tab->load_presets;
|
$tab->load_presets;
|
||||||
@ -246,9 +254,11 @@ sub _init_menubar {
|
|||||||
$self->_append_menu_item($windowMenu, "Select &Plater Tab\tCtrl+1", 'Show the plater', sub {
|
$self->_append_menu_item($windowMenu, "Select &Plater Tab\tCtrl+1", 'Show the plater', sub {
|
||||||
$self->select_tab(0);
|
$self->select_tab(0);
|
||||||
}, undef, 'application_view_tile.png');
|
}, undef, 'application_view_tile.png');
|
||||||
$self->_append_menu_item($windowMenu, "Select &Controller Tab\tCtrl+T", 'Show the printer controller', sub {
|
if (!$self->{no_controller}) {
|
||||||
$self->select_tab(1);
|
$self->_append_menu_item($windowMenu, "Select &Controller Tab\tCtrl+T", 'Show the printer controller', sub {
|
||||||
}, undef, 'printer_empty.png');
|
$self->select_tab(1);
|
||||||
|
}, undef, 'printer_empty.png');
|
||||||
|
}
|
||||||
$windowMenu->AppendSeparator();
|
$windowMenu->AppendSeparator();
|
||||||
$tab_offset += 2;
|
$tab_offset += 2;
|
||||||
}
|
}
|
||||||
|
@ -58,6 +58,13 @@ sub new {
|
|||||||
default => $Slic3r::GUI::Settings->{_}{background_processing},
|
default => $Slic3r::GUI::Settings->{_}{background_processing},
|
||||||
readonly => !$Slic3r::have_threads,
|
readonly => !$Slic3r::have_threads,
|
||||||
));
|
));
|
||||||
|
$optgroup->append_single_option_line(Slic3r::GUI::OptionsGroup::Option->new(
|
||||||
|
opt_id => 'no_controller',
|
||||||
|
type => 'bool',
|
||||||
|
label => 'Disable USB/serial connection',
|
||||||
|
tooltip => 'Disable communication with the printer over a serial / USB cable. This simplifies the user interface in case the printer is never attached to the computer.',
|
||||||
|
default => $Slic3r::GUI::Settings->{_}{no_controller},
|
||||||
|
));
|
||||||
|
|
||||||
my $sizer = Wx::BoxSizer->new(wxVERTICAL);
|
my $sizer = Wx::BoxSizer->new(wxVERTICAL);
|
||||||
$sizer->Add($optgroup->sizer, 0, wxEXPAND | wxBOTTOM | wxLEFT | wxRIGHT, 10);
|
$sizer->Add($optgroup->sizer, 0, wxEXPAND | wxBOTTOM | wxLEFT | wxRIGHT, 10);
|
||||||
@ -75,7 +82,7 @@ sub new {
|
|||||||
sub _accept {
|
sub _accept {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
|
|
||||||
if ($self->{values}{mode}) {
|
if ($self->{values}{mode} || defined($self->{values}{no_controller})) {
|
||||||
Slic3r::GUI::warning_catcher($self)->("You need to restart Slic3r to make the changes effective.");
|
Slic3r::GUI::warning_catcher($self)->("You need to restart Slic3r to make the changes effective.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -107,7 +107,7 @@ sub new {
|
|||||||
});
|
});
|
||||||
|
|
||||||
$self->{config} = Slic3r::Config->new;
|
$self->{config} = Slic3r::Config->new;
|
||||||
$self->build;
|
$self->build(%params);
|
||||||
$self->update_tree;
|
$self->update_tree;
|
||||||
$self->_update;
|
$self->_update;
|
||||||
if ($self->hidden_options) {
|
if ($self->hidden_options) {
|
||||||
@ -985,6 +985,7 @@ sub title { 'Printer Settings' }
|
|||||||
|
|
||||||
sub build {
|
sub build {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
|
my (%params) = @_;
|
||||||
|
|
||||||
$self->init_config_options(qw(
|
$self->init_config_options(qw(
|
||||||
bed_shape z_offset
|
bed_shape z_offset
|
||||||
@ -1064,6 +1065,7 @@ sub build {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
if (!$params{no_controller})
|
||||||
{
|
{
|
||||||
my $optgroup = $page->new_optgroup('USB/Serial connection');
|
my $optgroup = $page->new_optgroup('USB/Serial connection');
|
||||||
my $line = Slic3r::GUI::OptionsGroup::Line->new(
|
my $line = Slic3r::GUI::OptionsGroup::Line->new(
|
||||||
@ -1239,7 +1241,7 @@ sub build {
|
|||||||
|
|
||||||
$self->{extruder_pages} = [];
|
$self->{extruder_pages} = [];
|
||||||
$self->_build_extruder_pages;
|
$self->_build_extruder_pages;
|
||||||
$self->_update_serial_ports;
|
$self->_update_serial_ports if (!$params{no_controller});
|
||||||
}
|
}
|
||||||
|
|
||||||
sub _update_serial_ports {
|
sub _update_serial_ports {
|
||||||
@ -1341,11 +1343,14 @@ sub _update {
|
|||||||
|
|
||||||
my $config = $self->{config};
|
my $config = $self->{config};
|
||||||
|
|
||||||
$self->get_field('serial_speed')->toggle($config->get('serial_port'));
|
my $serial_speed = $self->get_field('serial_speed');
|
||||||
if ($config->get('serial_speed') && $config->get('serial_port')) {
|
if ($serial_speed) {
|
||||||
$self->{serial_test_btn}->Enable;
|
$self->get_field('serial_speed')->toggle($config->get('serial_port'));
|
||||||
} else {
|
if ($config->get('serial_speed') && $config->get('serial_port')) {
|
||||||
$self->{serial_test_btn}->Disable;
|
$self->{serial_test_btn}->Enable;
|
||||||
|
} else {
|
||||||
|
$self->{serial_test_btn}->Disable;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if ($config->get('octoprint_host') && eval "use LWP::UserAgent; 1") {
|
if ($config->get('octoprint_host') && eval "use LWP::UserAgent; 1") {
|
||||||
$self->{octoprint_host_test_btn}->Enable;
|
$self->{octoprint_host_test_btn}->Enable;
|
||||||
|
10
slic3r.pl
10
slic3r.pl
@ -32,6 +32,7 @@ my %cli_options = ();
|
|||||||
'load=s@' => \$opt{load},
|
'load=s@' => \$opt{load},
|
||||||
'autosave=s' => \$opt{autosave},
|
'autosave=s' => \$opt{autosave},
|
||||||
'ignore-nonexistent-config' => \$opt{ignore_nonexistent_config},
|
'ignore-nonexistent-config' => \$opt{ignore_nonexistent_config},
|
||||||
|
'no-controller' => \$opt{no_controller},
|
||||||
'no-plater' => \$opt{no_plater},
|
'no-plater' => \$opt{no_plater},
|
||||||
'gui-mode=s' => \$opt{gui_mode},
|
'gui-mode=s' => \$opt{gui_mode},
|
||||||
'datadir=s' => \$opt{datadir},
|
'datadir=s' => \$opt{datadir},
|
||||||
@ -99,10 +100,11 @@ my $gui;
|
|||||||
if ((!@ARGV || $opt{gui}) && !$opt{save} && eval "require Slic3r::GUI; 1") {
|
if ((!@ARGV || $opt{gui}) && !$opt{save} && eval "require Slic3r::GUI; 1") {
|
||||||
{
|
{
|
||||||
no warnings 'once';
|
no warnings 'once';
|
||||||
$Slic3r::GUI::datadir = Slic3r::decode_path($opt{datadir} // '');
|
$Slic3r::GUI::datadir = Slic3r::decode_path($opt{datadir} // '');
|
||||||
$Slic3r::GUI::no_plater = $opt{no_plater};
|
$Slic3r::GUI::no_controller = $opt{no_controller};
|
||||||
$Slic3r::GUI::mode = $opt{gui_mode};
|
$Slic3r::GUI::no_plater = $opt{no_plater};
|
||||||
$Slic3r::GUI::autosave = $opt{autosave};
|
$Slic3r::GUI::mode = $opt{gui_mode};
|
||||||
|
$Slic3r::GUI::autosave = $opt{autosave};
|
||||||
}
|
}
|
||||||
$gui = Slic3r::GUI->new;
|
$gui = Slic3r::GUI->new;
|
||||||
setlocale(LC_NUMERIC, 'C');
|
setlocale(LC_NUMERIC, 'C');
|
||||||
|
Loading…
Reference in New Issue
Block a user