aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/diffeditor/diffutils.cpp
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@theqtcompany.com>2014-11-24 15:43:48 +0100
committerEike Ziller <eike.ziller@theqtcompany.com>2014-11-24 15:43:48 +0100
commita47fbb83094ac2d2014fdd563ae22be9f0200baa (patch)
tree2b29ca96979b5facf549131aee58c13e9c2c368b /src/plugins/diffeditor/diffutils.cpp
parent63487158f1928f2d8499995783610839904ab149 (diff)
parenta4a4f7a4759e97142f751fdb91cb11536e5102e2 (diff)
Merge remote-tracking branch 'origin/3.3'
Conflicts: src/plugins/coreplugin/coreplugin.cpp src/plugins/coreplugin/themesettingswidget.cpp src/plugins/qbsprojectmanager/qbsprojectmanager.cpp src/plugins/qbsprojectmanager/qbsprojectmanager.h src/plugins/qmlprofiler/qml/Overview.js src/shared/qbs Change-Id: Ibe92c166fc5bfbcb4d6964e50ca7298d8459d60e
Diffstat (limited to 'src/plugins/diffeditor/diffutils.cpp')
-rw-r--r--src/plugins/diffeditor/diffutils.cpp39
1 files changed, 22 insertions, 17 deletions
diff --git a/src/plugins/diffeditor/diffutils.cpp b/src/plugins/diffeditor/diffutils.cpp
index fdfb548fdf2..bed256c01ed 100644
--- a/src/plugins/diffeditor/diffutils.cpp
+++ b/src/plugins/diffeditor/diffutils.cpp
@@ -31,6 +31,7 @@
#include "diffutils.h"
#include "differ.h"
#include <QStringList>
+#include <QTextStream>
#include "texteditor/fontsettings.h"
namespace DiffEditor {
@@ -483,31 +484,35 @@ QString DiffUtils::makePatch(const ChunkData &chunkData,
return diffText;
}
-QString DiffUtils::makePatch(const QList<FileData> &fileDataList)
+QString DiffUtils::makePatch(const QList<FileData> &fileDataList, unsigned formatFlags)
{
QString diffText;
+ QTextStream str(&diffText);
for (int i = 0; i < fileDataList.count(); i++) {
const FileData &fileData = fileDataList.at(i);
-
+ if (formatFlags & GitFormat) {
+ str << "diff --git a/" << fileData.leftFileInfo.fileName
+ << " b/" << fileData.rightFileInfo.fileName << '\n';
+ }
if (fileData.binaryFiles) {
- const QString binaryLine = QLatin1String("Binary files ")
- + fileData.leftFileInfo.fileName
- + QLatin1String(" and ")
- + fileData.rightFileInfo.fileName
- + QLatin1String(" differ\n");
- diffText += binaryLine;
+ str << "Binary files ";
+ if (formatFlags & AddLevel)
+ str << "a/";
+ str << fileData.leftFileInfo.fileName << " and ";
+ if (formatFlags & AddLevel)
+ str << "b/";
+ str << fileData.rightFileInfo.fileName << " differ\n";
} else {
- const QString leftFileInfo = QLatin1String("--- ")
- + fileData.leftFileInfo.fileName + QLatin1Char('\n');
- const QString rightFileInfo = QLatin1String("+++ ")
- + fileData.rightFileInfo.fileName + QLatin1Char('\n');
-
- diffText += leftFileInfo;
- diffText += rightFileInfo;
-
+ str << "--- ";
+ if (formatFlags & AddLevel)
+ str << "a/";
+ str << fileData.leftFileInfo.fileName << "\n+++ ";
+ if (formatFlags & AddLevel)
+ str << "b/";
+ str << fileData.rightFileInfo.fileName << '\n';
for (int j = 0; j < fileData.chunks.count(); j++) {
- diffText += makePatch(fileData.chunks.at(j),
+ str << makePatch(fileData.chunks.at(j),
(j == fileData.chunks.count() - 1)
&& fileData.lastChunkAtTheEndOfFile);
}