Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/prusa3d/PrusaSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlessandro Ranellucci <aar@cpan.org>2012-07-15 20:37:00 +0400
committerAlessandro Ranellucci <aar@cpan.org>2012-07-15 20:37:00 +0400
commitb37a77ee633ff556303908d54bc744c27edb80fd (patch)
treea5cfa456e81577d686b44f08477d547b8b977c4f /slic3r.pl
parent9210c708fc63edf0e92a05fc1f7229de57880b99 (diff)
Apply command line options to GUI
Diffstat (limited to 'slic3r.pl')
-rwxr-xr-xslic3r.pl29
1 files changed, 20 insertions, 9 deletions
diff --git a/slic3r.pl b/slic3r.pl
index d9113747b..b573cc312 100755
--- a/slic3r.pl
+++ b/slic3r.pl
@@ -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) {