diff --git a/src/libslic3r/PrintExport.hpp b/src/libslic3r/PrintExport.hpp index e196cde5f..0df405846 100644 --- a/src/libslic3r/PrintExport.hpp +++ b/src/libslic3r/PrintExport.hpp @@ -155,14 +155,8 @@ template<> class FilePrinter "jobDir = ") + projectname + "\n" + "expTime = " + expt_str + "\n" "expTimeFirst = " + expt_first_str + "\n" -// "stepNum = " + stepnum_str + "\n" -// "wifiOn = 1\n" -// "tiltSlow = 60\n" -// "tiltFast = 15\n" "numFade = " + cnt_fade_layers + "\n" -// "startdelay = 0\n" "layerHeight = " + layerh_str + "\n" - "noteInfo = " "expTime = "+expt_str+" + resinType = generic+layerHeight = " +layerh_str+" + printer = DWARF3\n" "usedMaterial = " + used_material + "\n" diff --git a/src/libslic3r/SLAPrint.cpp b/src/libslic3r/SLAPrint.cpp index 7f3bc2557..d81498916 100644 --- a/src/libslic3r/SLAPrint.cpp +++ b/src/libslic3r/SLAPrint.cpp @@ -975,7 +975,7 @@ void SLAPrint::process() this->fill_statistics(); // Set statistics values to the printer m_printer->set_statistics({(m_print_statistics.objects_used_material + m_print_statistics.support_used_material)/1000, - 10.0, + double(m_default_object_config.faded_layers.getInt()), double(m_print_statistics.slow_layers_count), double(m_print_statistics.fast_layers_count) }); @@ -1318,7 +1318,8 @@ bool SLAPrintObject::invalidate_state_by_config_options(const std::vector steps; bool invalidated = false; for (const t_config_option_key &opt_key : opt_keys) { - if (opt_key == "layer_height") { + if ( opt_key == "layer_height" + || opt_key == "faded_layers") { steps.emplace_back(slaposObjectSlice); } else if ( opt_key == "supports_enable" diff --git a/src/slic3r/GUI/GUI_ObjectList.cpp b/src/slic3r/GUI/GUI_ObjectList.cpp index d973fd581..c5d6fe9fd 100644 --- a/src/slic3r/GUI/GUI_ObjectList.cpp +++ b/src/slic3r/GUI/GUI_ObjectList.cpp @@ -1178,7 +1178,7 @@ void ObjectList::load_generic_subobject(const std::string& type_name, const Mode const auto obj_idx = get_selected_obj_idx(); if (obj_idx < 0) return; - const std::string name = _(L("Generic")) + "-" + _(type_name); + const wxString name = _(L("Generic")) + "-" + _(type_name); TriangleMesh mesh; auto& bed_shape = wxGetApp().preset_bundle->printers.get_edited_preset().config.option("bed_shape")->values; @@ -1230,7 +1230,7 @@ void ObjectList::load_generic_subobject(const std::string& type_name, const Mode } #endif // ENABLE_GENERIC_SUBPARTS_PLACEMENT - new_volume->name = name; + new_volume->name = into_u8(name); // set a default extruder value, since user can't add it manually new_volume->config.set_key_value("extruder", new ConfigOptionInt(0)); @@ -1238,7 +1238,7 @@ void ObjectList::load_generic_subobject(const std::string& type_name, const Mode parts_changed(obj_idx); const auto object_item = m_objects_model->GetTopParent(GetSelection()); - select_item(m_objects_model->AddVolumeChild(object_item, from_u8(name), type)); + select_item(m_objects_model->AddVolumeChild(object_item, name, type)); #ifndef __WXOSX__ //#ifdef __WXMSW__ // #ys_FIXME selection_changed(); #endif //no __WXOSX__ //__WXMSW__ diff --git a/src/slic3r/GUI/ImGuiWrapper.cpp b/src/slic3r/GUI/ImGuiWrapper.cpp index 0e437ef6d..61baf352b 100644 --- a/src/slic3r/GUI/ImGuiWrapper.cpp +++ b/src/slic3r/GUI/ImGuiWrapper.cpp @@ -101,6 +101,10 @@ void ImGuiWrapper::set_style_scaling(float scaling) bool ImGuiWrapper::update_mouse_data(wxMouseEvent& evt) { + if (! display_initialized()) { + return false; + } + ImGuiIO& io = ImGui::GetIO(); io.MousePos = ImVec2((float)evt.GetX(), (float)evt.GetY()); io.MouseDown[0] = evt.LeftDown(); @@ -116,6 +120,10 @@ bool ImGuiWrapper::update_mouse_data(wxMouseEvent& evt) bool ImGuiWrapper::update_key_data(wxKeyEvent &evt) { + if (! display_initialized()) { + return false; + } + ImGuiIO& io = ImGui::GetIO(); if (evt.GetEventType() == wxEVT_CHAR) { @@ -521,6 +529,12 @@ void ImGuiWrapper::render_draw_data(ImDrawData *draw_data) glScissor(last_scissor_box[0], last_scissor_box[1], (GLsizei)last_scissor_box[2], (GLsizei)last_scissor_box[3]); } +bool ImGuiWrapper::display_initialized() const +{ + const ImGuiIO& io = ImGui::GetIO(); + return io.DisplaySize.x >= 0.0f && io.DisplaySize.y >= 0.0f; +} + void ImGuiWrapper::destroy_device_objects() { destroy_fonts_texture(); diff --git a/src/slic3r/GUI/ImGuiWrapper.hpp b/src/slic3r/GUI/ImGuiWrapper.hpp index e8755718b..2cadc773c 100644 --- a/src/slic3r/GUI/ImGuiWrapper.hpp +++ b/src/slic3r/GUI/ImGuiWrapper.hpp @@ -75,6 +75,7 @@ private: void init_input(); void init_style(); void render_draw_data(ImDrawData *draw_data); + bool display_initialized() const; void destroy_device_objects(); void destroy_fonts_texture(); diff --git a/src/slic3r/Utils/PresetUpdater.cpp b/src/slic3r/Utils/PresetUpdater.cpp index f00a2c2c4..6924f86de 100644 --- a/src/slic3r/Utils/PresetUpdater.cpp +++ b/src/slic3r/Utils/PresetUpdater.cpp @@ -353,14 +353,6 @@ Updates PresetUpdater::priv::get_config_updates() const // Perform a basic load and check the version const auto vp = VendorProfile::from_ini(bundle_path, false); - const auto ver_current = idx.find(vp.config_version); - if (ver_current == idx.end()) { - auto message = (boost::format("Preset bundle `%1%` version not found in index: %2%") % idx.vendor() % vp.config_version.to_string()).str(); - BOOST_LOG_TRIVIAL(error) << message; - GUI::show_error(nullptr, GUI::from_u8(message)); - continue; - } - // Getting a recommended version from the latest index, wich may have been downloaded // from the internet, or installed / updated from the installation resources. const auto recommended = idx.recommended(); @@ -368,15 +360,24 @@ Updates PresetUpdater::priv::get_config_updates() const BOOST_LOG_TRIVIAL(error) << boost::format("No recommended version for vendor: %1%, invalid index?") % idx.vendor(); } - BOOST_LOG_TRIVIAL(debug) << boost::format("Vendor: %1%, version installed: %2%, version cached: %3%") + const auto ver_current = idx.find(vp.config_version); + const bool ver_current_found = ver_current != idx.end(); + if (! ver_current_found) { + auto message = (boost::format("Preset bundle `%1%` version not found in index: %2%") % idx.vendor() % vp.config_version.to_string()).str(); + BOOST_LOG_TRIVIAL(error) << message; + GUI::show_error(nullptr, GUI::from_u8(message)); + } + + BOOST_LOG_TRIVIAL(debug) << boost::format("Vendor: %1%, version installed: %2%%3%, version cached: %4%") % vp.name - % ver_current->config_version.to_string() + % vp.config_version.to_string() + % (ver_current_found ? "" : " (not found in index!)") % recommended->config_version.to_string(); - if (! ver_current->is_current_slic3r_supported()) { + if (ver_current_found && !ver_current->is_current_slic3r_supported()) { BOOST_LOG_TRIVIAL(warning) << "Current Slic3r incompatible with installed bundle: " << bundle_path.string(); updates.incompats.emplace_back(std::move(bundle_path), *ver_current); - } else if (recommended->config_version > ver_current->config_version) { + } else if (recommended->config_version > vp.config_version) { // Config bundle update situation // Check if the update is already present in a snapshot