From 8b416a083a6b01caf2efe0ddb505dc24fe0ab69f Mon Sep 17 00:00:00 2001 From: supermerill Date: Mon, 17 Aug 2020 21:06:50 +0200 Subject: [PATCH] #222 expose thumbnails setting to gui --- resources/ui_layout/printer_fff.ui | 4 ++++ src/libslic3r/GCode.cpp | 7 ++++++- src/libslic3r/PrintConfig.cpp | 2 +- src/libslic3r/PrintConfig.hpp | 2 ++ src/slic3r/GUI/BackgroundSlicingProcess.cpp | 16 ++++++++++++---- src/slic3r/GUI/Field.cpp | 5 +++-- src/slic3r/GUI/Preset.cpp | 1 + 7 files changed, 29 insertions(+), 8 deletions(-) diff --git a/resources/ui_layout/printer_fff.ui b/resources/ui_layout/printer_fff.ui index 934381697..4f36ad8ce 100644 --- a/resources/ui_layout/printer_fff.ui +++ b/resources/ui_layout/printer_fff.ui @@ -13,6 +13,10 @@ group:Print Host upload printhost group:silent_mode_event:Firmware setting:gcode_flavor + line:Gcode thumbnails + setting:id$0:label$Small:thumbnails + setting:id$1:label$Big:thumbnails + end_line setting:silent_mode setting:remaining_times setting:fan_speedup_time diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp index 63747e3ce..01d9f86d7 100644 --- a/src/libslic3r/GCode.cpp +++ b/src/libslic3r/GCode.cpp @@ -1011,9 +1011,14 @@ namespace DoExport { // Write thumbnails using base64 encoding if (thumbnail_cb != nullptr) { + std::vector good_sizes; + for (const Vec2d &size : sizes) + if (size.x() > 0 && size.y() > 0) + good_sizes.push_back(size); + const size_t max_row_length = 78; ThumbnailsList thumbnails; - thumbnail_cb(thumbnails, sizes, true, true, true, true); + thumbnail_cb(thumbnails, good_sizes, true, true, true, true); for (const ThumbnailData& data : thumbnails) { if (data.is_valid()) diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index a267be62c..fd9269b6f 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -74,7 +74,7 @@ void PrintConfigDef::init_common_params() def = this->add("thumbnails", coPoints); def->label = L("Picture sizes to be stored into a .gcode and .sl1 files"); def->mode = comExpert; - def->set_default_value(new ConfigOptionPoints()); + def->set_default_value(new ConfigOptionPoints{ Vec2d(0,0), Vec2d(0,0) }); def = this->add("layer_height", coFloat); def->label = L("Base Layer height"); diff --git a/src/libslic3r/PrintConfig.hpp b/src/libslic3r/PrintConfig.hpp index 72f0e5a85..7136a4a23 100644 --- a/src/libslic3r/PrintConfig.hpp +++ b/src/libslic3r/PrintConfig.hpp @@ -1104,6 +1104,7 @@ public: ConfigOptionInt standby_temperature_delta; ConfigOptionInts temperature; ConfigOptionInt threads; + ConfigOptionPoints thumbnails; ConfigOptionPercent time_estimation_compensation; ConfigOptionInts top_fan_speed; ConfigOptionBools wipe; @@ -1194,6 +1195,7 @@ protected: OPT_PTR(standby_temperature_delta); OPT_PTR(temperature); OPT_PTR(threads); + OPT_PTR(thumbnails); OPT_PTR(time_estimation_compensation); OPT_PTR(top_fan_speed); OPT_PTR(wipe); diff --git a/src/slic3r/GUI/BackgroundSlicingProcess.cpp b/src/slic3r/GUI/BackgroundSlicingProcess.cpp index 48ecbbc98..a3f4b1655 100644 --- a/src/slic3r/GUI/BackgroundSlicingProcess.cpp +++ b/src/slic3r/GUI/BackgroundSlicingProcess.cpp @@ -165,8 +165,12 @@ void BackgroundSlicingProcess::process_sla() if (m_thumbnail_cb != nullptr) { ThumbnailsList thumbnails; - m_thumbnail_cb(thumbnails, current_print()->full_print_config().option("thumbnails")->values, true, true, true, true); -// m_thumbnail_cb(thumbnails, current_print()->full_print_config().option("thumbnails")->values, true, false, true, true); // renders also supports and pad + std::vector good_sizes; + for (const Vec2d &size : current_print()->full_print_config().option("thumbnails")->values) + if (size.x() > 0 && size.y() > 0) + good_sizes.push_back(size); + m_thumbnail_cb(thumbnails, good_sizes, true, true, true, true); +// m_thumbnail_cb(thumbnails, good_sizes, true, false, true, true); // renders also supports and pad for (const ThumbnailData& data : thumbnails) { if (data.is_valid()) @@ -493,8 +497,12 @@ void BackgroundSlicingProcess::prepare_upload() if (m_thumbnail_cb != nullptr) { ThumbnailsList thumbnails; - m_thumbnail_cb(thumbnails, current_print()->full_print_config().option("thumbnails")->values, true, true, true, true); -// m_thumbnail_cb(thumbnails, current_print()->full_print_config().option("thumbnails")->values, true, false, true, true); // renders also supports and pad + std::vector good_sizes; + for (const Vec2d &size : current_print()->full_print_config().option("thumbnails")->values) + if (size.x() > 0 && size.y() > 0) + good_sizes.push_back(size); + m_thumbnail_cb(thumbnails, good_sizes, true, true, true, true); +// m_thumbnail_cb(thumbnails, good_sizes, true, false, true, true); // renders also supports and pad for (const ThumbnailData& data : thumbnails) { if (data.is_valid()) diff --git a/src/slic3r/GUI/Field.cpp b/src/slic3r/GUI/Field.cpp index fa90baef1..462180bea 100644 --- a/src/slic3r/GUI/Field.cpp +++ b/src/slic3r/GUI/Field.cpp @@ -61,8 +61,9 @@ void Field::PostInitialize() { case coPercents: case coFloats: - case coStrings: - case coBools: + case coStrings: + case coBools: + case coPoints: case coInts: { auto tag_pos = m_opt_id.find("#"); if (tag_pos != std::string::npos) diff --git a/src/slic3r/GUI/Preset.cpp b/src/slic3r/GUI/Preset.cpp index 9d10cc16a..d455b1f85 100644 --- a/src/slic3r/GUI/Preset.cpp +++ b/src/slic3r/GUI/Preset.cpp @@ -614,6 +614,7 @@ const std::vector& Preset::printer_options() "machine_max_feedrate_x", "machine_max_feedrate_y", "machine_max_feedrate_z", "machine_max_feedrate_e", "machine_min_extruding_rate", "machine_min_travel_rate", "machine_max_jerk_x", "machine_max_jerk_y", "machine_max_jerk_z", "machine_max_jerk_e", + "thumbnails", "time_estimation_compensation", "print_machine_envelope", "fan_speedup_time",