forked from qt-creator/qt-creator
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:
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user