工具栏拆分。连续材料禁用修改

This commit is contained in:
cjw 2025-03-25 14:53:22 +08:00
parent fb00d0ac0b
commit d5cc4e703d
4 changed files with 187 additions and 40 deletions

View File

@ -7582,7 +7582,7 @@ void GLCanvas3D::_render_main_toolbar()
Size cnv_size = get_canvas_size();
float inv_zoom = (float)wxGetApp().plater()->get_camera().get_inv_zoom();
auto canvas_w = float(get_canvas_size().get_width());
//auto canvas_w = float(get_canvas_size().get_width());
#if BBS_TOOLBAR_ON_TOP
GLToolbar& collapse_toolbar = wxGetApp().plater()->get_collapse_toolbar();
float collapse_toolbar_width = collapse_toolbar.is_enabled() ? collapse_toolbar.get_width() : 0.0f;
@ -7590,7 +7590,7 @@ void GLCanvas3D::_render_main_toolbar()
float assemble_width = m_assemble_view_toolbar.get_width();
float separator_width = m_separator_toolbar.get_width();
//float top = 0.5f * (float)cnv_size.get_height() * inv_zoom;
float top = 0.5f * (float)m_main_toolbar.get_width();
float top = 0.25f * (float)cnv_size.get_height() * inv_zoom;
//float left = std::max(-0.5f * cnv_size.get_width(), -0.5f * (m_main_toolbar.get_width() + separator_width + gizmo_width + assemble_width - collapse_toolbar_width)) * inv_zoom;
//float left = -0.12f * (float)cnv_size.get_width();
float left = -0.5f * (float)cnv_size.get_width() * inv_zoom;

View File

@ -11293,6 +11293,7 @@ void Plater::export_gcode_3mf(bool export_all)
if (export_all)
plate_idx = PLATE_ALL_IDX;
export_3mf(output_path, SaveStrategy::Silence | SaveStrategy::SplitModel | SaveStrategy::WithGcode | SaveStrategy::SkipModel, plate_idx); // BBS: silence
//export_3mf(output_path, SaveStrategy::WithGcode, plate_idx); // BBS: silence
RemovableDriveManager& removable_drive_manager = *wxGetApp().removable_drive_manager();
@ -11740,6 +11741,7 @@ int Plater::export_3mf(const boost::filesystem::path& output_path, SaveStrategy
//BBS: add bbs 3mf logic
PlateDataPtrs plate_data_list;
p->partplate_list.store_to_3mf_structure(plate_data_list, (strategy & SaveStrategy::WithGcode || strategy & SaveStrategy::WithSliceInfo), export_plate_idx);
//p->partplate_list.store_to_3mf_structure(plate_data_list, (strategy & SaveStrategy::WithGcode), export_plate_idx);
// BBS: backup
PresetBundle& preset_bundle = *wxGetApp().preset_bundle;

View File

@ -3252,53 +3252,180 @@ void TabFilament::toggle_options()
{
if (!m_active_page)
return;
//m_active_page->clear();
//return;
bool is_BBL_printer = false;
if (m_preset_bundle) {
is_BBL_printer =
m_preset_bundle->printers.get_edited_preset().is_bbl_vendor_preset(
m_preset_bundle);
}
//wxString abc = wxGetApp().get_tab(Preset::TYPE_CONFIG)->get_combo_box()->GetTextLabel();
wxString abc = wxString::FromUTF8( m_preset_bundle->filaments.get_edited_preset().name);
//InfillPattern bcd = m_preset_bundle->configs.get_edited_preset().config.opt_enum<InfillPattern>("top_surface_pattern");
wxString lian_xu = _L("Lian xu");
if (abc.Contains(lian_xu)) {
if (m_active_page->title() == "Filament")
{
toggle_option("filament_type", false);
toggle_option("filament_vendor", false);
//xiamian++
toggle_option("default_filament_colour", false);
toggle_option("filament_diameter", false);
toggle_option("filament_flow_ratio", false);
toggle_option("filament_density", false);
toggle_option("filament_cost", false);
toggle_option("temperature_vitrification", false);
toggle_option("nozzle_temperature_range_low", false);
toggle_option("nozzle_temperature_range_high", false);
toggle_option("filament_max_volumetric_speed", false);
toggle_option("enable_pressure_advance", false);
//BBS: hide these useless option for bambu printer
toggle_line("enable_pressure_advance", !is_BBL_printer);
if (is_BBL_printer)
toggle_line("pressure_advance", false);
else {
toggle_line("pressure_advance", true);
toggle_option("pressure_advance", m_config->opt_bool("enable_pressure_advance", 0));
}
if (m_active_page->title() == "Cooling")
{
bool cooling = m_config->opt_bool("slow_down_for_layer_cooling", 0);
toggle_option("slow_down_min_speed", cooling);
bool support_chamber_temp_control = this->m_preset_bundle->printers.get_edited_preset().config.opt_bool("support_chamber_temp_control");
toggle_line("chamber_temperatures", support_chamber_temp_control);
bool has_enable_overhang_bridge_fan = m_config->opt_bool("enable_overhang_bridge_fan", 0);
for (auto el : { "overhang_fan_speed", "overhang_fan_threshold" })
toggle_option(el, has_enable_overhang_bridge_fan);
bool support_air_filtration = m_preset_bundle->printers.get_edited_preset().config.opt_bool("support_air_filtration");
toggle_line("activate_air_filtration",is_BBL_printer && support_air_filtration);
for (auto elem : { "during_print_exhaust_fan_speed","complete_print_exhaust_fan_speed" })
toggle_line(elem, m_config->opt_bool("activate_air_filtration",0)&&support_air_filtration);
}
if (m_active_page->title() == "Filament")
{
toggle_option("filament_type", false);
toggle_option("filament_vendor", false);
//BBS: hide these useless option for bambu printer
toggle_line("enable_pressure_advance", !is_BBL_printer);
if (is_BBL_printer)
toggle_line("pressure_advance", false);
else {
toggle_line("pressure_advance", true);
toggle_option("pressure_advance", m_config->opt_bool("enable_pressure_advance", 0));
for (auto el :
{ "cool_plate_temp", "cool_plate_temp_initial_layer", "eng_plate_temp", "eng_plate_temp_initial_layer", "textured_plate_temp", "textured_plate_temp_initial_layer" })
toggle_line(el, is_BBL_printer);
}
bool support_chamber_temp_control = this->m_preset_bundle->printers.get_edited_preset().config.opt_bool("support_chamber_temp_control");
toggle_line("chamber_temperatures", support_chamber_temp_control);
if (m_active_page->title() == "Cooling")
{
toggle_option("close_fan_the_first_x_layers", false);
toggle_option("fan_min_speed", false);
toggle_option("fan_cooling_layer_time", false);
toggle_option("fan_max_speed", false);
toggle_option("slow_down_layer_time", false);
toggle_line("reduce_fan_stop_start_freq", false);
toggle_line("slow_down_for_layer_cooling", false);
toggle_option("slow_down_min_speed", false);
toggle_line("enable_overhang_bridge_fan", false);
toggle_option("overhang_fan_threshold", false);
toggle_option("overhang_fan_speed", false);
for (auto el :
{"cool_plate_temp", "cool_plate_temp_initial_layer", "eng_plate_temp", "eng_plate_temp_initial_layer", "textured_plate_temp", "textured_plate_temp_initial_layer"})
toggle_line(el, is_BBL_printer);
toggle_option("additional_cooling_fan_speed", false);
bool support_air_filtration = m_preset_bundle->printers.get_edited_preset().config.opt_bool("support_air_filtration");
toggle_line("activate_air_filtration", is_BBL_printer && support_air_filtration);
for (auto elem : { "during_print_exhaust_fan_speed","complete_print_exhaust_fan_speed" })
toggle_line(elem, m_config->opt_bool("activate_air_filtration", 0) && support_air_filtration);
}
if (m_active_page->title() == "Advanced") {
toggle_option("filament_start_gcode", false);
toggle_option("filament_end_gcode", false);
}
if (m_active_page->title() == "Notes") {
toggle_option("filament_notes", false);
}
if (m_active_page->title() == "Setting Overrides") {
update_filament_overrides_page();
for (const std::string opt_key : { "filament_retraction_length",
"filament_z_hop",
"filament_z_hop_types",
"filament_retraction_speed",
"filament_deretraction_speed",
//"filament_retract_restart_extra",
"filament_retraction_minimum_travel",
"filament_retract_when_changing_layer",
"filament_wipe",
//BBS
"filament_wipe_distance",
"filament_retract_before_wipe",
"filament_long_retractions_when_cut",
"filament_retraction_distances_when_cut"
})
toggle_option(opt_key, false);
}
}
else {
if (m_active_page->title() == "Cooling")
{
if (m_active_page->title() == "Setting Overrides")
update_filament_overrides_page();
toggle_option("close_fan_the_first_x_layers", true);
toggle_option("fan_min_speed", true);
toggle_option("fan_cooling_layer_time", true);
toggle_option("fan_max_speed", true);
toggle_option("slow_down_layer_time", true);
toggle_line("reduce_fan_stop_start_freq", true);
toggle_line("slow_down_for_layer_cooling", true);
toggle_option("slow_down_min_speed", true);
toggle_line("enable_overhang_bridge_fan", true);
toggle_option("overhang_fan_threshold", true);
toggle_option("overhang_fan_speed", true);
toggle_option("additional_cooling_fan_speed", true);
bool cooling = m_config->opt_bool("slow_down_for_layer_cooling", 0);
toggle_option("slow_down_min_speed", cooling);
bool has_enable_overhang_bridge_fan = m_config->opt_bool("enable_overhang_bridge_fan", 0);
for (auto el : { "overhang_fan_speed", "overhang_fan_threshold" })
toggle_option(el, has_enable_overhang_bridge_fan);
bool support_air_filtration = m_preset_bundle->printers.get_edited_preset().config.opt_bool("support_air_filtration");
toggle_line("activate_air_filtration", is_BBL_printer && support_air_filtration);
for (auto elem : { "during_print_exhaust_fan_speed","complete_print_exhaust_fan_speed" })
toggle_line(elem, m_config->opt_bool("activate_air_filtration", 0) && support_air_filtration);
}
if (m_active_page->title() == "Filament")
{
toggle_option("filament_type", false);
toggle_option("filament_vendor", false);
//xiamian++
toggle_option("default_filament_colour", true);
toggle_option("filament_diameter", true);
toggle_option("filament_flow_ratio", true);
toggle_option("filament_density", true);
toggle_option("filament_cost", true);
toggle_option("temperature_vitrification", true);
toggle_option("nozzle_temperature_range_low", true);
toggle_option("nozzle_temperature_range_high", true);
toggle_option("filament_max_volumetric_speed", true);
toggle_option("enable_pressure_advance", true);
//BBS: hide these useless option for bambu printer
toggle_line("enable_pressure_advance", !is_BBL_printer);
if (is_BBL_printer)
toggle_line("pressure_advance", false);
else {
toggle_line("pressure_advance", true);
toggle_option("pressure_advance", m_config->opt_bool("enable_pressure_advance", 0));
}
bool support_chamber_temp_control = this->m_preset_bundle->printers.get_edited_preset().config.opt_bool("support_chamber_temp_control");
toggle_line("chamber_temperatures", support_chamber_temp_control);
for (auto el :
{ "cool_plate_temp", "cool_plate_temp_initial_layer", "eng_plate_temp", "eng_plate_temp_initial_layer", "textured_plate_temp", "textured_plate_temp_initial_layer" })
toggle_line(el, is_BBL_printer);
}
if (m_active_page->title() == "Advanced") {
toggle_option("filament_start_gcode", true);
toggle_option("filament_end_gcode", true);
}
if (m_active_page->title() == "Notes") {
toggle_option("filament_notes", true);
}
if (m_active_page->title() == "Setting Overrides")
update_filament_overrides_page();
}
}
void TabFilament::update()
@ -3309,7 +3436,7 @@ void TabFilament::update()
m_config_manipulation.check_filament_max_volumetric_speed(m_config);
m_update_cnt++;
//m_parent->get_paged_view()->Close();
update_description_lines();
//BBS: GUI refactor
//Layout();
@ -4427,6 +4554,16 @@ void TabConfig::toggle_options() {
/* for (auto& f : m_preset_bundle->filament_presets) {
cde = f;
}*/
//for (auto el : { "support_style", "support_base_pattern",
// "support_base_pattern_spacing", "support_expansion", "support_angle",
// "support_interface_pattern", "support_interface_top_layers", "support_interface_bottom_layers",
// "bridge_no_support", "max_bridge_length", "support_top_z_distance", "support_bottom_z_distance",
// //BBS: add more support params to dependent of enable_support
// "support_type", "support_on_build_plate_only",
// "support_remove_small_overhang","support_interface_not_for_body",
// "support_object_xy_distance","support_object_first_layer_gap"/*, "independent_support_layer_height"*/ })
// toggle_option(el, have_support_material);
//p->combos_filament
//m_preset_bundle->configs.update_dirty();
@ -4783,9 +4920,14 @@ void Tab::rebuild_page_tree()
// suppress activate page before page_tree rebuilding
m_disable_tree_sel_changed_event = true;
m_tabctrl->DeleteAllItems();
//wxString abc = wxGetApp().get_tab(Preset::TYPE_CONFIG)->get_combo_box()->GetTextLabel();
//wxString lian_xu = _L("Lian xu");
//bool isLianxu = abc.Contains(lian_xu);
for (auto p : m_pages)
{
/* if (isLianxu) {
if (p->g) {}
}*/
if (!p->get_show())
continue;
auto itemId = m_tabctrl->AppendItem(translate_category(p->title(), m_type), p->iconID());
@ -4883,6 +5025,7 @@ bool Tab::select_preset(std::string preset_name, bool delete_current /*=false*/,
bool current_dirty = ! delete_current && m_presets->current_is_dirty();
bool print_tab = m_presets->type() == Preset::TYPE_PRINT || m_presets->type() == Preset::TYPE_SLA_PRINT;
bool printer_tab = m_presets->type() == Preset::TYPE_PRINTER;
//bool filament_tab = m_presets->type() == Preset::TYPE_FILAMENT;
bool canceled = false;
bool no_transfer = false;
bool technology_changed = false;
@ -5071,7 +5214,8 @@ bool Tab::select_preset(std::string preset_name, bool delete_current /*=false*/,
// Initialize the UI from the current preset.
if (printer_tab)
static_cast<TabPrinter*>(this)->update_pages();
/* if (filament_tab)
static_cast<TabFilament*>(this)->update_pages();*/
if (! is_selected && printer_tab)
{
/* There is a case, when :

View File

@ -30,7 +30,8 @@ SideButton::SideButton(wxWindow* parent, wxString text, wxString icon, long stly
border_color.append(0x6B6B6B, StateColor::Disabled);
border_color.append(wxColour(23, 129, 63), StateColor::Pressed);
border_color.append(wxColour(48,221,112), StateColor::Hovered);
//border_color.append(wxColour(48,221,112), StateColor::Hovered);
border_color.append(0x0073BC, StateColor::Hovered);
//border_color.append(0x00AE42, StateColor::Normal);
border_color.append(0x215F9A, StateColor::Normal);
border_color.setTakeFocusedAsHovered(false);