From 1beee1eebf31fc7652dc02c4d91ef1b9522d3a2b Mon Sep 17 00:00:00 2001 From: "liz.li" Date: Mon, 6 Mar 2023 18:39:23 +0800 Subject: [PATCH] FIX: .gcode file shall disable preview menu (STUDIO-2320) https://jira.bambooolab.com/browse/STUDIO-2320 Change-Id: I54cd49a49a8b08916872eae75534ef4c1d915cb5 --- src/slic3r/GUI/GCodeViewer.cpp | 8 ++++++++ src/slic3r/GUI/IMSlider.cpp | 3 +++ src/slic3r/GUI/IMSlider.hpp | 4 +++- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/slic3r/GUI/GCodeViewer.cpp b/src/slic3r/GUI/GCodeViewer.cpp index b686f2b8a..96b7fcb75 100644 --- a/src/slic3r/GUI/GCodeViewer.cpp +++ b/src/slic3r/GUI/GCodeViewer.cpp @@ -1086,6 +1086,14 @@ void GCodeViewer::load(const GCodeProcessorResult& gcode_result, const Print& pr } m_fold = false; + + bool only_gcode_3mf = false; + PartPlate* current_plate = wxGetApp().plater()->get_partplate_list().get_curr_plate(); + bool current_has_print_instances = current_plate->has_printable_instances(); + if (current_plate->is_slice_result_valid() && wxGetApp().model().objects.empty() && !current_has_print_instances) + only_gcode_3mf = true; + + m_layers_slider->set_menu_enable(!(only_gcode || only_gcode_3mf)); m_layers_slider->set_as_dirty(); m_moves_slider->set_as_dirty(); diff --git a/src/slic3r/GUI/IMSlider.cpp b/src/slic3r/GUI/IMSlider.cpp index 87556b75c..1c4ec7a17 100644 --- a/src/slic3r/GUI/IMSlider.cpp +++ b/src/slic3r/GUI/IMSlider.cpp @@ -1125,6 +1125,9 @@ void IMSlider::render_go_to_layer_dialog() void IMSlider::render_menu() { + if (!m_menu_enable) + return; + ImGuiWrapper::push_menu_style(m_scale); int extruder_num = m_extruder_colors.size(); diff --git a/src/slic3r/GUI/IMSlider.hpp b/src/slic3r/GUI/IMSlider.hpp index 7d1e10c6c..b3a021598 100644 --- a/src/slic3r/GUI/IMSlider.hpp +++ b/src/slic3r/GUI/IMSlider.hpp @@ -129,6 +129,7 @@ public: float m_scale = 1.0; void set_scale(float scale = 1.0); void on_change_color_mode(bool is_dark); + void set_menu_enable(bool enable = true) { m_menu_enable = enable; } protected: void add_custom_gcode(std::string custom_gcode); @@ -179,7 +180,8 @@ private: bool m_is_right_down = false; bool m_is_one_layer = false; bool m_is_focused = false; - bool m_show_menu = false; + bool m_show_menu = false; + bool m_menu_enable = true; bool m_show_custom_gcode_window = false; bool m_show_go_to_layer_dialog = false; bool m_force_mode_apply = true;