diff --git a/src/plugins/terminal/celliterator.cpp b/src/plugins/terminal/celliterator.cpp index 6ad487ae276..597c3a632fd 100644 --- a/src/plugins/terminal/celliterator.cpp +++ b/src/plugins/terminal/celliterator.cpp @@ -10,18 +10,8 @@ namespace Terminal::Internal { CellIterator::CellIterator(const TerminalSurface *surface, QPoint pos) - : m_state(State::INSIDE) - , m_surface(surface) -{ - m_pos = (pos.x()) + (pos.y() * surface->liveSize().width()); - if (m_pos < 0) - m_pos = 0; - if (m_pos == 0) - m_state = State::BEGIN; - - m_maxpos = surface->fullSize().width() * (surface->fullSize().height()) - 1; - updateChar(); -} + : CellIterator(surface, pos.x() + (pos.y() * surface->liveSize().width())) +{} CellIterator::CellIterator(const TerminalSurface *surface, int pos) : m_state(State::INSIDE) @@ -29,23 +19,21 @@ CellIterator::CellIterator(const TerminalSurface *surface, int pos) { m_maxpos = surface->fullSize().width() * (surface->fullSize().height()) - 1; m_pos = qMax(0, qMin(m_maxpos + 1, pos)); - if (m_pos == 0) { + + if (m_pos == 0) m_state = State::BEGIN; - } else if (m_pos == m_maxpos + 1) { + else if (m_pos == m_maxpos + 1) m_state = State::END; - } + updateChar(); } -CellIterator::CellIterator(const TerminalSurface *surface, State state) - : m_state(state) +CellIterator::CellIterator(const TerminalSurface *surface) + : m_state(State::END) , m_surface(surface) - , m_pos() { m_maxpos = surface->fullSize().width() * (surface->fullSize().height()) - 1; - if (state == State::END) { - m_pos = m_maxpos + 1; - } + m_pos = m_maxpos + 1; } QPoint CellIterator::gridPos() const diff --git a/src/plugins/terminal/celliterator.h b/src/plugins/terminal/celliterator.h index e5e7847edc2..c246aaa3114 100644 --- a/src/plugins/terminal/celliterator.h +++ b/src/plugins/terminal/celliterator.h @@ -26,7 +26,7 @@ public: public: CellIterator(const TerminalSurface *surface, QPoint pos); CellIterator(const TerminalSurface *surface, int pos); - CellIterator(const TerminalSurface *surface, State state); + CellIterator(const TerminalSurface *surface); public: QPoint gridPos() const; diff --git a/src/plugins/terminal/terminalsurface.cpp b/src/plugins/terminal/terminalsurface.cpp index 01b1f2c2aae..ee8e571adb3 100644 --- a/src/plugins/terminal/terminalsurface.cpp +++ b/src/plugins/terminal/terminalsurface.cpp @@ -496,7 +496,7 @@ CellIterator TerminalSurface::begin() const CellIterator TerminalSurface::end() const { - return CellIterator(this, CellIterator::State::END); + return CellIterator(this); } std::reverse_iterator TerminalSurface::rbegin() const