From 228e4a7542f03acde52c697dcbd3d4d93efa3cf5 Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Tue, 27 Jun 2017 11:59:11 +0200 Subject: DiffEditor: refactor loops and const correctness Change-Id: I21af8db55ff5a012de04b4934de1940babf75058 Reviewed-by: Orgad Shaneh --- src/plugins/diffeditor/diffeditor.cpp | 16 ++-- src/plugins/diffeditor/differ.cpp | 98 ++++++++++------------ .../diffeditor/selectabletexteditorwidget.cpp | 16 ++-- .../diffeditor/sidebysidediffeditorwidget.cpp | 61 +++++--------- src/plugins/diffeditor/unifieddiffeditorwidget.cpp | 57 +++++-------- 5 files changed, 98 insertions(+), 150 deletions(-) (limited to 'src/plugins/diffeditor') diff --git a/src/plugins/diffeditor/diffeditor.cpp b/src/plugins/diffeditor/diffeditor.cpp index 3b68137616..381813a683 100644 --- a/src/plugins/diffeditor/diffeditor.cpp +++ b/src/plugins/diffeditor/diffeditor.cpp @@ -390,16 +390,15 @@ TextEditorWidget *DiffEditor::rightEditorWidget() const void DiffEditor::documentHasChanged() { Utils::GuardLocker guard(m_ignoreChanges); - const QList diffFileList = m_document->diffFiles(); + const QList &diffFileList = m_document->diffFiles(); updateDescription(); currentView()->setDiff(diffFileList, m_document->baseDirectory()); m_entriesComboBox->clear(); - const int count = diffFileList.count(); - for (int i = 0; i < count; i++) { - const DiffFileInfo leftEntry = diffFileList.at(i).leftFileInfo; - const DiffFileInfo rightEntry = diffFileList.at(i).rightFileInfo; + for (const FileData &diffFile : diffFileList) { + const DiffFileInfo &leftEntry = diffFile.leftFileInfo; + const DiffFileInfo &rightEntry = diffFile.rightFileInfo; const QString leftShortFileName = Utils::FileName::fromString(leftEntry.fileName).fileName(); const QString rightShortFileName = Utils::FileName::fromString(rightEntry.fileName).fileName(); QString itemText; @@ -528,11 +527,12 @@ void DiffEditor::reloadHasFinished(bool success) int index = -1; const QString startupFile = m_document->startupFile(); - const QList diffFileList = m_document->diffFiles(); + const QList &diffFileList = m_document->diffFiles(); const int count = diffFileList.count(); for (int i = 0; i < count; i++) { - const DiffFileInfo leftEntry = diffFileList.at(i).leftFileInfo; - const DiffFileInfo rightEntry = diffFileList.at(i).rightFileInfo; + const FileData &diffFile = diffFileList.at(i); + const DiffFileInfo &leftEntry = diffFile.leftFileInfo; + const DiffFileInfo &rightEntry = diffFile.rightFileInfo; if ((m_currentFileChunk.first.isEmpty() && m_currentFileChunk.second.isEmpty() && startupFile.endsWith(rightEntry.fileName)) diff --git a/src/plugins/diffeditor/differ.cpp b/src/plugins/diffeditor/differ.cpp index ca5d912992..63a0014d37 100644 --- a/src/plugins/diffeditor/differ.cpp +++ b/src/plugins/diffeditor/differ.cpp @@ -85,16 +85,14 @@ static int commonOverlap(const QString &text1, const QString &text2) return 0; } -static QList decode(const QList &diffList, - const QStringList &lines) +static QList decode(const QList &diffList, const QStringList &lines) { QList newDiffList; newDiffList.reserve(diffList.count()); - for (int i = 0; i < diffList.count(); i++) { - Diff diff = diffList.at(i); + for (Diff diff : diffList) { QString text; - for (int j = 0; j < diff.text.count(); j++) { - const int idx = static_cast(diff.text.at(j).unicode()); + for (QChar c : diff.text) { + const int idx = static_cast(c.unicode()); text += lines.value(idx); } diff.text = text; @@ -170,7 +168,7 @@ static QList cleanupOverlaps(const QList &diffList) if (delInsOverlap > thisDiff.text.count() / 2 || delInsOverlap > nextDiff.text.count() / 2) { thisDiff.text = thisDiff.text.left(thisDiff.text.count() - delInsOverlap); - Diff equality = Diff(Diff::Equal, nextDiff.text.left(delInsOverlap)); + const Diff equality(Diff::Equal, nextDiff.text.left(delInsOverlap)); nextDiff.text = nextDiff.text.mid(delInsOverlap); newDiffList.append(thisDiff); newDiffList.append(equality); @@ -183,7 +181,7 @@ static QList cleanupOverlaps(const QList &diffList) if (insDelOverlap > thisDiff.text.count() / 2 || insDelOverlap > nextDiff.text.count() / 2) { nextDiff.text = nextDiff.text.left(nextDiff.text.count() - insDelOverlap); - Diff equality = Diff(Diff::Equal, thisDiff.text.left(insDelOverlap)); + const Diff equality(Diff::Equal, thisDiff.text.left(insDelOverlap)); thisDiff.text = thisDiff.text.mid(insDelOverlap); newDiffList.append(nextDiff); newDiffList.append(equality); @@ -265,9 +263,7 @@ void Differ::splitDiffList(const QList &diffList, leftDiffList->clear(); rightDiffList->clear(); - for (int i = 0; i < diffList.count(); i++) { - const Diff diff = diffList.at(i); - + for (const Diff &diff : diffList) { if (diff.command != Diff::Delete) rightDiffList->append(diff); if (diff.command != Diff::Insert) @@ -400,10 +396,9 @@ static QList decodeReducedWhitespace(const QList &input, QList output; int counter = 0; - QMap::const_iterator it = codeMap.constBegin(); - const QMap::const_iterator itEnd = codeMap.constEnd(); - for (int i = 0; i < input.count(); i++) { - Diff diff = input.at(i); + auto it = codeMap.constBegin(); + const auto itEnd = codeMap.constEnd(); + for (Diff diff : input) { const int diffCount = diff.text.count(); while ((it != itEnd) && (it.key() < counter + diffCount)) { const int reversePosition = diffCount + counter - it.key(); @@ -439,8 +434,8 @@ void Differ::diffWithWhitespaceReduced(const QString &leftInput, QMap leftCodeMap; QMap rightCodeMap; - const QString leftString = encodeReducedWhitespace(leftInput, &leftCodeMap); - const QString rightString = encodeReducedWhitespace(rightInput, &rightCodeMap); + const QString &leftString = encodeReducedWhitespace(leftInput, &leftCodeMap); + const QString &rightString = encodeReducedWhitespace(rightInput, &rightCodeMap); Differ differ; QList diffList = differ.diff(leftString, rightString); @@ -475,11 +470,11 @@ void Differ::unifiedDiffWithWhitespaceReduced(const QString &leftInput, QMap leftCodeMap; QMap rightCodeMap; - const QString leftString = encodeReducedWhitespace(leftInput, &leftCodeMap); - const QString rightString = encodeReducedWhitespace(rightInput, &rightCodeMap); + const QString &leftString = encodeReducedWhitespace(leftInput, &leftCodeMap); + const QString &rightString = encodeReducedWhitespace(rightInput, &rightCodeMap); Differ differ; - QList diffList = differ.unifiedDiff(leftString, rightString); + const QList &diffList = differ.unifiedDiff(leftString, rightString); QList leftDiffList; QList rightDiffList; @@ -606,10 +601,9 @@ static QList decodeExpandedWhitespace(const QList &input, QList output; int counter = 0; - QMap >::const_iterator it = codeMap.constBegin(); - const QMap >::const_iterator itEnd = codeMap.constEnd(); - for (int i = 0; i < input.count(); i++) { - Diff diff = input.at(i); + auto it = codeMap.constBegin(); + const auto itEnd = codeMap.constEnd(); + for (Diff diff : input) { const int diffCount = diff.text.count(); while ((it != itEnd) && (it.key() < counter + diffCount)) { const int replacementSize = it.value().first; @@ -667,15 +661,15 @@ static bool diffWithWhitespaceExpandedInEqualities(const QList &leftInput, QMap > commonRightCodeMap; while (l <= leftCount && r <= rightCount) { - Diff leftDiff = l < leftCount ? leftInput.at(l) : Diff(Diff::Equal); - Diff rightDiff = r < rightCount ? rightInput.at(r) : Diff(Diff::Equal); + const Diff leftDiff = l < leftCount ? leftInput.at(l) : Diff(Diff::Equal); + const Diff rightDiff = r < rightCount ? rightInput.at(r) : Diff(Diff::Equal); if (leftDiff.command == Diff::Equal && rightDiff.command == Diff::Equal) { QMap > leftCodeMap; QMap > rightCodeMap; bool ok = false; - QString commonEquality = encodeExpandedWhitespace(leftDiff.text, + const QString &commonEquality = encodeExpandedWhitespace(leftDiff.text, rightDiff.text, &leftCodeMap, &rightCodeMap, @@ -684,18 +678,11 @@ static bool diffWithWhitespaceExpandedInEqualities(const QList &leftInput, return false; // join code map positions with common maps - QMapIterator > itLeft(leftCodeMap); - while (itLeft.hasNext()) { - itLeft.next(); - commonLeftCodeMap.insert(leftText.count() + itLeft.key(), - itLeft.value()); - } - QMapIterator > itRight(rightCodeMap); - while (itRight.hasNext()) { - itRight.next(); - commonRightCodeMap.insert(rightText.count() + itRight.key(), - itRight.value()); - } + for (auto it = leftCodeMap.cbegin(), end = leftCodeMap.cend(); it != end; ++it) + commonLeftCodeMap.insert(leftText.count() + it.key(), it.value()); + + for (auto it = rightCodeMap.cbegin(), end = rightCodeMap.cend(); it != end; ++it) + commonRightCodeMap.insert(rightText.count() + it.key(), it.value()); leftText.append(commonEquality); rightText.append(commonEquality); @@ -715,7 +702,7 @@ static bool diffWithWhitespaceExpandedInEqualities(const QList &leftInput, } Differ differ; - QList diffList = differ.cleanupSemantics( + const QList &diffList = differ.cleanupSemantics( differ.diff(leftText, rightText)); QList leftDiffList; @@ -790,16 +777,16 @@ void Differ::ignoreWhitespaceBetweenEqualities(const QList &leftInput, int r = 0; while (l <= leftCount && r <= rightCount) { - Diff leftDiff = l < leftCount + const Diff leftDiff = l < leftCount ? leftInput.at(l) : Diff(Diff::Equal); - Diff rightDiff = r < rightCount + const Diff rightDiff = r < rightCount ? rightInput.at(r) : Diff(Diff::Equal); if (leftDiff.command == Diff::Equal && rightDiff.command == Diff::Equal) { - Diff previousLeftDiff = l > 0 ? leftInput.at(l - 1) : Diff(Diff::Equal); - Diff previousRightDiff = r > 0 ? rightInput.at(r - 1) : Diff(Diff::Equal); + const Diff previousLeftDiff = l > 0 ? leftInput.at(l - 1) : Diff(Diff::Equal); + const Diff previousRightDiff = r > 0 ? rightInput.at(r - 1) : Diff(Diff::Equal); if (previousLeftDiff.command == Diff::Delete && previousRightDiff.command == Diff::Insert) { @@ -887,22 +874,22 @@ void Differ::diffBetweenEqualities(const QList &leftInput, int r = 0; while (l <= leftCount && r <= rightCount) { - Diff leftDiff = l < leftCount + const Diff leftDiff = l < leftCount ? leftInput.at(l) : Diff(Diff::Equal); - Diff rightDiff = r < rightCount + const Diff rightDiff = r < rightCount ? rightInput.at(r) : Diff(Diff::Equal); if (leftDiff.command == Diff::Equal && rightDiff.command == Diff::Equal) { - Diff previousLeftDiff = l > 0 ? leftInput.at(l - 1) : Diff(Diff::Equal); - Diff previousRightDiff = r > 0 ? rightInput.at(r - 1) : Diff(Diff::Equal); + const Diff previousLeftDiff = l > 0 ? leftInput.at(l - 1) : Diff(Diff::Equal); + const Diff previousRightDiff = r > 0 ? rightInput.at(r - 1) : Diff(Diff::Equal); if (previousLeftDiff.command == Diff::Delete && previousRightDiff.command == Diff::Insert) { Differ differ; differ.setDiffMode(Differ::CharMode); - QList commonOutput = differ.cleanupSemantics( + const QList commonOutput = differ.cleanupSemantics( differ.diff(previousLeftDiff.text, previousRightDiff.text)); QList outputLeftDiffList; @@ -1008,7 +995,7 @@ QList Differ::unifiedDiff(const QString &text1, const QString &text2) QString encodedText2; QStringList subtexts = encode(text1, text2, &encodedText1, &encodedText2); - DiffMode diffMode = m_currentDiffMode; + const DiffMode diffMode = m_currentDiffMode; m_currentDiffMode = CharMode; // Each different subtext is a separate symbol @@ -1223,8 +1210,8 @@ QList Differ::diffMyersSplit( const QString text21 = text2.left(y); const QString text22 = text2.mid(y); - QList diffList1 = preprocess1AndDiff(text11, text21); - QList diffList2 = preprocess1AndDiff(text12, text22); + const QList &diffList1 = preprocess1AndDiff(text11, text21); + const QList &diffList2 = preprocess1AndDiff(text12, text22); return diffList1 + diffList2; } @@ -1331,8 +1318,7 @@ QString Differ::encode(const QString &text, subtextStart = subtextEnd; if (lineToCode->contains(line)) { - int code = lineToCode->value(line); - codes += QChar(static_cast(code)); + codes += QChar(static_cast(lineToCode->value(line))); } else { lines->append(line); lineToCode->insert(line, lines->count() - 1); @@ -1429,7 +1415,7 @@ QList Differ::cleanupSemantics(const QList &diffList) // equality index, equality data QList equalities; for (int i = 0; i <= diffList.count(); i++) { - Diff diff = i < diffList.count() + const Diff diff = i < diffList.count() ? diffList.at(i) : Diff(Diff::Equal); // dummy, ensure we process to the end // even when diffList doesn't end with equality @@ -1461,7 +1447,7 @@ QList Differ::cleanupSemantics(const QList &diffList) QMap equalitiesToBeSplit; int i = 0; while (i < equalities.count()) { - const EqualityData data = equalities.at(i); + const EqualityData &data = equalities.at(i); if (data.textCount <= qMax(data.deletesBefore, data.insertsBefore) && data.textCount <= qMax(data.deletesAfter, data.insertsAfter)) { if (i > 0) { diff --git a/src/plugins/diffeditor/selectabletexteditorwidget.cpp b/src/plugins/diffeditor/selectabletexteditorwidget.cpp index 0e8a8ccc6f..9ae9deace6 100644 --- a/src/plugins/diffeditor/selectabletexteditorwidget.cpp +++ b/src/plugins/diffeditor/selectabletexteditorwidget.cpp @@ -75,15 +75,10 @@ static QList subtractSelection( void SelectableTextEditorWidget::setSelections(const QMap > &selections) { m_diffSelections.clear(); - QMapIterator > itBlock(selections); - while (itBlock.hasNext()) { - itBlock.next(); - - const QList diffSelections = itBlock.value(); + for (auto it = selections.cbegin(), end = selections.cend(); it != end; ++it) { + const QList diffSelections = it.value(); QList workingList; - for (int i = 0; i < diffSelections.count(); i++) { - const DiffSelection &diffSelection = diffSelections.at(i); - + for (const DiffSelection &diffSelection : diffSelections) { if (diffSelection.start == -1 && diffSelection.end == 0) continue; @@ -100,7 +95,7 @@ void SelectableTextEditorWidget::setSelections(const QMap diffs = m_diffSelections.value(blockNumber); QVector newSelections; - for (int i = 0; i < diffs.count(); i++) { - const DiffSelection &diffSelection = diffs.at(i); + for (const DiffSelection &diffSelection : diffs) { if (diffSelection.format) { QTextLayout::FormatRange formatRange; formatRange.start = qMax(0, diffSelection.start); diff --git a/src/plugins/diffeditor/sidebysidediffeditorwidget.cpp b/src/plugins/diffeditor/sidebysidediffeditorwidget.cpp index 93da9efad4..7852dc7df2 100644 --- a/src/plugins/diffeditor/sidebysidediffeditorwidget.cpp +++ b/src/plugins/diffeditor/sidebysidediffeditorwidget.cpp @@ -152,8 +152,8 @@ SideDiffEditorWidget::SideDiffEditorWidget(QWidget *parent) SelectableTextEditorWidget::setDisplaySettings(settings); connect(this, &TextEditorWidget::tooltipRequested, [this](const QPoint &point, int position) { - int block = document()->findBlock(position).blockNumber(); - auto it = m_fileInfo.constFind(block); + const int block = document()->findBlock(position).blockNumber(); + const auto it = m_fileInfo.constFind(block); if (it != m_fileInfo.constEnd()) ToolTip::show(point, it.value().fileName, this); else @@ -197,8 +197,9 @@ void SideDiffEditorWidget::applyFontSettings() QString SideDiffEditorWidget::lineNumber(int blockNumber) const { - if (m_lineNumbers.contains(blockNumber)) - return QString::number(m_lineNumbers.value(blockNumber)); + const auto it = m_lineNumbers.constFind(blockNumber); + if (it != m_lineNumbers.constEnd()) + return QString::number(it.value()); return QString(); } @@ -215,8 +216,7 @@ bool SideDiffEditorWidget::selectionVisible(int blockNumber) const bool SideDiffEditorWidget::replacementVisible(int blockNumber) const { return isChunkLine(blockNumber) || (isFileLine(blockNumber) - && TextDocumentLayout::isFolded( - document()->findBlockByNumber(blockNumber))); + && TextDocumentLayout::isFolded(document()->findBlockByNumber(blockNumber))); } QColor SideDiffEditorWidget::replacementPenColor(int blockNumber) const @@ -232,8 +232,8 @@ QString SideDiffEditorWidget::plainTextFromSelection(const QTextCursor &cursor) if (startPosition == endPosition) return QString(); // no selection - QTextBlock startBlock = document()->findBlock(startPosition); - QTextBlock endBlock = document()->findBlock(endPosition); + const QTextBlock startBlock = document()->findBlock(startPosition); + const QTextBlock endBlock = document()->findBlock(endPosition); QTextBlock block = startBlock; QString text; bool textInserted = false; @@ -283,26 +283,17 @@ int SideDiffEditorWidget::blockNumberForFileIndex(int fileIndex) const if (fileIndex < 0 || fileIndex >= m_fileInfo.count()) return -1; - QMap::const_iterator it - = m_fileInfo.constBegin(); - for (int i = 0; i < fileIndex; i++) - ++it; - - return it.key(); + return (m_fileInfo.constBegin() + fileIndex).key(); } int SideDiffEditorWidget::fileIndexForBlockNumber(int blockNumber) const { - QMap::const_iterator it = m_fileInfo.constBegin(); - QMap::const_iterator itEnd = m_fileInfo.constEnd(); - int i = -1; - while (it != itEnd) { + for (auto it = m_fileInfo.cbegin(), end = m_fileInfo.cend(); it != end; ++it, ++i) { if (it.key() > blockNumber) break; - ++it; - ++i; } + return i; } @@ -311,8 +302,7 @@ int SideDiffEditorWidget::chunkIndexForBlockNumber(int blockNumber) const if (m_chunkInfo.isEmpty()) return -1; - QMap >::const_iterator it - = m_chunkInfo.upperBound(blockNumber); + auto it = m_chunkInfo.upperBound(blockNumber); if (it == m_chunkInfo.constBegin()) return -1; @@ -537,8 +527,6 @@ SideBySideDiffEditorWidget::SideBySideDiffEditorWidget(QWidget *parent) connect(m_leftEditor, &QPlainTextEdit::cursorPositionChanged, this, &SideBySideDiffEditorWidget::leftCursorPositionChanged); -// connect(m_leftEditor->document()->documentLayout(), &QAbstractTextDocumentLayout::documentSizeChanged, -// this, &SideBySideDiffEditorWidget::leftDocumentSizeChanged); connect(m_rightEditor->verticalScrollBar(), &QAbstractSlider::valueChanged, this, &SideBySideDiffEditorWidget::rightVSliderChanged); @@ -686,9 +674,8 @@ void SideBySideDiffEditorWidget::showDiff() QString leftTexts, rightTexts; int blockNumber = 0; QChar separator = QLatin1Char('\n'); - for (int i = 0; i < m_controller.m_contextFileData.count(); i++) { + for (const FileData &contextFileData : m_controller.m_contextFileData) { QString leftText, rightText; - const FileData &contextFileData = m_controller.m_contextFileData.at(i); leftFormats[blockNumber].append(DiffSelection(&m_controller.m_fileLineFormat)); rightFormats[blockNumber].append(DiffSelection(&m_controller.m_fileLineFormat)); @@ -710,7 +697,7 @@ void SideBySideDiffEditorWidget::showDiff() blockNumber++; } else { for (int j = 0; j < contextFileData.chunks.count(); j++) { - ChunkData chunkData = contextFileData.chunks.at(j); + const ChunkData &chunkData = contextFileData.chunks.at(j); int leftLineNumber = chunkData.leftStartingLineNumber; int rightLineNumber = chunkData.rightStartingLineNumber; @@ -730,8 +717,7 @@ void SideBySideDiffEditorWidget::showDiff() m_leftEditor->setChunkIndex(blockNumber, chunkData.rows.count(), j); m_rightEditor->setChunkIndex(blockNumber, chunkData.rows.count(), j); - for (int k = 0; k < chunkData.rows.count(); k++) { - RowData rowData = chunkData.rows.at(k); + for (const RowData &rowData : chunkData.rows) { TextLineData leftLineData = rowData.leftLine; TextLineData rightLineData = rowData.rightLine; if (leftLineData.textLineType == TextLineData::TextLine) { @@ -762,19 +748,17 @@ void SideBySideDiffEditorWidget::showDiff() rightFormats[blockNumber].append(DiffSelection(&m_spanLineFormat)); } - QMapIterator itLeft(leftLineData.changedPositions); - while (itLeft.hasNext()) { - itLeft.next(); + for (auto it = leftLineData.changedPositions.cbegin(), + end = leftLineData.changedPositions.cend(); it != end; ++it) { leftFormats[blockNumber].append( - DiffSelection(itLeft.key(), itLeft.value(), + DiffSelection(it.key(), it.value(), &m_controller.m_leftCharFormat)); } - QMapIterator itRight(rightLineData.changedPositions); - while (itRight.hasNext()) { - itRight.next(); + for (auto it = rightLineData.changedPositions.cbegin(), + end = rightLineData.changedPositions.cend(); it != end; ++it) { rightFormats[blockNumber].append( - DiffSelection(itRight.key(), itRight.value(), + DiffSelection(it.key(), it.value(), &m_controller.m_rightCharFormat)); } @@ -851,8 +835,7 @@ void SideBySideDiffEditorWidget::slotLeftJumpToOriginalFileRequested( // The same file (e.g. in git diff), jump to the line number taken from the right editor. // Warning: git show SHA^ vs SHA or git diff HEAD vs Index // (when Working tree has changed in meantime) will not work properly. - for (int i = 0; i < fileData.chunks.count(); i++) { - const ChunkData chunkData = fileData.chunks.at(i); + for (const ChunkData &chunkData : fileData.chunks) { int leftLineNumber = chunkData.leftStartingLineNumber; int rightLineNumber = chunkData.rightStartingLineNumber; diff --git a/src/plugins/diffeditor/unifieddiffeditorwidget.cpp b/src/plugins/diffeditor/unifieddiffeditorwidget.cpp index 544adb5fbf..418c85f821 100644 --- a/src/plugins/diffeditor/unifieddiffeditorwidget.cpp +++ b/src/plugins/diffeditor/unifieddiffeditorwidget.cpp @@ -325,13 +325,13 @@ QString UnifiedDiffEditorWidget::showChunk(const ChunkData &chunkData, // could have been added for (int k = 0; k < blockDelta; k++) (*selections)[*blockNumber + blockCount + 1 + k].append(&m_controller.m_leftLineFormat); - QMapIterator itPos(lineData.changedPositions); - while (itPos.hasNext()) { - itPos.next(); - const int startPos = itPos.key() < 0 - ? 1 : itPos.key() + 1; - const int endPos = itPos.value() < 0 - ? itPos.value() : itPos.value() + 1; + + for (auto it = lineData.changedPositions.cbegin(), + end = lineData.changedPositions.cend(); it != end; ++it) { + const int startPos = it.key() < 0 + ? 1 : it.key() + 1; + const int endPos = it.value() < 0 + ? it.value() : it.value() + 1; (*selections)[*blockNumber + blockCount + 1].append( DiffSelection(startPos, endPos, &m_controller.m_leftCharFormat)); } @@ -365,13 +365,13 @@ QString UnifiedDiffEditorWidget::showChunk(const ChunkData &chunkData, for (int k = 0; k < blockDelta; k++) (*selections)[*blockNumber + blockCount + 1 + k].append(&m_controller.m_rightLineFormat); - QMapIterator itPos(lineData.changedPositions); - while (itPos.hasNext()) { - itPos.next(); - const int startPos = itPos.key() < 0 - ? 1 : itPos.key() + 1; - const int endPos = itPos.value() < 0 - ? itPos.value() : itPos.value() + 1; + + for (auto it = lineData.changedPositions.cbegin(), + end = lineData.changedPositions.cend(); it != end; ++it) { + const int startPos = it.key() < 0 + ? 1 : it.key() + 1; + const int endPos = it.value() < 0 + ? it.value() : it.value() + 1; (*selections)[*blockNumber + blockCount + 1].append (DiffSelection(startPos, endPos, &m_controller.m_rightCharFormat)); } @@ -448,8 +448,7 @@ void UnifiedDiffEditorWidget::showDiff() QMap > selections; - for (int i = 0; i < m_controller.m_contextFileData.count(); i++) { - const FileData &fileData = m_controller.m_contextFileData.at(i); + for (const FileData &fileData : m_controller.m_contextFileData) { const QString leftFileInfo = QLatin1String("--- ") + fileData.leftFileInfo.fileName + QLatin1Char('\n'); const QString rightFileInfo = QLatin1String("+++ ") @@ -509,28 +508,17 @@ int UnifiedDiffEditorWidget::blockNumberForFileIndex(int fileIndex) const if (fileIndex < 0 || fileIndex >= m_fileInfo.count()) return -1; - QMap >::const_iterator it - = m_fileInfo.constBegin(); - for (int i = 0; i < fileIndex; i++) - ++it; - - return it.key(); + return (m_fileInfo.constBegin() + fileIndex).key(); } int UnifiedDiffEditorWidget::fileIndexForBlockNumber(int blockNumber) const { - QMap >::const_iterator it - = m_fileInfo.constBegin(); - QMap >::const_iterator itEnd - = m_fileInfo.constEnd(); - int i = -1; - while (it != itEnd) { + for (auto it = m_fileInfo.cbegin(), end = m_fileInfo.cend(); it != end; ++it, ++i) { if (it.key() > blockNumber) break; - ++it; - ++i; } + return i; } @@ -539,8 +527,7 @@ int UnifiedDiffEditorWidget::chunkIndexForBlockNumber(int blockNumber) const if (m_chunkInfo.isEmpty()) return -1; - QMap >::const_iterator it - = m_chunkInfo.upperBound(blockNumber); + auto it = m_chunkInfo.upperBound(blockNumber); if (it == m_chunkInfo.constBegin()) return -1; @@ -577,14 +564,12 @@ void UnifiedDiffEditorWidget::jumpToOriginalFile(const QTextCursor &cursor) const int leftLineNumber = m_leftLineNumbers.value(blockNumber, -1); if (leftLineNumber >= 0) { if (leftFileName == rightFileName) { - for (int i = 0; i < fileData.chunks.count(); i++) { - const ChunkData chunkData = fileData.chunks.at(i); + for (const ChunkData &chunkData : fileData.chunks) { int newLeftLineNumber = chunkData.leftStartingLineNumber; int newRightLineNumber = chunkData.rightStartingLineNumber; - for (int j = 0; j < chunkData.rows.count(); j++) { - const RowData rowData = chunkData.rows.at(j); + for (const RowData &rowData : chunkData.rows) { if (rowData.leftLine.textLineType == TextLineData::TextLine) newLeftLineNumber++; if (rowData.rightLine.textLineType == TextLineData::TextLine) -- cgit v1.2.1