mirror of
https://git.mirrors.martin98.com/https://github.com/prusa3d/PrusaSlicer.git
synced 2025-05-24 13:38:14 +08:00
Persist last skein directory and last config directory used across application restarts.
This commit is contained in:
parent
0e39a89d01
commit
0aae15e2a8
@ -244,7 +244,7 @@ sub skeinpanel {
|
|||||||
sub load {
|
sub load {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
|
|
||||||
my $dir = $Slic3r::GUI::SkeinPanel::last_skein_dir || $Slic3r::GUI::SkeinPanel::last_config_dir || "";
|
my $dir = $Slic3r::GUI::Settings->{recent}{skein_directory} || $Slic3r::GUI::Settings->{recent}{config_directory} || '';
|
||||||
my $dialog = Wx::FileDialog->new($self, 'Choose one or more files (STL/OBJ/AMF):', $dir, "", $Slic3r::GUI::SkeinPanel::model_wildcard, wxFD_OPEN | wxFD_MULTIPLE | wxFD_FILE_MUST_EXIST);
|
my $dialog = Wx::FileDialog->new($self, 'Choose one or more files (STL/OBJ/AMF):', $dir, "", $Slic3r::GUI::SkeinPanel::model_wildcard, wxFD_OPEN | wxFD_MULTIPLE | wxFD_FILE_MUST_EXIST);
|
||||||
if ($dialog->ShowModal != wxID_OK) {
|
if ($dialog->ShowModal != wxID_OK) {
|
||||||
$dialog->Destroy;
|
$dialog->Destroy;
|
||||||
@ -259,7 +259,8 @@ sub load_file {
|
|||||||
my $self = shift;
|
my $self = shift;
|
||||||
my ($input_file) = @_;
|
my ($input_file) = @_;
|
||||||
|
|
||||||
$Slic3r::GUI::SkeinPanel::last_skein_dir = dirname($input_file);
|
$Slic3r::GUI::Settings->{recent}{skein_directory} = dirname($input_file);
|
||||||
|
Slic3r::GUI->save_settings;
|
||||||
|
|
||||||
my $process_dialog = Wx::ProgressDialog->new('Loading…', "Processing input file…", 100, $self, 0);
|
my $process_dialog = Wx::ProgressDialog->new('Loading…', "Processing input file…", 100, $self, 0);
|
||||||
$process_dialog->Pulse;
|
$process_dialog->Pulse;
|
||||||
|
@ -9,8 +9,6 @@ use Wx qw(:dialog :filedialog :font :icon :id :misc :notebook :panel :sizer);
|
|||||||
use Wx::Event qw(EVT_BUTTON);
|
use Wx::Event qw(EVT_BUTTON);
|
||||||
use base 'Wx::Panel';
|
use base 'Wx::Panel';
|
||||||
|
|
||||||
our $last_skein_dir;
|
|
||||||
our $last_config_dir;
|
|
||||||
our $last_input_file;
|
our $last_input_file;
|
||||||
our $last_output_file;
|
our $last_output_file;
|
||||||
our $last_config;
|
our $last_config;
|
||||||
@ -70,7 +68,7 @@ sub do_slice {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# select input file
|
# select input file
|
||||||
my $dir = $last_skein_dir || $last_config_dir || "";
|
my $dir = $Slic3r::GUI::Settings->{recent}{skein_directory} || $Slic3r::GUI::Settings->{recent}{config_directory} || '';
|
||||||
|
|
||||||
my $input_file;
|
my $input_file;
|
||||||
if (!$params{reslice}) {
|
if (!$params{reslice}) {
|
||||||
@ -96,7 +94,8 @@ sub do_slice {
|
|||||||
$input_file = $last_input_file;
|
$input_file = $last_input_file;
|
||||||
}
|
}
|
||||||
my $input_file_basename = basename($input_file);
|
my $input_file_basename = basename($input_file);
|
||||||
$last_skein_dir = dirname($input_file);
|
$Slic3r::GUI::Settings->{recent}{skein_directory} = dirname($input_file);
|
||||||
|
Slic3r::GUI->save_settings;
|
||||||
|
|
||||||
my $print = Slic3r::Print->new(config => $config);
|
my $print = Slic3r::Print->new(config => $config);
|
||||||
$print->add_object_from_file($input_file);
|
$print->add_object_from_file($input_file);
|
||||||
@ -177,13 +176,14 @@ sub save_config {
|
|||||||
};
|
};
|
||||||
Slic3r::GUI::catch_error($self) and return;
|
Slic3r::GUI::catch_error($self) and return;
|
||||||
|
|
||||||
my $dir = $last_config ? dirname($last_config) : $last_config_dir || $last_skein_dir || "";
|
my $dir = $last_config ? dirname($last_config) : $Slic3r::GUI::Settings->{recent}{config_directory} || $Slic3r::GUI::Settings->{recent}{skein_directory} || '';
|
||||||
my $filename = $last_config ? basename($last_config) : "config.ini";
|
my $filename = $last_config ? basename($last_config) : "config.ini";
|
||||||
my $dlg = Wx::FileDialog->new($self, 'Save configuration as:', $dir, $filename,
|
my $dlg = Wx::FileDialog->new($self, 'Save configuration as:', $dir, $filename,
|
||||||
$ini_wildcard, wxFD_SAVE | wxFD_OVERWRITE_PROMPT);
|
$ini_wildcard, wxFD_SAVE | wxFD_OVERWRITE_PROMPT);
|
||||||
if ($dlg->ShowModal == wxID_OK) {
|
if ($dlg->ShowModal == wxID_OK) {
|
||||||
my $file = $dlg->GetPath;
|
my $file = $dlg->GetPath;
|
||||||
$last_config_dir = dirname($file);
|
$Slic3r::GUI::Settings->{recent}{config_directory} = dirname($file);
|
||||||
|
Slic3r::GUI->save_settings;
|
||||||
$last_config = $file;
|
$last_config = $file;
|
||||||
$config->save($file);
|
$config->save($file);
|
||||||
}
|
}
|
||||||
@ -196,14 +196,15 @@ sub load_config_file {
|
|||||||
|
|
||||||
if (!$file) {
|
if (!$file) {
|
||||||
return unless $self->check_unsaved_changes;
|
return unless $self->check_unsaved_changes;
|
||||||
my $dir = $last_config ? dirname($last_config) : $last_config_dir || $last_skein_dir || "";
|
my $dir = $last_config ? dirname($last_config) : $Slic3r::GUI::Settings->{recent}{config_directory} || $Slic3r::GUI::Settings->{recent}{skein_directory} || '';
|
||||||
my $dlg = Wx::FileDialog->new($self, 'Select configuration to load:', $dir, "config.ini",
|
my $dlg = Wx::FileDialog->new($self, 'Select configuration to load:', $dir, "config.ini",
|
||||||
$ini_wildcard, wxFD_OPEN | wxFD_FILE_MUST_EXIST);
|
$ini_wildcard, wxFD_OPEN | wxFD_FILE_MUST_EXIST);
|
||||||
return unless $dlg->ShowModal == wxID_OK;
|
return unless $dlg->ShowModal == wxID_OK;
|
||||||
($file) = $dlg->GetPaths;
|
($file) = $dlg->GetPaths;
|
||||||
$dlg->Destroy;
|
$dlg->Destroy;
|
||||||
}
|
}
|
||||||
$last_config_dir = dirname($file);
|
$Slic3r::GUI::Settings->{recent}{config_directory} = dirname($file);
|
||||||
|
Slic3r::GUI->save_settings;
|
||||||
$last_config = $file;
|
$last_config = $file;
|
||||||
$_->load_external_config($file) for values %{$self->{options_tabs}};
|
$_->load_external_config($file) for values %{$self->{options_tabs}};
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user