mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-11 16:57:53 -06:00
First try to convert a user printer profiles to the physical printers
This commit is contained in:
parent
72ec414f1e
commit
3d990a9189
5 changed files with 42 additions and 8 deletions
|
@ -1481,7 +1481,7 @@ PhysicalPrinterCollection::PhysicalPrinterCollection( const std::vector<std::str
|
|||
{
|
||||
}
|
||||
|
||||
// Load all presets found in dir_path.
|
||||
// Load all printers found in dir_path.
|
||||
// Throws an exception on error.
|
||||
void PhysicalPrinterCollection::load_printers(const std::string& dir_path, const std::string& subdir)
|
||||
{
|
||||
|
@ -1498,7 +1498,7 @@ void PhysicalPrinterCollection::load_printers(const std::string& dir_path, const
|
|||
if (this->find_printer(name, false)) {
|
||||
// This happens when there's is a preset (most likely legacy one) with the same name as a system preset
|
||||
// that's already been loaded from a bundle.
|
||||
BOOST_LOG_TRIVIAL(warning) << "Preset already present, not loading: " << name;
|
||||
BOOST_LOG_TRIVIAL(warning) << "Printer already present, not loading: " << name;
|
||||
continue;
|
||||
}
|
||||
try {
|
||||
|
@ -1530,6 +1530,35 @@ void PhysicalPrinterCollection::load_printers(const std::string& dir_path, const
|
|||
throw std::runtime_error(errors_cummulative);
|
||||
}
|
||||
|
||||
// if there is saved user presets, contains information about "Print Host upload",
|
||||
// Create default printers with this presets
|
||||
// Throws an exception on error.
|
||||
void PhysicalPrinterCollection::load_printers(const PrinterPresetCollection& printer_presets, std::string def_printer_name/* = ""*/)
|
||||
{
|
||||
if (def_printer_name.empty())
|
||||
def_printer_name = "Printer";
|
||||
|
||||
int cnt=0;
|
||||
std::string errors_cummulative;
|
||||
// Store the loaded printers into a new vector
|
||||
std::deque<PhysicalPrinter> printers_loaded;
|
||||
for (const Preset& preset: printer_presets) {
|
||||
const DynamicPrintConfig& config = preset.config;
|
||||
if (!config.opt_string("print_host").empty() ||
|
||||
!config.opt_string("printhost_apikey").empty() ||
|
||||
!config.opt_string("printhost_cafile").empty() ) {
|
||||
PhysicalPrinter printer((boost::format("%1% %2%") % def_printer_name % ++cnt ).str(), preset);
|
||||
printer.loaded = true;
|
||||
printers_loaded.emplace_back(printer);
|
||||
|
||||
save_printer(printer);
|
||||
}
|
||||
}
|
||||
|
||||
if (!errors_cummulative.empty())
|
||||
throw std::runtime_error(errors_cummulative);
|
||||
}
|
||||
|
||||
PhysicalPrinter* PhysicalPrinterCollection::find_printer( const std::string& name, bool first_visible_if_not_found)
|
||||
{
|
||||
PhysicalPrinter key(name);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue