diff options
author | Orgad Shaneh <orgad.shaneh@audiocodes.com> | 2020-08-01 23:57:01 +0300 |
---|---|---|
committer | Orgad Shaneh <orgads@gmail.com> | 2020-10-08 10:18:03 +0000 |
commit | d02c69d1bca61fa86d90d0a6dcb2484d8e2b3746 (patch) | |
tree | 849219e439b34477a49f9356f26d6538428728c5 /src/plugins/diffeditor | |
parent | 15707ef0b6c684295f64eac03c3ea4b1ac6e885d (diff) |
DiffEditor: Improve initial size of description widget
Fixes: QTCREATORBUG-24286
Change-Id: I8844b30d287fcdc5333906d00d92e00d05f5560a
Reviewed-by: David Schulz <david.schulz@qt.io>
Diffstat (limited to 'src/plugins/diffeditor')
-rw-r--r-- | src/plugins/diffeditor/diffeditor.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/plugins/diffeditor/diffeditor.cpp b/src/plugins/diffeditor/diffeditor.cpp index f303c22e70..533ad4d127 100644 --- a/src/plugins/diffeditor/diffeditor.cpp +++ b/src/plugins/diffeditor/diffeditor.cpp @@ -56,6 +56,7 @@ #include <QStyle> #include <QTextBlock> #include <QTextCodec> +#include <QTimer> #include <QToolBar> #include <QToolButton> @@ -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<int> 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); |