forked from qt-creator/qt-creator
TextEditor: Fix width of carrier widget in accordance to scrollbar
Change-Id: I28184ce1a4103ba978945b6e9c4bc52dc4c2ce3e Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
This commit is contained in:
@@ -3942,9 +3942,9 @@ public:
|
||||
, m_embed(embed)
|
||||
, m_textEditorWidget(textEditorWidget)
|
||||
{
|
||||
QVBoxLayout *layout = new QVBoxLayout(this);
|
||||
layout->setContentsMargins(0, 0, 0, 0);
|
||||
layout->addWidget(m_embed);
|
||||
m_layout = new QVBoxLayout(this);
|
||||
updateContentMargins();
|
||||
m_layout->addWidget(m_embed);
|
||||
|
||||
setFixedWidth(m_textEditorWidget->width() - m_textEditorWidget->extraAreaWidth());
|
||||
setFixedHeight(m_embed->minimumSizeHint().height());
|
||||
@@ -3952,13 +3952,31 @@ public:
|
||||
connect(m_textEditorWidget, &TextEditorWidget::resized, this, [this] {
|
||||
setFixedWidth(m_textEditorWidget->width() - m_textEditorWidget->extraAreaWidth());
|
||||
});
|
||||
|
||||
m_textEditorWidget->viewport()->installEventFilter(this);
|
||||
}
|
||||
|
||||
int embedHeight() { return m_embed->sizeHint().height(); }
|
||||
|
||||
bool eventFilter(QObject *obj, QEvent *event) override
|
||||
{
|
||||
if (event->type() == QEvent::Resize)
|
||||
updateContentMargins();
|
||||
return QObject::eventFilter(obj, event);
|
||||
}
|
||||
|
||||
private:
|
||||
void updateContentMargins() {
|
||||
bool verticalScrollBarVisible = m_textEditorWidget->verticalScrollBar()->isVisible();
|
||||
int verticalScrollBarWidth = m_textEditorWidget->verticalScrollBar()->width();
|
||||
|
||||
// Value 4 here is the liitle space between extraArea (space with line numbers) and code.
|
||||
m_layout->setContentsMargins(0, 0, 4 + (verticalScrollBarVisible ? verticalScrollBarWidth : 0), 0);
|
||||
}
|
||||
|
||||
QWidget *m_embed;
|
||||
TextEditorWidget *m_textEditorWidget;
|
||||
QVBoxLayout *m_layout;
|
||||
};
|
||||
|
||||
EmbeddedWidgetInterface::~EmbeddedWidgetInterface()
|
||||
|
Reference in New Issue
Block a user