Temporary changes and code cleaning
This commit is contained in:
parent
9ce9b87e81
commit
8f6e3cc43b
11 changed files with 92 additions and 281 deletions
|
@ -119,11 +119,6 @@ void break_to_debugger()
|
|||
// #ys_FIXME_for_delete
|
||||
std::vector<Tab *> g_tabs_list;
|
||||
|
||||
std::vector <std::shared_ptr<ConfigOptionsGroup>> m_optgroups;
|
||||
double m_brim_width = 0.0;
|
||||
size_t m_label_width = 100;
|
||||
wxButton* g_wiping_dialog_button = nullptr;
|
||||
|
||||
//showed/hided controls according to the view mode
|
||||
wxWindow *g_right_panel = nullptr;
|
||||
wxBoxSizer *g_frequently_changed_parameters_sizer = nullptr;
|
||||
|
@ -192,8 +187,6 @@ void set_objects_list_sizer(wxBoxSizer *objects_list_sizer){
|
|||
g_object_list_sizer = objects_list_sizer;
|
||||
}
|
||||
|
||||
static wxString dots("…", wxConvUTF8);
|
||||
|
||||
void open_model(wxWindow *parent, wxArrayString& input_files){
|
||||
auto dialog = new wxFileDialog(parent /*? parent : GetTopWindow()*/,
|
||||
_(L("Choose one or more files (STL/OBJ/AMF/3MF/PRUSA):")),
|
||||
|
@ -432,11 +425,6 @@ void set_print_callback_event(Print *print, int id)
|
|||
wxWindow* get_right_panel(){
|
||||
return g_right_panel;
|
||||
}
|
||||
|
||||
const size_t& label_width(){
|
||||
return m_label_width;
|
||||
}
|
||||
|
||||
void create_combochecklist(wxComboCtrl* comboCtrl, std::string text, std::string items, bool initial_value)
|
||||
{
|
||||
if (comboCtrl == nullptr)
|
||||
|
@ -531,16 +519,18 @@ void set_model_events_from_perl(Model &model,
|
|||
// add_collapsible_panes(parent, sizer);
|
||||
}
|
||||
|
||||
void add_frequently_changed_parameters(wxWindow* parent, wxBoxSizer* sizer, wxFlexGridSizer* preset_sizer)
|
||||
void Sidebar::add_frequently_changed_parameters(wxWindow* parent, wxBoxSizer* sizer/*, wxFlexGridSizer* preset_sizer*/)
|
||||
{
|
||||
DynamicPrintConfig* config = &wxGetApp().preset_bundle->prints.get_edited_preset().config;
|
||||
std::shared_ptr<ConfigOptionsGroup> optgroup = std::make_shared<ConfigOptionsGroup>(parent, "", config);
|
||||
const wxArrayInt& ar = preset_sizer->GetColWidths();
|
||||
m_label_width = ar.IsEmpty() ? 100 : ar.front()-4;
|
||||
optgroup->label_width = m_label_width;
|
||||
// const wxArrayInt& ar = preset_sizer->GetColWidths();
|
||||
// m_label_width = ar.IsEmpty() ? 100 : ar.front()-4;
|
||||
optgroup->label_width = 100;// m_label_width;
|
||||
|
||||
auto m_optgroups = get_optgroups();
|
||||
|
||||
//Frequently changed parameters
|
||||
optgroup->m_on_change = [config](t_config_option_key opt_key, boost::any value){
|
||||
optgroup->m_on_change = [config, m_optgroups](t_config_option_key opt_key, boost::any value){
|
||||
TabPrint* tab_print = nullptr;
|
||||
for (size_t i = 0; i < wxGetApp().tab_panel()->GetPageCount(); ++i) {
|
||||
Tab *tab = dynamic_cast<Tab*>(wxGetApp().tab_panel()->GetPage(i));
|
||||
|
@ -566,12 +556,12 @@ void add_frequently_changed_parameters(wxWindow* parent, wxBoxSizer* sizer, wxFl
|
|||
double brim_width = config->opt_float("brim_width");
|
||||
if (boost::any_cast<bool>(value) == true)
|
||||
{
|
||||
new_val = m_brim_width == 0.0 ? 10 :
|
||||
m_brim_width < 0.0 ? m_brim_width * (-1) :
|
||||
m_brim_width;
|
||||
new_val = 10;// m_brim_width == 0.0 ? 10 :
|
||||
// m_brim_width < 0.0 ? m_brim_width * (-1) :
|
||||
// m_brim_width;
|
||||
}
|
||||
else{
|
||||
m_brim_width = brim_width * (-1);
|
||||
// m_brim_width = brim_width * (-1);
|
||||
new_val = 0;
|
||||
}
|
||||
new_conf.set_key_value("brim_width", new ConfigOptionFloat(new_val));
|
||||
|
@ -617,7 +607,7 @@ void add_frequently_changed_parameters(wxWindow* parent, wxBoxSizer* sizer, wxFl
|
|||
option.opt.full_width = true;
|
||||
optgroup->append_single_option_line(option);
|
||||
|
||||
m_brim_width = config->opt_float("brim_width");
|
||||
auto m_brim_width = config->opt_float("brim_width");
|
||||
def.label = L("Brim");
|
||||
def.type = coBool;
|
||||
def.tooltip = L("This flag enables the brim that will be printed around each object on the first layer.");
|
||||
|
@ -628,7 +618,8 @@ void add_frequently_changed_parameters(wxWindow* parent, wxBoxSizer* sizer, wxFl
|
|||
|
||||
|
||||
Line line = { "", "" };
|
||||
line.widget = [config](wxWindow* parent){
|
||||
line.widget = [config, this](wxWindow* parent){
|
||||
auto g_wiping_dialog_button = get_wiping_dialog_button();
|
||||
g_wiping_dialog_button = new wxButton(parent, wxID_ANY, _(L("Purging volumes")) + dots, wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT);
|
||||
auto sizer = new wxBoxSizer(wxHORIZONTAL);
|
||||
sizer->Add(g_wiping_dialog_button);
|
||||
|
@ -655,26 +646,6 @@ void add_frequently_changed_parameters(wxWindow* parent, wxBoxSizer* sizer, wxFl
|
|||
sizer->Add(optgroup->sizer, 0, wxEXPAND | wxBOTTOM | wxLEFT, 2);
|
||||
|
||||
m_optgroups.push_back(optgroup);// ogFrequentlyChangingParameters
|
||||
|
||||
// Object List
|
||||
add_objects_list(parent, sizer);
|
||||
|
||||
// Frequently Object Settings
|
||||
add_object_settings(parent, sizer);
|
||||
}
|
||||
|
||||
void show_frequently_changed_parameters(bool show)
|
||||
{
|
||||
g_frequently_changed_parameters_sizer->Show(show);
|
||||
if (!show) return;
|
||||
|
||||
for (size_t i = 0; i < wxGetApp().tab_panel()->GetPageCount(); ++i) {
|
||||
Tab *tab = dynamic_cast<Tab*>(wxGetApp().tab_panel()->GetPage(i));
|
||||
if (!tab)
|
||||
continue;
|
||||
tab->update_wiping_button_visibility();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void show_buttons(bool show)
|
||||
|
@ -706,42 +677,14 @@ void show_object_name(bool show)
|
|||
grid_sizer->Show(static_cast<size_t>(1), show);
|
||||
}
|
||||
|
||||
void update_mode()
|
||||
{
|
||||
wxWindowUpdateLocker noUpdates(g_right_panel->GetParent());
|
||||
|
||||
ConfigMenuIDs mode = wxGetApp().get_view_mode();
|
||||
|
||||
g_object_list_sizer->Show(mode == ConfigMenuModeExpert);
|
||||
show_info_sizer(mode == ConfigMenuModeExpert);
|
||||
show_buttons(mode == ConfigMenuModeExpert);
|
||||
show_object_name(mode == ConfigMenuModeSimple);
|
||||
show_manipulation_sizer(mode == ConfigMenuModeSimple);
|
||||
|
||||
// TODO There is a not the best place of it!
|
||||
// *** Update showing of the collpane_settings
|
||||
// show_collpane_settings(mode == ConfigMenuModeExpert);
|
||||
// *************************
|
||||
g_right_panel->Layout();
|
||||
g_right_panel->GetParent()->Layout();
|
||||
}
|
||||
|
||||
bool is_expert_mode(){
|
||||
return wxGetApp().get_view_mode() == ConfigMenuModeExpert;
|
||||
}
|
||||
|
||||
ConfigOptionsGroup* get_optgroup(size_t i)
|
||||
{
|
||||
return m_optgroups.empty() ? nullptr : m_optgroups[i].get();
|
||||
return wxGetApp().mainframe->m_plater->sidebar().get_optgroup(i);
|
||||
// return m_optgroups.empty() ? nullptr : m_optgroups[i].get();
|
||||
}
|
||||
|
||||
std::vector <std::shared_ptr<ConfigOptionsGroup>>& get_optgroups() {
|
||||
return m_optgroups;
|
||||
}
|
||||
|
||||
wxButton* get_wiping_dialog_button()
|
||||
{
|
||||
return g_wiping_dialog_button;
|
||||
return wxGetApp().mainframe->m_plater->sidebar().get_optgroups();//m_optgroups;
|
||||
}
|
||||
|
||||
wxWindow* export_option_creator(wxWindow* parent)
|
||||
|
|
|
@ -117,7 +117,6 @@ void set_gui_appctl();
|
|||
void open_model(wxWindow *parent, wxArrayString& input_files);
|
||||
|
||||
wxWindow* get_right_panel();
|
||||
const size_t& label_width();
|
||||
|
||||
Tab* get_tab(const std::string& name);
|
||||
std::vector<PresetTab>* get_preset_tabs();
|
||||
|
@ -150,9 +149,6 @@ void warning_catcher(wxWindow* parent, const wxString& message);
|
|||
// to deliver a progress status message.
|
||||
void set_print_callback_event(Print *print, int id);
|
||||
|
||||
// update right panel of the Plater according to view mode
|
||||
void update_mode();
|
||||
|
||||
void show_info_sizer(const bool show);
|
||||
|
||||
// Creates a wxCheckListBoxComboPopup inside the given wxComboCtrl, filled with the given text and items.
|
||||
|
@ -177,16 +173,12 @@ void set_model_events_from_perl(Model &model,
|
|||
int event_remove_object,
|
||||
int event_update_scene);
|
||||
void add_frequently_changed_parameters(wxWindow* parent, wxBoxSizer* sizer, wxFlexGridSizer* preset_sizer);
|
||||
// Update view mode according to selected menu
|
||||
void update_mode();
|
||||
bool is_expert_mode();
|
||||
|
||||
// Callback to trigger a configuration update timer on the Plater.
|
||||
static PerlCallback g_on_request_update_callback;
|
||||
|
||||
ConfigOptionsGroup* get_optgroup(size_t i);
|
||||
std::vector <std::shared_ptr<ConfigOptionsGroup>>& get_optgroups();
|
||||
wxButton* get_wiping_dialog_button();
|
||||
|
||||
void add_export_option(wxFileDialog* dlg, const std::string& format);
|
||||
int get_export_option(wxFileDialog* dlg);
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
#include "Preferences.hpp"
|
||||
#include "Tab.hpp"
|
||||
#include <I18N.hpp>
|
||||
#include <wx/wupdlock.h>
|
||||
|
||||
namespace Slic3r {
|
||||
namespace GUI {
|
||||
|
@ -488,7 +489,22 @@ ConfigMenuIDs GUI_App::get_view_mode()
|
|||
return mode == "expert" ? ConfigMenuModeExpert : ConfigMenuModeSimple;
|
||||
}
|
||||
|
||||
static wxString dots("…", wxConvUTF8);
|
||||
// Update view mode according to selected menu
|
||||
void GUI_App::update_mode()
|
||||
{
|
||||
wxWindowUpdateLocker noUpdates(/*g_right_panel->GetParent()*/mainframe);
|
||||
|
||||
ConfigMenuIDs mode = wxGetApp().get_view_mode();
|
||||
|
||||
// g_object_list_sizer->Show(mode == ConfigMenuModeExpert);
|
||||
show_info_sizer(mode == ConfigMenuModeExpert);
|
||||
// show_buttons(mode == ConfigMenuModeExpert);
|
||||
// show_object_name(mode == ConfigMenuModeSimple);
|
||||
show_manipulation_sizer(mode == ConfigMenuModeSimple);
|
||||
|
||||
/*g_right_panel*/mainframe->m_plater->Layout();
|
||||
/*g_right_panel->GetParent()*/mainframe->Layout();
|
||||
}
|
||||
|
||||
void GUI_App::add_config_menu(wxMenuBar *menu)
|
||||
{
|
||||
|
|
|
@ -42,6 +42,8 @@ enum ConfigMenuIDs {
|
|||
|
||||
class Tab;
|
||||
|
||||
static wxString dots("…", wxConvUTF8);
|
||||
|
||||
class GUI_App : public wxApp
|
||||
{
|
||||
bool no_plater{ false };
|
||||
|
@ -112,6 +114,7 @@ public:
|
|||
void get_installed_languages(wxArrayString & names, wxArrayLong & identifiers);
|
||||
|
||||
ConfigMenuIDs get_view_mode();
|
||||
void update_mode();
|
||||
|
||||
void add_config_menu(wxMenuBar *menu);
|
||||
bool check_unsaved_changes();
|
||||
|
|
|
@ -158,8 +158,6 @@ void init_mesh_icons(){
|
|||
bool is_parts_changed(){return m_parts_changed;}
|
||||
bool is_part_settings_changed(){ return m_part_settings_changed; }
|
||||
|
||||
static wxString dots("…", wxConvUTF8);
|
||||
|
||||
void set_tooltip_for_item(const wxPoint& pt)
|
||||
{
|
||||
wxDataViewItem item;
|
||||
|
@ -452,34 +450,7 @@ wxSizer* object_movers(wxWindow *win)
|
|||
return optgroup->sizer;
|
||||
}
|
||||
|
||||
wxBoxSizer* content_settings(wxWindow *win)
|
||||
{
|
||||
DynamicPrintConfig* config = &wxGetApp().preset_bundle->/*full_config();//*/printers.get_edited_preset().config; // TODO get config from Model_volume
|
||||
std::shared_ptr<ConfigOptionsGroup> optgroup = std::make_shared<ConfigOptionsGroup>(win, "Extruders", config);
|
||||
optgroup->label_width = label_width();
|
||||
|
||||
Option option = optgroup->get_option("extruder");
|
||||
option.opt.default_value = new ConfigOptionInt(1);
|
||||
optgroup->append_single_option_line(option);
|
||||
|
||||
get_optgroups().push_back(optgroup); // ogObjectSettings
|
||||
|
||||
auto sizer = new wxBoxSizer(wxVERTICAL);
|
||||
sizer->Add(create_edit_object_buttons(win), 0, wxEXPAND, 0); // *** Edit Object Buttons***
|
||||
|
||||
sizer->Add(optgroup->sizer, 1, wxEXPAND | wxLEFT, 20);
|
||||
|
||||
auto add_btn = new wxButton(win, wxID_ANY, "", wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT | wxNO_BORDER);
|
||||
if (wxMSW) add_btn->SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW));
|
||||
add_btn->SetBitmap(wxBitmap(from_u8(Slic3r::var("add.png")), wxBITMAP_TYPE_PNG));
|
||||
sizer->Add(add_btn, 0, wxALIGN_LEFT | wxLEFT, 20);
|
||||
|
||||
sizer->Add(object_movers(win), 0, wxEXPAND | wxLEFT, 20);
|
||||
|
||||
return sizer;
|
||||
}
|
||||
|
||||
void add_objects_list(wxWindow* parent, wxBoxSizer* sizer)
|
||||
void Sidebar::add_objects_list(wxWindow* parent, wxBoxSizer* sizer)
|
||||
{
|
||||
const auto ol_sizer = create_objects_list(parent);
|
||||
sizer->Add(ol_sizer, 1, wxEXPAND | wxTOP, 20);
|
||||
|
@ -535,13 +506,13 @@ Line add_og_to_object_settings(const std::string& option_name, const std::string
|
|||
return line;
|
||||
}
|
||||
|
||||
void add_object_settings(wxWindow* parent, wxBoxSizer* sizer)
|
||||
void Sidebar::add_object_settings(wxWindow* parent, wxBoxSizer* sizer, t_optgroups& optgroups)
|
||||
{
|
||||
auto optgroup = std::make_shared<ConfigOptionsGroup>(parent, _(L("Object Settings")));
|
||||
optgroup->label_width = 100;
|
||||
optgroup->set_grid_vgap(5);
|
||||
|
||||
optgroup->m_on_change = [](t_config_option_key opt_key, boost::any value){
|
||||
optgroup->m_on_change = [this](t_config_option_key opt_key, boost::any value){
|
||||
if (opt_key == "scale_unit"){
|
||||
const wxString& selection = boost::any_cast<wxString>(value);
|
||||
std::vector<std::string> axes{ "x", "y", "z" };
|
||||
|
@ -566,7 +537,6 @@ void add_object_settings(wxWindow* parent, wxBoxSizer* sizer)
|
|||
def.default_value = new ConfigOptionString{ " " };
|
||||
optgroup->append_single_option_line(Option(def, "object_name"));
|
||||
|
||||
|
||||
// Legend for object modification
|
||||
auto line = Line{ "", "" };
|
||||
def.label = "";
|
||||
|
@ -604,54 +574,7 @@ void add_object_settings(wxWindow* parent, wxBoxSizer* sizer)
|
|||
|
||||
optgroup->disable();
|
||||
|
||||
get_optgroups().push_back(optgroup); // ogFrequentlyObjectSettings
|
||||
}
|
||||
|
||||
|
||||
// add Collapsible Pane to sizer
|
||||
wxCollapsiblePane* add_collapsible_pane(wxWindow* parent, wxBoxSizer* sizer_parent, const wxString& name, std::function<wxSizer *(wxWindow *)> content_function)
|
||||
{
|
||||
#ifdef __WXMSW__
|
||||
auto *collpane = new PrusaCollapsiblePaneMSW(parent, wxID_ANY, name);
|
||||
#else
|
||||
auto *collpane = new PrusaCollapsiblePane/*wxCollapsiblePane*/(parent, wxID_ANY, name);
|
||||
#endif // __WXMSW__
|
||||
// add the pane with a zero proportion value to the sizer which contains it
|
||||
sizer_parent->Add(collpane, 0, wxGROW | wxALL, 0);
|
||||
|
||||
wxWindow *win = collpane->GetPane();
|
||||
|
||||
wxSizer *sizer = content_function(win);
|
||||
|
||||
wxSizer *sizer_pane = new wxBoxSizer(wxVERTICAL);
|
||||
sizer_pane->Add(sizer, 1, wxGROW | wxEXPAND | wxBOTTOM, 2);
|
||||
win->SetSizer(sizer_pane);
|
||||
// sizer_pane->SetSizeHints(win);
|
||||
return collpane;
|
||||
}
|
||||
|
||||
void add_collapsible_panes(wxWindow* parent, wxBoxSizer* sizer)
|
||||
{
|
||||
// *** Objects List ***
|
||||
auto collpane = add_collapsible_pane(parent, sizer, "Objects List:", create_objects_list);
|
||||
collpane->Bind(wxEVT_COLLAPSIBLEPANE_CHANGED, ([collpane](wxCommandEvent& e){
|
||||
// wxWindowUpdateLocker noUpdates(g_right_panel);
|
||||
if (collpane->IsCollapsed()) {
|
||||
m_sizer_object_buttons->Show(false);
|
||||
m_sizer_part_buttons->Show(false);
|
||||
m_sizer_object_movers->Show(false);
|
||||
if (!m_objects_ctrl->HasSelection())
|
||||
m_collpane_settings->Show(false);
|
||||
}
|
||||
}));
|
||||
|
||||
// *** Object/Part Settings ***
|
||||
m_collpane_settings = add_collapsible_pane(parent, sizer, "Object Settings", content_settings);
|
||||
}
|
||||
|
||||
void show_collpane_settings(bool expert_mode)
|
||||
{
|
||||
m_collpane_settings->Show(expert_mode && !m_objects_model->IsEmpty());
|
||||
optgroups.push_back(optgroup); // ogFrequentlyObjectSettings
|
||||
}
|
||||
|
||||
void add_object_to_list(const std::string &name, ModelObject* model_object)
|
||||
|
@ -695,17 +618,12 @@ void delete_object_from_list()
|
|||
m_objects_model->Delete(item);
|
||||
|
||||
part_selection_changed();
|
||||
|
||||
// if (m_objects_model->IsEmpty())
|
||||
// m_collpane_settings->Show(false);
|
||||
}
|
||||
|
||||
void delete_all_objects_from_list()
|
||||
{
|
||||
m_objects_model->DeleteAll();
|
||||
|
||||
part_selection_changed();
|
||||
// m_collpane_settings->Show(false);
|
||||
}
|
||||
|
||||
void set_object_count(int idx, int count)
|
||||
|
@ -1629,100 +1547,6 @@ void part_selection_changed()
|
|||
m_selected_object_id = obj_idx;
|
||||
|
||||
update_settings_value();
|
||||
|
||||
/* wxWindowUpdateLocker noUpdates(get_right_panel());
|
||||
|
||||
m_move_options = Point3(0, 0, 0);
|
||||
m_last_coords = Point3(0, 0, 0);
|
||||
// reset move sliders
|
||||
std::vector<std::string> opt_keys = {"x", "y", "z"};
|
||||
auto og = get_optgroup(ogObjectMovers);
|
||||
for (auto opt_key: opt_keys)
|
||||
og->set_value(opt_key, int(0));
|
||||
|
||||
// if (!item || m_selected_object_id < 0){
|
||||
if (m_selected_object_id < 0){
|
||||
m_sizer_object_buttons->Show(false);
|
||||
m_sizer_part_buttons->Show(false);
|
||||
m_sizer_object_movers->Show(false);
|
||||
m_collpane_settings->Show(false);
|
||||
return;
|
||||
}
|
||||
|
||||
m_collpane_settings->Show(true);
|
||||
|
||||
auto volume_id = m_objects_model->GetVolumeIdByItem(item);
|
||||
if (volume_id < 0){
|
||||
m_sizer_object_buttons->Show(true);
|
||||
m_sizer_part_buttons->Show(false);
|
||||
m_sizer_object_movers->Show(false);
|
||||
m_collpane_settings->SetLabelText(_(L("Object Settings")) + ":");
|
||||
|
||||
// elsif($itemData->{type} eq 'object') {
|
||||
// # select nothing in 3D preview
|
||||
//
|
||||
// # attach object config to settings panel
|
||||
// $self->{optgroup_movers}->disable;
|
||||
// $self->{staticbox}->SetLabel('Object Settings');
|
||||
// @opt_keys = (map @{$_->get_keys}, Slic3r::Config::PrintObject->new, Slic3r::Config::PrintRegion->new);
|
||||
// $config = $self->{model_object}->config;
|
||||
// }
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
m_collpane_settings->SetLabelText(_(L("Part Settings")) + ":");
|
||||
|
||||
m_sizer_object_buttons->Show(false);
|
||||
m_sizer_part_buttons->Show(true);
|
||||
m_sizer_object_movers->Show(true);
|
||||
|
||||
auto bb_size = m_objects[m_selected_object_id]->bounding_box().size();
|
||||
int scale = 10; //??
|
||||
|
||||
m_mover_x->SetMin(-bb_size.x * 4 * scale);
|
||||
m_mover_x->SetMax(bb_size.x * 4 * scale);
|
||||
|
||||
m_mover_y->SetMin(-bb_size.y * 4 * scale);
|
||||
m_mover_y->SetMax(bb_size.y * 4 * scale);
|
||||
|
||||
m_mover_z->SetMin(-bb_size.z * 4 * scale);
|
||||
m_mover_z->SetMax(bb_size.z * 4 * scale);
|
||||
|
||||
|
||||
|
||||
// my ($config, @opt_keys);
|
||||
m_btn_move_up->Enable(volume_id > 0);
|
||||
m_btn_move_down->Enable(volume_id + 1 < m_objects[m_selected_object_id]->volumes.size());
|
||||
|
||||
// attach volume config to settings panel
|
||||
auto volume = m_objects[m_selected_object_id]->volumes[volume_id];
|
||||
|
||||
if (volume->modifier)
|
||||
og->enable();
|
||||
else
|
||||
og->disable();
|
||||
|
||||
// auto config = volume->config;
|
||||
|
||||
// get default values
|
||||
// @opt_keys = @{Slic3r::Config::PrintRegion->new->get_keys};
|
||||
// }
|
||||
/*
|
||||
# get default values
|
||||
my $default_config = Slic3r::Config::new_from_defaults_keys(\@opt_keys);
|
||||
|
||||
# append default extruder
|
||||
push @opt_keys, 'extruder';
|
||||
$default_config->set('extruder', 0);
|
||||
$config->set_ifndef('extruder', 0);
|
||||
$self->{settings_panel}->set_default_config($default_config);
|
||||
$self->{settings_panel}->set_config($config);
|
||||
$self->{settings_panel}->set_opt_keys(\@opt_keys);
|
||||
$self->{settings_panel}->set_fixed_options([qw(extruder)]);
|
||||
$self->{settings_panel}->enable;
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
void set_extruder_column_hidden(bool hide)
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
#ifndef slic3r_GUI_ObjectParts_hpp_
|
||||
#define slic3r_GUI_ObjectParts_hpp_
|
||||
// #include "OptionsGroup.hpp"
|
||||
|
||||
class wxWindow;
|
||||
class wxSizer;
|
||||
|
@ -17,15 +18,13 @@ class ModelObject;
|
|||
class Model;
|
||||
|
||||
namespace GUI {
|
||||
//class wxGLCanvas;
|
||||
class ConfigOptionsGroup;
|
||||
using t_optgroups = std::vector <std::shared_ptr<ConfigOptionsGroup>>;
|
||||
|
||||
enum ogGroup{
|
||||
ogFrequentlyChangingParameters,
|
||||
ogFrequentlyObjectSettings,
|
||||
ogCurrentSettings
|
||||
// ogObjectSettings,
|
||||
// ogObjectMovers,
|
||||
// ogPartSettings
|
||||
ogObjectSettings
|
||||
};
|
||||
|
||||
enum LambdaTypeIDs{
|
||||
|
@ -49,10 +48,8 @@ struct OBJECT_PARAMETERS
|
|||
typedef std::map<std::string, wxBitmap> t_category_icon;
|
||||
inline t_category_icon& get_category_icon();
|
||||
|
||||
void add_collapsible_panes(wxWindow* parent, wxBoxSizer* sizer);
|
||||
void add_objects_list(wxWindow* parent, wxBoxSizer* sizer);
|
||||
void add_object_settings(wxWindow* parent, wxBoxSizer* sizer);
|
||||
void show_collpane_settings(bool expert_mode);
|
||||
void add_object_settings(wxWindow* parent, wxBoxSizer* sizer, t_optgroups& optgroups);
|
||||
|
||||
wxMenu *create_add_settings_popupmenu(bool is_part);
|
||||
wxMenu *create_add_part_popupmenu();
|
||||
|
|
|
@ -8,7 +8,6 @@ namespace Slic3r
|
|||
{
|
||||
namespace GUI
|
||||
{
|
||||
static wxString dots("…", wxConvUTF8);
|
||||
|
||||
LambdaObjectDialog::LambdaObjectDialog(wxWindow* parent,
|
||||
const wxString type_name):
|
||||
|
|
|
@ -23,8 +23,6 @@
|
|||
namespace Slic3r {
|
||||
namespace GUI {
|
||||
|
||||
static wxString dots("…", wxConvUTF8);
|
||||
|
||||
MainFrame::MainFrame(const bool no_plater, const bool loaded) :
|
||||
wxFrame(NULL, wxID_ANY, SLIC3R_BUILD, wxDefaultPosition, wxDefaultSize, wxDEFAULT_FRAME_STYLE),
|
||||
m_no_plater(no_plater),
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
#include "slic3r/Utils/ASCIIFolding.hpp"
|
||||
|
||||
#include <wx/glcanvas.h> // Needs to be last because reasons :-/
|
||||
#include "WipeTowerDialog.hpp"
|
||||
|
||||
namespace fs = boost::filesystem;
|
||||
using Slic3r::_3DScene;
|
||||
|
@ -222,6 +223,12 @@ struct Sidebar::priv
|
|||
wxButton *btn_reslice;
|
||||
// wxButton *btn_print; // XXX: remove
|
||||
wxButton *btn_send_gcode;
|
||||
|
||||
std::vector <std::shared_ptr<ConfigOptionsGroup>> optgroups {};
|
||||
double brim_width = 0.0;
|
||||
size_t label_width = 100;
|
||||
wxButton* btn_wiping_dialog {nullptr};
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
@ -265,7 +272,12 @@ Sidebar::Sidebar(wxWindow *parent)
|
|||
|
||||
// Frequently changed parameters
|
||||
p->sizer_params = new wxBoxSizer(wxVERTICAL);
|
||||
GUI::add_frequently_changed_parameters(p->scrolled, p->sizer_params, p->sizer_presets);
|
||||
add_frequently_changed_parameters(p->scrolled, p->sizer_params/*, p->sizer_presets*/);
|
||||
|
||||
// Object List
|
||||
add_objects_list(p->scrolled, p->sizer_params);
|
||||
// Frequently Object Settings
|
||||
add_object_settings(p->scrolled, p->sizer_params, p->optgroups);
|
||||
|
||||
// Buttons in the scrolled area
|
||||
wxBitmap arrow_up(GUI::from_u8(Slic3r::var("brick_go.png")), wxBITMAP_TYPE_PNG);
|
||||
|
@ -356,6 +368,20 @@ void Sidebar::update_presets(Preset::Type preset_type)
|
|||
// wxTheApp->{preset_bundle}->export_selections(wxTheApp->{app_config});
|
||||
}
|
||||
|
||||
ConfigOptionsGroup* Sidebar::get_optgroup(size_t i)
|
||||
{
|
||||
return p->optgroups.empty() ? nullptr : p->optgroups[i].get();
|
||||
}
|
||||
|
||||
t_optgroups& Sidebar::get_optgroups() {
|
||||
return p->optgroups;
|
||||
}
|
||||
|
||||
wxButton* Sidebar::get_wiping_dialog_button()
|
||||
{
|
||||
return p->btn_wiping_dialog;
|
||||
}
|
||||
|
||||
|
||||
// Plater::Object
|
||||
|
||||
|
|
|
@ -8,11 +8,15 @@
|
|||
|
||||
#include "Preset.hpp"
|
||||
|
||||
class wxBoxSizer;
|
||||
|
||||
namespace Slic3r {
|
||||
namespace GUI {
|
||||
|
||||
class MainFrame;
|
||||
class ConfigOptionsGroup;
|
||||
|
||||
using t_optgroups = std::vector <std::shared_ptr<ConfigOptionsGroup>>;
|
||||
|
||||
class Sidebar : public wxPanel
|
||||
{
|
||||
|
@ -25,6 +29,15 @@ public:
|
|||
~Sidebar();
|
||||
|
||||
void update_presets(Slic3r::Preset::Type preset_type);
|
||||
|
||||
void add_frequently_changed_parameters(wxWindow* parent, wxBoxSizer* sizer);
|
||||
void add_objects_list(wxWindow* parent, wxBoxSizer* sizer);
|
||||
void add_object_settings(wxWindow* parent, wxBoxSizer* sizer, t_optgroups& optgroups);
|
||||
|
||||
|
||||
ConfigOptionsGroup* get_optgroup(size_t i);
|
||||
t_optgroups& get_optgroups();
|
||||
wxButton* get_wiping_dialog_button();
|
||||
private:
|
||||
struct priv;
|
||||
std::unique_ptr<priv> p;
|
||||
|
|
|
@ -33,9 +33,6 @@
|
|||
namespace Slic3r {
|
||||
namespace GUI {
|
||||
|
||||
static wxString dots("…", wxConvUTF8);
|
||||
|
||||
// sub new
|
||||
void Tab::create_preset_tab(PresetBundle *preset_bundle)
|
||||
{
|
||||
m_preset_bundle = preset_bundle;
|
||||
|
@ -720,9 +717,12 @@ void Tab::update_wiping_button_visibility() {
|
|||
bool multiple_extruders = dynamic_cast<ConfigOptionFloats*>((m_preset_bundle->printers.get_edited_preset().config).option("nozzle_diameter"))->values.size() > 1;
|
||||
bool single_extruder_mm = dynamic_cast<ConfigOptionBool*>( (m_preset_bundle->printers.get_edited_preset().config).option("single_extruder_multi_material"))->value;
|
||||
|
||||
if (get_wiping_dialog_button()) {
|
||||
get_wiping_dialog_button()->Show(wipe_tower_enabled && multiple_extruders && single_extruder_mm);
|
||||
(get_wiping_dialog_button()->GetParent())->Layout();
|
||||
if (!wxGetApp().mainframe)
|
||||
return;
|
||||
auto wiping_dialog_button = wxGetApp().mainframe->m_plater->sidebar().get_wiping_dialog_button();
|
||||
if (wiping_dialog_button) {
|
||||
wiping_dialog_button->Show(wipe_tower_enabled && multiple_extruders && single_extruder_mm);
|
||||
wiping_dialog_button->GetParent()->Layout();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue