mirror of
https://git.mirrors.martin98.com/https://github.com/prusa3d/PrusaSlicer.git
synced 2025-06-21 20:21:10 +08:00
Updating of the right column according selected view mode
This commit is contained in:
parent
d310668462
commit
4e47f4973c
@ -510,6 +510,11 @@ sub new {
|
|||||||
# $self->Layout
|
# $self->Layout
|
||||||
# }
|
# }
|
||||||
if ($scrolled_window_sizer->IsShown(2) != $_[0]) {
|
if ($scrolled_window_sizer->IsShown(2) != $_[0]) {
|
||||||
|
Slic3r::GUI::set_show_print_info($_[0]);
|
||||||
|
my $mode = wxTheApp->{app_config}->get("view_mode");
|
||||||
|
printf $mode."\n";
|
||||||
|
return if ($mode eq "simple");
|
||||||
|
print "non-simple\n";
|
||||||
$scrolled_window_sizer->Show(2, $_[0]);
|
$scrolled_window_sizer->Show(2, $_[0]);
|
||||||
$scrolled_window_panel->Layout
|
$scrolled_window_panel->Layout
|
||||||
}
|
}
|
||||||
@ -530,14 +535,14 @@ sub new {
|
|||||||
$self->SetSizer($sizer);
|
$self->SetSizer($sizer);
|
||||||
|
|
||||||
# Send sizers/buttons to C++
|
# Send sizers/buttons to C++
|
||||||
Slic3r::GUI::set_objects_from_perl( $frequently_changed_parameters_sizer,
|
Slic3r::GUI::set_objects_from_perl( $self,
|
||||||
|
$frequently_changed_parameters_sizer,
|
||||||
$expert_mode_part_sizer,
|
$expert_mode_part_sizer,
|
||||||
$scrolled_window_sizer,
|
$scrolled_window_sizer,
|
||||||
$self->{btn_export_stl},
|
$self->{btn_export_stl},
|
||||||
$self->{btn_reslice},
|
$self->{btn_reslice},
|
||||||
$self->{btn_print},
|
$self->{btn_print},
|
||||||
$self->{btn_send_gcode},
|
$self->{btn_send_gcode} );
|
||||||
$self->{btn_export_gcode});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Last correct selected item for each preset
|
# Last correct selected item for each preset
|
||||||
|
@ -202,6 +202,7 @@ double m_brim_width = 0.0;
|
|||||||
wxButton* g_wiping_dialog_button = nullptr;
|
wxButton* g_wiping_dialog_button = nullptr;
|
||||||
|
|
||||||
//showed/hided controls according to the view mode
|
//showed/hided controls according to the view mode
|
||||||
|
wxWindow *g_plater = nullptr;
|
||||||
wxBoxSizer *g_frequently_changed_parameters_sizer = nullptr;
|
wxBoxSizer *g_frequently_changed_parameters_sizer = nullptr;
|
||||||
wxBoxSizer *g_expert_mode_part_sizer = nullptr;
|
wxBoxSizer *g_expert_mode_part_sizer = nullptr;
|
||||||
wxBoxSizer *g_scrolled_window_sizer = nullptr;
|
wxBoxSizer *g_scrolled_window_sizer = nullptr;
|
||||||
@ -209,7 +210,7 @@ wxButton *g_btn_export_stl = nullptr;
|
|||||||
wxButton *g_btn_reslice = nullptr;
|
wxButton *g_btn_reslice = nullptr;
|
||||||
wxButton *g_btn_print = nullptr;
|
wxButton *g_btn_print = nullptr;
|
||||||
wxButton *g_btn_send_gcode = nullptr;
|
wxButton *g_btn_send_gcode = nullptr;
|
||||||
wxButton *g_btn_export_gcode = nullptr;
|
bool g_show_print_info = false;
|
||||||
|
|
||||||
static void init_label_colours()
|
static void init_label_colours()
|
||||||
{
|
{
|
||||||
@ -270,11 +271,12 @@ void set_preset_updater(PresetUpdater *updater)
|
|||||||
g_PresetUpdater = updater;
|
g_PresetUpdater = updater;
|
||||||
}
|
}
|
||||||
|
|
||||||
void set_objects_from_perl( wxBoxSizer *frequently_changed_parameters_sizer,
|
void set_objects_from_perl( wxWindow* parent, wxBoxSizer *frequently_changed_parameters_sizer,
|
||||||
wxBoxSizer *expert_mode_part_sizer, wxBoxSizer *scrolled_window_sizer,
|
wxBoxSizer *expert_mode_part_sizer, wxBoxSizer *scrolled_window_sizer,
|
||||||
wxButton *btn_export_stl, wxButton *btn_reslice, wxButton *btn_print,
|
wxButton *btn_export_stl, wxButton *btn_reslice,
|
||||||
wxButton *btn_send_gcode, wxButton *btn_export_gcode)
|
wxButton *btn_print, wxButton *btn_send_gcode)
|
||||||
{
|
{
|
||||||
|
g_plater = parent;
|
||||||
g_frequently_changed_parameters_sizer = frequently_changed_parameters_sizer;
|
g_frequently_changed_parameters_sizer = frequently_changed_parameters_sizer;
|
||||||
g_expert_mode_part_sizer = expert_mode_part_sizer;
|
g_expert_mode_part_sizer = expert_mode_part_sizer;
|
||||||
g_scrolled_window_sizer = scrolled_window_sizer;
|
g_scrolled_window_sizer = scrolled_window_sizer;
|
||||||
@ -282,7 +284,11 @@ void set_objects_from_perl( wxBoxSizer *frequently_changed_parameters_sizer,
|
|||||||
g_btn_reslice = btn_reslice;
|
g_btn_reslice = btn_reslice;
|
||||||
g_btn_print = btn_print;
|
g_btn_print = btn_print;
|
||||||
g_btn_send_gcode = btn_send_gcode;
|
g_btn_send_gcode = btn_send_gcode;
|
||||||
g_btn_export_gcode = btn_export_gcode;
|
}
|
||||||
|
|
||||||
|
void set_show_print_info(bool show)
|
||||||
|
{
|
||||||
|
g_show_print_info = show;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<Tab *>& get_tabs_list()
|
std::vector<Tab *>& get_tabs_list()
|
||||||
@ -601,6 +607,7 @@ void create_preset_tabs(bool no_controller, int event_value_change, int event_pr
|
|||||||
tab->set_event_value_change(wxEventType(event_value_change));
|
tab->set_event_value_change(wxEventType(event_value_change));
|
||||||
tab->set_event_presets_changed(wxEventType(event_presets_changed));
|
tab->set_event_presets_changed(wxEventType(event_presets_changed));
|
||||||
}
|
}
|
||||||
|
update_mode();// TODO change place of call this function
|
||||||
}
|
}
|
||||||
|
|
||||||
TabIface* get_preset_tab_iface(char *name)
|
TabIface* get_preset_tab_iface(char *name)
|
||||||
@ -1082,9 +1089,51 @@ void add_frequently_changed_parameters(wxWindow* parent, wxBoxSizer* sizer, wxFl
|
|||||||
sizer->Add(m_optgroup->sizer, 1, wxEXPAND | wxBOTTOM, 2);
|
sizer->Add(m_optgroup->sizer, 1, wxEXPAND | wxBOTTOM, 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void show_frequently_changed_parameters(bool show)
|
||||||
|
{
|
||||||
|
g_frequently_changed_parameters_sizer->Show(show);
|
||||||
|
if (!show) return;
|
||||||
|
|
||||||
|
for (size_t i = 0; i < g_wxTabPanel->GetPageCount(); ++i) {
|
||||||
|
Tab *tab = dynamic_cast<Tab*>(g_wxTabPanel->GetPage(i));
|
||||||
|
if (!tab)
|
||||||
|
continue;
|
||||||
|
tab->update_wiping_button_visibility();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void show_buttons(bool show)
|
||||||
|
{
|
||||||
|
g_btn_export_stl->Show(show);
|
||||||
|
g_btn_reslice->Show(show);
|
||||||
|
for (size_t i = 0; i < g_wxTabPanel->GetPageCount(); ++i) {
|
||||||
|
TabPrinter *tab = dynamic_cast<TabPrinter*>(g_wxTabPanel->GetPage(i));
|
||||||
|
if (!tab)
|
||||||
|
continue;
|
||||||
|
g_btn_print->Show(show && !tab->m_config->opt_string("serial_port").empty());
|
||||||
|
g_btn_send_gcode->Show(show && !tab->m_config->opt_string("octoprint_host").empty());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void show_scrolled_window_sizer(bool show)
|
||||||
|
{
|
||||||
|
g_scrolled_window_sizer->Show(static_cast<size_t>(0), show);
|
||||||
|
g_scrolled_window_sizer->Show(1, show);
|
||||||
|
g_scrolled_window_sizer->Show(2, show && g_show_print_info);
|
||||||
|
}
|
||||||
|
|
||||||
void update_mode()
|
void update_mode()
|
||||||
{
|
{
|
||||||
|
wxWindowUpdateLocker noUpdates(g_plater);
|
||||||
|
ConfigMenuIDs mode = get_view_mode();
|
||||||
|
|
||||||
|
show_frequently_changed_parameters(mode >= ConfigMenuModeRegular);
|
||||||
|
g_expert_mode_part_sizer->Show(mode == ConfigMenuModeExpert);
|
||||||
|
show_scrolled_window_sizer(mode >= ConfigMenuModeRegular);
|
||||||
|
show_buttons(mode >= ConfigMenuModeRegular);
|
||||||
|
g_plater->Layout();
|
||||||
}
|
}
|
||||||
|
|
||||||
ConfigOptionsGroup* get_optgroup()
|
ConfigOptionsGroup* get_optgroup()
|
||||||
|
@ -79,14 +79,15 @@ void set_tab_panel(wxNotebook *tab_panel);
|
|||||||
void set_app_config(AppConfig *app_config);
|
void set_app_config(AppConfig *app_config);
|
||||||
void set_preset_bundle(PresetBundle *preset_bundle);
|
void set_preset_bundle(PresetBundle *preset_bundle);
|
||||||
void set_preset_updater(PresetUpdater *updater);
|
void set_preset_updater(PresetUpdater *updater);
|
||||||
void set_objects_from_perl( wxBoxSizer *frequently_changed_parameters_sizer,
|
void set_objects_from_perl( wxWindow* parent,
|
||||||
|
wxBoxSizer *frequently_changed_parameters_sizer,
|
||||||
wxBoxSizer *expert_mode_part_sizer,
|
wxBoxSizer *expert_mode_part_sizer,
|
||||||
wxBoxSizer *scrolled_window_sizer,
|
wxBoxSizer *scrolled_window_sizer,
|
||||||
wxButton *btn_export_stl,
|
wxButton *btn_export_stl,
|
||||||
wxButton *btn_reslice,
|
wxButton *btn_reslice,
|
||||||
wxButton *btn_print,
|
wxButton *btn_print,
|
||||||
wxButton *btn_send_gcode,
|
wxButton *btn_send_gcode);
|
||||||
wxButton *btn_export_gcode);
|
void set_show_print_info(bool show);
|
||||||
|
|
||||||
AppConfig* get_app_config();
|
AppConfig* get_app_config();
|
||||||
wxApp* get_app();
|
wxApp* get_app();
|
||||||
|
@ -86,17 +86,23 @@ const t_field& OptionsGroup::build_field(const t_config_option_key& id, const Co
|
|||||||
if (!this->m_disabled)
|
if (!this->m_disabled)
|
||||||
this->back_to_sys_value(opt_id);
|
this->back_to_sys_value(opt_id);
|
||||||
};
|
};
|
||||||
if (!m_is_tab_opt) {
|
|
||||||
field->m_Undo_btn->Hide();
|
|
||||||
field->m_Undo_to_sys_btn->Hide();
|
|
||||||
}
|
|
||||||
// if (nonsys_btn_icon != nullptr)
|
|
||||||
// field->set_nonsys_btn_icon(*nonsys_btn_icon);
|
|
||||||
|
|
||||||
// assign function objects for callbacks, etc.
|
// assign function objects for callbacks, etc.
|
||||||
return field;
|
return field;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void OptionsGroup::add_undo_buttuns_to_sizer(wxBoxSizer* sizer, const t_field& field)
|
||||||
|
{
|
||||||
|
if (!m_is_tab_opt) {
|
||||||
|
field->m_Undo_btn->Hide();
|
||||||
|
field->m_Undo_to_sys_btn->Hide();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
sizer->Add(field->m_Undo_to_sys_btn, 0, wxALIGN_CENTER_VERTICAL);
|
||||||
|
sizer->Add(field->m_Undo_btn, 0, wxALIGN_CENTER_VERTICAL);
|
||||||
|
}
|
||||||
|
|
||||||
void OptionsGroup::append_line(const Line& line, wxStaticText** colored_Label/* = nullptr*/) {
|
void OptionsGroup::append_line(const Line& line, wxStaticText** colored_Label/* = nullptr*/) {
|
||||||
//! if (line.sizer != nullptr || (line.widget != nullptr && line.full_width > 0)){
|
//! if (line.sizer != nullptr || (line.widget != nullptr && line.full_width > 0)){
|
||||||
if ( (line.sizer != nullptr || line.widget != nullptr) && line.full_width){
|
if ( (line.sizer != nullptr || line.widget != nullptr) && line.full_width){
|
||||||
@ -131,8 +137,7 @@ void OptionsGroup::append_line(const Line& line, wxStaticText** colored_Label/*
|
|||||||
const auto& field = build_field(option);
|
const auto& field = build_field(option);
|
||||||
|
|
||||||
auto btn_sizer = new wxBoxSizer(wxHORIZONTAL);
|
auto btn_sizer = new wxBoxSizer(wxHORIZONTAL);
|
||||||
btn_sizer->Add(field->m_Undo_to_sys_btn);
|
add_undo_buttuns_to_sizer(btn_sizer, field);
|
||||||
btn_sizer->Add(field->m_Undo_btn);
|
|
||||||
tmp_sizer->Add(btn_sizer, 0, wxEXPAND | wxALL, 0);
|
tmp_sizer->Add(btn_sizer, 0, wxEXPAND | wxALL, 0);
|
||||||
if (is_window_field(field))
|
if (is_window_field(field))
|
||||||
tmp_sizer->Add(field->getWindow(), 0, wxEXPAND | wxALL, wxOSX ? 0 : 5);
|
tmp_sizer->Add(field->getWindow(), 0, wxEXPAND | wxALL, wxOSX ? 0 : 5);
|
||||||
@ -176,8 +181,7 @@ void OptionsGroup::append_line(const Line& line, wxStaticText** colored_Label/*
|
|||||||
const auto& option = option_set.front();
|
const auto& option = option_set.front();
|
||||||
const auto& field = build_field(option, label);
|
const auto& field = build_field(option, label);
|
||||||
|
|
||||||
sizer->Add(field->m_Undo_to_sys_btn, 0, wxALIGN_CENTER_VERTICAL);
|
add_undo_buttuns_to_sizer(sizer, field);
|
||||||
sizer->Add(field->m_Undo_btn, 0, wxALIGN_CENTER_VERTICAL);
|
|
||||||
if (is_window_field(field))
|
if (is_window_field(field))
|
||||||
sizer->Add(field->getWindow(), option.opt.full_width ? 1 : 0, (option.opt.full_width ? wxEXPAND : 0) |
|
sizer->Add(field->getWindow(), option.opt.full_width ? 1 : 0, (option.opt.full_width ? wxEXPAND : 0) |
|
||||||
wxBOTTOM | wxTOP | wxALIGN_CENTER_VERTICAL, wxOSX ? 0 : 2);
|
wxBOTTOM | wxTOP | wxALIGN_CENTER_VERTICAL, wxOSX ? 0 : 2);
|
||||||
@ -205,8 +209,7 @@ void OptionsGroup::append_line(const Line& line, wxStaticText** colored_Label/*
|
|||||||
// add field
|
// add field
|
||||||
const Option& opt_ref = opt;
|
const Option& opt_ref = opt;
|
||||||
auto& field = build_field(opt_ref, label);
|
auto& field = build_field(opt_ref, label);
|
||||||
sizer->Add(field->m_Undo_to_sys_btn, 0, wxALIGN_CENTER_VERTICAL);
|
add_undo_buttuns_to_sizer(sizer, field);
|
||||||
sizer->Add(field->m_Undo_btn, 0, wxALIGN_CENTER_VERTICAL, 0);
|
|
||||||
is_sizer_field(field) ?
|
is_sizer_field(field) ?
|
||||||
sizer->Add(field->getSizer(), 0, wxALIGN_CENTER_VERTICAL, 0) :
|
sizer->Add(field->getSizer(), 0, wxALIGN_CENTER_VERTICAL, 0) :
|
||||||
sizer->Add(field->getWindow(), 0, wxALIGN_CENTER_VERTICAL, 0);
|
sizer->Add(field->getWindow(), 0, wxALIGN_CENTER_VERTICAL, 0);
|
||||||
|
@ -171,6 +171,7 @@ protected:
|
|||||||
const t_field& build_field(const t_config_option_key& id, const ConfigOptionDef& opt, wxStaticText* label = nullptr);
|
const t_field& build_field(const t_config_option_key& id, const ConfigOptionDef& opt, wxStaticText* label = nullptr);
|
||||||
const t_field& build_field(const t_config_option_key& id, wxStaticText* label = nullptr);
|
const t_field& build_field(const t_config_option_key& id, wxStaticText* label = nullptr);
|
||||||
const t_field& build_field(const Option& opt, wxStaticText* label = nullptr);
|
const t_field& build_field(const Option& opt, wxStaticText* label = nullptr);
|
||||||
|
void add_undo_buttuns_to_sizer(wxBoxSizer* sizer, const t_field& field);
|
||||||
|
|
||||||
virtual void on_kill_focus (){};
|
virtual void on_kill_focus (){};
|
||||||
virtual void on_change_OG(const t_config_option_key& opt_id, const boost::any& value);
|
virtual void on_change_OG(const t_config_option_key& opt_id, const boost::any& value);
|
||||||
|
@ -264,11 +264,11 @@ public:
|
|||||||
|
|
||||||
void on_value_change(const std::string& opt_key, const boost::any& value);
|
void on_value_change(const std::string& opt_key, const boost::any& value);
|
||||||
|
|
||||||
|
void update_wiping_button_visibility();
|
||||||
protected:
|
protected:
|
||||||
void on_presets_changed();
|
void on_presets_changed();
|
||||||
void update_preset_description_line();
|
void update_preset_description_line();
|
||||||
void update_frequently_changed_parameters();
|
void update_frequently_changed_parameters();
|
||||||
void update_wiping_button_visibility();
|
|
||||||
void update_tab_presets(wxComboCtrl* ui, bool show_incompatible);
|
void update_tab_presets(wxComboCtrl* ui, bool show_incompatible);
|
||||||
void fill_icon_descriptions();
|
void fill_icon_descriptions();
|
||||||
void set_tooltips_text();
|
void set_tooltips_text();
|
||||||
|
@ -90,24 +90,26 @@ void add_expert_mode_part(SV *ui_parent, SV *ui_sizer)
|
|||||||
%code%{ Slic3r::GUI::add_expert_mode_part((wxWindow*)wxPli_sv_2_object(aTHX_ ui_parent, "Wx::Window"),
|
%code%{ Slic3r::GUI::add_expert_mode_part((wxWindow*)wxPli_sv_2_object(aTHX_ ui_parent, "Wx::Window"),
|
||||||
(wxBoxSizer*)wxPli_sv_2_object(aTHX_ ui_sizer, "Wx::BoxSizer")); %};
|
(wxBoxSizer*)wxPli_sv_2_object(aTHX_ ui_sizer, "Wx::BoxSizer")); %};
|
||||||
|
|
||||||
void set_objects_from_perl( SV *frequently_changed_parameters_sizer,
|
void set_objects_from_perl( SV *ui_parent,
|
||||||
|
SV *frequently_changed_parameters_sizer,
|
||||||
SV *expert_mode_part_sizer,
|
SV *expert_mode_part_sizer,
|
||||||
SV *scrolled_window_sizer,
|
SV *scrolled_window_sizer,
|
||||||
SV *btn_export_stl,
|
SV *btn_export_stl,
|
||||||
SV *btn_reslice,
|
SV *btn_reslice,
|
||||||
SV *btn_print,
|
SV *btn_print,
|
||||||
SV *btn_send_gcode,
|
SV *btn_send_gcode)
|
||||||
SV *btn_export_gcode)
|
|
||||||
%code%{ Slic3r::GUI::set_objects_from_perl(
|
%code%{ Slic3r::GUI::set_objects_from_perl(
|
||||||
|
(wxWindow *)wxPli_sv_2_object(aTHX_ ui_parent, "Wx::Window"),
|
||||||
(wxBoxSizer *)wxPli_sv_2_object(aTHX_ frequently_changed_parameters_sizer, "Wx::BoxSizer"),
|
(wxBoxSizer *)wxPli_sv_2_object(aTHX_ frequently_changed_parameters_sizer, "Wx::BoxSizer"),
|
||||||
(wxBoxSizer *)wxPli_sv_2_object(aTHX_ expert_mode_part_sizer, "Wx::BoxSizer"),
|
(wxBoxSizer *)wxPli_sv_2_object(aTHX_ expert_mode_part_sizer, "Wx::BoxSizer"),
|
||||||
(wxBoxSizer *)wxPli_sv_2_object(aTHX_ scrolled_window_sizer, "Wx::BoxSizer"),
|
(wxBoxSizer *)wxPli_sv_2_object(aTHX_ scrolled_window_sizer, "Wx::BoxSizer"),
|
||||||
(wxButton *)wxPli_sv_2_object(aTHX_ btn_export_stl, "Wx::Button"),
|
(wxButton *)wxPli_sv_2_object(aTHX_ btn_export_stl, "Wx::Button"),
|
||||||
(wxButton *)wxPli_sv_2_object(aTHX_ btn_reslice, "Wx::Button"),
|
(wxButton *)wxPli_sv_2_object(aTHX_ btn_reslice, "Wx::Button"),
|
||||||
(wxButton *)wxPli_sv_2_object(aTHX_ btn_print, "Wx::Button"),
|
(wxButton *)wxPli_sv_2_object(aTHX_ btn_print, "Wx::Button"),
|
||||||
(wxButton *)wxPli_sv_2_object(aTHX_ btn_send_gcode, "Wx::Button"),
|
(wxButton *)wxPli_sv_2_object(aTHX_ btn_send_gcode, "Wx::Button")); %};
|
||||||
(wxButton *)wxPli_sv_2_object(aTHX_ btn_export_gcode, "Wx::Button")); %};
|
|
||||||
|
|
||||||
|
void set_show_print_info(bool show)
|
||||||
|
%code%{ Slic3r::GUI::set_show_print_info(show); %};
|
||||||
|
|
||||||
std::string fold_utf8_to_ascii(const char *src)
|
std::string fold_utf8_to_ascii(const char *src)
|
||||||
%code%{ RETVAL = Slic3r::fold_utf8_to_ascii(src); %};
|
%code%{ RETVAL = Slic3r::fold_utf8_to_ascii(src); %};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user