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>2013-12-17 19:09:07 +0400
committerAlessandro Ranellucci <aar@cpan.org>2013-12-17 19:09:07 +0400
commit69ed69179b39747d8f51b9c68c39a39285ea4fb4 (patch)
treee6ed4d99656adbff15980f6b21785f456f26ddba
parent0afee63e84d61b4af66982723b7777518dac900c (diff)
Handle read_from_file() exceptions in GUI. #1619
-rw-r--r--lib/Slic3r/GUI/Plater.pm5
-rw-r--r--lib/Slic3r/GUI/SkeinPanel.pm9
2 files changed, 11 insertions, 3 deletions
diff --git a/lib/Slic3r/GUI/Plater.pm b/lib/Slic3r/GUI/Plater.pm
index 5eec59547..fef88daa2 100644
--- a/lib/Slic3r/GUI/Plater.pm
+++ b/lib/Slic3r/GUI/Plater.pm
@@ -384,7 +384,10 @@ sub load_file {
$process_dialog->Pulse;
local $SIG{__WARN__} = Slic3r::GUI::warning_catcher($self);
- my $model = Slic3r::Model->read_from_file($input_file);
+
+ my $model = eval { Slic3r::Model->read_from_file($input_file) };
+ Slic3r::GUI::show_error($self, $@) if $@;
+
for my $i (0 .. $#{$model->objects}) {
my $object = Slic3r::GUI::Plater::Object->new(
name => $basename,
diff --git a/lib/Slic3r/GUI/SkeinPanel.pm b/lib/Slic3r/GUI/SkeinPanel.pm
index 2ea3dd765..20e573d51 100644
--- a/lib/Slic3r/GUI/SkeinPanel.pm
+++ b/lib/Slic3r/GUI/SkeinPanel.pm
@@ -133,8 +133,11 @@ sub quick_slice {
$Slic3r::GUI::Settings->{recent}{skein_directory} = dirname($input_file);
Slic3r::GUI->save_settings;
+ my $model = eval { Slic3r::Model->read_from_file($input_file) };
+ Slic3r::GUI::show_error($self, $@) if $@;
+
my $print = $self->init_print;
- $print->add_model(Slic3r::Model->read_from_file($input_file));
+ $print->add_model($model);
$print->validate;
# select output file
@@ -364,7 +367,9 @@ sub combine_stls {
$output_file = $dlg->GetPath;
}
- my @models = map Slic3r::Model->read_from_file($_), @input_files;
+ my @models = eval { map Slic3r::Model->read_from_file($_), @input_files };
+ Slic3r::GUI::show_error($self, $@) if $@;
+
my $new_model = Slic3r::Model->new;
my $new_object = $new_model->add_object;
for my $m (0 .. $#models) {