mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-09-26 18:31:11 +00:00
Fix: Show indexed coFloatsOrPercents options in unsaved changes dialog (#15472)
This commit is contained in:
@@ -33,3 +33,20 @@ TEST_CASE("deep_diff flags new vector entries that duplicate values[0]", "[Prese
|
||||
// specific to new indices rather than flagging the whole vector.
|
||||
REQUIRE(std::find(diff.begin(), diff.end(), "nozzle_diameter#0") == diff.end());
|
||||
}
|
||||
|
||||
TEST_CASE("deep_diff distinguishes absolute and percentage speeds for each variant", "[PresetDiff][Config]")
|
||||
{
|
||||
const size_t changed_index = GENERATE(size_t(0), size_t(1));
|
||||
Preset reference(Preset::TYPE_PRINT, "ref");
|
||||
reference.config.set_key_value("small_perimeter_speed", new ConfigOptionFloatsOrPercents{{50., false}, {50., false}});
|
||||
|
||||
Preset edited = reference;
|
||||
edited.config.option<ConfigOptionFloatsOrPercents>("small_perimeter_speed")->values[changed_index].percent = true;
|
||||
|
||||
const auto diff = PresetCollection::dirty_options(&edited, &reference, /*deep_compare=*/true);
|
||||
REQUIRE(diff == std::vector<std::string>{"small_perimeter_speed#" + std::to_string(changed_index)});
|
||||
|
||||
DynamicPrintConfig transferred = reference.config;
|
||||
transferred.apply_only(edited.config, diff);
|
||||
REQUIRE(*transferred.option("small_perimeter_speed") == *edited.config.option("small_perimeter_speed"));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user