mirror of
https://git.mirrors.martin98.com/https://github.com/bambulab/BambuStudio.git
synced 2025-09-29 07:13:14 +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)
|
if (printer_variant)
|
||||||
printer_variant->value = printer_nozzle_name;
|
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) {
|
if (nozzle_diameter) {
|
||||||
std::unordered_map<std::string, float>::const_iterator iter = nozzle_diameter_map.find(printer_nozzle_name);
|
std::unordered_map<std::string, float>::const_iterator iter = nozzle_diameter_map.find(printer_nozzle_name);
|
||||||
if (nozzle_diameter_map.end() != iter) {
|
if (nozzle_diameter_map.end() != iter) {
|
||||||
nozzle_diameter->values = {iter->second};
|
std::fill(nozzle_diameter->values.begin(), nozzle_diameter->values.end(), iter->second);
|
||||||
} else {
|
} 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_DEL_FILAMENT, SimpleEvent);
|
||||||
wxDEFINE_EVENT(EVT_ADD_CUSTOM_FILAMENT, ColorEvent);
|
wxDEFINE_EVENT(EVT_ADD_CUSTOM_FILAMENT, ColorEvent);
|
||||||
wxDEFINE_EVENT(EVT_NOTICE_CHILDE_SIZE_CHANGED, SimpleEvent);
|
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::ostringstream stream;
|
||||||
std::vector<float> diameters = {0.2, 0.4, 0.6, 0.8};
|
stream << std::fixed << std::setprecision(1) << diameter;
|
||||||
for (int index = 0; index < diameters.size(); ++index) {
|
return stream.str();
|
||||||
if (abs(diameters[index] - diameter) < eps) {
|
|
||||||
return index;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Plater::has_illegal_filename_characters(const wxString& wxs_name)
|
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 main_index = obj->is_main_extruder_on_left() ? 0 : 1;
|
||||||
int deputy_index = obj->is_main_extruder_on_left() ? 1 : 0;
|
int deputy_index = obj->is_main_extruder_on_left() ? 1 : 0;
|
||||||
|
|
||||||
left_extruder->combo_diameter->SetSelection(get_diameter_index(nozzle_diameters[0]));
|
int left_index = left_extruder->combo_diameter->FindString(get_diameter_string(nozzle_diameters[0]));
|
||||||
right_extruder->combo_diameter->SetSelection(get_diameter_index(nozzle_diameters[1]));
|
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;
|
is_switching_diameter = true;
|
||||||
switch_diameter(false);
|
switch_diameter(false);
|
||||||
is_switching_diameter = false;
|
is_switching_diameter = false;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user