mirror of
https://git.mirrors.martin98.com/https://github.com/slic3r/Slic3r.git
synced 2025-08-14 05:35:52 +08:00
Go back to using regular Notebook instead of AuiNotebook for tabs.
This commit is contained in:
parent
2fae745f56
commit
26b2a1e0cd
@ -9,9 +9,8 @@ use File::Basename qw(basename dirname);
|
|||||||
use List::Util qw(min);
|
use List::Util qw(min);
|
||||||
use Slic3r::Geometry qw(X Y Z);
|
use Slic3r::Geometry qw(X Y Z);
|
||||||
use Wx qw(:frame :bitmap :id :misc :panel :sizer :menu :dialog :filedialog
|
use Wx qw(:frame :bitmap :id :misc :panel :sizer :menu :dialog :filedialog
|
||||||
:font :icon :aui wxTheApp);
|
:font :icon :notebook wxTheApp);
|
||||||
use Wx::AUI;
|
use Wx::Event qw(EVT_CLOSE EVT_NOTEBOOK_PAGE_CHANGED);
|
||||||
use Wx::Event qw(EVT_CLOSE EVT_AUINOTEBOOK_PAGE_CHANGED EVT_AUINOTEBOOK_PAGE_CLOSE);
|
|
||||||
use base 'Wx::Frame';
|
use base 'Wx::Frame';
|
||||||
|
|
||||||
our $qs_last_input_file;
|
our $qs_last_input_file;
|
||||||
@ -94,26 +93,10 @@ sub new {
|
|||||||
sub _init_tabpanel {
|
sub _init_tabpanel {
|
||||||
my ($self) = @_;
|
my ($self) = @_;
|
||||||
|
|
||||||
$self->{tabpanel} = my $panel = Wx::AuiNotebook->new($self, -1, wxDefaultPosition, wxDefaultSize, wxAUI_NB_TOP);
|
$self->{tabpanel} = my $panel = Wx::Notebook->new($self, -1, wxDefaultPosition, wxDefaultSize, wxNB_TOP | wxTAB_TRAVERSAL);
|
||||||
EVT_AUINOTEBOOK_PAGE_CHANGED($self, $self->{tabpanel}, sub {
|
EVT_NOTEBOOK_PAGE_CHANGED($self, $self->{tabpanel}, sub {
|
||||||
my $panel = $self->{tabpanel}->GetPage($self->{tabpanel}->GetSelection);
|
my $panel = $self->{tabpanel}->GetCurrentPage;
|
||||||
$panel->OnActivate if $panel->can('OnActivate');
|
$panel->OnActivate if $panel->can('OnActivate');
|
||||||
if ($self->{tabpanel}->GetSelection > 1) {
|
|
||||||
$self->{tabpanel}->SetWindowStyle($self->{tabpanel}->GetWindowStyleFlag);
|
|
||||||
} elsif(!$Slic3r::GUI::Settings->{_}{show_host} && ($self->{tabpanel}->GetSelection == 1)){
|
|
||||||
$self->{tabpanel}->SetWindowStyle($self->{tabpanel}->GetWindowStyleFlag | wxAUI_NB_CLOSE_ON_ACTIVE_TAB);
|
|
||||||
} else {
|
|
||||||
$self->{tabpanel}->SetWindowStyle($self->{tabpanel}->GetWindowStyleFlag & ~wxAUI_NB_CLOSE_ON_ACTIVE_TAB);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
EVT_AUINOTEBOOK_PAGE_CLOSE($self, $self->{tabpanel}, sub {
|
|
||||||
my $panel = $self->{tabpanel}->GetPage($self->{tabpanel}->GetSelection);
|
|
||||||
if ($panel->isa('Slic3r::GUI::PresetEditor')) {
|
|
||||||
delete $self->{preset_editor_tabs}{$panel->name};
|
|
||||||
}
|
|
||||||
wxTheApp->CallAfter(sub {
|
|
||||||
$self->{tabpanel}->SetSelection(0);
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
$panel->AddPage($self->{plater} = Slic3r::GUI::Plater->new($panel), "Plater");
|
$panel->AddPage($self->{plater} = Slic3r::GUI::Plater->new($panel), "Plater");
|
||||||
@ -121,9 +104,9 @@ sub _init_tabpanel {
|
|||||||
if ($Slic3r::GUI::Settings->{_}{show_host});
|
if ($Slic3r::GUI::Settings->{_}{show_host});
|
||||||
|
|
||||||
if ($Slic3r::GUI::Settings->{_}{tabbed_preset_editors}) {
|
if ($Slic3r::GUI::Settings->{_}{tabbed_preset_editors}) {
|
||||||
$self->{plater}->show_preset_editor('print', 0,0,0);
|
foreach my $group (qw(print filament printer)) {
|
||||||
$self->{plater}->show_preset_editor('filament', 0,0,0);
|
$self->{plater}->show_preset_editor($group, 0, $panel);
|
||||||
$self->{plater}->show_preset_editor('printer', 0, 0, 0);
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -884,7 +884,7 @@ sub selected_presets {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sub show_preset_editor {
|
sub show_preset_editor {
|
||||||
my ($self, $group, $i, $load) = @_;
|
my ($self, $group, $i, $panel) = @_;
|
||||||
|
|
||||||
wxTheApp->CallAfter(sub {
|
wxTheApp->CallAfter(sub {
|
||||||
my @presets = $self->selected_presets($group);
|
my @presets = $self->selected_presets($group);
|
||||||
@ -894,13 +894,18 @@ sub show_preset_editor {
|
|||||||
my $mainframe = $self->GetFrame;
|
my $mainframe = $self->GetFrame;
|
||||||
my $tabpanel = $mainframe->{tabpanel};
|
my $tabpanel = $mainframe->{tabpanel};
|
||||||
if (exists $mainframe->{preset_editor_tabs}{$group}) {
|
if (exists $mainframe->{preset_editor_tabs}{$group}) {
|
||||||
|
my $tabindex = 0;
|
||||||
|
$tabindex = 1 if $Slic3r::GUI::Settings->{_}{show_host};
|
||||||
|
$tabindex += 1 if $group eq 'print';
|
||||||
|
$tabindex += 2 if $group eq 'filament';
|
||||||
|
$tabindex += 3 if $group eq 'printer';
|
||||||
# we already have an open editor
|
# we already have an open editor
|
||||||
$tabpanel->SetSelection($tabpanel->GetPageIndex($mainframe->{preset_editor_tabs}{$group}));
|
$tabpanel->SetSelection($tabindex);
|
||||||
return;
|
return;
|
||||||
} elsif ($Slic3r::GUI::Settings->{_}{tabbed_preset_editors}) {
|
} elsif ($Slic3r::GUI::Settings->{_}{tabbed_preset_editors}) {
|
||||||
my $class = "Slic3r::GUI::PresetEditor::" . ucfirst($group);
|
my $class = "Slic3r::GUI::PresetEditor::" . ucfirst($group);
|
||||||
$mainframe->{preset_editor_tabs}{$group} = $preset_editor = $class->new($self->GetFrame);
|
$mainframe->{preset_editor_tabs}{$group} = $preset_editor = $class->new($tabpanel);
|
||||||
$tabpanel->AddPage($preset_editor, ucfirst($group) . " Settings", $load);
|
$tabpanel->AddPage($preset_editor, ucfirst($group) . " Settings");
|
||||||
} else {
|
} else {
|
||||||
my $class = "Slic3r::GUI::PresetEditorDialog::" . ucfirst($group);
|
my $class = "Slic3r::GUI::PresetEditorDialog::" . ucfirst($group);
|
||||||
$dlg = $class->new($self);
|
$dlg = $class->new($self);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user