NEW: save unrecognized matadata field in 3dmodel.model

Change-Id: Ia5db9990b8b871f03ffd961cbf1808d228060e21
Signed-off-by: Stone Li <stone.li@bambulab.com>
This commit is contained in:
Stone Li 2022-11-14 11:03:29 +08:00 committed by Lane.Wei
parent b6a54103b8
commit c7d8b3871a
2 changed files with 22 additions and 0 deletions

View File

@ -2885,6 +2885,13 @@ void PlateData::parse_filament_info(GCodeProcessorResult *result)
} else if (m_curr_metadata_name == BBL_REGION_TAG) {
BOOST_LOG_TRIVIAL(trace) << "design_info, load_3mf found region = " << m_curr_characters;
m_contry_code = xml_unescape(m_curr_characters);
} else {
// BBS store metadata list
BOOST_LOG_TRIVIAL(info) << "load_3mf found metadata = " << m_curr_characters;
ModelInfo::MetaDataItem item;
item.key = m_curr_metadata_name;
item.value = xml_unescape(m_curr_characters);
model_info.metadata_items.push_back(item);
}
return true;
@ -4614,6 +4621,13 @@ void PlateData::parse_filament_info(GCodeProcessorResult *result)
copyright = model.model_info->copyright;
name = model.model_info->model_name;
BOOST_LOG_TRIVIAL(trace) << "design_info, save_3mf found designer_cover = " << design_cover;
// write metadata
for (int i = 0; i < model.model_info.get()->metadata_items.size(); i++) {
BOOST_LOG_TRIVIAL(info) << "bbs_3mf: save key= " << model.model_info.get()->metadata_items[i].key
<< ", value = " << xml_escape(model.model_info.get()->metadata_items[i].value);
stream << " <" << METADATA_TAG << " name=\"" << model.model_info.get()->metadata_items[i].key << "\">"
<< xml_escape(model.model_info.get()->metadata_items[i].value) << "</" << METADATA_TAG << ">\n";
}
}
if (project) {

View File

@ -1233,12 +1233,20 @@ public:
std::string copyright; // utf8 format
std::string model_name; // utf8 format
struct MetaDataItem
{
std::string key;
std::string value;
};
std::vector<MetaDataItem> metadata_items; // other meta data items
void load(ModelInfo &info) {
this->cover_file = info.cover_file;
this->license = info.license;
this->description = info.description;
this->copyright = info.copyright;
this->model_name = info.model_name;
this->metadata_items = info.metadata_items;
}
};