Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/prusa3d/PrusaSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuSanka <yusanka@gmail.com>2020-07-20 17:27:39 +0300
committerYuSanka <yusanka@gmail.com>2020-07-20 17:27:39 +0300
commit3d990a918904fb1ab10afa4f95f2885350821994 (patch)
treefef746b7840aff4308005f9ea59ef3218202ff08
parent72ec414f1e4492d67465efe368a4a224a21ed7eb (diff)
First try to convert a user printer profiles to the physical printers
-rw-r--r--src/libslic3r/Preset.cpp33
-rw-r--r--src/libslic3r/Preset.hpp1
-rw-r--r--src/libslic3r/PresetBundle.cpp1
-rw-r--r--src/slic3r/GUI/PresetComboBoxes.cpp6
-rw-r--r--src/slic3r/GUI/PresetComboBoxes.hpp9
5 files changed, 42 insertions, 8 deletions
diff --git a/src/libslic3r/Preset.cpp b/src/libslic3r/Preset.cpp
index a55dc24ca..401de0fc3 100644
--- a/src/libslic3r/Preset.cpp
+++ b/src/libslic3r/Preset.cpp
@@ -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);
diff --git a/src/libslic3r/Preset.hpp b/src/libslic3r/Preset.hpp
index e8afb0f6f..02f831136 100644
--- a/src/libslic3r/Preset.hpp
+++ b/src/libslic3r/Preset.hpp
@@ -626,6 +626,7 @@ public:
// Load ini files of the particular type from the provided directory path.
void load_printers(const std::string& dir_path, const std::string& subdir);
+ void load_printers(const PrinterPresetCollection &printer_presets, std::string def_printer_name = "");
// Save the printer under a new name. If the name is different from the old one,
// a new printer is stored into the list of printers.
diff --git a/src/libslic3r/PresetBundle.cpp b/src/libslic3r/PresetBundle.cpp
index 7969966e5..0e215a2ae 100644
--- a/src/libslic3r/PresetBundle.cpp
+++ b/src/libslic3r/PresetBundle.cpp
@@ -201,6 +201,7 @@ void PresetBundle::load_presets(AppConfig &config, const std::string &preferred_
}
try {
this->physical_printers.load_printers(dir_user_presets, "physical_printer");
+ this->physical_printers.load_printers(this->printers);
} catch (const std::runtime_error &err) {
errors_cummulative += err.what();
}
diff --git a/src/slic3r/GUI/PresetComboBoxes.cpp b/src/slic3r/GUI/PresetComboBoxes.cpp
index bc1f48dd6..2d74344bd 100644
--- a/src/slic3r/GUI/PresetComboBoxes.cpp
+++ b/src/slic3r/GUI/PresetComboBoxes.cpp
@@ -131,6 +131,12 @@ PresetComboBox::~PresetComboBox()
{
}
+BitmapCache& PresetComboBox::bitmap_cache()
+{
+ static BitmapCache bmps;
+ return bmps;
+}
+
void PresetComboBox::set_label_marker(int item, LabelItemType label_item_type)
{
this->SetClientData(item, (void*)label_item_type);
diff --git a/src/slic3r/GUI/PresetComboBoxes.hpp b/src/slic3r/GUI/PresetComboBoxes.hpp
index 1cea97e41..89d043f7b 100644
--- a/src/slic3r/GUI/PresetComboBoxes.hpp
+++ b/src/slic3r/GUI/PresetComboBoxes.hpp
@@ -10,7 +10,7 @@
#include "libslic3r/Preset.hpp"
#include "wxExtensions.hpp"
#include "GUI_Utils.hpp"
-#include "BitmapCache.hpp"
+//#include "BitmapCache.hpp"
class wxString;
class wxTextCtrl;
@@ -22,7 +22,7 @@ namespace Slic3r {
namespace GUI {
-
+class BitmapCache;
// ---------------------------------
// *** PresetComboBox ***
// ---------------------------------
@@ -72,10 +72,7 @@ protected:
PresetCollection* m_collection {nullptr};
// Caching bitmaps for the all bitmaps, used in preset comboboxes
- static BitmapCache& bitmap_cache() {
- static BitmapCache bmps;
- return bmps;
- }
+ static BitmapCache& bitmap_cache();
// Indicator, that the preset is compatible with the selected printer.
ScalableBitmap m_bitmapCompatible;