diff --git a/src/qteletextmaker/mainwidget.cpp b/src/qteletextmaker/mainwidget.cpp index b304250..0d4eb6a 100644 --- a/src/qteletextmaker/mainwidget.cpp +++ b/src/qteletextmaker/mainwidget.cpp @@ -391,17 +391,24 @@ void TeletextWidget::toggleCharacterBit(unsigned char bitToToggle) m_teletextDocument->undoStack()->push(new ToggleMosaicBitCommand(m_teletextDocument, bitToToggle)); } -void TeletextWidget::shiftMosaics(int key) +QSet> TeletextWidget::findMosaics() { - if (!m_teletextDocument->selectionActive()) - return; + QSet> result; - QSet> mosaicList; + if (!m_teletextDocument->selectionActive()) + return result; for (int r=m_teletextDocument->selectionTopRow(); r<=m_teletextDocument->selectionBottomRow(); r++) for (int c=m_teletextDocument->selectionLeftColumn(); c<=m_teletextDocument->selectionRightColumn(); c++) if (m_pageDecode.level1MosaicChar(r, c)) - mosaicList.insert(qMakePair(r, c)); + result.insert(qMakePair(r, c)); + + return result; +} + +void TeletextWidget::shiftMosaics(int key) +{ + const QSet> mosaicList = findMosaics(); if (!mosaicList.isEmpty()) switch (key) { diff --git a/src/qteletextmaker/mainwidget.h b/src/qteletextmaker/mainwidget.h index 7538f33..a731642 100644 --- a/src/qteletextmaker/mainwidget.h +++ b/src/qteletextmaker/mainwidget.h @@ -102,6 +102,7 @@ private: int m_flashTiming, m_flashPhase; void timerEvent(QTimerEvent *event) override; + QSet> findMosaics(); void shiftMosaics(int key); void selectionToClipboard();