Prusa 2.7.3

This commit is contained in:
sunsets
2024-03-30 10:22:25 +08:00
parent 764ce01063
commit 5ccb55ff98
56 changed files with 2106 additions and 1483 deletions

View File

@@ -58,6 +58,27 @@ public:
void cache_extruder_filaments_names();
void reset_extruder_filaments();
// Another hideous function related to current ExtruderFilaments hack. Returns a vector of values
// of a given config option for all currently used filaments. Modified value is returned for modified preset.
// Must be called with the vector ConfigOption type, e.g. ConfigOptionPercents.
template <class T>
auto get_config_options_for_current_filaments(const t_config_option_key& key)
{
decltype(T::values) out;
const Preset& edited_preset = this->filaments.get_edited_preset();
for (const ExtruderFilaments& extr_filament : this->extruders_filaments) {
const Preset& selected_preset = *extr_filament.get_selected_preset();
const Preset& preset = edited_preset.name == selected_preset.name ? edited_preset : selected_preset;
const T* co = preset.config.opt<T>(key);
if (co) {
assert(co->values.size() == 1);
out.push_back(co->values.back());
} else {
// Key is missing or type mismatch.
}
}
return out;
}
PresetCollection& get_presets(Preset::Type preset_type);
// The project configuration values are kept separated from the print/filament/printer preset,