forked from qt-creator/qt-creator
DiffEditorPlugin: Introduce DiffFileInfoArray
Change-Id: I884d72e6c500e41969f379d969bcf1f46be8fd5c Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
@@ -38,7 +38,7 @@ namespace Internal {
|
||||
class ReloadInput {
|
||||
public:
|
||||
std::array<QString, SideCount> text{};
|
||||
std::array<DiffFileInfo, SideCount> fileInfo{};
|
||||
DiffFileInfoArray fileInfo{};
|
||||
FileData::FileOperation fileOperation = FileData::ChangeFile;
|
||||
bool binaryFiles = false;
|
||||
};
|
||||
|
@@ -11,6 +11,8 @@
|
||||
#include <QMap>
|
||||
#include <QString>
|
||||
|
||||
#include <array>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
class QFutureInterfaceBase;
|
||||
QT_END_NAMESPACE
|
||||
@@ -34,6 +36,8 @@ public:
|
||||
PatchBehaviour patchBehaviour = PatchFile;
|
||||
};
|
||||
|
||||
using DiffFileInfoArray = std::array<DiffFileInfo, SideCount>;
|
||||
|
||||
class DIFFEDITOR_EXPORT TextLineData {
|
||||
public:
|
||||
enum TextLineType {
|
||||
@@ -98,7 +102,7 @@ public:
|
||||
FileData() = default;
|
||||
FileData(const ChunkData &chunkData) { chunks.append(chunkData); }
|
||||
QList<ChunkData> chunks;
|
||||
std::array<DiffFileInfo, SideCount> fileInfo{};
|
||||
DiffFileInfoArray fileInfo{};
|
||||
FileOperation fileOperation = ChangeFile;
|
||||
bool binaryFiles = false;
|
||||
bool lastChunkAtTheEndOfFile = false;
|
||||
|
@@ -274,12 +274,6 @@ void UnifiedDiffData::setLineNumber(DiffSide side, int blockNumber, int lineNumb
|
||||
m_lineNumberDigits[side] = qMax(m_lineNumberDigits[side], lineNumberString.count());
|
||||
}
|
||||
|
||||
void UnifiedDiffData::setFileInfo(int blockNumber, const DiffFileInfo &leftInfo,
|
||||
const DiffFileInfo &rightInfo)
|
||||
{
|
||||
m_fileInfo[blockNumber] = {leftInfo, rightInfo};
|
||||
}
|
||||
|
||||
void UnifiedDiffData::setChunkIndex(int startBlockNumber, int blockCount, int chunkIndex)
|
||||
{
|
||||
m_chunkInfo.insert(startBlockNumber, qMakePair(blockCount, chunkIndex));
|
||||
@@ -428,7 +422,7 @@ UnifiedDiffOutput UnifiedDiffData::diffOutput(QFutureInterface<void> &fi, int pr
|
||||
for (const FileData &fileData : qAsConst(input.m_contextFileData)) {
|
||||
const QString leftFileInfo = "--- " + fileData.fileInfo[LeftSide].fileName + '\n';
|
||||
const QString rightFileInfo = "+++ " + fileData.fileInfo[RightSide].fileName + '\n';
|
||||
output.diffData.setFileInfo(blockNumber, fileData.fileInfo[LeftSide], fileData.fileInfo[RightSide]);
|
||||
output.diffData.m_fileInfo[blockNumber] = fileData.fileInfo;
|
||||
output.foldingIndent.insert(blockNumber, 1);
|
||||
output.selections[blockNumber].append({input.m_fileLineFormat});
|
||||
blockNumber++;
|
||||
|
@@ -38,13 +38,12 @@ public:
|
||||
std::array<int, SideCount> m_lineNumberDigits{1, 1};
|
||||
|
||||
// block number, visual line number.
|
||||
QMap<int, QPair<DiffFileInfo, DiffFileInfo>> m_fileInfo;
|
||||
QMap<int, DiffFileInfoArray> m_fileInfo;
|
||||
// start block number, block count of a chunk, chunk index inside a file.
|
||||
QMap<int, QPair<int, int>> m_chunkInfo;
|
||||
|
||||
private:
|
||||
void setLineNumber(DiffSide side, int blockNumber, int lineNumber, int rowNumberInChunk);
|
||||
void setFileInfo(int blockNumber, const DiffFileInfo &leftInfo, const DiffFileInfo &rightInfo);
|
||||
void setChunkIndex(int startBlockNumber, int blockCount, int chunkIndex);
|
||||
QString setChunk(const DiffEditorInput &input, const ChunkData &chunkData,
|
||||
bool lastChunk, int *blockNumber, DiffSelections *selections);
|
||||
|
Reference in New Issue
Block a user