Merge branch 'main' into belt/baseChanges

This commit is contained in:
Rodrigo Faselli
2026-06-11 11:59:53 -03:00
committed by GitHub
1058 changed files with 145478 additions and 12479 deletions
+27 -18
View File
@@ -571,7 +571,11 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig *config, co
{
PresetBundle *preset_bundle = wxGetApp().preset_bundle;
auto gcflavor = preset_bundle->printers.get_edited_preset().config.option<ConfigOptionEnum<GCodeFlavor>>("gcode_flavor")->value;
const GCodeFlavor gcflavor = preset_bundle->printers.get_edited_preset().config.option<ConfigOptionEnum<GCodeFlavor>>("gcode_flavor")->value;
// Orca: use booleans to avoid repeated comparisons with enum values
const bool gcf_is_marlin_firmware = gcflavor == GCodeFlavor::gcfMarlinFirmware;
const bool gcf_is_klipper = gcflavor == GCodeFlavor::gcfKlipper;
// Belt printer: detect early since it affects multiple toggle decisions below.
bool is_belt_printer = false;
@@ -683,23 +687,28 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig *config, co
"top_surface_acceleration", "travel_acceleration", "bridge_acceleration", "sparse_infill_acceleration", "internal_solid_infill_acceleration"})
toggle_field(el, have_default_acceleration);
bool machine_supports_junction_deviation = false;
if (gcflavor == gcfMarlinFirmware) {
if (const auto *machine_jd = preset_bundle->printers.get_edited_preset().config.option<ConfigOptionFloats>("machine_max_junction_deviation")) {
machine_supports_junction_deviation = !machine_jd->values.empty() && machine_jd->values.front() > 0.0;
}
}
toggle_line("default_junction_deviation", gcflavor == gcfMarlinFirmware);
if (machine_supports_junction_deviation) {
toggle_field("default_junction_deviation", true);
toggle_field("default_jerk", false);
for (auto el : { "outer_wall_jerk", "inner_wall_jerk", "initial_layer_jerk", "initial_layer_travel_jerk", "top_surface_jerk", "travel_jerk", "infill_jerk"})
const bool junction_deviation_enabled =
gcf_is_marlin_firmware &&
[&]() {
const auto *machine_jd = preset_bundle->printers.get_edited_preset().config.option<ConfigOptionFloats>("machine_max_junction_deviation");
return machine_jd && !machine_jd->values.empty() && machine_jd->values.front() > 0.0;
}();
toggle_line("default_junction_deviation", gcf_is_marlin_firmware);
toggle_field("default_junction_deviation", junction_deviation_enabled);
toggle_field("default_jerk", !junction_deviation_enabled);
const std::initializer_list<const char*> jerk_options = {
"outer_wall_jerk", "inner_wall_jerk", "initial_layer_jerk",
"initial_layer_travel_jerk", "top_surface_jerk", "travel_jerk", "infill_jerk"
};
if (junction_deviation_enabled) {
for (auto el : jerk_options)
toggle_line(el, false);
} else {
toggle_field("default_junction_deviation", false);
toggle_field("default_jerk", true);
bool have_default_jerk = config->has("default_jerk") && config->opt_float("default_jerk") > 0;
for (auto el : { "outer_wall_jerk", "inner_wall_jerk", "initial_layer_jerk", "initial_layer_travel_jerk", "top_surface_jerk", "travel_jerk", "infill_jerk"}) {
const bool have_default_jerk = config->has("default_jerk") && config->opt_float("default_jerk") > 0;
for (auto el : jerk_options) {
toggle_line(el, true);
toggle_field(el, have_default_jerk);
}
@@ -922,8 +931,8 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig *config, co
toggle_field("wipe_speed",!is_role_based_wipe_speed);
for (auto el : {"accel_to_decel_enable", "accel_to_decel_factor"})
toggle_line(el, gcflavor == gcfKlipper);
if(gcflavor == gcfKlipper)
toggle_line(el, gcf_is_klipper);
if(gcf_is_klipper)
toggle_field("accel_to_decel_factor", config->opt_bool("accel_to_decel_enable"));
bool have_make_overhang_printable = config->opt_bool("make_overhang_printable");