summaryrefslogtreecommitdiff
path: root/src/plugins/diffeditor/sidebysidediffeditorwidget.cpp
diff options
context:
space:
mode:
authorjkobus <jaroslaw.kobus@digia.com>2014-02-26 10:41:05 +0100
committerJarek Kobus <jaroslaw.kobus@digia.com>2014-02-26 12:35:26 +0100
commitab9db1433a18a195daef8818287385e7ecba63b2 (patch)
tree0cc56db1d47511cdd223331dff2f85ab878b6b11 /src/plugins/diffeditor/sidebysidediffeditorwidget.cpp
parenta1034af2e8f5cf8f14cf0288d19694ba827d3320 (diff)
downloadqt-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.cpp28
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++;
}