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_embed(embed)
|
||||||
, m_textEditorWidget(textEditorWidget)
|
, m_textEditorWidget(textEditorWidget)
|
||||||
{
|
{
|
||||||
QVBoxLayout *layout = new QVBoxLayout(this);
|
m_layout = new QVBoxLayout(this);
|
||||||
layout->setContentsMargins(0, 0, 0, 0);
|
updateContentMargins();
|
||||||
layout->addWidget(m_embed);
|
m_layout->addWidget(m_embed);
|
||||||
|
|
||||||
setFixedWidth(m_textEditorWidget->width() - m_textEditorWidget->extraAreaWidth());
|
setFixedWidth(m_textEditorWidget->width() - m_textEditorWidget->extraAreaWidth());
|
||||||
setFixedHeight(m_embed->minimumSizeHint().height());
|
setFixedHeight(m_embed->minimumSizeHint().height());
|
||||||
@@ -3952,13 +3952,31 @@ public:
|
|||||||
connect(m_textEditorWidget, &TextEditorWidget::resized, this, [this] {
|
connect(m_textEditorWidget, &TextEditorWidget::resized, this, [this] {
|
||||||
setFixedWidth(m_textEditorWidget->width() - m_textEditorWidget->extraAreaWidth());
|
setFixedWidth(m_textEditorWidget->width() - m_textEditorWidget->extraAreaWidth());
|
||||||
});
|
});
|
||||||
|
|
||||||
|
m_textEditorWidget->viewport()->installEventFilter(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
int embedHeight() { return m_embed->sizeHint().height(); }
|
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:
|
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;
|
QWidget *m_embed;
|
||||||
TextEditorWidget *m_textEditorWidget;
|
TextEditorWidget *m_textEditorWidget;
|
||||||
|
QVBoxLayout *m_layout;
|
||||||
};
|
};
|
||||||
|
|
||||||
EmbeddedWidgetInterface::~EmbeddedWidgetInterface()
|
EmbeddedWidgetInterface::~EmbeddedWidgetInterface()
|
||||||
|
Reference in New Issue
Block a user