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;