UnifiedDiffData: Rename setDiff into diffOutput and make it static

Conform to sibling struct SideDiffData.

Change-Id: I7630ec7480c34a94f17ef09904e332da768f0c37
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
Jarek Kobus
2022-09-28 17:28:16 +02:00
parent 53fc68bc08
commit 084c310c44
3 changed files with 29 additions and 28 deletions

View File

@@ -1021,7 +1021,7 @@ void SideBySideDiffEditorWidget::showDiff()
if (futureInterface.isCanceled())
futureInterface.reportCanceled();
});
const int firstPartMax = 20; // showDiff is about 4 times quicker than filling document
const int firstPartMax = 20; // diffOutput is about 4 times quicker than filling document
const int leftPartMax = 60;
const int rightPartMax = 100;
futureInterface.setProgressRange(0, rightPartMax);

View File

@@ -423,7 +423,7 @@ QString UnifiedDiffData::setChunk(const DiffEditorInput &input, const ChunkData
return diffText;
}
UnifiedDiffOutput UnifiedDiffData::setDiff(QFutureInterface<void> &fi, int progressMin,
UnifiedDiffOutput UnifiedDiffData::diffOutput(QFutureInterface<void> &fi, int progressMin,
int progressMax, const DiffEditorInput &input)
{
UnifiedDiffOutput output;
@@ -436,7 +436,7 @@ UnifiedDiffOutput UnifiedDiffData::setDiff(QFutureInterface<void> &fi, int progr
for (const FileData &fileData : qAsConst(input.m_contextFileData)) {
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.diffData.setFileInfo(blockNumber, fileData.fileInfo[LeftSide], fileData.fileInfo[RightSide]);
output.foldingIndent.insert(blockNumber, 1);
output.selections[blockNumber].append({input.m_fileLineFormat});
blockNumber++;
@@ -463,14 +463,14 @@ UnifiedDiffOutput UnifiedDiffData::setDiff(QFutureInterface<void> &fi, int progr
for (int j = 0; j < fileData.chunks.count(); j++) {
const int oldBlockNumber = blockNumber;
output.foldingIndent.insert(blockNumber, 2);
output.diffText += setChunk(input, fileData.chunks.at(j),
output.diffText += output.diffData.setChunk(input, fileData.chunks.at(j),
(j == fileData.chunks.count() - 1)
&& fileData.lastChunkAtTheEndOfFile,
&blockNumber,
&charNumber,
&output.selections);
if (!fileData.chunks.at(j).contextChunk)
setChunkIndex(oldBlockNumber, blockNumber - oldBlockNumber, j);
output.diffData.setChunkIndex(oldBlockNumber, blockNumber - oldBlockNumber, j);
}
}
fi.setProgressValue(DiffUtils::interpolate(++i, 0, count, progressMin, progressMax));
@@ -521,17 +521,16 @@ void UnifiedDiffEditorWidget::showDiff()
futureInterface.reportCanceled();
});
const int progressMax = 100;
const int firstPartMax = 20; // showDiff is about 4 times quicker than filling document
const int firstPartMax = 20; // diffOutput is about 4 times quicker than filling document
futureInterface.setProgressRange(0, progressMax);
futureInterface.setProgressValue(0);
QFutureInterface<void> fi = futureInterface;
UnifiedDiffData diffData;
const UnifiedDiffOutput output = diffData.setDiff(fi, 0, firstPartMax, input);
const UnifiedDiffOutput output = UnifiedDiffData::diffOutput(fi, 0, firstPartMax, input);
if (futureInterface.isCanceled())
return;
const ShowResult result = {TextDocumentPtr(new TextDocument("DiffEditor.UnifiedDiffEditor")),
diffData, output.selections};
output.diffData, output.selections};
// No need to store the change history
result.textDocument->document()->setUndoRedoEnabled(false);

View File

@@ -24,22 +24,12 @@ class ChunkSelection;
namespace Internal {
class DiffEditorDocument;
class UnifiedDiffOutput
{
public:
QString diffText;
// 'foldingIndent' is populated with <block number> and folding indentation
// value where 1 indicates start of new file and 2 indicates a diff chunk.
// Remaining lines (diff contents) are assigned 3.
QHash<int, int> foldingIndent;
DiffSelections selections;
};
class UnifiedDiffOutput;
class UnifiedDiffData
{
public:
UnifiedDiffOutput setDiff(QFutureInterface<void> &fi, int progressMin, int progressMax,
static UnifiedDiffOutput diffOutput(QFutureInterface<void> &fi, int progressMin, int progressMax,
const DiffEditorInput &input);
// block number, visual line number, chunk row number
@@ -61,6 +51,18 @@ private:
DiffSelections *selections);
};
class UnifiedDiffOutput
{
public:
UnifiedDiffData diffData;
QString diffText;
// 'foldingIndent' is populated with <block number> and folding indentation
// value where 1 indicates start of new file and 2 indicates a diff chunk.
// Remaining lines (diff contents) are assigned 3.
QHash<int, int> foldingIndent;
DiffSelections selections;
};
class UnifiedDiffEditorWidget final : public SelectableTextEditorWidget
{
Q_OBJECT