From 32436aea6fc466c1243dbe84f8b53ec418c6a48c Mon Sep 17 00:00:00 2001 From: enricoturri1966 Date: Fri, 9 Oct 2020 13:00:20 +0200 Subject: [PATCH] Added code to allow to customize skipping invisible moves when moving horizontal slider thumb in preview --- src/slic3r/GUI/GCodeViewer.cpp | 25 ++++++++++++++----------- src/slic3r/GUI/GCodeViewer.hpp | 1 + 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/src/slic3r/GUI/GCodeViewer.cpp b/src/slic3r/GUI/GCodeViewer.cpp index 34d2331b6..3b78a6223 100644 --- a/src/slic3r/GUI/GCodeViewer.cpp +++ b/src/slic3r/GUI/GCodeViewer.cpp @@ -325,6 +325,7 @@ bool GCodeViewer::init() set_toolpath_move_type_visible(EMoveType::Extrude, true); m_sequential_view.marker.init(); + m_sequential_view.skip_invisible_moves = true; std::array point_sizes; ::glGetIntegerv(GL_ALIASED_POINT_SIZE_RANGE, point_sizes.data()); @@ -515,18 +516,20 @@ void GCodeViewer::update_sequential_view_current(unsigned int first, unsigned in unsigned int new_first = first; unsigned int new_last = last; - while (!is_visible(new_first)) { - if (first_diff > 0) - ++new_first; - else - --new_first; - } + if (m_sequential_view.skip_invisible_moves) { + while (!is_visible(new_first)) { + if (first_diff > 0) + ++new_first; + else + --new_first; + } - while (!is_visible(new_last)) { - if (last_diff > 0) - ++new_last; - else - --new_last; + while (!is_visible(new_last)) { + if (last_diff > 0) + ++new_last; + else + --new_last; + } } m_sequential_view.current.first = new_first; diff --git a/src/slic3r/GUI/GCodeViewer.hpp b/src/slic3r/GUI/GCodeViewer.hpp index 9e097e0b1..783020925 100644 --- a/src/slic3r/GUI/GCodeViewer.hpp +++ b/src/slic3r/GUI/GCodeViewer.hpp @@ -365,6 +365,7 @@ public: size_t last{ 0 }; }; + bool skip_invisible_moves{ false }; Endpoints endpoints; Endpoints current; Endpoints last_current;