From d02c69d1bca61fa86d90d0a6dcb2484d8e2b3746 Mon Sep 17 00:00:00 2001 From: Orgad Shaneh Date: Sat, 1 Aug 2020 23:57:01 +0300 Subject: [PATCH] DiffEditor: Improve initial size of description widget Fixes: QTCREATORBUG-24286 Change-Id: I8844b30d287fcdc5333906d00d92e00d05f5560a Reviewed-by: David Schulz --- src/plugins/diffeditor/diffeditor.cpp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/plugins/diffeditor/diffeditor.cpp b/src/plugins/diffeditor/diffeditor.cpp index f303c22e708..533ad4d1279 100644 --- a/src/plugins/diffeditor/diffeditor.cpp +++ b/src/plugins/diffeditor/diffeditor.cpp @@ -56,6 +56,7 @@ #include #include #include +#include #include #include @@ -80,9 +81,13 @@ public: QSize sizeHint() const override; +signals: + void requestResize(); + protected: void setDisplaySettings(const DisplaySettings &ds) override; void setMarginSettings(const MarginSettings &ms) override; + void applyFontSettings() override; }; DescriptionEditorWidget::DescriptionEditorWidget(QWidget *parent) @@ -133,6 +138,12 @@ void DescriptionEditorWidget::setMarginSettings(const MarginSettings &ms) TextEditorWidget::setMarginSettings(MarginSettings()); } +void DescriptionEditorWidget::applyFontSettings() +{ + TextEditorWidget::applyFontSettings(); + emit requestResize(); +} + ///////////////////////////////// DiffEditor ////////////////////////////////// DiffEditor::DiffEditor() @@ -145,6 +156,18 @@ DiffEditor::DiffEditor() m_descriptionWidget = new DescriptionEditorWidget(splitter); m_descriptionWidget->setReadOnly(true); + connect(m_descriptionWidget, &DescriptionEditorWidget::requestResize, this, [splitter](){ + if (splitter->count() == 0) + return; + QList sizes = splitter->sizes(); + const int descHeight = splitter->widget(0)->fontMetrics().lineSpacing() * 8; + const int diff = descHeight - sizes[0]; + if (diff > 0) { + sizes[0] += diff; + sizes[1] -= diff; + splitter->setSizes(sizes); + } + }); splitter->addWidget(m_descriptionWidget); m_stackedWidget = new QStackedWidget(splitter);