diff options
author | jkobus <jaroslaw.kobus@digia.com> | 2014-02-26 10:41:05 +0100 |
---|---|---|
committer | Jarek Kobus <jaroslaw.kobus@digia.com> | 2014-02-26 12:35:26 +0100 |
commit | ab9db1433a18a195daef8818287385e7ecba63b2 (patch) | |
tree | 0cc56db1d47511cdd223331dff2f85ab878b6b11 /src/plugins/diffeditor/sidebysidediffeditorwidget.cpp | |
parent | a1034af2e8f5cf8f14cf0288d19694ba827d3320 (diff) | |
download | qt-creator-ab9db1433a18a195daef8818287385e7ecba63b2.tar.gz |
Small refactor.
Change-Id: I8bdf3830e230b5db3d6041fae0d22c05cfc047d8
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
Diffstat (limited to 'src/plugins/diffeditor/sidebysidediffeditorwidget.cpp')
-rw-r--r-- | src/plugins/diffeditor/sidebysidediffeditorwidget.cpp | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/src/plugins/diffeditor/sidebysidediffeditorwidget.cpp b/src/plugins/diffeditor/sidebysidediffeditorwidget.cpp index e0539f084b..f9ea7705c1 100644 --- a/src/plugins/diffeditor/sidebysidediffeditorwidget.cpp +++ b/src/plugins/diffeditor/sidebysidediffeditorwidget.cpp @@ -181,6 +181,20 @@ static void handleLine(const QStringList &newLines, } } +static void handleDifference(const QString &text, + QStringList *lines, + QMap<int, int> *changedPositions, + int *lineNumber, + int *charNumber) +{ + const int oldPosition = *lineNumber + *charNumber; + const QStringList newLeftLines = text.split(QLatin1Char('\n')); + for (int line = 0; line < newLeftLines.count(); ++line) + handleLine(newLeftLines, line, lines, lineNumber, charNumber); + const int newPosition = *lineNumber + *charNumber; + changedPositions->insert(oldPosition, newPosition); +} + static bool lastLinesEqual(const QStringList &leftLines, const QStringList &rightLines) { @@ -237,23 +251,13 @@ static ChunkData calculateOriginalData(const QList<Diff> &leftDiffList, if (leftDiff.command == Diff::Delete) { // process delete - const int oldPosition = leftCharNumber + leftLineNumber; - const QStringList newLeftLines = leftDiff.text.split(QLatin1Char('\n')); - for (int line = 0; line < newLeftLines.count(); line++) - handleLine(newLeftLines, line, &leftLines, &leftLineNumber, &leftCharNumber); - const int newPosition = leftCharNumber + leftLineNumber; - leftChangedPositions.insert(oldPosition, newPosition); + handleDifference(leftDiff.text, &leftLines, &leftChangedPositions, &leftLineNumber, &leftCharNumber); lastLineEqual = lastLinesEqual(leftLines, rightLines); i++; } if (rightDiff.command == Diff::Insert) { // process insert - const int oldPosition = rightCharNumber + rightLineNumber; - const QStringList newRightLines = rightDiff.text.split(QLatin1Char('\n')); - for (int line = 0; line < newRightLines.count(); line++) - handleLine(newRightLines, line, &rightLines, &rightLineNumber, &rightCharNumber); - const int newPosition = rightCharNumber + rightLineNumber; - rightChangedPositions.insert(oldPosition, newPosition); + handleDifference(rightDiff.text, &rightLines, &rightChangedPositions, &rightLineNumber, &rightCharNumber); lastLineEqual = lastLinesEqual(leftLines, rightLines); j++; } |