aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/diffeditor
diff options
context:
space:
mode:
authorOrgad Shaneh <orgad.shaneh@audiocodes.com>2020-08-01 23:57:01 +0300
committerOrgad Shaneh <orgads@gmail.com>2020-10-08 10:18:03 +0000
commitd02c69d1bca61fa86d90d0a6dcb2484d8e2b3746 (patch)
tree849219e439b34477a49f9356f26d6538428728c5 /src/plugins/diffeditor
parent15707ef0b6c684295f64eac03c3ea4b1ac6e885d (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.cpp23
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);