forked from qt-creator/qt-creator
DiffEditor: Keep horizontal scrollbar policy in sync
Task-number: QTCREATORBUG-14330 Change-Id: I4c45089f10a9b59cd1bc5b5368f14e0bb0738f22 Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This commit is contained in:
@@ -179,6 +179,7 @@ SideDiffEditorWidget::SideDiffEditorWidget(QWidget *parent)
|
|||||||
connect(documentLayout, &TextDocumentLayout::foldChanged,
|
connect(documentLayout, &TextDocumentLayout::foldChanged,
|
||||||
this, &SideDiffEditorWidget::foldChanged);
|
this, &SideDiffEditorWidget::foldChanged);
|
||||||
setCodeFoldingSupported(true);
|
setCodeFoldingSupported(true);
|
||||||
|
setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SideDiffEditorWidget::saveState()
|
void SideDiffEditorWidget::saveState()
|
||||||
@@ -714,6 +715,13 @@ SideBySideDiffEditorWidget::SideBySideDiffEditorWidget(QWidget *parent)
|
|||||||
connect(m_rightEditor, &SideDiffEditorWidget::foldChanged,
|
connect(m_rightEditor, &SideDiffEditorWidget::foldChanged,
|
||||||
m_leftEditor, &SideDiffEditorWidget::setFolded);
|
m_leftEditor, &SideDiffEditorWidget::setFolded);
|
||||||
|
|
||||||
|
connect(m_leftEditor->horizontalScrollBar(), &QAbstractSlider::rangeChanged,
|
||||||
|
this, &SideBySideDiffEditorWidget::syncHorizontalScrollBarPolicy);
|
||||||
|
|
||||||
|
connect(m_rightEditor->horizontalScrollBar(), &QAbstractSlider::rangeChanged,
|
||||||
|
this, &SideBySideDiffEditorWidget::syncHorizontalScrollBarPolicy);
|
||||||
|
|
||||||
|
syncHorizontalScrollBarPolicy();
|
||||||
|
|
||||||
m_splitter = new MiniSplitter(this);
|
m_splitter = new MiniSplitter(this);
|
||||||
m_splitter->addWidget(m_leftEditor);
|
m_splitter->addWidget(m_leftEditor);
|
||||||
@@ -1133,6 +1141,18 @@ void SideBySideDiffEditorWidget::rightCursorPositionChanged()
|
|||||||
rightHSliderChanged();
|
rightHSliderChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SideBySideDiffEditorWidget::syncHorizontalScrollBarPolicy()
|
||||||
|
{
|
||||||
|
const bool alwaysOn = m_leftEditor->horizontalScrollBar()->maximum()
|
||||||
|
|| m_rightEditor->horizontalScrollBar()->maximum();
|
||||||
|
const Qt::ScrollBarPolicy newPolicy = alwaysOn
|
||||||
|
? Qt::ScrollBarAlwaysOn : Qt::ScrollBarAsNeeded;
|
||||||
|
if (m_leftEditor->horizontalScrollBarPolicy() != newPolicy)
|
||||||
|
m_leftEditor->setHorizontalScrollBarPolicy(newPolicy);
|
||||||
|
if (m_rightEditor->horizontalScrollBarPolicy() != newPolicy)
|
||||||
|
m_rightEditor->setHorizontalScrollBarPolicy(newPolicy);
|
||||||
|
}
|
||||||
|
|
||||||
void SideBySideDiffEditorWidget::handlePositionChange(SideDiffEditorWidget *source, SideDiffEditorWidget *dest)
|
void SideBySideDiffEditorWidget::handlePositionChange(SideDiffEditorWidget *source, SideDiffEditorWidget *dest)
|
||||||
{
|
{
|
||||||
if (m_controller.m_ignoreCurrentIndexChange)
|
if (m_controller.m_ignoreCurrentIndexChange)
|
||||||
|
|||||||
@@ -95,6 +95,7 @@ private:
|
|||||||
void rightHSliderChanged();
|
void rightHSliderChanged();
|
||||||
void leftCursorPositionChanged();
|
void leftCursorPositionChanged();
|
||||||
void rightCursorPositionChanged();
|
void rightCursorPositionChanged();
|
||||||
|
void syncHorizontalScrollBarPolicy();
|
||||||
void handlePositionChange(SideDiffEditorWidget *source, SideDiffEditorWidget *dest);
|
void handlePositionChange(SideDiffEditorWidget *source, SideDiffEditorWidget *dest);
|
||||||
void syncCursor(SideDiffEditorWidget *source, SideDiffEditorWidget *dest);
|
void syncCursor(SideDiffEditorWidget *source, SideDiffEditorWidget *dest);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user