mirror of
https://git.mirrors.martin98.com/https://github.com/bambulab/BambuStudio.git
synced 2025-09-29 04:53:15 +08:00
FIX: error sync behavior for customize printer preset
jira: STUDIO-10331 Change-Id: I4d42ed089e515c2d74dfade1589f20f1c80ca4ca
This commit is contained in:
parent
6e8670ec6e
commit
ce963cede5
@ -2856,13 +2856,13 @@ wxBoxSizer *CreatePrinterPresetDialog::create_page2_btns_item(wxWindow *parent)
|
||||
if (printer_variant)
|
||||
printer_variant->value = printer_nozzle_name;
|
||||
|
||||
auto nozzle_diameter = dynamic_cast<ConfigOptionFloats *>(m_printer_preset->config.option("nozzle_diameter", true));
|
||||
auto nozzle_diameter = dynamic_cast<ConfigOptionFloatsNullable *>(m_printer_preset->config.option("nozzle_diameter", true));
|
||||
if (nozzle_diameter) {
|
||||
std::unordered_map<std::string, float>::const_iterator iter = nozzle_diameter_map.find(printer_nozzle_name);
|
||||
if (nozzle_diameter_map.end() != iter) {
|
||||
nozzle_diameter->values = {iter->second};
|
||||
std::fill(nozzle_diameter->values.begin(), nozzle_diameter->values.end(), iter->second);
|
||||
} else {
|
||||
nozzle_diameter->values = {std::stof(get_nozzle_diameter())};
|
||||
std::fill(nozzle_diameter->values.begin(), nozzle_diameter->values.end(), std::stof(get_nozzle_diameter()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -194,16 +194,11 @@ wxDEFINE_EVENT(EVT_ADD_FILAMENT, SimpleEvent);
|
||||
wxDEFINE_EVENT(EVT_DEL_FILAMENT, SimpleEvent);
|
||||
wxDEFINE_EVENT(EVT_ADD_CUSTOM_FILAMENT, ColorEvent);
|
||||
wxDEFINE_EVENT(EVT_NOTICE_CHILDE_SIZE_CHANGED, SimpleEvent);
|
||||
static int get_diameter_index(float diameter)
|
||||
static string get_diameter_string(float diameter)
|
||||
{
|
||||
float eps = 1e-3;
|
||||
std::vector<float> diameters = {0.2, 0.4, 0.6, 0.8};
|
||||
for (int index = 0; index < diameters.size(); ++index) {
|
||||
if (abs(diameters[index] - diameter) < eps) {
|
||||
return index;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
std::ostringstream stream;
|
||||
stream << std::fixed << std::setprecision(1) << diameter;
|
||||
return stream.str();
|
||||
}
|
||||
|
||||
bool Plater::has_illegal_filename_characters(const wxString& wxs_name)
|
||||
@ -1229,8 +1224,11 @@ bool Sidebar::priv::sync_extruder_list(bool &only_external_material)
|
||||
int main_index = obj->is_main_extruder_on_left() ? 0 : 1;
|
||||
int deputy_index = obj->is_main_extruder_on_left() ? 1 : 0;
|
||||
|
||||
left_extruder->combo_diameter->SetSelection(get_diameter_index(nozzle_diameters[0]));
|
||||
right_extruder->combo_diameter->SetSelection(get_diameter_index(nozzle_diameters[1]));
|
||||
int left_index = left_extruder->combo_diameter->FindString(get_diameter_string(nozzle_diameters[0]));
|
||||
int right_index = left_extruder->combo_diameter->FindString(get_diameter_string(nozzle_diameters[1]));
|
||||
assert(left_extruder != -1 && right_extruder != -1);
|
||||
left_extruder->combo_diameter->SetSelection(left_index);
|
||||
right_extruder->combo_diameter->SetSelection(right_index);
|
||||
is_switching_diameter = true;
|
||||
switch_diameter(false);
|
||||
is_switching_diameter = false;
|
||||
|
Loading…
x
Reference in New Issue
Block a user