DiffEditor: Use DiffSide in DiffEditorInput

Change-Id: I195c37f29884f1d066acbb54c8ace07f8801f829
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
Jarek Kobus
2022-09-28 00:06:02 +02:00
parent 6ec7ce539b
commit 472d791fec
4 changed files with 21 additions and 27 deletions

View File

@@ -222,10 +222,10 @@ void DiffEditorWidgetController::setFontSettings(const FontSettings &fontSetting
m_fileLineFormat = fontSettings.toTextCharFormat(C_DIFF_FILE_LINE); m_fileLineFormat = fontSettings.toTextCharFormat(C_DIFF_FILE_LINE);
m_chunkLineFormat = fontSettings.toTextCharFormat(C_DIFF_CONTEXT_LINE); m_chunkLineFormat = fontSettings.toTextCharFormat(C_DIFF_CONTEXT_LINE);
m_spanLineFormat = fontSettings.toTextCharFormat(C_LINE_NUMBER); m_spanLineFormat = fontSettings.toTextCharFormat(C_LINE_NUMBER);
m_leftLineFormat = fontSettings.toTextCharFormat(C_DIFF_SOURCE_LINE); m_lineFormat[LeftSide] = fontSettings.toTextCharFormat(C_DIFF_SOURCE_LINE);
m_leftCharFormat = fontSettings.toTextCharFormat(C_DIFF_SOURCE_CHAR); m_charFormat[LeftSide] = fontSettings.toTextCharFormat(C_DIFF_SOURCE_CHAR);
m_rightLineFormat = fontSettings.toTextCharFormat(C_DIFF_DEST_LINE); m_lineFormat[RightSide] = fontSettings.toTextCharFormat(C_DIFF_DEST_LINE);
m_rightCharFormat = fontSettings.toTextCharFormat(C_DIFF_DEST_CHAR); m_charFormat[RightSide] = fontSettings.toTextCharFormat(C_DIFF_DEST_CHAR);
} }
void DiffEditorWidgetController::addCodePasterAction(QMenu *menu, int fileIndex, int chunkIndex) void DiffEditorWidgetController::addCodePasterAction(QMenu *menu, int fileIndex, int chunkIndex)
@@ -336,10 +336,8 @@ DiffEditorInput::DiffEditorInput(DiffEditorWidgetController *controller)
, m_fileLineFormat(&controller->m_fileLineFormat) , m_fileLineFormat(&controller->m_fileLineFormat)
, m_chunkLineFormat(&controller->m_chunkLineFormat) , m_chunkLineFormat(&controller->m_chunkLineFormat)
, m_spanLineFormat(&controller->m_spanLineFormat) , m_spanLineFormat(&controller->m_spanLineFormat)
, m_leftLineFormat(&controller->m_leftLineFormat) , m_lineFormat{&controller->m_lineFormat[LeftSide], &controller->m_lineFormat[RightSide]}
, m_rightLineFormat(&controller->m_rightLineFormat) , m_charFormat{&controller->m_charFormat[LeftSide], &controller->m_charFormat[RightSide]}
, m_leftCharFormat(&controller->m_leftCharFormat)
, m_rightCharFormat(&controller->m_rightCharFormat)
{ } { }

View File

@@ -52,10 +52,8 @@ public:
QTextCharFormat m_fileLineFormat; QTextCharFormat m_fileLineFormat;
QTextCharFormat m_chunkLineFormat; QTextCharFormat m_chunkLineFormat;
QTextCharFormat m_spanLineFormat; QTextCharFormat m_spanLineFormat;
QTextCharFormat m_leftLineFormat; std::array<QTextCharFormat, SideCount> m_lineFormat{};
QTextCharFormat m_rightLineFormat; std::array<QTextCharFormat, SideCount> m_charFormat{};
QTextCharFormat m_leftCharFormat;
QTextCharFormat m_rightCharFormat;
private: private:
bool isInProgress() const; bool isInProgress() const;
@@ -88,10 +86,8 @@ public:
QTextCharFormat *m_fileLineFormat = nullptr; QTextCharFormat *m_fileLineFormat = nullptr;
QTextCharFormat *m_chunkLineFormat = nullptr; QTextCharFormat *m_chunkLineFormat = nullptr;
QTextCharFormat *m_spanLineFormat = nullptr; QTextCharFormat *m_spanLineFormat = nullptr;
QTextCharFormat *m_leftLineFormat = nullptr; std::array<QTextCharFormat *, SideCount> m_lineFormat{};
QTextCharFormat *m_rightLineFormat = nullptr; std::array<QTextCharFormat *, SideCount> m_charFormat{};
QTextCharFormat *m_leftCharFormat = nullptr;
QTextCharFormat *m_rightCharFormat = nullptr;
}; };
} // namespace Internal } // namespace Internal

View File

@@ -338,11 +338,11 @@ SideBySideDiffOutput SideDiffData::diffOutput(QFutureInterface<void> &fi, int pr
if (!rowData.equal) { if (!rowData.equal) {
if (rowData.line[LeftSide].textLineType == TextLineData::TextLine) if (rowData.line[LeftSide].textLineType == TextLineData::TextLine)
leftFormats[blockNumber].append({input.m_leftLineFormat}); leftFormats[blockNumber].append({input.m_lineFormat[LeftSide]});
else else
leftFormats[blockNumber].append({input.m_spanLineFormat}); leftFormats[blockNumber].append({input.m_spanLineFormat});
if (rowData.line[RightSide].textLineType == TextLineData::TextLine) if (rowData.line[RightSide].textLineType == TextLineData::TextLine)
rightFormats[blockNumber].append({input.m_rightLineFormat}); rightFormats[blockNumber].append({input.m_lineFormat[RightSide]});
else else
rightFormats[blockNumber].append({input.m_spanLineFormat}); rightFormats[blockNumber].append({input.m_spanLineFormat});
} }
@@ -350,13 +350,13 @@ SideBySideDiffOutput SideDiffData::diffOutput(QFutureInterface<void> &fi, int pr
for (auto it = leftLineData.changedPositions.cbegin(), for (auto it = leftLineData.changedPositions.cbegin(),
end = leftLineData.changedPositions.cend(); it != end; ++it) { end = leftLineData.changedPositions.cend(); it != end; ++it) {
leftFormats[blockNumber].append( leftFormats[blockNumber].append(
{input.m_leftCharFormat, it.key(), it.value()}); {input.m_charFormat[LeftSide], it.key(), it.value()});
} }
for (auto it = rightLineData.changedPositions.cbegin(), for (auto it = rightLineData.changedPositions.cbegin(),
end = rightLineData.changedPositions.cend(); it != end; ++it) { end = rightLineData.changedPositions.cend(); it != end; ++it) {
rightFormats[blockNumber].append( rightFormats[blockNumber].append(
{input.m_rightCharFormat, it.key(), it.value()}); {input.m_charFormat[RightSide], it.key(), it.value()});
} }
leftText += separator; leftText += separator;

View File

@@ -346,14 +346,14 @@ QString UnifiedDiffData::setChunk(const DiffEditorInput &input, const ChunkData
const int blockDelta = line.count('\n'); // no new line const int blockDelta = line.count('\n'); // no new line
// could have been added // could have been added
for (int k = 0; k < blockDelta; k++) for (int k = 0; k < blockDelta; k++)
(*selections)[*blockNumber + blockCount + 1 + k].append({input.m_leftLineFormat}); (*selections)[*blockNumber + blockCount + 1 + k].append({input.m_lineFormat[LeftSide]});
for (auto it = lineData.changedPositions.cbegin(), for (auto it = lineData.changedPositions.cbegin(),
end = lineData.changedPositions.cend(); it != end; ++it) { end = lineData.changedPositions.cend(); it != end; ++it) {
const int startPos = it.key() < 0 ? 1 : it.key() + 1; const int startPos = it.key() < 0 ? 1 : it.key() + 1;
const int endPos = it.value() < 0 ? it.value() : it.value() + 1; const int endPos = it.value() < 0 ? it.value() : it.value() + 1;
(*selections)[*blockNumber + blockCount + 1].append( (*selections)[*blockNumber + blockCount + 1].append(
{input.m_leftCharFormat, startPos, endPos}); {input.m_charFormat[LeftSide], startPos, endPos});
} }
if (!line.isEmpty()) { if (!line.isEmpty()) {
@@ -385,14 +385,14 @@ QString UnifiedDiffData::setChunk(const DiffEditorInput &input, const ChunkData
// could have been added // could have been added
for (int k = 0; k < blockDelta; k++) for (int k = 0; k < blockDelta; k++)
(*selections)[*blockNumber + blockCount + 1 + k].append({input.m_rightLineFormat}); (*selections)[*blockNumber + blockCount + 1 + k].append({input.m_lineFormat[RightSide]});
for (auto it = lineData.changedPositions.cbegin(), for (auto it = lineData.changedPositions.cbegin(),
end = lineData.changedPositions.cend(); it != end; ++it) { end = lineData.changedPositions.cend(); it != end; ++it) {
const int startPos = it.key() < 0 ? 1 : it.key() + 1; const int startPos = it.key() < 0 ? 1 : it.key() + 1;
const int endPos = it.value() < 0 ? it.value() : it.value() + 1; const int endPos = it.value() < 0 ? it.value() : it.value() + 1;
(*selections)[*blockNumber + blockCount + 1].append( (*selections)[*blockNumber + blockCount + 1].append(
{input.m_rightCharFormat, startPos, endPos}); {input.m_charFormat[RightSide], startPos, endPos});
} }
if (!line.isEmpty()) { if (!line.isEmpty()) {