summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Volkov <a.volkov@rusbitech.ru>2018-10-03 14:21:09 +0300
committerAlexander Volkov <a.volkov@rusbitech.ru>2018-10-06 19:47:44 +0000
commit05b8ba51550127c85cd2db5cb819b695b56c57ce (patch)
tree9c9822ca5bf9686f30f29de36457472e8aca8c08
parentcd3374c4efb48f3088429c8735610e7c6b61d1af (diff)
QLineEdit: take the size of actions' icons from a style
The height of a line edit depends on the height of its font, which in turn depends on DPI. So use the DPI-scaled icon size from a style instead of hard-coded values. Task-number: QTBUG-65627 Change-Id: Ic1f5af61b0d6346cfbc828817c4a3a39296a41ba Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
-rw-r--r--src/widgets/widgets/qlineedit.cpp3
-rw-r--r--src/widgets/widgets/qlineedit_p.cpp2
2 files changed, 3 insertions, 2 deletions
diff --git a/src/widgets/widgets/qlineedit.cpp b/src/widgets/widgets/qlineedit.cpp
index 96c5982e0c..242a4405ca 100644
--- a/src/widgets/widgets/qlineedit.cpp
+++ b/src/widgets/widgets/qlineedit.cpp
@@ -680,7 +680,8 @@ QSize QLineEdit::sizeHint() const
Q_D(const QLineEdit);
ensurePolished();
QFontMetrics fm(font());
- int h = qMax(fm.height(), 14) + 2*d->verticalMargin
+ const int iconSize = style()->pixelMetric(QStyle::PM_SmallIconSize, 0, this);
+ int h = qMax(fm.height(), iconSize - 2) + 2*d->verticalMargin
+ d->topTextMargin + d->bottomTextMargin
+ d->topmargin + d->bottommargin;
int w = fm.horizontalAdvance(QLatin1Char('x')) * 17 + 2*d->horizontalMargin
diff --git a/src/widgets/widgets/qlineedit_p.cpp b/src/widgets/widgets/qlineedit_p.cpp
index 33d542abc0..fce3d47b17 100644
--- a/src/widgets/widgets/qlineedit_p.cpp
+++ b/src/widgets/widgets/qlineedit_p.cpp
@@ -441,7 +441,7 @@ QLineEditPrivate::SideWidgetParameters QLineEditPrivate::sideWidgetParameters()
{
Q_Q(const QLineEdit);
SideWidgetParameters result;
- result.iconSize = q->height() < 34 ? 16 : 32;
+ result.iconSize = q->style()->pixelMetric(QStyle::PM_SmallIconSize, 0, q);
result.margin = result.iconSize / 4;
result.widgetWidth = result.iconSize + 6;
result.widgetHeight = result.iconSize + 2;