Fix of a wrong order of processing the config sources when slicing
from command line. Fixes PrusaSlicer Console --load my_config.ini doesnt overwrites the 3mf profiles or not used. #3893 The priority of config values is now: 1) Config keys from command line, for example --fill-pattern=stars (highest priority, overwrites everything below) 2) Config files loaded with --load 3) Config from 3mf (lowest priority)
This commit is contained in:
parent
ad5ae50933
commit
015a4a37dc
@ -132,14 +132,18 @@ int CLI::run(int argc, char **argv)
|
|||||||
Model model;
|
Model model;
|
||||||
try {
|
try {
|
||||||
// When loading an AMF or 3MF, config is imported as well, including the printer technology.
|
// When loading an AMF or 3MF, config is imported as well, including the printer technology.
|
||||||
model = Model::read_from_file(file, &m_print_config, true);
|
DynamicPrintConfig config;
|
||||||
PrinterTechnology other_printer_technology = get_printer_technology(m_print_config);
|
model = Model::read_from_file(file, &config, true);
|
||||||
|
PrinterTechnology other_printer_technology = get_printer_technology(config);
|
||||||
if (printer_technology == ptUnknown) {
|
if (printer_technology == ptUnknown) {
|
||||||
printer_technology = other_printer_technology;
|
printer_technology = other_printer_technology;
|
||||||
} else if (printer_technology != other_printer_technology && other_printer_technology != ptUnknown) {
|
} else if (printer_technology != other_printer_technology && other_printer_technology != ptUnknown) {
|
||||||
boost::nowide::cerr << "Mixing configurations for FFF and SLA technologies" << std::endl;
|
boost::nowide::cerr << "Mixing configurations for FFF and SLA technologies" << std::endl;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
// config is applied to m_print_config before the current m_config values.
|
||||||
|
config += std::move(m_print_config);
|
||||||
|
m_print_config = std::move(config);
|
||||||
} catch (std::exception &e) {
|
} catch (std::exception &e) {
|
||||||
boost::nowide::cerr << file << ": " << e.what() << std::endl;
|
boost::nowide::cerr << file << ": " << e.what() << std::endl;
|
||||||
return 1;
|
return 1;
|
||||||
|
Loading…
Reference in New Issue
Block a user