From 8a3b753bb181fb864f9ff5a8d8f6c220fc853052 Mon Sep 17 00:00:00 2001 From: sunsets <845944018@qq.com> Date: Wed, 3 Jan 2024 15:39:59 +0800 Subject: [PATCH] Fix some bugs --- src/libslic3r/AppConfig.cpp | 6 ---- src/libslic3r/GCode.cpp | 45 +++++++++++++++------------- src/slic3r/GUI/ConfigWizard.cpp | 3 +- src/slic3r/GUI/GLCanvas3D.cpp | 17 ++++++----- src/slic3r/GUI/MsgDialog.cpp | 5 ++-- src/slic3r/GUI/Widgets/SpinInput.cpp | 11 +++++-- src/slic3r/GUI/Widgets/UIColors.hpp | 3 +- 7 files changed, 50 insertions(+), 40 deletions(-) diff --git a/src/libslic3r/AppConfig.cpp b/src/libslic3r/AppConfig.cpp index e45665a..3591c24 100644 --- a/src/libslic3r/AppConfig.cpp +++ b/src/libslic3r/AppConfig.cpp @@ -385,17 +385,11 @@ std::string AppConfig::load(const std::string &path) //B7 // if (ini_ver) { // m_orig_version = *ini_ver; - if (ini_ver) { - m_orig_version = *ini_ver; // // Make 1.40.0 alphas compare well // ini_ver->set_metadata(boost::none); // ini_ver->set_prerelease(boost::none); // m_legacy_datadir = ini_ver < Semver(1, 40, 0); // } - ini_ver->set_metadata(boost::none); - ini_ver->set_prerelease(boost::none); - m_legacy_datadir = ini_ver < Semver(1, 40, 0); - } // Legacy conversion if (m_mode == EAppMode::Editor) { diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp index 9f5c90f..a5c16af 100644 --- a/src/libslic3r/GCode.cpp +++ b/src/libslic3r/GCode.cpp @@ -1329,12 +1329,12 @@ void GCodeGenerator::_do_export(Print& print, GCodeOutputStream &file, Thumbnail // Write end commands to file. file.write(this->retract_and_wipe()); - ////B38 - //{ - // std::string gcode; - // m_writer.add_object_change_labels(gcode); - // file.write(gcode); - //} + //B38 //B46 + { + std::string gcode; + m_writer.add_object_change_labels(gcode); + file.write(gcode); + } file.write(m_writer.set_fan(0)); @@ -2374,24 +2374,25 @@ void GCodeGenerator::process_layer_single_object( m_avoid_crossing_perimeters.use_external_mp_once(); m_last_obj_copy = this_object_copy; this->set_origin(unscale(offset)); + // gcode += m_label_objects.start_object(print_instance.print_object.instances()[print_instance.instance_id], + // GCode::LabelObjects::IncludeName::No); if ((this->config().gcode_label_objects) != LabelObjectsStyle::Disabled ) { for (const PrintObject *po : print_object.print()->objects()) if (po == &print_object) break; else ++ object_id; - //B38 //B41 - if (this->config().gcode_flavor == gcfKlipper) { + //B38 //B41 //B46 const LabelData &label = m_label_data.at(&print_instance.print_object.instances()[print_instance.instance_id]); + if ((this->config().gcode_label_objects) == LabelObjectsStyle::Octoprint) + gcode += std::string("; printing object ") + label.name + "\n"; + else if ((this->config().gcode_label_objects) == LabelObjectsStyle::Firmware) { + if (this->config().gcode_flavor == gcfKlipper) { m_writer.set_object_start_str(std::string("EXCLUDE_OBJECT_START NAME=") + label.name + "\n"); } else if (this->config().gcode_flavor == gcfMarlinFirmware || this->config().gcode_flavor == gcfMarlinLegacy || this->config().gcode_flavor == gcfRepRapFirmware) { - const LabelData &label = m_label_data.at(&print_instance.print_object.instances()[print_instance.instance_id]); gcode += std::string("M486 S") + std::to_string(label.unique_id) + "\n"; } - else { - const LabelData &label = m_label_data.at(&print_instance.print_object.instances()[print_instance.instance_id]); - gcode += std::string("; printing object ") + label.name + "\n"; } } } @@ -2573,21 +2574,22 @@ void GCodeGenerator::process_layer_single_object( } if (!first && ((this->config().gcode_label_objects) != LabelObjectsStyle::Disabled)) { - //B38 //B41 + //B38 //B41 //B46 + const LabelData &label = m_label_data.at(&print_instance.print_object.instances()[print_instance.instance_id]); + + if ((this->config().gcode_label_objects) == LabelObjectsStyle::Octoprint) + gcode += std::string("; stop printing object ") + label.name + "\n"; + else if ((this->config().gcode_label_objects) == LabelObjectsStyle::Firmware) { if (this->config().gcode_flavor == gcfKlipper) { if (!m_writer.is_object_start_str_empty()) { m_writer.set_object_start_str(""); } else { - const LabelData &label = m_label_data.at(&print_instance.print_object.instances()[print_instance.instance_id]); m_writer.set_object_end_str(std::string("EXCLUDE_OBJECT_END NAME=") + label.name + "\n"); } } else if (this->config().gcode_flavor == gcfMarlinFirmware || this->config().gcode_flavor == gcfMarlinLegacy || this->config().gcode_flavor == gcfRepRapFirmware) { gcode += std::string("M486 S-1\n"); } - else { - const LabelData &label = m_label_data.at(&print_instance.print_object.instances()[print_instance.instance_id]); - gcode += std::string("; stop printing object ") + label.name + "\n"; } } @@ -2723,8 +2725,6 @@ std::optional GCodeGenerator::get_helical_layer_change_gcode( if (!this->last_pos_defined()) { return std::nullopt; } - //B38 - //m_writer.add_object_change_labels(gcode); const double circle_radius{2}; const unsigned n_gon_points_count{16}; @@ -2781,6 +2781,8 @@ std::string GCodeGenerator::change_layer( const std::string comment{"move to next layer (" + std::to_string(m_layer_index) + ")"}; + //B38 //B46 + m_writer.add_object_change_labels(gcode); bool do_helical_layer_change{ !spiral_vase_enabled && print_z > previous_layer_z @@ -3080,7 +3082,8 @@ std::string GCodeGenerator::_extrude( gcode += this->travel_to(path.front().point, path_attr.role, comment); } - //B38 + //B38 //B46 + m_writer.add_object_change_labels(gcode); // compensate retraction gcode += this->unretract(); @@ -3661,6 +3664,8 @@ std::string GCodeGenerator::travel_to(const Point &point, ExtrusionRole role, st m_wipe.reset_path(); } + //B38 //B46 + m_writer.add_object_change_labels(wipe_retract_gcode); this->m_avoid_crossing_perimeters.reset_once_modifiers(); const unsigned extruder_id = this->m_writer.extruder()->id(); diff --git a/src/slic3r/GUI/ConfigWizard.cpp b/src/slic3r/GUI/ConfigWizard.cpp index e0e41cd..e00539c 100644 --- a/src/slic3r/GUI/ConfigWizard.cpp +++ b/src/slic3r/GUI/ConfigWizard.cpp @@ -1643,7 +1643,7 @@ PageReloadFromDisk::PageReloadFromDisk(ConfigWizard* parent) PageFilesAssociation::PageFilesAssociation(ConfigWizard* parent) : ConfigWizardPage(parent, _L("Files association"), _L("Files association")) { -//Y +//Y //B47 cb_3mf = new wxCheckBox(this, wxID_ANY, _L("Associate .3mf files to QIDISlicer")); cb_stl = new wxCheckBox(this, wxID_ANY, _L("Associate .stl files to QIDISlicer")); cb_step = new wxCheckBox(this, wxID_ANY, _L("Associate .step/.stp files to QIDISlicer")); @@ -1651,6 +1651,7 @@ PageFilesAssociation::PageFilesAssociation(ConfigWizard* parent) append(cb_3mf); append(cb_stl); + append(cb_step); // append(cb_gcode); } #endif // _WIN32 diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index 1c16da6..f2fbb96 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -7862,6 +7862,7 @@ void GLCanvas3D::GizmoHighlighter::blink() invalidate(); } +//B48 #if ENABLE_BINARIZED_GCODE_DEBUG_WINDOW void GLCanvas3D::show_binary_gcode_debug_window() { @@ -7875,7 +7876,7 @@ void GLCanvas3D::show_binary_gcode_debug_window() ImGui::TableNextRow(); ImGui::TableSetColumnIndex(0); - imgui.text_colored(ImGuiWrapper::COL_ORANGE_LIGHT, "File metadata compression"); + imgui.text_colored(ImGuiWrapper::COL_BLUE_LIGHT, "File metadata compression"); ImGui::TableSetColumnIndex(1); std::vector options = { "None", "Deflate", "heatshrink 11,4", "heatshrink 12,4" }; int option_id = (int)binarizer_config.compression.file_metadata; @@ -7884,7 +7885,7 @@ void GLCanvas3D::show_binary_gcode_debug_window() ImGui::TableNextRow(); ImGui::TableSetColumnIndex(0); - imgui.text_colored(ImGuiWrapper::COL_ORANGE_LIGHT, "Printer metadata compression"); + imgui.text_colored(ImGuiWrapper::COL_BLUE_LIGHT, "Printer metadata compression"); ImGui::TableSetColumnIndex(1); option_id = (int)binarizer_config.compression.printer_metadata; if (imgui.combo(std::string("##printer_metadata_compression"), options, option_id, ImGuiComboFlags_HeightLargest, 0.0f, 175.0f)) @@ -7892,7 +7893,7 @@ void GLCanvas3D::show_binary_gcode_debug_window() ImGui::TableNextRow(); ImGui::TableSetColumnIndex(0); - imgui.text_colored(ImGuiWrapper::COL_ORANGE_LIGHT, "Print metadata compression"); + imgui.text_colored(ImGuiWrapper::COL_BLUE_LIGHT, "Print metadata compression"); ImGui::TableSetColumnIndex(1); option_id = (int)binarizer_config.compression.print_metadata; if (imgui.combo(std::string("##print_metadata_compression"), options, option_id, ImGuiComboFlags_HeightLargest, 0.0f, 175.0f)) @@ -7900,7 +7901,7 @@ void GLCanvas3D::show_binary_gcode_debug_window() ImGui::TableNextRow(); ImGui::TableSetColumnIndex(0); - imgui.text_colored(ImGuiWrapper::COL_ORANGE_LIGHT, "Slicer metadata compression"); + imgui.text_colored(ImGuiWrapper::COL_BLUE_LIGHT, "Slicer metadata compression"); ImGui::TableSetColumnIndex(1); option_id = (int)binarizer_config.compression.slicer_metadata; if (imgui.combo(std::string("##slicer_metadata_compression"), options, option_id, ImGuiComboFlags_HeightLargest, 0.0f, 175.0f)) @@ -7908,7 +7909,7 @@ void GLCanvas3D::show_binary_gcode_debug_window() ImGui::TableNextRow(); ImGui::TableSetColumnIndex(0); - imgui.text_colored(ImGuiWrapper::COL_ORANGE_LIGHT, "GCode compression"); + imgui.text_colored(ImGuiWrapper::COL_BLUE_LIGHT, "GCode compression"); ImGui::TableSetColumnIndex(1); option_id = (int)binarizer_config.compression.gcode; if (imgui.combo(std::string("##gcode_compression"), options, option_id, ImGuiComboFlags_HeightLargest, 0.0f, 175.0f)) @@ -7916,7 +7917,7 @@ void GLCanvas3D::show_binary_gcode_debug_window() ImGui::TableNextRow(); ImGui::TableSetColumnIndex(0); - imgui.text_colored(ImGuiWrapper::COL_ORANGE_LIGHT, "GCode encoding"); + imgui.text_colored(ImGuiWrapper::COL_BLUE_LIGHT, "GCode encoding"); ImGui::TableSetColumnIndex(1); options = { "None", "MeatPack", "MeatPack Comments" }; option_id = (int)binarizer_config.gcode_encoding; @@ -7925,7 +7926,7 @@ void GLCanvas3D::show_binary_gcode_debug_window() ImGui::TableNextRow(); ImGui::TableSetColumnIndex(0); - imgui.text_colored(ImGuiWrapper::COL_ORANGE_LIGHT, "Metadata encoding"); + imgui.text_colored(ImGuiWrapper::COL_BLUE_LIGHT, "Metadata encoding"); ImGui::TableSetColumnIndex(1); options = { "INI" }; option_id = (int)binarizer_config.metadata_encoding; @@ -7934,7 +7935,7 @@ void GLCanvas3D::show_binary_gcode_debug_window() ImGui::TableNextRow(); ImGui::TableSetColumnIndex(0); - imgui.text_colored(ImGuiWrapper::COL_ORANGE_LIGHT, "Checksum type"); + imgui.text_colored(ImGuiWrapper::COL_BLUE_LIGHT, "Checksum type"); ImGui::TableSetColumnIndex(1); options = { "None", "CRC32" }; option_id = (int)binarizer_config.checksum; diff --git a/src/slic3r/GUI/MsgDialog.cpp b/src/slic3r/GUI/MsgDialog.cpp index 9c40fa5..eb1c054 100644 --- a/src/slic3r/GUI/MsgDialog.cpp +++ b/src/slic3r/GUI/MsgDialog.cpp @@ -70,8 +70,9 @@ MsgDialog::MsgDialog(wxWindow *parent, const wxString &title, const wxString &he main_sizer->Add(topsizer, 1, wxEXPAND); main_sizer->Add(new StaticLine(this), 0, wxEXPAND | wxLEFT | wxRIGHT, HORIZ_SPACING); main_sizer->Add(btn_sizer, 0, wxALL | wxEXPAND, VERT_SPACING); - if (style & wxOK) - add_button(wxID_OK, true); + //B50 + // if (style & wxOK) + // add_button(wxID_OK, true); if (title != "App Update available") { apply_style(style); } diff --git a/src/slic3r/GUI/Widgets/SpinInput.cpp b/src/slic3r/GUI/Widgets/SpinInput.cpp index 0456d1a..b811e0e 100644 --- a/src/slic3r/GUI/Widgets/SpinInput.cpp +++ b/src/slic3r/GUI/Widgets/SpinInput.cpp @@ -387,11 +387,14 @@ void SpinInput::onTextLostFocus(wxEvent &event) event.Skip(); } +//B49 void SpinInput::onTextEnter(wxCommandEvent &event) { long value; - if (!text_ctrl->GetValue().ToLong(&value)) + if (!text_ctrl->GetValue().ToLong(&value)) { value = val; + text_ctrl->SetValue(wxString::FromDouble(value)); + } if (value != val) { SetValue(value); @@ -584,12 +587,16 @@ void SpinInputDouble::onTextLostFocus(wxEvent &event) event.Skip(); } +//B49 void SpinInputDouble::onTextEnter(wxCommandEvent &event) { double value; - if (!text_ctrl->GetValue().ToDouble(&value)) + if (!text_ctrl->GetValue().ToDouble(&value)) { val = value; + wxString str_val = wxString::FromDouble(value, digits); + text_ctrl->SetValue(str_val); + } if (!Slic3r::is_approx(value, val)) { SetValue(value); sendSpinEvent(); diff --git a/src/slic3r/GUI/Widgets/UIColors.hpp b/src/slic3r/GUI/Widgets/UIColors.hpp index 14ecb6f..15c04b2 100644 --- a/src/slic3r/GUI/Widgets/UIColors.hpp +++ b/src/slic3r/GUI/Widgets/UIColors.hpp @@ -1,8 +1,9 @@ #ifndef slic3r_UI_Colors_hpp_ #define slic3r_UI_Colors_hpp_ +//B48 static const int clr_border_normal = 0x646464;//0xDBDBDB; -static const int clr_border_hovered = 0xED6B21;//0x00AE42; +static const int clr_border_hovered = 0x4479FB;//0x00AE42; static const int clr_border_disabled = 0x646464;//0xDBDBDB; static const int clr_background_normal_light = 0xFFFFFF;