mirror of
https://github.com/QIDITECH/QIDISlicer.git
synced 2026-01-30 23:48:44 +03:00
default_material
This commit is contained in:
@@ -1215,15 +1215,27 @@ Preset* PresetCollection::find_preset(const std::string &name, bool first_visibl
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Return index of the first visible preset. Certainly at least the '- default -' preset shall be visible.
|
// Return index of the first visible preset. Certainly at least the '- default -' preset shall be visible.
|
||||||
|
//B40
|
||||||
size_t PresetCollection::first_visible_idx() const
|
size_t PresetCollection::first_visible_idx() const
|
||||||
{
|
{
|
||||||
size_t idx = m_default_suppressed ? m_num_default_presets : 0;
|
size_t first_visible = -1;
|
||||||
for (; idx < m_presets.size(); ++ idx)
|
size_t idx = m_default_suppressed ? m_num_default_presets : 0;
|
||||||
if (m_presets[idx].is_visible)
|
for (; idx < m_presets.size(); ++idx)
|
||||||
break;
|
if (m_presets[idx].is_visible) {
|
||||||
if (idx == m_presets.size())
|
if (first_visible == -1)
|
||||||
idx = 0;
|
first_visible = idx;
|
||||||
return idx;
|
if (m_type != Preset::TYPE_FILAMENT)
|
||||||
|
break;
|
||||||
|
else {
|
||||||
|
if (m_presets[idx].name.find("PLA") != std::string::npos) {
|
||||||
|
first_visible = idx;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (first_visible == -1)
|
||||||
|
first_visible = 0;
|
||||||
|
return first_visible;
|
||||||
}
|
}
|
||||||
|
|
||||||
void PresetCollection::set_default_suppressed(bool default_suppressed)
|
void PresetCollection::set_default_suppressed(bool default_suppressed)
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ PresetBundle::PresetBundle() :
|
|||||||
// The following keys are handled by the UI, they do not have a counterpart in any StaticPrintConfig derived classes,
|
// The following keys are handled by the UI, they do not have a counterpart in any StaticPrintConfig derived classes,
|
||||||
// therefore they need to be handled differently. As they have no counterpart in StaticPrintConfig, they are not being
|
// therefore they need to be handled differently. As they have no counterpart in StaticPrintConfig, they are not being
|
||||||
// initialized based on PrintConfigDef(), but to empty values (zeros, empty vectors, empty strings).
|
// initialized based on PrintConfigDef(), but to empty values (zeros, empty vectors, empty strings).
|
||||||
//
|
|
||||||
// "compatible_printers", "compatible_printers_condition", "inherits",
|
// "compatible_printers", "compatible_printers_condition", "inherits",
|
||||||
// "print_settings_id", "filament_settings_id", "printer_settings_id", "printer_settings_id"
|
// "print_settings_id", "filament_settings_id", "printer_settings_id", "printer_settings_id"
|
||||||
// "printer_vendor", "printer_model", "printer_variant", "default_print_profile", "default_filament_profile"
|
// "printer_vendor", "printer_model", "printer_variant", "default_print_profile", "default_filament_profile"
|
||||||
@@ -1679,8 +1679,15 @@ void PresetBundle::update_multi_material_filament_presets()
|
|||||||
auto *nozzle_diameter = static_cast<const ConfigOptionFloats*>(printers.get_edited_preset().config.option("nozzle_diameter"));
|
auto *nozzle_diameter = static_cast<const ConfigOptionFloats*>(printers.get_edited_preset().config.option("nozzle_diameter"));
|
||||||
size_t num_extruders = nozzle_diameter->values.size();
|
size_t num_extruders = nozzle_diameter->values.size();
|
||||||
// Verify validity of the current filament presets.
|
// Verify validity of the current filament presets.
|
||||||
for (size_t i = 0; i < std::min(this->extruders_filaments.size(), num_extruders); ++i)
|
//B40
|
||||||
this->extruders_filaments[i].select_filament(this->filaments.find_preset(this->extruders_filaments[i].get_selected_preset_name(), true)->name);
|
for (size_t i = 0; i < std::min(this->extruders_filaments.size(), num_extruders); ++i) {
|
||||||
|
this->extruders_filaments[i].select_filament(this->filaments
|
||||||
|
.find_preset(this->filaments.get_selected_idx() == size_t(-1) ?
|
||||||
|
this->filaments.first_visible().name :
|
||||||
|
this->extruders_filaments[i].get_selected_preset_name(),
|
||||||
|
true)
|
||||||
|
->name);
|
||||||
|
}
|
||||||
|
|
||||||
if (this->extruders_filaments.size() > num_extruders)
|
if (this->extruders_filaments.size() > num_extruders)
|
||||||
this->extruders_filaments.resize(num_extruders);
|
this->extruders_filaments.resize(num_extruders);
|
||||||
|
|||||||
Reference in New Issue
Block a user