diff options
author | Jarek Kobus <jaroslaw.kobus@qt.io> | 2022-09-29 19:13:12 +0200 |
---|---|---|
committer | Jarek Kobus <jaroslaw.kobus@qt.io> | 2022-09-29 18:46:10 +0000 |
commit | b677fbe9927043e8993d06f2d522f3dbda792e36 (patch) | |
tree | 0abb71afc61f58d6dfdcc88dc267ebf0b43b4e80 /src/plugins/diffeditor/unifieddiffeditorwidget.cpp | |
parent | daa942393a03696ed745d9553645013cc5bfc5e5 (diff) | |
download | qt-creator-b677fbe9927043e8993d06f2d522f3dbda792e36.tar.gz |
DiffUtils: Introduce DiffChunkInfo
Avoid code repetition.
Change-Id: Iea9acef8f8b27793528fa7eaf7044e12dcd21d10
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Diffstat (limited to 'src/plugins/diffeditor/unifieddiffeditorwidget.cpp')
-rw-r--r-- | src/plugins/diffeditor/unifieddiffeditorwidget.cpp | 32 |
1 files changed, 5 insertions, 27 deletions
diff --git a/src/plugins/diffeditor/unifieddiffeditorwidget.cpp b/src/plugins/diffeditor/unifieddiffeditorwidget.cpp index da14adfc76..c2b4eef06c 100644 --- a/src/plugins/diffeditor/unifieddiffeditorwidget.cpp +++ b/src/plugins/diffeditor/unifieddiffeditorwidget.cpp @@ -172,7 +172,7 @@ void UnifiedDiffEditorWidget::contextMenuEvent(QContextMenuEvent *e) const int blockNumber = cursor.blockNumber(); const int fileIndex = fileIndexForBlockNumber(blockNumber); - const int chunkIndex = chunkIndexForBlockNumber(blockNumber); + const int chunkIndex = m_data.m_chunkInfo.chunkIndexForBlockNumber(blockNumber); const ChunkData chunkData = m_controller.chunkData(fileIndex, chunkIndex); @@ -186,7 +186,7 @@ void UnifiedDiffEditorWidget::contextMenuEvent(QContextMenuEvent *e) if (currentFileIndex > fileIndex) break; - const int currentChunkIndex = chunkIndexForBlockNumber(i); + const int currentChunkIndex = m_data.m_chunkInfo.chunkIndexForBlockNumber(i); if (currentChunkIndex < chunkIndex) continue; @@ -205,7 +205,7 @@ void UnifiedDiffEditorWidget::contextMenuEvent(QContextMenuEvent *e) const ChunkSelection selection(leftSelection, rightSelection); addContextMenuActions(menu, fileIndexForBlockNumber(blockNumber), - chunkIndexForBlockNumber(blockNumber), selection); + m_data.m_chunkInfo.chunkIndexForBlockNumber(blockNumber), selection); connect(this, &UnifiedDiffEditorWidget::destroyed, menu.data(), &QMenu::deleteLater); menu->exec(e->globalPos()); @@ -274,11 +274,6 @@ void UnifiedDiffData::setLineNumber(DiffSide side, int blockNumber, int lineNumb m_lineNumberDigits[side] = qMax(m_lineNumberDigits[side], lineNumberString.count()); } -void UnifiedDiffData::setChunkIndex(int startBlockNumber, int blockCount, int chunkIndex) -{ - m_chunkInfo.insert(startBlockNumber, qMakePair(blockCount, chunkIndex)); -} - void UnifiedDiffEditorWidget::setDiff(const QList<FileData> &diffFileList) { const GuardLocker locker(m_controller.m_ignoreChanges); @@ -445,7 +440,7 @@ UnifiedDiffOutput UnifiedDiffData::diffOutput(QFutureInterface<void> &fi, int pr output.diffText += binaryLine; } else { for (int j = 0; j < fileData.chunks.count(); j++) { - const int oldBlockNumber = blockNumber; + const int oldBlock = blockNumber; output.foldingIndent.insert(blockNumber, 2); output.diffText += output.diffData.setChunk(input, fileData.chunks.at(j), (j == fileData.chunks.count() - 1) @@ -453,7 +448,7 @@ UnifiedDiffOutput UnifiedDiffData::diffOutput(QFutureInterface<void> &fi, int pr &blockNumber, &output.selections); if (!fileData.chunks.at(j).contextChunk) - output.diffData.setChunkIndex(oldBlockNumber, blockNumber - oldBlockNumber, j); + output.diffData.m_chunkInfo.setChunkIndex(oldBlock, blockNumber - oldBlock, j); } } fi.setProgressValue(DiffUtils::interpolate(++i, 0, count, progressMin, progressMax)); @@ -569,23 +564,6 @@ int UnifiedDiffEditorWidget::fileIndexForBlockNumber(int blockNumber) const return i; } -int UnifiedDiffEditorWidget::chunkIndexForBlockNumber(int blockNumber) const -{ - if (m_data.m_chunkInfo.isEmpty()) - return -1; - - auto it = m_data.m_chunkInfo.upperBound(blockNumber); - if (it == m_data.m_chunkInfo.constBegin()) - return -1; - - --it; - - if (blockNumber < it.key() + it.value().first) - return it.value().second; - - return -1; -} - void UnifiedDiffEditorWidget::jumpToOriginalFile(const QTextCursor &cursor) { if (m_data.m_fileInfo.isEmpty()) |