SideBySideDiffEditor: Synchronize left and right foldings

Change-Id: I2ff13db98981edf17190870c4d3ecea0113c8f3e
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
Jarek Kobus
2022-10-20 12:03:03 +02:00
parent 3cda873d7b
commit 3c9303c3b9

View File

@@ -68,7 +68,6 @@ signals:
int diffFileIndex, int diffFileIndex,
int chunkIndex, int chunkIndex,
const ChunkSelection &selection); const ChunkSelection &selection);
void foldChanged(int blockNumber, bool folded);
void gotDisplaySettings(); void gotDisplaySettings();
void gotFocus(); void gotFocus();
@@ -128,10 +127,6 @@ SideDiffEditorWidget::SideDiffEditorWidget(QWidget *parent)
ToolTip::hide(); ToolTip::hide();
}); });
auto documentLayout = qobject_cast<TextDocumentLayout*>(document()->documentLayout());
if (documentLayout)
connect(documentLayout, &TextDocumentLayout::foldChanged,
this, &SideDiffEditorWidget::foldChanged);
setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn); setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
} }
@@ -774,11 +769,6 @@ SideBySideDiffEditorWidget::SideBySideDiffEditorWidget(QWidget *parent)
this, &SideBySideDiffEditorWidget::setFontSettings); this, &SideBySideDiffEditorWidget::setFontSettings);
setFontSettings(TextEditorSettings::fontSettings()); setFontSettings(TextEditorSettings::fontSettings());
connect(m_editor[LeftSide], &SideDiffEditorWidget::foldChanged,
m_editor[RightSide], &SideDiffEditorWidget::setFolded);
connect(m_editor[RightSide], &SideDiffEditorWidget::foldChanged,
m_editor[LeftSide], &SideDiffEditorWidget::setFolded);
syncHorizontalScrollBarPolicy(); syncHorizontalScrollBarPolicy();
m_splitter = new MiniSplitter(this); m_splitter = new MiniSplitter(this);
@@ -911,6 +901,16 @@ void SideBySideDiffEditorWidget::showDiff()
m_editor[LeftSide]->setReadOnly(true); m_editor[LeftSide]->setReadOnly(true);
m_editor[RightSide]->setReadOnly(true); m_editor[RightSide]->setReadOnly(true);
} }
auto leftDocumentLayout = qobject_cast<TextDocumentLayout*>(
m_editor[LeftSide]->document()->documentLayout());
auto rightDocumentLayout = qobject_cast<TextDocumentLayout*>(
m_editor[RightSide]->document()->documentLayout());
if (leftDocumentLayout && rightDocumentLayout) {
connect(leftDocumentLayout, &TextDocumentLayout::foldChanged,
m_editor[RightSide], &SideDiffEditorWidget::setFolded);
connect(rightDocumentLayout, &TextDocumentLayout::foldChanged,
m_editor[LeftSide], &SideDiffEditorWidget::setFolded);
}
m_editor[LeftSide]->setSelections(results[LeftSide].selections); m_editor[LeftSide]->setSelections(results[LeftSide].selections);
m_editor[RightSide]->setSelections(results[RightSide].selections); m_editor[RightSide]->setSelections(results[RightSide].selections);
setCurrentDiffFileIndex(m_controller.currentDiffFileIndex()); setCurrentDiffFileIndex(m_controller.currentDiffFileIndex());