From cf4900f5c80f93fe34be60dee230434208e30b04 Mon Sep 17 00:00:00 2001 From: Michael Kirsch Date: Sat, 13 Jul 2019 00:05:54 +0200 Subject: [PATCH] adapt reload dialog for new option --- lib/Slic3r/GUI/Plater.pm | 12 +++++++++--- lib/Slic3r/GUI/ReloadDialog.pm | 33 +++++++++++++++++++++++---------- 2 files changed, 32 insertions(+), 13 deletions(-) diff --git a/lib/Slic3r/GUI/Plater.pm b/lib/Slic3r/GUI/Plater.pm index b6cf263a9..e4b6f012a 100644 --- a/lib/Slic3r/GUI/Plater.pm +++ b/lib/Slic3r/GUI/Plater.pm @@ -2558,21 +2558,27 @@ sub reload_from_disk { } my $reload_behavior = $Slic3r::GUI::Settings->{_}{reload_behavior}; + my $reload_preserve = $Slic3r::GUI::Settings->{_}{reload_preserve}; # ask the user how to proceed, if option is selected in preferences - if ($org_obj_has_modifiers && !$Slic3r::GUI::Settings->{_}{reload_hide_dialog}) { - my $dlg = Slic3r::GUI::ReloadDialog->new(undef,$reload_behavior); + if (!$Slic3r::GUI::Settings->{_}{reload_hide_dialog}) { + my $dlg = Slic3r::GUI::ReloadDialog->new(undef,$reload_behavior,$reload_preserve); my $res = $dlg->ShowModal; if ($res==wxID_CANCEL) { $dlg->Destroy; return; } - $reload_behavior = $dlg->GetSelection; + $reload_behavior = $dlg->GetAdditionalOption; + $reload_preserve = $dlg->GetPreserveTrafo; my $save = 0; if ($reload_behavior != $Slic3r::GUI::Settings->{_}{reload_behavior}) { $Slic3r::GUI::Settings->{_}{reload_behavior} = $reload_behavior; $save = 1; } + if ($reload_preserve != $Slic3r::GUI::Settings->{_}{reload_preserve}) { + $Slic3r::GUI::Settings->{_}{reload_preserve} = $reload_preserve; + $save = 1; + } if ($dlg->GetHideOnNext) { $Slic3r::GUI::Settings->{_}{reload_hide_dialog} = 1; $save = 1; diff --git a/lib/Slic3r/GUI/ReloadDialog.pm b/lib/Slic3r/GUI/ReloadDialog.pm index bb11bf089..0cd8310ea 100644 --- a/lib/Slic3r/GUI/ReloadDialog.pm +++ b/lib/Slic3r/GUI/ReloadDialog.pm @@ -11,11 +11,11 @@ use base 'Wx::Dialog'; sub new { my $class = shift; - my ($parent,$default_selection) = @_; - my $self = $class->SUPER::new($parent, -1, "Additional parts and modifiers detected", wxDefaultPosition, [350,100], wxDEFAULT_DIALOG_STYLE); + my ($parent,$default_selection,$default_preserve) = @_; + my $self = $class->SUPER::new($parent, -1, "Reload options", wxDefaultPosition, [350,100], wxDEFAULT_DIALOG_STYLE); # label - my $text = Wx::StaticText->new($self, -1, "Additional parts and modifiers are loaded in the current model. \n\nHow do you want to proceed?", wxDefaultPosition, wxDefaultSize); + my $text_additional = Wx::StaticText->new($self, -1, "Handling of additional parts and modifiers:", wxDefaultPosition, wxDefaultSize); # selector $self->{choice} = my $choice = Wx::Choice->new($self, -1, wxDefaultPosition, wxDefaultSize, []); @@ -24,14 +24,23 @@ sub new { $choice->Append("Reload main file, discard added parts & modifiers"); $choice->SetSelection($default_selection); - # checkbox - $self->{checkbox} = my $checkbox = Wx::CheckBox->new($self, -1, "Don't ask again"); + # label + my $text_trafo = Wx::StaticText->new($self, -1, "Handling of transformations made inside Slic3r:", wxDefaultPosition, wxDefaultSize); + + # cb_Transformation + $self->{cb_Transformation} = my $cb_Transformation = Wx::CheckBox->new($self, -1, "Preserve transformation"); + $cb_Transformation->SetValue($default_preserve); + + # cb_HideDialog + $self->{cb_HideDialog} = my $cb_HideDialog = Wx::CheckBox->new($self, -1, "Don't ask again"); my $vsizer = Wx::BoxSizer->new(wxVERTICAL); my $hsizer = Wx::BoxSizer->new(wxHORIZONTAL); - $vsizer->Add($text, 0, wxEXPAND | wxALL, 10); - $vsizer->Add($choice, 0, wxEXPAND | wxALL, 10); - $hsizer->Add($checkbox, 1, wxEXPAND | wxALL, 10); + $vsizer->Add($text_additional, 0, wxEXPAND | wxALL, 10); + $vsizer->Add($choice, 0, wxEXPAND | wxLEFT | wxBOTTOM | wxRIGHT, 10); + $vsizer->Add($text_trafo, 0, wxEXPAND | wxALL, 10); + $vsizer->Add($cb_Transformation, 0, wxEXPAND | wxLEFT | wxBOTTOM | wxRIGHT, 10); + $hsizer->Add($cb_HideDialog, 1, wxEXPAND | wxALL, 10); $hsizer->Add($self->CreateButtonSizer(wxOK | wxCANCEL), 0, wxEXPAND | wxALL, 10); $vsizer->Add($hsizer, 0, wxEXPAND | wxALL, 0); @@ -48,13 +57,17 @@ sub new { return $self; } -sub GetSelection { +sub GetAdditionalOption { my ($self) = @_; return $self->{choice}->GetSelection; } +sub GetPreserveTrafo { + my ($self) = @_; + return $self->{cb_Transformation}->GetValue; +} sub GetHideOnNext { my ($self) = @_; - return $self->{checkbox}->GetValue; + return $self->{cb_HideDialog}->GetValue; } 1;