diff --git a/src/libslic3r/AppConfig.cpp b/src/libslic3r/AppConfig.cpp index aa82a5a54..bcfd5b3ef 100644 --- a/src/libslic3r/AppConfig.cpp +++ b/src/libslic3r/AppConfig.cpp @@ -462,8 +462,11 @@ std::string AppConfig::load() for(auto& element: iter.value()) { if (idx == 0) m_storage[it.key()]["filament"] = element; - else - m_storage[it.key()]["filament_" + std::to_string(idx)] = element; + else { + auto n = std::to_string(idx); + if (n.length() == 1) n = "0" + n; + m_storage[it.key()]["filament_" + n] = element; + } idx++; } } else { diff --git a/src/libslic3r/PresetBundle.cpp b/src/libslic3r/PresetBundle.cpp index 2bbee66ef..b67af2d0b 100644 --- a/src/libslic3r/PresetBundle.cpp +++ b/src/libslic3r/PresetBundle.cpp @@ -1293,7 +1293,7 @@ void PresetBundle::load_selections(AppConfig &config, const PresetPreferences& p this->filament_presets = { filaments.get_selected_preset_name() }; for (unsigned int i = 1; i < 1000; ++ i) { char name[64]; - sprintf(name, "filament_%u", i); + sprintf(name, "filament_%02u", i); if (! config.has("presets", name)) break; this->filament_presets.emplace_back(remove_ini_suffix(config.get("presets", name))); @@ -1371,7 +1371,7 @@ void PresetBundle::export_selections(AppConfig &config) config.set("presets", PRESET_FILAMENT_NAME, filament_presets.front()); for (unsigned i = 1; i < filament_presets.size(); ++i) { char name[64]; - sprintf(name, "filament_%u", i); + sprintf(name, "filament_%02u", i); config.set("presets", name, filament_presets[i]); } CNumericLocalesSetter locales_setter;