When loading Slic3r.ini of older Slic3rs, remove the .ini suffix
from the preset names. This fixes https://github.com/prusa3d/Slic3r/issues/367
This commit is contained in:
parent
ee84e1773d
commit
dd9e1aff70
1 changed files with 12 additions and 4 deletions
|
@ -85,13 +85,21 @@ void PresetBundle::load_presets(const std::string &dir_path)
|
||||||
this->update_multi_material_filament_presets();
|
this->update_multi_material_filament_presets();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline std::string remove_ini_suffix(const std::string &name)
|
||||||
|
{
|
||||||
|
std::string out = name;
|
||||||
|
if (boost::iends_with(out, ".ini"))
|
||||||
|
out.erase(out.end() - 4, out.end());
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
// Load selections (current print, current filaments, current printer) from config.ini
|
// Load selections (current print, current filaments, current printer) from config.ini
|
||||||
// This is done just once on application start up.
|
// This is done just once on application start up.
|
||||||
void PresetBundle::load_selections(const AppConfig &config)
|
void PresetBundle::load_selections(const AppConfig &config)
|
||||||
{
|
{
|
||||||
prints.select_preset_by_name(config.get("presets", "print"), true);
|
prints.select_preset_by_name(remove_ini_suffix(config.get("presets", "print")), true);
|
||||||
filaments.select_preset_by_name(config.get("presets", "filament"), true);
|
filaments.select_preset_by_name(remove_ini_suffix(config.get("presets", "filament")), true);
|
||||||
printers.select_preset_by_name(config.get("presets", "printer"), true);
|
printers.select_preset_by_name(remove_ini_suffix(config.get("presets", "printer")), true);
|
||||||
auto *nozzle_diameter = dynamic_cast<const ConfigOptionFloats*>(printers.get_selected_preset().config.option("nozzle_diameter"));
|
auto *nozzle_diameter = dynamic_cast<const ConfigOptionFloats*>(printers.get_selected_preset().config.option("nozzle_diameter"));
|
||||||
size_t num_extruders = nozzle_diameter->values.size();
|
size_t num_extruders = nozzle_diameter->values.size();
|
||||||
this->set_filament_preset(0, filaments.get_selected_preset().name);
|
this->set_filament_preset(0, filaments.get_selected_preset().name);
|
||||||
|
@ -100,7 +108,7 @@ void PresetBundle::load_selections(const AppConfig &config)
|
||||||
sprintf(name, "filament_%d", i);
|
sprintf(name, "filament_%d", i);
|
||||||
if (! config.has("presets", name))
|
if (! config.has("presets", name))
|
||||||
break;
|
break;
|
||||||
this->set_filament_preset(i, config.get("presets", name));
|
this->set_filament_preset(i, remove_ini_suffix(config.get("presets", name)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue