SelectableTextEditorWidget: Handle display settings

Avoid code repetition inside UnifiedDiffEditorWidget
and SideDiffEditorWidget.

Connect to display settings changed signal and apply
all but 4 settings (which are not desired for diff editor).

Change-Id: If4ae7f7c55690dac04fd1a00f8822db666a9ce2b
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
Jarek Kobus
2022-10-19 23:48:03 +02:00
parent 36d7dcb6b2
commit d0278ae295
5 changed files with 33 additions and 50 deletions

View File

@@ -55,7 +55,7 @@ public:
void setFolded(int blockNumber, bool folded);
void setDisplaySettings(const DisplaySettings &ds) override;
void setDisplaySettings(const DisplaySettings &displaySettings) override;
SideDiffData diffData() const { return m_data; }
void setDiffData(const SideDiffData &data) { m_data = data; }
@@ -119,13 +119,6 @@ private:
SideDiffEditorWidget::SideDiffEditorWidget(QWidget *parent)
: SelectableTextEditorWidget("DiffEditor.SideDiffEditor", parent)
{
DisplaySettings settings = displaySettings();
settings.m_textWrapping = false;
settings.m_displayLineNumbers = true;
settings.m_markTextChanges = false;
settings.m_highlightBlocks = false;
SelectableTextEditorWidget::setDisplaySettings(settings);
connect(this, &TextEditorWidget::tooltipRequested, this, [this](const QPoint &point, int position) {
const int block = document()->findBlock(position).blockNumber();
const auto it = m_data.m_fileInfo.constFind(block);
@@ -139,7 +132,6 @@ SideDiffEditorWidget::SideDiffEditorWidget(QWidget *parent)
if (documentLayout)
connect(documentLayout, &TextDocumentLayout::foldChanged,
this, &SideDiffEditorWidget::foldChanged);
setCodeFoldingSupported(true);
setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
}
@@ -176,14 +168,9 @@ void SideDiffEditorWidget::setFolded(int blockNumber, bool folded)
documentLayout->emitDocumentSizeChanged();
}
void SideDiffEditorWidget::setDisplaySettings(const DisplaySettings &ds)
void SideDiffEditorWidget::setDisplaySettings(const DisplaySettings &displaySettings)
{
DisplaySettings settings = displaySettings();
settings.m_visualizeWhitespace = ds.m_visualizeWhitespace;
settings.m_displayFoldingMarkers = ds.m_displayFoldingMarkers;
settings.m_scrollBarHighlights = ds.m_scrollBarHighlights;
settings.m_highlightCurrentLine = ds.m_highlightCurrentLine;
SelectableTextEditorWidget::setDisplaySettings(settings);
SelectableTextEditorWidget::setDisplaySettings(displaySettings);
emit gotDisplaySettings();
}
@@ -714,8 +701,6 @@ SideBySideDiffEditorWidget::SideBySideDiffEditorWidget(QWidget *parent)
{
auto setupEditor = [this](DiffSide side) {
m_editor[side] = new SideDiffEditorWidget(this);
m_editor[side]->setReadOnly(true);
m_editor[side]->setCodeStyle(TextEditorSettings::codeStyle());
connect(m_editor[side], &SideDiffEditorWidget::jumpToOriginalFileRequested,
this, std::bind(&SideBySideDiffEditorWidget::jumpToOriginalFileRequested, this,