ENH: config: add default_nozzle_volume_type in printer

1. also remove original nozzle_volume_type from printer
and move into project config
2. support save nozzle_volume_type into appconfig
and load from it at beginning or printer switch

jira: no-jira

Change-Id: I01fc82d142fc633fc59a238796a71b9f8d180efb
(cherry picked from commit fe8b904e7551cde83b1ead75922e9b60278b50ad)
This commit is contained in:
lane.wei
2024-08-06 16:31:32 +08:00
committed by Noisyfox
parent 0a51580b51
commit 7b4fd12905
7 changed files with 98 additions and 9 deletions

View File

@@ -41,6 +41,7 @@ static std::vector<std::string> s_project_options {
"wipe_tower_rotation_angle",
"curr_bed_type",
"flush_multiplier",
"nozzle_volume_type"
};
//Orca: add custom as default
@@ -1785,6 +1786,23 @@ void PresetBundle::load_selections(AppConfig &config, const PresetPreferences& p
}
}
const Preset& current_printer = printers.get_selected_preset();
const Preset* base_printer = printers.get_preset_base(current_printer);
bool use_default_nozzle_volume_type = true;
if (base_printer) {
std::string prev_nozzle_volume_type = config.get_nozzle_volume_types_from_config(base_printer->name);
if (!prev_nozzle_volume_type.empty()) {
ConfigOptionEnumsGeneric* nozzle_volume_type_option = project_config.option<ConfigOptionEnumsGeneric>("nozzle_volume_type");
if (nozzle_volume_type_option->deserialize(prev_nozzle_volume_type)) {
use_default_nozzle_volume_type = false;
}
}
}
if (use_default_nozzle_volume_type) {
project_config.option<ConfigOptionEnumsGeneric>("nozzle_volume_type")->values = current_printer.config.option<ConfigOptionEnumsGeneric>("default_nozzle_volume_type")->values;
}
// Parse the initial physical printer name.
std::string initial_physical_printer_name = remove_ini_suffix(config.get("presets", "physical_printer"));