mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-12 09:17:52 -06:00
suport renamed_from
This commit is contained in:
parent
26a55a1267
commit
7179797d55
4 changed files with 19 additions and 7 deletions
|
@ -839,8 +839,9 @@ int ConfigBase::load_from_json(const std::string &file, ConfigSubstitutionContex
|
|||
}
|
||||
else if (!load_inherits_to_config && boost::iequals(it.key(), BBL_JSON_KEY_INHERITS)) {
|
||||
key_values.emplace(BBL_JSON_KEY_INHERITS, it.value());
|
||||
}
|
||||
else {
|
||||
} else if (boost::iequals(it.key(), ORCA_JSON_KEY_RENAMED_FROM)) {
|
||||
key_values.emplace(ORCA_JSON_KEY_RENAMED_FROM, it.value());
|
||||
} else {
|
||||
t_config_option_key opt_key = it.key();
|
||||
std::string value_str;
|
||||
|
||||
|
|
|
@ -1137,7 +1137,7 @@ void PresetCollection::load_presets(
|
|||
if (key_values.find("instantiation") != key_values.end())
|
||||
preset.is_visible = key_values["instantiation"] != "false";
|
||||
|
||||
//BBS: use inherit config as the base
|
||||
//Orca: find and use the inherit config as the base
|
||||
Preset* inherit_preset = nullptr;
|
||||
ConfigOption* inherits_config = config.option(BBL_JSON_KEY_INHERITS);
|
||||
|
||||
|
@ -1146,6 +1146,12 @@ void PresetCollection::load_presets(
|
|||
ConfigOptionString * option_str = dynamic_cast<ConfigOptionString *> (inherits_config);
|
||||
std::string inherits_value = option_str->value;
|
||||
inherit_preset = this->find_preset(inherits_value, false, true);
|
||||
// Orca: try to find if the parent preset has been renamed
|
||||
if (inherit_preset == nullptr) {
|
||||
auto it = this->find_preset_renamed(inherits_value);
|
||||
if (it != m_presets.end())
|
||||
inherit_preset = &(*it);
|
||||
}
|
||||
} else {
|
||||
;
|
||||
}
|
||||
|
|
|
@ -63,7 +63,8 @@
|
|||
#define BBL_JSON_KEY_DEFAULT_MATERIALS "default_materials"
|
||||
#define BBL_JSON_KEY_MODEL_ID "model_id"
|
||||
|
||||
//BBL: json path
|
||||
// Orca extension
|
||||
#define ORCA_JSON_KEY_RENAMED_FROM "renamed_from"
|
||||
|
||||
|
||||
namespace Slic3r {
|
||||
|
|
|
@ -3533,6 +3533,7 @@ std::pair<PresetsConfigSubstitutions, size_t> PresetBundle::load_vendor_configs_
|
|||
|
||||
//parse the json elements
|
||||
DynamicPrintConfig config_src;
|
||||
std::string _renamed_from_str;
|
||||
config_src.load_from_json(subfile, substitution_context, false, key_values, reason);
|
||||
if (!reason.empty()) {
|
||||
++m_errors;
|
||||
|
@ -3586,9 +3587,12 @@ std::pair<PresetsConfigSubstitutions, size_t> PresetBundle::load_vendor_configs_
|
|||
}
|
||||
if (config.has("alias"))
|
||||
alias_name = (dynamic_cast<const ConfigOptionString *>(config.option("alias")))->value;
|
||||
if (config.has("renamed_from")) {
|
||||
const ConfigOptionVectorBase *vec = static_cast<const ConfigOptionVectorBase*>(config.option("renamed_from"));
|
||||
renamed_from = vec->vserialize();
|
||||
|
||||
if (key_values.find(ORCA_JSON_KEY_RENAMED_FROM) != key_values.end()) {
|
||||
if (!unescape_strings_cstyle(key_values[ORCA_JSON_KEY_RENAMED_FROM], renamed_from)) {
|
||||
BOOST_LOG_TRIVIAL(error) << "Error in a Config \"" << path << "\": The preset \"" << preset_name
|
||||
<< "\" contains invalid \"renamed_from\" key, which is being ignored.";
|
||||
}
|
||||
}
|
||||
Preset::normalize(config);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue