mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-12 01:07:57 -06:00
merged save_window_pos / restore_window_pos from @alexrj Slic3r.
This commit is contained in:
parent
38e713c23c
commit
632bf56f29
3 changed files with 29 additions and 18 deletions
|
@ -404,4 +404,29 @@ sub scan_serial_ports {
|
||||||
return grep !/Bluetooth|FireFly/, @ports;
|
return grep !/Bluetooth|FireFly/, @ports;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub save_window_pos {
|
||||||
|
my ($self, $window, $name) = @_;
|
||||||
|
|
||||||
|
$Settings->{_}{"${name}_pos"} = join ',', $window->GetScreenPositionXY;
|
||||||
|
$Settings->{_}{"${name}_size"} = join ',', $window->GetSizeWH;
|
||||||
|
$Settings->{_}{"${name}_maximized"} = $window->IsMaximized;
|
||||||
|
$self->save_settings;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub restore_window_pos {
|
||||||
|
my ($self, $window, $name) = @_;
|
||||||
|
|
||||||
|
if (defined $Settings->{_}{"${name}_pos"}) {
|
||||||
|
my $size = [ split ',', $Settings->{_}{"${name}_size"}, 2 ];
|
||||||
|
$window->SetSize($size);
|
||||||
|
|
||||||
|
my $display = Wx::Display->new->GetClientArea();
|
||||||
|
my $pos = [ split ',', $Settings->{_}{"${name}_pos"}, 2 ];
|
||||||
|
if (($pos->[0] + $size->[0]/2) < $display->GetRight && ($pos->[1] + $size->[1]/2) < $display->GetBottom) {
|
||||||
|
$window->Move($pos);
|
||||||
|
}
|
||||||
|
$window->Maximize(1) if $Settings->{_}{"${name}_maximized"};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
|
|
@ -60,19 +60,8 @@ sub new {
|
||||||
$self->SetSizer($sizer);
|
$self->SetSizer($sizer);
|
||||||
$self->Fit;
|
$self->Fit;
|
||||||
$self->SetMinSize([760, 490]);
|
$self->SetMinSize([760, 490]);
|
||||||
if (defined $Slic3r::GUI::Settings->{_}{main_frame_size}) {
|
|
||||||
my $size = [ split ',', $Slic3r::GUI::Settings->{_}{main_frame_size}, 2 ];
|
|
||||||
$self->SetSize($size);
|
|
||||||
|
|
||||||
my $display = Wx::Display->new->GetClientArea();
|
|
||||||
my $pos = [ split ',', $Slic3r::GUI::Settings->{_}{main_frame_pos}, 2 ];
|
|
||||||
if (($pos->[X] + $size->[X]/2) < $display->GetRight && ($pos->[Y] + $size->[Y]/2) < $display->GetBottom) {
|
|
||||||
$self->Move($pos);
|
|
||||||
}
|
|
||||||
$self->Maximize(1) if $Slic3r::GUI::Settings->{_}{main_frame_maximized};
|
|
||||||
} else {
|
|
||||||
$self->SetSize($self->GetMinSize);
|
$self->SetSize($self->GetMinSize);
|
||||||
}
|
wxTheApp->restore_window_pos($self, "main_frame");
|
||||||
$self->Show;
|
$self->Show;
|
||||||
$self->Layout;
|
$self->Layout;
|
||||||
}
|
}
|
||||||
|
@ -87,10 +76,7 @@ sub new {
|
||||||
}
|
}
|
||||||
|
|
||||||
# save window size
|
# save window size
|
||||||
$Slic3r::GUI::Settings->{_}{main_frame_pos} = join ',', $self->GetScreenPositionXY;
|
wxTheApp->save_window_pos($self, "main_frame");
|
||||||
$Slic3r::GUI::Settings->{_}{main_frame_size} = join ',', $self->GetSizeWH;
|
|
||||||
$Slic3r::GUI::Settings->{_}{main_frame_maximized} = $self->IsMaximized;
|
|
||||||
wxTheApp->save_settings;
|
|
||||||
|
|
||||||
# propagate event
|
# propagate event
|
||||||
$event->Skip;
|
$event->Skip;
|
||||||
|
|
|
@ -7,7 +7,7 @@ use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
use utf8;
|
use utf8;
|
||||||
|
|
||||||
use Wx qw(:dialog :id :misc :sizer :systemsettings :notebook wxTAB_TRAVERSAL);
|
use Wx qw(:dialog :id :misc :sizer :systemsettings :notebook wxTAB_TRAVERSAL wxTheApp);
|
||||||
use Wx::Event qw(EVT_BUTTON);
|
use Wx::Event qw(EVT_BUTTON);
|
||||||
use base 'Wx::Dialog';
|
use base 'Wx::Dialog';
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue