mirror of
https://git.mirrors.martin98.com/https://github.com/slic3r/Slic3r.git
synced 2025-08-12 02:29:03 +08:00
Save shortcut options instantly
This commit is contained in:
parent
ae88f843b5
commit
a3ddac06dd
@ -378,6 +378,12 @@ sub new {
|
|||||||
} else {
|
} else {
|
||||||
# Apply the overrides to the current Print preset, potentially making it dirty
|
# Apply the overrides to the current Print preset, potentially making it dirty
|
||||||
$preset->_dirty_config->apply($self->{settings_override_config});
|
$preset->_dirty_config->apply($self->{settings_override_config});
|
||||||
|
|
||||||
|
# If this is a configured shortcut (and not just a dirty option),
|
||||||
|
# save it now.
|
||||||
|
if (any { $_ eq $opt_key } @{$preset->dirty_config->shortcuts}) {
|
||||||
|
$preset->save([$opt_key]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$self->load_presets;
|
$self->load_presets;
|
||||||
|
@ -94,7 +94,7 @@ sub prompt_unsaved_changes {
|
|||||||
if ($res == wxID_CANCEL) {
|
if ($res == wxID_CANCEL) {
|
||||||
return 0;
|
return 0;
|
||||||
} elsif ($res == wxID_YES) {
|
} elsif ($res == wxID_YES) {
|
||||||
return $self->save($self->default ? undef : $self->name);
|
return $self->default ? $self->save_prompt($parent) : $self->save;
|
||||||
} elsif ($res == wxID_NO) {
|
} elsif ($res == wxID_NO) {
|
||||||
$self->dismiss_changes;
|
$self->dismiss_changes;
|
||||||
return 1;
|
return 1;
|
||||||
@ -104,20 +104,29 @@ sub prompt_unsaved_changes {
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub save_prompt {
|
||||||
|
my ($self, $parent) = @_;
|
||||||
|
|
||||||
|
my $default_name = $self->default ? 'Untitled' : $self->name;
|
||||||
|
$default_name =~ s/\.ini$//i;
|
||||||
|
|
||||||
|
my $dlg = Slic3r::GUI::SavePresetWindow->new($parent,
|
||||||
|
default => $default_name,
|
||||||
|
values => [ map $_->name, grep !$_->default && !$_->external, @{wxTheApp->presets->{$self->name}} ],
|
||||||
|
);
|
||||||
|
return 0 unless $dlg->ShowModal == wxID_OK;
|
||||||
|
|
||||||
|
$self->save_as($dlg->get_name);
|
||||||
|
}
|
||||||
|
|
||||||
sub save {
|
sub save {
|
||||||
my ($self, $name, $parent) = @_;
|
my ($self, $opt_keys) = @_;
|
||||||
|
|
||||||
if (!$name) {
|
return $self->save_as($self->name, $opt_keys);
|
||||||
my $default_name = $self->default ? 'Untitled' : $self->name;
|
}
|
||||||
$default_name =~ s/\.ini$//i;
|
|
||||||
|
sub save_as {
|
||||||
my $dlg = Slic3r::GUI::SavePresetWindow->new($parent,
|
my ($self, $name, $opt_keys) = @_;
|
||||||
default => $default_name,
|
|
||||||
values => [ map $_->name, grep !$_->default && !$_->external, @{wxTheApp->presets->{$self->name}} ],
|
|
||||||
);
|
|
||||||
return 0 unless $dlg->ShowModal == wxID_OK;
|
|
||||||
$name = $dlg->get_name;
|
|
||||||
}
|
|
||||||
|
|
||||||
$self->rename($name);
|
$self->rename($name);
|
||||||
|
|
||||||
@ -125,8 +134,12 @@ sub save {
|
|||||||
die "Calling save() without setting filename";
|
die "Calling save() without setting filename";
|
||||||
}
|
}
|
||||||
|
|
||||||
$self->_config->clear;
|
if ($opt_keys) {
|
||||||
$self->_config->apply($self->_dirty_config);
|
$self->_config->apply_only($self->_dirty_config, $opt_keys);
|
||||||
|
} else {
|
||||||
|
$self->_config->clear;
|
||||||
|
$self->_config->apply($self->_dirty_config);
|
||||||
|
}
|
||||||
$self->_config->save($self->file);
|
$self->_config->save($self->file);
|
||||||
wxTheApp->load_presets;
|
wxTheApp->load_presets;
|
||||||
|
|
||||||
|
@ -123,7 +123,7 @@ sub save_preset {
|
|||||||
$self->{treectrl}->SetFocus;
|
$self->{treectrl}->SetFocus;
|
||||||
|
|
||||||
my $preset = $self->current_preset;
|
my $preset = $self->current_preset;
|
||||||
$preset->save(undef, $self);
|
$preset->save_prompt($self);
|
||||||
$self->load_presets;
|
$self->load_presets;
|
||||||
$self->select_preset_by_name($preset->name);
|
$self->select_preset_by_name($preset->name);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user