Updating of the right column according selected view mode
This commit is contained in:
parent
d310668462
commit
4e47f4973c
7 changed files with 92 additions and 31 deletions
|
@ -509,7 +509,12 @@ sub new {
|
|||
# $right_sizer->Show(5, $_[0]);
|
||||
# $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_panel->Layout
|
||||
}
|
||||
|
@ -530,14 +535,14 @@ sub new {
|
|||
$self->SetSizer($sizer);
|
||||
|
||||
# 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,
|
||||
$scrolled_window_sizer,
|
||||
$self->{btn_export_stl},
|
||||
$self->{btn_reslice},
|
||||
$self->{btn_print},
|
||||
$self->{btn_send_gcode},
|
||||
$self->{btn_export_gcode});
|
||||
$self->{btn_send_gcode} );
|
||||
}
|
||||
|
||||
# Last correct selected item for each preset
|
||||
|
|
|
@ -202,6 +202,7 @@ double m_brim_width = 0.0;
|
|||
wxButton* g_wiping_dialog_button = nullptr;
|
||||
|
||||
//showed/hided controls according to the view mode
|
||||
wxWindow *g_plater = nullptr;
|
||||
wxBoxSizer *g_frequently_changed_parameters_sizer = nullptr;
|
||||
wxBoxSizer *g_expert_mode_part_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_print = nullptr;
|
||||
wxButton *g_btn_send_gcode = nullptr;
|
||||
wxButton *g_btn_export_gcode = nullptr;
|
||||
bool g_show_print_info = false;
|
||||
|
||||
static void init_label_colours()
|
||||
{
|
||||
|
@ -270,11 +271,12 @@ void set_preset_updater(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,
|
||||
wxButton *btn_export_stl, wxButton *btn_reslice, wxButton *btn_print,
|
||||
wxButton *btn_send_gcode, wxButton *btn_export_gcode)
|
||||
wxButton *btn_export_stl, wxButton *btn_reslice,
|
||||
wxButton *btn_print, wxButton *btn_send_gcode)
|
||||
{
|
||||
g_plater = parent;
|
||||
g_frequently_changed_parameters_sizer = frequently_changed_parameters_sizer;
|
||||
g_expert_mode_part_sizer = expert_mode_part_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_print = btn_print;
|
||||
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()
|
||||
|
@ -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_presets_changed(wxEventType(event_presets_changed));
|
||||
}
|
||||
update_mode();// TODO change place of call this function
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
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()
|
||||
{
|
||||
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()
|
||||
|
|
|
@ -79,14 +79,15 @@ void set_tab_panel(wxNotebook *tab_panel);
|
|||
void set_app_config(AppConfig *app_config);
|
||||
void set_preset_bundle(PresetBundle *preset_bundle);
|
||||
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 *scrolled_window_sizer,
|
||||
wxButton *btn_export_stl,
|
||||
wxButton *btn_reslice,
|
||||
wxButton *btn_print,
|
||||
wxButton *btn_send_gcode,
|
||||
wxButton *btn_export_gcode);
|
||||
wxButton *btn_send_gcode);
|
||||
void set_show_print_info(bool show);
|
||||
|
||||
AppConfig* get_app_config();
|
||||
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)
|
||||
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.
|
||||
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*/) {
|
||||
//! if (line.sizer != nullptr || (line.widget != nullptr && line.full_width > 0)){
|
||||
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);
|
||||
|
||||
auto btn_sizer = new wxBoxSizer(wxHORIZONTAL);
|
||||
btn_sizer->Add(field->m_Undo_to_sys_btn);
|
||||
btn_sizer->Add(field->m_Undo_btn);
|
||||
add_undo_buttuns_to_sizer(btn_sizer, field);
|
||||
tmp_sizer->Add(btn_sizer, 0, wxEXPAND | wxALL, 0);
|
||||
if (is_window_field(field))
|
||||
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& field = build_field(option, label);
|
||||
|
||||
sizer->Add(field->m_Undo_to_sys_btn, 0, wxALIGN_CENTER_VERTICAL);
|
||||
sizer->Add(field->m_Undo_btn, 0, wxALIGN_CENTER_VERTICAL);
|
||||
add_undo_buttuns_to_sizer(sizer, field);
|
||||
if (is_window_field(field))
|
||||
sizer->Add(field->getWindow(), option.opt.full_width ? 1 : 0, (option.opt.full_width ? wxEXPAND : 0) |
|
||||
wxBOTTOM | wxTOP | wxALIGN_CENTER_VERTICAL, wxOSX ? 0 : 2);
|
||||
|
@ -205,8 +209,7 @@ void OptionsGroup::append_line(const Line& line, wxStaticText** colored_Label/*
|
|||
// add field
|
||||
const Option& opt_ref = opt;
|
||||
auto& field = build_field(opt_ref, label);
|
||||
sizer->Add(field->m_Undo_to_sys_btn, 0, wxALIGN_CENTER_VERTICAL);
|
||||
sizer->Add(field->m_Undo_btn, 0, wxALIGN_CENTER_VERTICAL, 0);
|
||||
add_undo_buttuns_to_sizer(sizer, field);
|
||||
is_sizer_field(field) ?
|
||||
sizer->Add(field->getSizer(), 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, 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_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 update_wiping_button_visibility();
|
||||
protected:
|
||||
void on_presets_changed();
|
||||
void update_preset_description_line();
|
||||
void update_frequently_changed_parameters();
|
||||
void update_wiping_button_visibility();
|
||||
void update_tab_presets(wxComboCtrl* ui, bool show_incompatible);
|
||||
void fill_icon_descriptions();
|
||||
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"),
|
||||
(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 *scrolled_window_sizer,
|
||||
SV *btn_export_stl,
|
||||
SV *btn_reslice,
|
||||
SV *btn_print,
|
||||
SV *btn_send_gcode,
|
||||
SV *btn_export_gcode)
|
||||
%code%{ Slic3r::GUI::set_objects_from_perl(
|
||||
SV *btn_send_gcode)
|
||||
%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_ expert_mode_part_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_reslice, "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_export_gcode, "Wx::Button")); %};
|
||||
(wxButton *)wxPli_sv_2_object(aTHX_ btn_send_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)
|
||||
%code%{ RETVAL = Slic3r::fold_utf8_to_ascii(src); %};
|
||||
|
|
Loading…
Reference in a new issue