From d691e2c2ed752e11851be9ec57cc9964735813b1 Mon Sep 17 00:00:00 2001 From: "lane.wei" Date: Mon, 8 Jul 2024 16:15:11 +0800 Subject: [PATCH] ENH: config: add some miss codes previous commit 'ENH: config: add nill load/save logic for user config' jira: no-jira Change-Id: I91ab326e533d54846518d11b457db0b0afe4d499 (cherry picked from commit 4086ec60c2b14bfb8ab12aa97842d563f71739ab) --- src/libslic3r/Config.hpp | 2 ++ src/libslic3r/Preset.cpp | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/libslic3r/Config.hpp b/src/libslic3r/Config.hpp index f3561b2285..68ff1a6600 100644 --- a/src/libslic3r/Config.hpp +++ b/src/libslic3r/Config.hpp @@ -541,6 +541,8 @@ public: if (inherits->size() != rhs->size()) throw ConfigurationError("ConfigOptionVector::set_with_nil(): rhs size different with inherits size"); + this->values.resize(inherits->size(), this->values.front()); + for (size_t i = 0; i < inherits_opt->size(); i= i+stride) { bool set_nil = true; for (size_t j = 0; j < stride; j++) { diff --git a/src/libslic3r/Preset.cpp b/src/libslic3r/Preset.cpp index c583d39b08..023014f409 100644 --- a/src/libslic3r/Preset.cpp +++ b/src/libslic3r/Preset.cpp @@ -551,7 +551,9 @@ void Preset::save(DynamicPrintConfig* parent_config) ConfigOptionVectorBase* opt_vec_src = static_cast(opt_src); ConfigOptionVectorBase* opt_vec_dst = static_cast(opt_dst); ConfigOptionVectorBase* opt_vec_inherit = static_cast(parent_config->option(option)); - if (key_set1->find(option) != key_set1->end()) { + if (opt_vec_src->size() == 1) + opt_dst->set(opt_src); + else if (key_set1->find(option) != key_set1->end()) { opt_vec_dst->set_with_nil(opt_vec_src, opt_vec_inherit, 1); } else if (key_set2->find(option) != key_set2->end()) {