From f3a7299761178c97a91a31c9a9e8755ccedf596e Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Mon, 26 Sep 2022 15:28:00 +0200 Subject: [PATCH] DiffEditor: Use DiffSide enum inside FileData Change-Id: I4c18c52a9737cc46c3faeadf0abd5c4771463e0e Reviewed-by: Orgad Shaneh --- src/plugins/diffeditor/diffeditor.cpp | 8 +- src/plugins/diffeditor/diffeditordocument.cpp | 4 +- src/plugins/diffeditor/diffeditorplugin.cpp | 102 ++++++++---------- .../diffeditor/diffeditorwidgetcontroller.cpp | 10 +- src/plugins/diffeditor/diffutils.cpp | 36 +++---- src/plugins/diffeditor/diffutils.h | 3 +- .../diffeditor/sidebysidediffeditorwidget.cpp | 10 +- .../diffeditor/unifieddiffeditorwidget.cpp | 14 +-- 8 files changed, 88 insertions(+), 99 deletions(-) diff --git a/src/plugins/diffeditor/diffeditor.cpp b/src/plugins/diffeditor/diffeditor.cpp index 0619de857c8..14f10ecc085 100644 --- a/src/plugins/diffeditor/diffeditor.cpp +++ b/src/plugins/diffeditor/diffeditor.cpp @@ -311,8 +311,8 @@ void DiffEditor::documentHasChanged() m_entriesComboBox->clear(); for (const FileData &diffFile : diffFileList) { - const DiffFileInfo &leftEntry = diffFile.leftFileInfo; - const DiffFileInfo &rightEntry = diffFile.rightFileInfo; + const DiffFileInfo &leftEntry = diffFile.fileInfo[LeftSide]; + const DiffFileInfo &rightEntry = diffFile.fileInfo[RightSide]; const QString leftShortFileName = Utils::FilePath::fromString(leftEntry.fileName).fileName(); const QString rightShortFileName = Utils::FilePath::fromString(rightEntry.fileName).fileName(); QString itemText; @@ -445,8 +445,8 @@ void DiffEditor::reloadHasFinished(bool success) const int count = diffFileList.count(); for (int i = 0; i < count; i++) { const FileData &diffFile = diffFileList.at(i); - const DiffFileInfo &leftEntry = diffFile.leftFileInfo; - const DiffFileInfo &rightEntry = diffFile.rightFileInfo; + const DiffFileInfo &leftEntry = diffFile.fileInfo[LeftSide]; + const DiffFileInfo &rightEntry = diffFile.fileInfo[RightSide]; if ((m_currentFileChunk.first.isEmpty() && m_currentFileChunk.second.isEmpty() && startupFile.endsWith(rightEntry.fileName)) diff --git a/src/plugins/diffeditor/diffeditordocument.cpp b/src/plugins/diffeditor/diffeditordocument.cpp index 0290345cb00..09b18b4ab6e 100644 --- a/src/plugins/diffeditor/diffeditordocument.cpp +++ b/src/plugins/diffeditor/diffeditordocument.cpp @@ -135,8 +135,8 @@ QString DiffEditorDocument::makePatch(int fileIndex, int chunkIndex, const QString fileName = !overriddenFileName.isEmpty() ? overriddenFileName : revert - ? fileData.rightFileInfo.fileName - : fileData.leftFileInfo.fileName; + ? fileData.fileInfo[RightSide].fileName + : fileData.fileInfo[LeftSide].fileName; QString leftPrefix, rightPrefix; if (addPrefix) { diff --git a/src/plugins/diffeditor/diffeditorplugin.cpp b/src/plugins/diffeditor/diffeditorplugin.cpp index 4d087265602..c40a832370a 100644 --- a/src/plugins/diffeditor/diffeditorplugin.cpp +++ b/src/plugins/diffeditor/diffeditorplugin.cpp @@ -90,8 +90,7 @@ public: outputLeftDiffList, outputRightDiffList); fileData = DiffUtils::calculateContextData(chunkData, m_contextLineCount, 0); } - fileData.leftFileInfo = reloadInfo.leftFileInfo; - fileData.rightFileInfo = reloadInfo.rightFileInfo; + fileData.fileInfo = {reloadInfo.leftFileInfo, reloadInfo.rightFileInfo}; fileData.fileOperation = reloadInfo.fileOperation; fileData.binaryFiles = reloadInfo.binaryFiles; futureInterface.reportResult(fileData); @@ -838,8 +837,8 @@ void DiffEditor::Internal::DiffEditorPlugin::testMakePatch() QCOMPARE(resultList.count(), 1); for (int i = 0; i < resultList.count(); i++) { const FileData &resultFileData = resultList.at(i); - QCOMPARE(resultFileData.leftFileInfo.fileName, fileName); - QCOMPARE(resultFileData.rightFileInfo.fileName, fileName); + QCOMPARE(resultFileData.fileInfo[LeftSide].fileName, fileName); + QCOMPARE(resultFileData.fileInfo[RightSide].fileName, fileName); QCOMPARE(resultFileData.chunks.count(), 1); for (int j = 0; j < resultFileData.chunks.count(); j++) { const ChunkData &resultChunkData = resultFileData.chunks.at(j); @@ -946,8 +945,8 @@ void DiffEditor::Internal::DiffEditorPlugin::testReadPatch_data() ; FileData fileData1; - fileData1.leftFileInfo = DiffFileInfo("src/plugins/diffeditor/diffeditor.cpp", "eab9e9b"); - fileData1.rightFileInfo = DiffFileInfo("src/plugins/diffeditor/diffeditor.cpp", "082c135"); + fileData1.fileInfo = {DiffFileInfo("src/plugins/diffeditor/diffeditor.cpp", "eab9e9b"), + DiffFileInfo("src/plugins/diffeditor/diffeditor.cpp", "082c135")}; ChunkData chunkData1; chunkData1.startingLineNumber = {186, 186}; QList rows1; @@ -964,8 +963,8 @@ void DiffEditor::Internal::DiffEditorPlugin::testReadPatch_data() fileData1.chunks << chunkData1; FileData fileData2; - fileData2.leftFileInfo = DiffFileInfo(_("src/plugins/diffeditor/diffutils.cpp"), _("2f641c9")); - fileData2.rightFileInfo = DiffFileInfo(_("src/plugins/diffeditor/diffutils.cpp"), _("f8ff795")); + fileData2.fileInfo = {DiffFileInfo(_("src/plugins/diffeditor/diffutils.cpp"), _("2f641c9")), + DiffFileInfo(_("src/plugins/diffeditor/diffutils.cpp"), _("f8ff795"))}; ChunkData chunkData2; chunkData2.startingLineNumber = {463, 463}; QList rows2; @@ -985,8 +984,7 @@ void DiffEditor::Internal::DiffEditorPlugin::testReadPatch_data() fileData2.chunks << chunkData2; FileData fileData3; - fileData3.leftFileInfo = DiffFileInfo("new", "0000000"); - fileData3.rightFileInfo = DiffFileInfo("new", "257cc56"); + fileData3.fileInfo = {DiffFileInfo("new", "0000000"), DiffFileInfo("new", "257cc56")}; fileData3.fileOperation = FileData::NewFile; ChunkData chunkData3; chunkData3.startingLineNumber = {-1, 0}; @@ -998,8 +996,7 @@ void DiffEditor::Internal::DiffEditorPlugin::testReadPatch_data() fileData3.chunks << chunkData3; FileData fileData4; - fileData4.leftFileInfo = DiffFileInfo("deleted", "257cc56"); - fileData4.rightFileInfo = DiffFileInfo("deleted", "0000000"); + fileData4.fileInfo = {DiffFileInfo("deleted", "257cc56"), DiffFileInfo("deleted", "0000000")}; fileData4.fileOperation = FileData::DeleteFile; ChunkData chunkData4; chunkData4.startingLineNumber = {0, -1}; @@ -1011,18 +1008,16 @@ void DiffEditor::Internal::DiffEditorPlugin::testReadPatch_data() fileData4.chunks << chunkData4; FileData fileData5; - fileData5.leftFileInfo = DiffFileInfo("empty", "0000000"); - fileData5.rightFileInfo = DiffFileInfo("empty", "e69de29"); + fileData5.fileInfo = {DiffFileInfo("empty", "0000000"), DiffFileInfo("empty", "e69de29")}; fileData5.fileOperation = FileData::NewFile; FileData fileData6; - fileData6.leftFileInfo = DiffFileInfo("empty", "e69de29"); - fileData6.rightFileInfo = DiffFileInfo("empty", "0000000"); + fileData6.fileInfo = {DiffFileInfo("empty", "e69de29"), DiffFileInfo("empty", "0000000")}; fileData6.fileOperation = FileData::DeleteFile; FileData fileData7; - fileData7.leftFileInfo = DiffFileInfo("file a.txt", "1234567"); - fileData7.rightFileInfo = DiffFileInfo("file b.txt", "9876543"); + fileData7.fileInfo = {DiffFileInfo("file a.txt", "1234567"), + DiffFileInfo("file b.txt", "9876543")}; fileData7.fileOperation = FileData::CopyFile; ChunkData chunkData7; chunkData7.startingLineNumber = {19, 19}; @@ -1034,13 +1029,11 @@ void DiffEditor::Internal::DiffEditorPlugin::testReadPatch_data() fileData7.chunks << chunkData7; FileData fileData8; - fileData8.leftFileInfo = DiffFileInfo("file a.txt"); - fileData8.rightFileInfo = DiffFileInfo("file b.txt"); + fileData8.fileInfo = {DiffFileInfo("file a.txt"), DiffFileInfo("file b.txt")}; fileData8.fileOperation = FileData::RenameFile; FileData fileData9; - fileData9.leftFileInfo = DiffFileInfo("file.txt", "1234567"); - fileData9.rightFileInfo = DiffFileInfo("file.txt", "9876543"); + fileData9.fileInfo = {DiffFileInfo("file.txt", "1234567"), DiffFileInfo("file.txt", "9876543")}; fileData9.chunks << chunkData7; QList fileDataList1; fileDataList1 << fileData1 << fileData2 << fileData3 << fileData4 << fileData5 @@ -1061,8 +1054,8 @@ void DiffEditor::Internal::DiffEditorPlugin::testReadPatch_data() " C\n" "+\n"; - fileData1.leftFileInfo = DiffFileInfo("file foo.txt", "1234567"); - fileData1.rightFileInfo = DiffFileInfo("file foo.txt", "9876543"); + fileData1.fileInfo = {DiffFileInfo("file foo.txt", "1234567"), + DiffFileInfo("file foo.txt", "9876543")}; fileData1.fileOperation = FileData::ChangeFile; chunkData1.startingLineNumber = {49, 49}; rows1.clear(); @@ -1091,8 +1084,8 @@ void DiffEditor::Internal::DiffEditorPlugin::testReadPatch_data() "\\ No newline at end of file\n" "+ABCD\n"; - fileData1.leftFileInfo = DiffFileInfo("file foo.txt", "1234567"); - fileData1.rightFileInfo = DiffFileInfo("file foo.txt", "9876543"); + fileData1.fileInfo = {DiffFileInfo("file foo.txt", "1234567"), + DiffFileInfo("file foo.txt", "9876543")}; fileData1.fileOperation = FileData::ChangeFile; chunkData1.startingLineNumber = {0, 0}; rows1.clear(); @@ -1126,8 +1119,8 @@ void DiffEditor::Internal::DiffEditorPlugin::testReadPatch_data() "+F\n" ; - fileData1.leftFileInfo = DiffFileInfo("difftest.txt", "1234567"); - fileData1.rightFileInfo = DiffFileInfo("difftest.txt", "9876543"); + fileData1.fileInfo = {DiffFileInfo("difftest.txt", "1234567"), + DiffFileInfo("difftest.txt", "9876543")}; fileData1.fileOperation = FileData::ChangeFile; chunkData1.startingLineNumber = {1, 1}; rows1.clear(); @@ -1167,8 +1160,8 @@ void DiffEditor::Internal::DiffEditorPlugin::testReadPatch_data() "+EFGH\n" "\\ No newline at end of file\n"; - fileData1.leftFileInfo = DiffFileInfo("file foo.txt", "1234567"); - fileData1.rightFileInfo = DiffFileInfo("file foo.txt", "9876543"); + fileData1.fileInfo = {DiffFileInfo("file foo.txt", "1234567"), + DiffFileInfo("file foo.txt", "9876543")}; fileData1.fileOperation = FileData::ChangeFile; chunkData1.startingLineNumber = {0, 0}; rows1.clear(); @@ -1209,12 +1202,12 @@ void DiffEditor::Internal::DiffEditorPlugin::testReadPatch_data() ; fileData1 = FileData(); - fileData1.leftFileInfo = DiffFileInfo("src/plugins/texteditor/basetextdocument.h"); - fileData1.rightFileInfo = DiffFileInfo("src/plugins/texteditor/textdocument.h"); + fileData1.fileInfo = {DiffFileInfo("src/plugins/texteditor/basetextdocument.h"), + DiffFileInfo("src/plugins/texteditor/textdocument.h")}; fileData1.fileOperation = FileData::RenameFile; fileData2 = FileData(); - fileData2.leftFileInfo = DiffFileInfo("src/plugins/texteditor/basetextdocumentlayout.cpp", "0121933"); - fileData2.rightFileInfo = DiffFileInfo("src/plugins/texteditor/textdocumentlayout.cpp", "01cc3a0"); + fileData2.fileInfo = {DiffFileInfo("src/plugins/texteditor/basetextdocumentlayout.cpp", "0121933"), + DiffFileInfo("src/plugins/texteditor/textdocumentlayout.cpp", "01cc3a0")}; fileData2.fileOperation = FileData::RenameFile; chunkData2.startingLineNumber = {1, 1}; rows2.clear(); @@ -1244,8 +1237,7 @@ void DiffEditor::Internal::DiffEditorPlugin::testReadPatch_data() "+Subproject commit eda76354077a427d692fee05479910de31040d3f-dirty\n" ; fileData1 = FileData(); - fileData1.leftFileInfo = DiffFileInfo("src/shared/qbs"); - fileData1.rightFileInfo = DiffFileInfo("src/shared/qbs"); + fileData1.fileInfo = {DiffFileInfo("src/shared/qbs"), DiffFileInfo("src/shared/qbs")}; chunkData1.startingLineNumber = {0, 0}; rows1.clear(); rows1 << RowData(_("Subproject commit eda76354077a427d692fee05479910de31040d3f"), @@ -1278,8 +1270,8 @@ void DiffEditor::Internal::DiffEditorPlugin::testReadPatch_data() ; fileData1 = FileData(); - fileData1.leftFileInfo = DiffFileInfo("demos/arthurplugin/arthurplugin.pro", "0000000"); - fileData1.rightFileInfo = DiffFileInfo("demos/arthurplugin/arthurplugin.pro", "c5132b4"); + fileData1.fileInfo = {DiffFileInfo("demos/arthurplugin/arthurplugin.pro", "0000000"), + DiffFileInfo("demos/arthurplugin/arthurplugin.pro", "c5132b4")}; fileData1.fileOperation = FileData::NewFile; chunkData1 = ChunkData(); chunkData1.startingLineNumber = {-1, 0}; @@ -1289,13 +1281,13 @@ void DiffEditor::Internal::DiffEditorPlugin::testReadPatch_data() chunkData1.rows = rows1; fileData1.chunks << chunkData1; fileData2 = FileData(); - fileData2.leftFileInfo = DiffFileInfo("demos/arthurplugin/bg1.jpg", "0000000"); - fileData2.rightFileInfo = DiffFileInfo("demos/arthurplugin/bg1.jpg", "dfc7cee"); + fileData2.fileInfo = {DiffFileInfo("demos/arthurplugin/bg1.jpg", "0000000"), + DiffFileInfo("demos/arthurplugin/bg1.jpg", "dfc7cee")}; fileData2.fileOperation = FileData::NewFile; fileData2.binaryFiles = true; fileData3 = FileData(); - fileData3.leftFileInfo = DiffFileInfo("demos/arthurplugin/flower.jpg", "0000000"); - fileData3.rightFileInfo = DiffFileInfo("demos/arthurplugin/flower.jpg", "f8e022c"); + fileData3.fileInfo = {DiffFileInfo("demos/arthurplugin/flower.jpg", "0000000"), + DiffFileInfo("demos/arthurplugin/flower.jpg", "f8e022c")}; fileData3.fileOperation = FileData::NewFile; fileData3.binaryFiles = true; @@ -1312,8 +1304,7 @@ void DiffEditor::Internal::DiffEditorPlugin::testReadPatch_data() ; fileData1 = FileData(); - fileData1.leftFileInfo = DiffFileInfo("script.sh"); - fileData1.rightFileInfo = DiffFileInfo("script.sh"); + fileData1.fileInfo = {DiffFileInfo("script.sh"), DiffFileInfo("script.sh")}; fileData1.fileOperation = FileData::ChangeMode; QList fileDataList9; @@ -1332,8 +1323,7 @@ rename to new.sh ; fileData1 = FileData(); - fileData1.leftFileInfo = DiffFileInfo("old.sh"); - fileData1.rightFileInfo = DiffFileInfo("new.sh"); + fileData1.fileInfo = {DiffFileInfo("old.sh"), DiffFileInfo("new.sh")}; fileData1.fileOperation = FileData::RenameFile; QList fileDataList10; @@ -1350,8 +1340,8 @@ rename to new.sh "+++ src/plugins/subversion/subversioneditor.cpp\t(revision 0)\n" "@@ -0,0 +125 @@\n\n"; fileData1 = FileData(); - fileData1.leftFileInfo = DiffFileInfo("src/plugins/subversion/subversioneditor.cpp"); - fileData1.rightFileInfo = DiffFileInfo("src/plugins/subversion/subversioneditor.cpp"); + fileData1.fileInfo = {DiffFileInfo("src/plugins/subversion/subversioneditor.cpp"), + DiffFileInfo("src/plugins/subversion/subversioneditor.cpp")}; chunkData1 = ChunkData(); chunkData1.startingLineNumber = {-1, 124}; fileData1.chunks << chunkData1; @@ -1369,8 +1359,8 @@ rename to new.sh "+++ src/plugins/subversion/subversioneditor.cpp\t(working copy)\n" "@@ -1,125 +0,0 @@\n\n"; fileData1 = FileData(); - fileData1.leftFileInfo = DiffFileInfo("src/plugins/subversion/subversioneditor.cpp"); - fileData1.rightFileInfo = DiffFileInfo("src/plugins/subversion/subversioneditor.cpp"); + fileData1.fileInfo = {DiffFileInfo("src/plugins/subversion/subversioneditor.cpp"), + DiffFileInfo("src/plugins/subversion/subversioneditor.cpp")}; chunkData1 = ChunkData(); chunkData1.startingLineNumber = {0, -1}; fileData1.chunks << chunkData1; @@ -1388,8 +1378,8 @@ rename to new.sh "+++ src/plugins/subversion/subversioneditor.cpp\t(working copy)\n" "@@ -120,7 +120,7 @@\n\n"; fileData1 = FileData(); - fileData1.leftFileInfo = DiffFileInfo("src/plugins/subversion/subversioneditor.cpp"); - fileData1.rightFileInfo = DiffFileInfo("src/plugins/subversion/subversioneditor.cpp"); + fileData1.fileInfo = {DiffFileInfo("src/plugins/subversion/subversioneditor.cpp"), + DiffFileInfo("src/plugins/subversion/subversioneditor.cpp")}; chunkData1 = ChunkData(); chunkData1.startingLineNumber = {119, 119}; fileData1.chunks << chunkData1; @@ -1412,10 +1402,10 @@ void DiffEditor::Internal::DiffEditorPlugin::testReadPatch() for (int i = 0; i < fileDataList.count(); i++) { const FileData &origFileData = fileDataList.at(i); const FileData &resultFileData = result.at(i); - QCOMPARE(resultFileData.leftFileInfo.fileName, origFileData.leftFileInfo.fileName); - QCOMPARE(resultFileData.leftFileInfo.typeInfo, origFileData.leftFileInfo.typeInfo); - QCOMPARE(resultFileData.rightFileInfo.fileName, origFileData.rightFileInfo.fileName); - QCOMPARE(resultFileData.rightFileInfo.typeInfo, origFileData.rightFileInfo.typeInfo); + QCOMPARE(resultFileData.fileInfo[LeftSide].fileName, origFileData.fileInfo[LeftSide].fileName); + QCOMPARE(resultFileData.fileInfo[LeftSide].typeInfo, origFileData.fileInfo[LeftSide].typeInfo); + QCOMPARE(resultFileData.fileInfo[RightSide].fileName, origFileData.fileInfo[RightSide].fileName); + QCOMPARE(resultFileData.fileInfo[RightSide].typeInfo, origFileData.fileInfo[RightSide].typeInfo); QCOMPARE(resultFileData.chunks.count(), origFileData.chunks.count()); QCOMPARE(resultFileData.fileOperation, origFileData.fileOperation); for (int j = 0; j < origFileData.chunks.count(); j++) { diff --git a/src/plugins/diffeditor/diffeditorwidgetcontroller.cpp b/src/plugins/diffeditor/diffeditorwidgetcontroller.cpp index c631cb5a513..9c636fa33dc 100644 --- a/src/plugins/diffeditor/diffeditorwidgetcontroller.cpp +++ b/src/plugins/diffeditor/diffeditorwidgetcontroller.cpp @@ -150,11 +150,11 @@ void DiffEditorWidgetController::patch(bool revert, int fileIndex, int chunkInde const FileData fileData = m_contextFileData.at(fileIndex); const QString fileName = revert - ? fileData.rightFileInfo.fileName - : fileData.leftFileInfo.fileName; + ? fileData.fileInfo[RightSide].fileName + : fileData.fileInfo[LeftSide].fileName; const DiffFileInfo::PatchBehaviour patchBehaviour = revert - ? fileData.rightFileInfo.patchBehaviour - : fileData.leftFileInfo.patchBehaviour; + ? fileData.fileInfo[RightSide].patchBehaviour + : fileData.fileInfo[LeftSide].patchBehaviour; const FilePath workingDirectory = m_document->baseDirectory().isEmpty() ? FilePath::fromString(fileName).absolutePath() @@ -270,7 +270,7 @@ ChunkData DiffEditorWidgetController::chunkData(int fileIndex, int chunkIndex) c bool DiffEditorWidgetController::fileNamesAreDifferent(int fileIndex) const { const FileData fileData = m_contextFileData.at(fileIndex); - return fileData.leftFileInfo.fileName != fileData.rightFileInfo.fileName; + return fileData.fileInfo[LeftSide].fileName != fileData.fileInfo[RightSide].fileName; } void DiffEditorWidgetController::addApplyAction(QMenu *menu, int fileIndex, int chunkIndex) diff --git a/src/plugins/diffeditor/diffutils.cpp b/src/plugins/diffeditor/diffutils.cpp index c0f7c945815..1ed23fe3ad5 100644 --- a/src/plugins/diffeditor/diffutils.cpp +++ b/src/plugins/diffeditor/diffutils.cpp @@ -470,7 +470,7 @@ static QString leftFileName(const FileData &fileData, unsigned formatFlags) } else { if (formatFlags & DiffUtils::AddLevel) str << "a/"; - str << fileData.leftFileInfo.fileName; + str << fileData.fileInfo[LeftSide].fileName; } return diffText; } @@ -484,7 +484,7 @@ static QString rightFileName(const FileData &fileData, unsigned formatFlags) } else { if (formatFlags & DiffUtils::AddLevel) str << "b/"; - str << fileData.rightFileInfo.fileName; + str << fileData.fileInfo[RightSide].fileName; } return diffText; } @@ -497,8 +497,8 @@ QString DiffUtils::makePatch(const QList &fileDataList, unsigned forma for (int i = 0; i < fileDataList.size(); i++) { const FileData &fileData = fileDataList.at(i); if (formatFlags & GitFormat) { - str << "diff --git a/" << fileData.leftFileInfo.fileName - << " b/" << fileData.rightFileInfo.fileName << '\n'; + str << "diff --git a/" << fileData.fileInfo[LeftSide].fileName + << " b/" << fileData.fileInfo[RightSide].fileName << '\n'; } if (fileData.fileOperation == FileData::NewFile || fileData.fileOperation == FileData::DeleteFile) { // git only? @@ -508,7 +508,7 @@ QString DiffUtils::makePatch(const QList &fileDataList, unsigned forma str << "deleted"; str << " file mode 100644\n"; } - str << "index " << fileData.leftFileInfo.typeInfo << ".." << fileData.rightFileInfo.typeInfo; + str << "index " << fileData.fileInfo[LeftSide].typeInfo << ".." << fileData.fileInfo[RightSide].typeInfo; if (fileData.fileOperation == FileData::ChangeFile) str << " 100644"; str << "\n"; @@ -853,13 +853,13 @@ static FileData readDiffHeaderAndChunks(QStringView headerAndChunks, bool *ok) const QRegularExpressionMatch leftMatch = leftFileRegExp.match(patch); if (leftMatch.hasMatch() && leftMatch.capturedStart() == 0) { patch = patch.mid(leftMatch.capturedEnd()); - fileData.leftFileInfo.fileName = leftMatch.captured(1); + fileData.fileInfo[LeftSide].fileName = leftMatch.captured(1); // followed by rightFileRegExp const QRegularExpressionMatch rightMatch = rightFileRegExp.match(patch); if (rightMatch.hasMatch() && rightMatch.capturedStart() == 0) { patch = patch.mid(rightMatch.capturedEnd()); - fileData.rightFileInfo.fileName = rightMatch.captured(1); + fileData.fileInfo[RightSide].fileName = rightMatch.captured(1); fileData.chunks = readChunks(patch, &fileData.lastChunkAtTheEndOfFile, @@ -869,8 +869,8 @@ static FileData readDiffHeaderAndChunks(QStringView headerAndChunks, bool *ok) // or by binaryRegExp const QRegularExpressionMatch binaryMatch = binaryRegExp.match(patch); if (binaryMatch.hasMatch() && binaryMatch.capturedStart() == 0) { - fileData.leftFileInfo.fileName = binaryMatch.captured(1); - fileData.rightFileInfo.fileName = binaryMatch.captured(2); + fileData.fileInfo[LeftSide].fileName = binaryMatch.captured(1); + fileData.fileInfo[RightSide].fileName = binaryMatch.captured(2); fileData.binaryFiles = true; readOk = true; } @@ -1012,12 +1012,12 @@ static bool detectIndexAndBinary(QStringView patch, FileData *fileData, QStringV const int dotsPosition = indices.indexOf(QStringLiteral("..")); if (dotsPosition < 0) return false; - fileData->leftFileInfo.typeInfo = indices.left(dotsPosition).toString(); + fileData->fileInfo[LeftSide].typeInfo = indices.left(dotsPosition).toString(); // if there is no space we take the remaining string const int spacePosition = indices.indexOf(QChar::Space, dotsPosition + 2); const int length = spacePosition < 0 ? -1 : spacePosition - dotsPosition - 2; - fileData->rightFileInfo.typeInfo = indices.mid(dotsPosition + 2, length).toString(); + fileData->fileInfo[RightSide].typeInfo = indices.mid(dotsPosition + 2, length).toString(); *remainingPatch = afterNextLine; } else if (fileData->fileOperation != FileData::ChangeFile) { @@ -1034,9 +1034,9 @@ static bool detectIndexAndBinary(QStringView patch, FileData *fileData, QStringV const QString devNull("/dev/null"); const QString leftFileName = fileData->fileOperation == FileData::NewFile - ? devNull : QLatin1String("a/") + fileData->leftFileInfo.fileName; + ? devNull : QLatin1String("a/") + fileData->fileInfo[LeftSide].fileName; const QString rightFileName = fileData->fileOperation == FileData::DeleteFile - ? devNull : QLatin1String("b/") + fileData->rightFileInfo.fileName; + ? devNull : QLatin1String("b/") + fileData->fileInfo[RightSide].fileName; const QString binaryLine = "Binary files " + leftFileName + " and " @@ -1116,7 +1116,7 @@ static bool detectFileData(QStringView patch, FileData *fileData, QStringView *r // change / new / delete fileData->fileOperation = FileData::ChangeFile; - fileData->leftFileInfo.fileName = fileData->rightFileInfo.fileName = commonFileName.toString(); + fileData->fileInfo[LeftSide].fileName = fileData->fileInfo[RightSide].fileName = commonFileName.toString(); QStringView afterSecondLine; const QStringView secondLine = readLine(afterDiffGit, &afterSecondLine, &hasNewLine); @@ -1172,10 +1172,10 @@ static bool detectFileData(QStringView patch, FileData *fileData, QStringView *r const QLatin1String renameFrom("rename from "); if (copyRenameFrom.startsWith(copyFrom)) { fileData->fileOperation = FileData::CopyFile; - fileData->leftFileInfo.fileName = copyRenameFrom.mid(copyFrom.size()).toString(); + fileData->fileInfo[LeftSide].fileName = copyRenameFrom.mid(copyFrom.size()).toString(); } else if (copyRenameFrom.startsWith(renameFrom)) { fileData->fileOperation = FileData::RenameFile; - fileData->leftFileInfo.fileName = copyRenameFrom.mid(renameFrom.size()).toString(); + fileData->fileInfo[LeftSide].fileName = copyRenameFrom.mid(renameFrom.size()).toString(); } else { return false; } @@ -1189,9 +1189,9 @@ static bool detectFileData(QStringView patch, FileData *fileData, QStringView *r const QLatin1String copyTo("copy to "); const QLatin1String renameTo("rename to "); if (fileData->fileOperation == FileData::CopyFile && copyRenameTo.startsWith(copyTo)) { - fileData->rightFileInfo.fileName = copyRenameTo.mid(copyTo.size()).toString(); + fileData->fileInfo[RightSide].fileName = copyRenameTo.mid(copyTo.size()).toString(); } else if (fileData->fileOperation == FileData::RenameFile && copyRenameTo.startsWith(renameTo)) { - fileData->rightFileInfo.fileName = copyRenameTo.mid(renameTo.size()).toString(); + fileData->fileInfo[RightSide].fileName = copyRenameTo.mid(renameTo.size()).toString(); } else { return false; } diff --git a/src/plugins/diffeditor/diffutils.h b/src/plugins/diffeditor/diffutils.h index 9028b5bd688..837bc7ef508 100644 --- a/src/plugins/diffeditor/diffutils.h +++ b/src/plugins/diffeditor/diffutils.h @@ -104,8 +104,7 @@ public: FileData() = default; FileData(const ChunkData &chunkData) { chunks.append(chunkData); } QList chunks; - DiffFileInfo leftFileInfo; - DiffFileInfo rightFileInfo; + std::array fileInfo{}; FileOperation fileOperation = ChangeFile; bool binaryFiles = false; bool lastChunkAtTheEndOfFile = false; diff --git a/src/plugins/diffeditor/sidebysidediffeditorwidget.cpp b/src/plugins/diffeditor/sidebysidediffeditorwidget.cpp index 4a9ecf66375..d53becfa623 100644 --- a/src/plugins/diffeditor/sidebysidediffeditorwidget.cpp +++ b/src/plugins/diffeditor/sidebysidediffeditorwidget.cpp @@ -892,8 +892,8 @@ void SideBySideDiffEditorWidget::showDiff() foldingIndent.insert(blockNumber, 1); leftFormats[blockNumber].append(DiffSelection(&m_controller.m_fileLineFormat)); rightFormats[blockNumber].append(DiffSelection(&m_controller.m_fileLineFormat)); - m_leftEditor->setFileInfo(blockNumber, contextFileData.leftFileInfo); - m_rightEditor->setFileInfo(blockNumber, contextFileData.rightFileInfo); + m_leftEditor->setFileInfo(blockNumber, contextFileData.fileInfo[LeftSide]); + m_rightEditor->setFileInfo(blockNumber, contextFileData.fileInfo[RightSide]); leftText = separator; rightText = separator; blockNumber++; @@ -1051,8 +1051,8 @@ void SideBySideDiffEditorWidget::slotLeftJumpToOriginalFileRequested( return; const FileData fileData = m_controller.m_contextFileData.at(diffFileIndex); - const QString leftFileName = fileData.leftFileInfo.fileName; - const QString rightFileName = fileData.rightFileInfo.fileName; + const QString leftFileName = fileData.fileInfo[LeftSide].fileName; + const QString rightFileName = fileData.fileInfo[RightSide].fileName; if (leftFileName == rightFileName) { // The same file (e.g. in git diff), jump to the line number taken from the right editor. // Warning: git show SHA^ vs SHA or git diff HEAD vs Index @@ -1090,7 +1090,7 @@ void SideBySideDiffEditorWidget::slotRightJumpToOriginalFileRequested( return; const FileData fileData = m_controller.m_contextFileData.at(diffFileIndex); - const QString fileName = fileData.rightFileInfo.fileName; + const QString fileName = fileData.fileInfo[RightSide].fileName; m_controller.jumpToOriginalFile(fileName, lineNumber, columnNumber); } diff --git a/src/plugins/diffeditor/unifieddiffeditorwidget.cpp b/src/plugins/diffeditor/unifieddiffeditorwidget.cpp index 33a5a766829..d50f11bf96a 100644 --- a/src/plugins/diffeditor/unifieddiffeditorwidget.cpp +++ b/src/plugins/diffeditor/unifieddiffeditorwidget.cpp @@ -492,9 +492,9 @@ UnifiedDiffOutput UnifiedDiffData::setDiff(QFutureInterface &fi, int progr const int count = input.m_contextFileData.size(); for (const FileData &fileData : qAsConst(input.m_contextFileData)) { - const QString leftFileInfo = "--- " + fileData.leftFileInfo.fileName + '\n'; - const QString rightFileInfo = "+++ " + fileData.rightFileInfo.fileName + '\n'; - setFileInfo(blockNumber, fileData.leftFileInfo, fileData.rightFileInfo); + const QString leftFileInfo = "--- " + fileData.fileInfo[LeftSide].fileName + '\n'; + const QString rightFileInfo = "+++ " + fileData.fileInfo[RightSide].fileName + '\n'; + setFileInfo(blockNumber, fileData.fileInfo[LeftSide], fileData.fileInfo[RightSide]); output.foldingIndent.insert(blockNumber, 1); output.selections[blockNumber].append(DiffSelection(input.m_fileLineFormat)); blockNumber++; @@ -511,9 +511,9 @@ UnifiedDiffOutput UnifiedDiffData::setDiff(QFutureInterface &fi, int progr output.selections[blockNumber].append(DiffSelection(input.m_chunkLineFormat)); blockNumber++; const QString binaryLine = "Binary files " - + fileData.leftFileInfo.fileName + + fileData.fileInfo[LeftSide].fileName + " and " - + fileData.rightFileInfo.fileName + + fileData.fileInfo[RightSide].fileName + " differ\n"; output.diffText += binaryLine; charNumber += binaryLine.count(); @@ -672,8 +672,8 @@ void UnifiedDiffEditorWidget::jumpToOriginalFile(const QTextCursor &cursor) return; const FileData fileData = m_controller.m_contextFileData.at(fileIndex); - const QString leftFileName = fileData.leftFileInfo.fileName; - const QString rightFileName = fileData.rightFileInfo.fileName; + const QString leftFileName = fileData.fileInfo[LeftSide].fileName; + const QString rightFileName = fileData.fileInfo[RightSide].fileName; const int columnNumber = cursor.positionInBlock() - 1; // -1 for the first character in line