diff options
author | Alessandro Ranellucci <aar@cpan.org> | 2012-07-15 20:37:00 +0400 |
---|---|---|
committer | Alessandro Ranellucci <aar@cpan.org> | 2012-07-15 20:37:00 +0400 |
commit | b37a77ee633ff556303908d54bc744c27edb80fd (patch) | |
tree | a5cfa456e81577d686b44f08477d547b8b977c4f /slic3r.pl | |
parent | 9210c708fc63edf0e92a05fc1f7229de57880b99 (diff) |
Apply command line options to GUI
Diffstat (limited to 'slic3r.pl')
-rwxr-xr-x | slic3r.pl | 29 |
1 files changed, 20 insertions, 9 deletions
@@ -9,6 +9,7 @@ BEGIN { } use Getopt::Long qw(:config no_auto_abbrev); +use List::Util qw(first); use Slic3r; $|++; @@ -57,27 +58,37 @@ if ($opt{load}) { } # validate command line options +delete $cli_options{$_} for grep !defined $cli_options{$_}, keys %cli_options; Slic3r::Config->validate_cli(\%cli_options); +# initialize GUI +my $gui; +if (!@ARGV && !$opt{save} && eval "require Slic3r::GUI; 1") { + $gui = Slic3r::GUI->new; + $gui->{skeinpanel}->load_config($opt{load}[0]) if $opt{load}; +} +die $@ if $@ && $opt{gui}; + # apply command line options -Slic3r::Config->set($_ => $cli_options{$_}) - for grep defined $cli_options{$_}, keys %cli_options; +Slic3r::Config->set($_ => $cli_options{$_}) for keys %cli_options; -# validate configuration +# validate configuration, convert options like --print-center to arrayrefs, init extruders etc. Slic3r::Config->validate; # save configuration Slic3r::Config->save($opt{save}) if $opt{save}; -# start GUI -if (!@ARGV && !$opt{save} && eval "require Slic3r::GUI; 1") { - no warnings 'once'; - my $gui = Slic3r::GUI->new; - $gui->{skeinpanel}->load_config($opt{load}[0]) if $opt{load}; +# apply command line options to GUI as well and start it +if ($gui) { + for my $opt_key (keys %cli_options) { + no warnings 'once'; + ( $Slic3r::GUI::OptionsGroup::reload_callbacks{$opt_key} || sub {} )->(); + my $group = first { $opt_key ~~ @$_ } keys %Slic3r::Groups; + $gui->{skeinpanel}{options_tabs}{$group}->set_dirty(1) if $group; + } $gui->MainLoop; exit; } -die $@ if $@ && $opt{gui}; if (@ARGV) { while (my $input_file = shift @ARGV) { |