From 45dc2e2a736a1a0a58788fae38bed0bea877f60e Mon Sep 17 00:00:00 2001 From: jkobus Date: Thu, 14 Aug 2014 17:20:42 +0200 Subject: [PATCH] Show the chunk context info in unified diff Task-number: QTCREATORBUG-12394 Change-Id: I827fb894fd373b34cbae19f686b15acb697489c3 Reviewed-by: Orgad Shaneh --- src/plugins/diffeditor/diffutils.cpp | 8 ++++++-- src/plugins/diffeditor/diffutils.h | 1 + src/plugins/diffeditor/unifieddiffeditorwidget.cpp | 4 +++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/plugins/diffeditor/diffutils.cpp b/src/plugins/diffeditor/diffutils.cpp index 669673f63f9..a51e4182b84 100644 --- a/src/plugins/diffeditor/diffutils.cpp +++ b/src/plugins/diffeditor/diffutils.cpp @@ -457,7 +457,9 @@ QString DiffUtils::makePatch(const ChunkData &chunkData, + QString::number(chunkData.rightStartingLineNumber + 1) + QLatin1Char(',') + QString::number(rightLineCount) - + QLatin1String(" @@\n"); + + QLatin1String(" @@") + + chunkData.contextInfo + + QLatin1Char('\n'); diffText.prepend(chunkLine); @@ -706,7 +708,7 @@ static QList readChunks(const QString &patch, // @@ -leftPos[,leftCount] +rightPos[,rightCount] @@ "@@ -(\\d+)(?:,\\d+)? \\+(\\d+)(?:,\\d+)? @@" // optional hint (e.g. function name) - "(?:\\ +[^\\n]*)?" + "(\\ +[^\\n]*)?" // end of line (need to be followed by text line) "(?:\\n))")); @@ -722,6 +724,7 @@ static QList readChunks(const QString &patch, const QString captured = capturedTexts.at(1); const int leftStartingPos = capturedTexts.at(2).toInt(); const int rightStartingPos = capturedTexts.at(3).toInt(); + const QString contextInfo = capturedTexts.at(4); if (endOfLastChunk > 0) { const QString lines = patch.mid(endOfLastChunk, pos - endOfLastChunk); @@ -738,6 +741,7 @@ static QList readChunks(const QString &patch, ChunkData chunkData; chunkData.leftStartingLineNumber = leftStartingPos - 1; chunkData.rightStartingLineNumber = rightStartingPos - 1; + chunkData.contextInfo = contextInfo; chunkDataList.append(chunkData); } while ((pos = chunkRegExp.indexIn(patch, pos)) != -1); diff --git a/src/plugins/diffeditor/diffutils.h b/src/plugins/diffeditor/diffutils.h index b649538026b..407e6e1551c 100644 --- a/src/plugins/diffeditor/diffutils.h +++ b/src/plugins/diffeditor/diffutils.h @@ -95,6 +95,7 @@ public: bool contextChunk; int leftStartingLineNumber; int rightStartingLineNumber; + QString contextInfo; }; class DIFFEDITOR_EXPORT FileData { diff --git a/src/plugins/diffeditor/unifieddiffeditorwidget.cpp b/src/plugins/diffeditor/unifieddiffeditorwidget.cpp index 3226aa6499c..e15cc4e5125 100644 --- a/src/plugins/diffeditor/unifieddiffeditorwidget.cpp +++ b/src/plugins/diffeditor/unifieddiffeditorwidget.cpp @@ -638,7 +638,9 @@ QString UnifiedDiffEditorWidget::showChunk(const ChunkData &chunkData, + QString::number(chunkData.rightStartingLineNumber+ 1) + QLatin1Char(',') + QString::number(rightLineCount) - + QLatin1String(" @@\n"); + + QLatin1String(" @@") + + chunkData.contextInfo + + QLatin1Char('\n'); diffText.prepend(chunkLine);