DiffUtils: Get rid of PatchFormattingFlags

Get rid of PatchFormattingFlags argument inside
DiffUtils::makePatch(), as there is the only caller of this
method. Internally, behave like the GitFormat flag was passed.

As all callers to sideFileName() were always passing
AddLevel (GitFormat flag contained AddLevel), the flag is
not needed anymore.

Change-Id: I1993cfd7212f5f60a5bdb2c9e1e4317c3ecd91d7
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
Jarek Kobus
2023-02-03 02:34:58 +01:00
parent d829d9ff33
commit 77616b8086
3 changed files with 13 additions and 22 deletions

View File

@@ -368,7 +368,7 @@ static QString formatGitDescription(const QString &description)
QString DiffEditorDocument::plainText() const QString DiffEditorDocument::plainText() const
{ {
return Utils::joinStrings({formatGitDescription(description()), return Utils::joinStrings({formatGitDescription(description()),
DiffUtils::makePatch(diffFiles(), DiffUtils::GitFormat)}, '\n'); DiffUtils::makePatch(diffFiles())}, '\n');
} }
void DiffEditorDocument::beginReload() void DiffEditorDocument::beginReload()

View File

@@ -487,28 +487,25 @@ QString DiffUtils::makePatch(const ChunkData &chunkData,
return diffText; return diffText;
} }
static QString sideFileName(DiffSide side, const FileData &fileData, unsigned formatFlags) static QString sideFileName(DiffSide side, const FileData &fileData)
{ {
const FileData::FileOperation operation = side == LeftSide ? FileData::NewFile const FileData::FileOperation operation = side == LeftSide ? FileData::NewFile
: FileData::DeleteFile; : FileData::DeleteFile;
if (fileData.fileOperation == operation) if (fileData.fileOperation == operation)
return "/dev/null"; return "/dev/null";
const QString sideMarker = side == LeftSide ? "a/" : "b/"; const QString sideMarker = side == LeftSide ? "a/" : "b/";
const QString formatMarker = formatFlags & DiffUtils::AddLevel ? sideMarker : QString(); return sideMarker + fileData.fileInfo[side].fileName;
return formatMarker + fileData.fileInfo[side].fileName;
} }
QString DiffUtils::makePatch(const QList<FileData> &fileDataList, unsigned formatFlags) QString DiffUtils::makePatch(const QList<FileData> &fileDataList)
{ {
QString diffText; QString diffText;
QTextStream str(&diffText); QTextStream str(&diffText);
for (int i = 0; i < fileDataList.size(); i++) { for (int i = 0; i < fileDataList.size(); i++) {
const FileData &fileData = fileDataList.at(i); const FileData &fileData = fileDataList.at(i);
if (formatFlags & GitFormat) { str << "diff --git a/" << fileData.fileInfo[LeftSide].fileName
str << "diff --git a/" << fileData.fileInfo[LeftSide].fileName << " b/" << fileData.fileInfo[RightSide].fileName << '\n';
<< " b/" << fileData.fileInfo[RightSide].fileName << '\n';
}
if (fileData.fileOperation == FileData::NewFile if (fileData.fileOperation == FileData::NewFile
|| fileData.fileOperation == FileData::DeleteFile) { // git only? || fileData.fileOperation == FileData::DeleteFile) { // git only?
if (fileData.fileOperation == FileData::NewFile) if (fileData.fileOperation == FileData::NewFile)
@@ -524,16 +521,16 @@ QString DiffUtils::makePatch(const QList<FileData> &fileDataList, unsigned forma
if (fileData.binaryFiles) { if (fileData.binaryFiles) {
str << "Binary files "; str << "Binary files ";
str << sideFileName(LeftSide, fileData, formatFlags); str << sideFileName(LeftSide, fileData);
str << " and "; str << " and ";
str << sideFileName(RightSide, fileData, formatFlags); str << sideFileName(RightSide, fileData);
str << " differ\n"; str << " differ\n";
} else { } else {
if (!fileData.chunks.isEmpty()) { if (!fileData.chunks.isEmpty()) {
str << "--- "; str << "--- ";
str << sideFileName(LeftSide, fileData, formatFlags) << "\n"; str << sideFileName(LeftSide, fileData) << "\n";
str << "+++ "; str << "+++ ";
str << sideFileName(RightSide, fileData, formatFlags) << "\n"; str << sideFileName(RightSide, fileData) << "\n";
for (int j = 0; j < fileData.chunks.size(); j++) { for (int j = 0; j < fileData.chunks.size(); j++) {
str << makePatch(fileData.chunks.at(j), str << makePatch(fileData.chunks.at(j),
(j == fileData.chunks.size() - 1) (j == fileData.chunks.size() - 1)
@@ -1041,8 +1038,8 @@ static bool detectIndexAndBinary(QStringView patch, FileData *fileData, QStringV
return true; return true;
} }
const QString leftFileName = sideFileName(LeftSide, *fileData, DiffUtils::AddLevel); const QString leftFileName = sideFileName(LeftSide, *fileData);
const QString rightFileName = sideFileName(RightSide, *fileData, DiffUtils::AddLevel); const QString rightFileName = sideFileName(RightSide, *fileData);
const QString binaryLine = "Binary files " const QString binaryLine = "Binary files "
+ leftFileName + " and " + leftFileName + " and "
+ rightFileName + " differ"; + rightFileName + " differ";

View File

@@ -126,11 +126,6 @@ public:
class DIFFEDITOR_EXPORT DiffUtils { class DIFFEDITOR_EXPORT DiffUtils {
public: public:
enum PatchFormattingFlags {
AddLevel = 0x1, // Add 'a/' , '/b' for git am
GitFormat = AddLevel | 0x2, // Add line 'diff ..' as git does
};
static ChunkData calculateOriginalData(const QList<Utils::Diff> &leftDiffList, static ChunkData calculateOriginalData(const QList<Utils::Diff> &leftDiffList,
const QList<Utils::Diff> &rightDiffList); const QList<Utils::Diff> &rightDiffList);
static FileData calculateContextData(const ChunkData &originalData, static FileData calculateContextData(const ChunkData &originalData,
@@ -146,8 +141,7 @@ public:
const QString &leftFileName, const QString &leftFileName,
const QString &rightFileName, const QString &rightFileName,
bool lastChunk = false); bool lastChunk = false);
static QString makePatch(const QList<FileData> &fileDataList, static QString makePatch(const QList<FileData> &fileDataList);
unsigned formatFlags = 0);
static QList<FileData> readPatch(const QString &patch, static QList<FileData> readPatch(const QString &patch,
bool *ok = nullptr, bool *ok = nullptr,
QFutureInterfaceBase *jobController = nullptr); QFutureInterfaceBase *jobController = nullptr);