forked from qt-creator/qt-creator
Fix horizontal scrolling in sidebyside diff editor
Fix horizontal scrolling in sidebyside diff editor when doing text search. Change-Id: I6b52ee50544ef6005b8b79b87b9289dbc7f99dbf Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
@@ -1080,38 +1080,56 @@ void SideBySideDiffEditorWidget::slotRightContextMenuRequested(QMenu *menu,
|
|||||||
|
|
||||||
void SideBySideDiffEditorWidget::leftVSliderChanged()
|
void SideBySideDiffEditorWidget::leftVSliderChanged()
|
||||||
{
|
{
|
||||||
|
if (m_controller.m_ignoreCurrentIndexChange)
|
||||||
|
return;
|
||||||
|
|
||||||
m_rightEditor->verticalScrollBar()->setValue(m_leftEditor->verticalScrollBar()->value());
|
m_rightEditor->verticalScrollBar()->setValue(m_leftEditor->verticalScrollBar()->value());
|
||||||
}
|
}
|
||||||
|
|
||||||
void SideBySideDiffEditorWidget::rightVSliderChanged()
|
void SideBySideDiffEditorWidget::rightVSliderChanged()
|
||||||
{
|
{
|
||||||
|
if (m_controller.m_ignoreCurrentIndexChange)
|
||||||
|
return;
|
||||||
|
|
||||||
m_leftEditor->verticalScrollBar()->setValue(m_rightEditor->verticalScrollBar()->value());
|
m_leftEditor->verticalScrollBar()->setValue(m_rightEditor->verticalScrollBar()->value());
|
||||||
}
|
}
|
||||||
|
|
||||||
void SideBySideDiffEditorWidget::leftHSliderChanged()
|
void SideBySideDiffEditorWidget::leftHSliderChanged()
|
||||||
{
|
{
|
||||||
|
if (m_controller.m_ignoreCurrentIndexChange)
|
||||||
|
return;
|
||||||
|
|
||||||
if (m_horizontalSync)
|
if (m_horizontalSync)
|
||||||
m_rightEditor->horizontalScrollBar()->setValue(m_leftEditor->horizontalScrollBar()->value());
|
m_rightEditor->horizontalScrollBar()->setValue(m_leftEditor->horizontalScrollBar()->value());
|
||||||
}
|
}
|
||||||
|
|
||||||
void SideBySideDiffEditorWidget::rightHSliderChanged()
|
void SideBySideDiffEditorWidget::rightHSliderChanged()
|
||||||
{
|
{
|
||||||
|
if (m_controller.m_ignoreCurrentIndexChange)
|
||||||
|
return;
|
||||||
|
|
||||||
if (m_horizontalSync)
|
if (m_horizontalSync)
|
||||||
m_leftEditor->horizontalScrollBar()->setValue(m_rightEditor->horizontalScrollBar()->value());
|
m_leftEditor->horizontalScrollBar()->setValue(m_rightEditor->horizontalScrollBar()->value());
|
||||||
}
|
}
|
||||||
|
|
||||||
void SideBySideDiffEditorWidget::leftCursorPositionChanged()
|
void SideBySideDiffEditorWidget::leftCursorPositionChanged()
|
||||||
{
|
{
|
||||||
|
if (m_controller.m_ignoreCurrentIndexChange)
|
||||||
|
return;
|
||||||
|
|
||||||
|
handlePositionChange(m_leftEditor, m_rightEditor);
|
||||||
leftVSliderChanged();
|
leftVSliderChanged();
|
||||||
leftHSliderChanged();
|
leftHSliderChanged();
|
||||||
handlePositionChange(m_leftEditor, m_rightEditor);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void SideBySideDiffEditorWidget::rightCursorPositionChanged()
|
void SideBySideDiffEditorWidget::rightCursorPositionChanged()
|
||||||
{
|
{
|
||||||
|
if (m_controller.m_ignoreCurrentIndexChange)
|
||||||
|
return;
|
||||||
|
|
||||||
|
handlePositionChange(m_rightEditor, m_leftEditor);
|
||||||
rightVSliderChanged();
|
rightVSliderChanged();
|
||||||
rightHSliderChanged();
|
rightHSliderChanged();
|
||||||
handlePositionChange(m_rightEditor, m_leftEditor);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void SideBySideDiffEditorWidget::handlePositionChange(SideDiffEditorWidget *source, SideDiffEditorWidget *dest)
|
void SideBySideDiffEditorWidget::handlePositionChange(SideDiffEditorWidget *source, SideDiffEditorWidget *dest)
|
||||||
@@ -1129,6 +1147,8 @@ void SideBySideDiffEditorWidget::handlePositionChange(SideDiffEditorWidget *sour
|
|||||||
|
|
||||||
void SideBySideDiffEditorWidget::syncCursor(SideDiffEditorWidget *source, SideDiffEditorWidget *dest)
|
void SideBySideDiffEditorWidget::syncCursor(SideDiffEditorWidget *source, SideDiffEditorWidget *dest)
|
||||||
{
|
{
|
||||||
|
const int oldHSliderPos = dest->horizontalScrollBar()->value();
|
||||||
|
|
||||||
const QTextCursor sourceCursor = source->textCursor();
|
const QTextCursor sourceCursor = source->textCursor();
|
||||||
const int sourceLine = sourceCursor.blockNumber();
|
const int sourceLine = sourceCursor.blockNumber();
|
||||||
const int sourceColumn = sourceCursor.positionInBlock();
|
const int sourceColumn = sourceCursor.positionInBlock();
|
||||||
@@ -1139,6 +1159,7 @@ void SideBySideDiffEditorWidget::syncCursor(SideDiffEditorWidget *source, SideDi
|
|||||||
destCursor.setPosition(destPosition);
|
destCursor.setPosition(destPosition);
|
||||||
dest->setTextCursor(destCursor);
|
dest->setTextCursor(destCursor);
|
||||||
|
|
||||||
|
dest->horizontalScrollBar()->setValue(oldHSliderPos);
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
|
Reference in New Issue
Block a user