forked from qt-creator/qt-creator
Make it possible to save diff editor contents
Task-number: QTCREATORBUG-12548 Task-number: QTCREATORBUG-12549 Change-Id: Ia27080cc689da48fc5401010e2277edaf0a01f4d Reviewed-by: Eike Ziller <eike.ziller@digia.com>
This commit is contained in:
@@ -346,9 +346,7 @@ QString DiffUtils::makePatchLine(const QChar &startLineCharacter,
|
||||
}
|
||||
|
||||
QString DiffUtils::makePatch(const ChunkData &chunkData,
|
||||
const QString &leftFileName,
|
||||
const QString &rightFileName,
|
||||
bool lastChunk)
|
||||
bool lastChunk)
|
||||
{
|
||||
QString diffText;
|
||||
int leftLineCount = 0;
|
||||
@@ -425,6 +423,16 @@ QString DiffUtils::makePatch(const ChunkData &chunkData,
|
||||
|
||||
diffText.prepend(chunkLine);
|
||||
|
||||
return diffText;
|
||||
}
|
||||
|
||||
QString DiffUtils::makePatch(const ChunkData &chunkData,
|
||||
const QString &leftFileName,
|
||||
const QString &rightFileName,
|
||||
bool lastChunk)
|
||||
{
|
||||
QString diffText = makePatch(chunkData, lastChunk);
|
||||
|
||||
const QString rightFileInfo = QLatin1String("+++ ") + rightFileName + QLatin1Char('\n');
|
||||
const QString leftFileInfo = QLatin1String("--- ") + leftFileName + QLatin1Char('\n');
|
||||
|
||||
@@ -434,6 +442,39 @@ QString DiffUtils::makePatch(const ChunkData &chunkData,
|
||||
return diffText;
|
||||
}
|
||||
|
||||
QString DiffUtils::makePatch(const QList<FileData> &fileDataList)
|
||||
{
|
||||
QString diffText;
|
||||
|
||||
for (int i = 0; i < fileDataList.count(); i++) {
|
||||
const FileData &fileData = fileDataList.at(i);
|
||||
|
||||
if (fileData.binaryFiles) {
|
||||
const QString binaryLine = QLatin1String("Binary files ")
|
||||
+ fileData.leftFileInfo.fileName
|
||||
+ QLatin1String(" and ")
|
||||
+ fileData.rightFileInfo.fileName
|
||||
+ QLatin1String(" differ\n");
|
||||
diffText += binaryLine;
|
||||
} else {
|
||||
const QString leftFileInfo = QLatin1String("--- ")
|
||||
+ fileData.leftFileInfo.fileName + QLatin1Char('\n');
|
||||
const QString rightFileInfo = QLatin1String("+++ ")
|
||||
+ fileData.rightFileInfo.fileName + QLatin1Char('\n');
|
||||
|
||||
diffText += leftFileInfo;
|
||||
diffText += rightFileInfo;
|
||||
|
||||
for (int j = 0; j < fileData.chunks.count(); j++) {
|
||||
diffText += makePatch(fileData.chunks.at(j),
|
||||
(j == fileData.chunks.count() - 1)
|
||||
&& fileData.lastChunkAtTheEndOfFile);
|
||||
}
|
||||
}
|
||||
}
|
||||
return diffText;
|
||||
}
|
||||
|
||||
static QList<RowData> readLines(const QString &patch,
|
||||
bool ignoreWhitespace,
|
||||
bool lastChunk,
|
||||
|
||||
Reference in New Issue
Block a user