diff options
author | Christian Ehrlicher <ch.ehrlicher@gmx.de> | 2024-01-14 17:50:39 +0100 |
---|---|---|
committer | Christian Ehrlicher <ch.ehrlicher@gmx.de> | 2024-01-16 00:01:43 +0100 |
commit | 43ce457cbd093fc06d99b5ac833c789ef7c893d5 (patch) | |
tree | 3cc4e2c5e6df2f1b7877124786e7db38cd90e85f /src/widgets/widgets | |
parent | 72ee1df260d728a1e699bd4c6e03bf202c929cbd (diff) |
Widgets: pass widget to QStyle::pixelMetric()
Make sure to pass the widget to QStyle::pixelMetric() as some styles
might use this (e.g. the new windows styles) to determine the correct
pixel metric.
Pick-to: 6.7 6.6 6.5 6.2
Task-number: QTBUG-1857
Change-Id: I5c32f5af8b284749732b610e56b4e3d8c8ed1946
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
Reviewed-by: David Faure <david.faure@kdab.com>
Diffstat (limited to 'src/widgets/widgets')
-rw-r--r-- | src/widgets/widgets/qcalendarwidget.cpp | 2 | ||||
-rw-r--r-- | src/widgets/widgets/qcommandlinkbutton.cpp | 6 | ||||
-rw-r--r-- | src/widgets/widgets/qfocusframe.cpp | 8 | ||||
-rw-r--r-- | src/widgets/widgets/qgroupbox.cpp | 6 | ||||
-rw-r--r-- | src/widgets/widgets/qlineedit.cpp | 2 | ||||
-rw-r--r-- | src/widgets/widgets/qmainwindowlayout.cpp | 2 | ||||
-rw-r--r-- | src/widgets/widgets/qmenu.cpp | 2 | ||||
-rw-r--r-- | src/widgets/widgets/qmenubar.cpp | 2 | ||||
-rw-r--r-- | src/widgets/widgets/qtoolbarextension.cpp | 2 | ||||
-rw-r--r-- | src/widgets/widgets/qwidgettextcontrol.cpp | 2 |
10 files changed, 17 insertions, 17 deletions
diff --git a/src/widgets/widgets/qcalendarwidget.cpp b/src/widgets/widgets/qcalendarwidget.cpp index 660d161fad..7c34426a3f 100644 --- a/src/widgets/widgets/qcalendarwidget.cpp +++ b/src/widgets/widgets/qcalendarwidget.cpp @@ -2200,7 +2200,7 @@ QSize QCalendarWidget::minimumSizeHint() const QStyleOption option; option.initFrom(this); - const int marginH = (style()->pixelMetric(QStyle::PM_FocusFrameHMargin, &option) + 1) * 2; + const int marginH = (style()->pixelMetric(QStyle::PM_FocusFrameHMargin, &option, this) + 1) * 2; if (horizontalHeaderFormat() == QCalendarWidget::NoHorizontalHeader) { rows = 6; diff --git a/src/widgets/widgets/qcommandlinkbutton.cpp b/src/widgets/widgets/qcommandlinkbutton.cpp index 9232d481f4..5c7d2601d9 100644 --- a/src/widgets/widgets/qcommandlinkbutton.cpp +++ b/src/widgets/widgets/qcommandlinkbutton.cpp @@ -172,7 +172,7 @@ bool QCommandLinkButtonPrivate::usingVistaStyle() const //### This is a hack to detect if we are indeed running Vista style themed and not in classic // When we add api to query for this, we should change this implementation to use it. return q->property("_qt_usingVistaStyle").toBool() - && q->style()->pixelMetric(QStyle::PM_ButtonShiftHorizontal, nullptr) == 0; + && q->style()->pixelMetric(QStyle::PM_ButtonShiftHorizontal, nullptr, q) == 0; } void QCommandLinkButtonPrivate::init() @@ -325,9 +325,9 @@ void QCommandLinkButton::paintEvent(QPaintEvent *) QSize pixmapSize = icon().actualSize(iconSize()); const int vOffset = isDown() - ? style()->pixelMetric(QStyle::PM_ButtonShiftVertical, &option) : 0; + ? style()->pixelMetric(QStyle::PM_ButtonShiftVertical, &option, this) : 0; const int hOffset = isDown() - ? style()->pixelMetric(QStyle::PM_ButtonShiftHorizontal, &option) : 0; + ? style()->pixelMetric(QStyle::PM_ButtonShiftHorizontal, &option, this) : 0; //Draw icon p.drawControl(QStyle::CE_PushButton, option); diff --git a/src/widgets/widgets/qfocusframe.cpp b/src/widgets/widgets/qfocusframe.cpp index 396f7fca14..d66faedbac 100644 --- a/src/widgets/widgets/qfocusframe.cpp +++ b/src/widgets/widgets/qfocusframe.cpp @@ -52,8 +52,8 @@ void QFocusFramePrivate::updateSize() QStyleOption opt; q->initStyleOption(&opt); - int vmargin = q->style()->pixelMetric(QStyle::PM_FocusFrameVMargin, &opt), - hmargin = q->style()->pixelMetric(QStyle::PM_FocusFrameHMargin, &opt); + int vmargin = q->style()->pixelMetric(QStyle::PM_FocusFrameVMargin, &opt, q), + hmargin = q->style()->pixelMetric(QStyle::PM_FocusFrameHMargin, &opt, q); QPoint pos(widget->x(), widget->y()); if (q->parentWidget() != widget->parentWidget()) pos = widget->parentWidget()->mapTo(q->parentWidget(), pos); @@ -229,8 +229,8 @@ QFocusFrame::paintEvent(QPaintEvent *) QStylePainter p(this); QStyleOption option; initStyleOption(&option); - const int vmargin = style()->pixelMetric(QStyle::PM_FocusFrameVMargin, &option); - const int hmargin = style()->pixelMetric(QStyle::PM_FocusFrameHMargin, &option); + const int vmargin = style()->pixelMetric(QStyle::PM_FocusFrameVMargin, &option, this); + const int hmargin = style()->pixelMetric(QStyle::PM_FocusFrameHMargin, &option, this); QWidgetPrivate *wd = qt_widget_private(d->widget); QRect rect = wd->clipRect().adjusted(0, 0, hmargin*2, vmargin*2); p.setClipRect(rect); diff --git a/src/widgets/widgets/qgroupbox.cpp b/src/widgets/widgets/qgroupbox.cpp index 0b7cb9f588..25dcee95c8 100644 --- a/src/widgets/widgets/qgroupbox.cpp +++ b/src/widgets/widgets/qgroupbox.cpp @@ -464,9 +464,9 @@ QSize QGroupBox::minimumSizeHint() const int baseWidth = metrics.horizontalAdvance(d->title) + metrics.horizontalAdvance(u' '); int baseHeight = metrics.height(); if (d->checkable) { - baseWidth += style()->pixelMetric(QStyle::PM_IndicatorWidth, &option); - baseWidth += style()->pixelMetric(QStyle::PM_CheckBoxLabelSpacing, &option); - baseHeight = qMax(baseHeight, style()->pixelMetric(QStyle::PM_IndicatorHeight, &option)); + baseWidth += style()->pixelMetric(QStyle::PM_IndicatorWidth, &option, this); + baseWidth += style()->pixelMetric(QStyle::PM_CheckBoxLabelSpacing, &option, this); + baseHeight = qMax(baseHeight, style()->pixelMetric(QStyle::PM_IndicatorHeight, &option, this)); } QSize size = style()->sizeFromContents(QStyle::CT_GroupBox, &option, QSize(baseWidth, baseHeight), this); diff --git a/src/widgets/widgets/qlineedit.cpp b/src/widgets/widgets/qlineedit.cpp index 2513ebe634..c4724889ec 100644 --- a/src/widgets/widgets/qlineedit.cpp +++ b/src/widgets/widgets/qlineedit.cpp @@ -2094,7 +2094,7 @@ void QLineEdit::paintEvent(QPaintEvent *) if (d->cursorVisible && !d->control->isReadOnly() && d->control->inputMask().isEmpty()) flags |= QWidgetLineControl::DrawCursor; - d->control->setCursorWidth(style()->pixelMetric(QStyle::PM_TextCursorWidth, &panel)); + d->control->setCursorWidth(style()->pixelMetric(QStyle::PM_TextCursorWidth, &panel, this)); d->control->draw(&p, topLeft, r, flags); } diff --git a/src/widgets/widgets/qmainwindowlayout.cpp b/src/widgets/widgets/qmainwindowlayout.cpp index a1659c5e9b..246471dc2c 100644 --- a/src/widgets/widgets/qmainwindowlayout.cpp +++ b/src/widgets/widgets/qmainwindowlayout.cpp @@ -2845,7 +2845,7 @@ QLayoutItem *QMainWindowLayout::unplug(QWidget *widget, QDockWidgetPrivate::Drag const auto *layout = qobject_cast<QDockWidgetLayout *>(dw->layout()); const bool verticalTitleBar = layout ? layout->verticalTitleBar : false; const int tbHeight = QApplication::style() - ? QApplication::style()->pixelMetric(QStyle::PixelMetric::PM_TitleBarHeight) + ? QApplication::style()->pixelMetric(QStyle::PixelMetric::PM_TitleBarHeight, nullptr, dw) : 20; const int minHeight = verticalTitleBar ? 2 * tbHeight : tbHeight; const int minWidth = verticalTitleBar ? tbHeight : 2 * tbHeight; diff --git a/src/widgets/widgets/qmenu.cpp b/src/widgets/widgets/qmenu.cpp index 701fac39fd..0e5e85ca48 100644 --- a/src/widgets/widgets/qmenu.cpp +++ b/src/widgets/widgets/qmenu.cpp @@ -2839,7 +2839,7 @@ void QMenu::paintEvent(QPaintEvent *e) frame.rect = rect(); frame.palette = palette(); frame.state = QStyle::State_None; - frame.lineWidth = style()->pixelMetric(QStyle::PM_MenuPanelWidth, &frame); + frame.lineWidth = style()->pixelMetric(QStyle::PM_MenuPanelWidth, &frame, this); frame.midLineWidth = 0; p.drawPrimitive(QStyle::PE_FrameMenu, frame); } diff --git a/src/widgets/widgets/qmenubar.cpp b/src/widgets/widgets/qmenubar.cpp index 1a23ec5718..9c44f005ea 100644 --- a/src/widgets/widgets/qmenubar.cpp +++ b/src/widgets/widgets/qmenubar.cpp @@ -914,7 +914,7 @@ void QMenuBar::paintEvent(QPaintEvent *e) frame.rect = rect(); frame.palette = palette(); frame.state = QStyle::State_None; - frame.lineWidth = style()->pixelMetric(QStyle::PM_MenuBarPanelWidth, &frame); + frame.lineWidth = style()->pixelMetric(QStyle::PM_MenuBarPanelWidth, &frame, this); frame.midLineWidth = 0; style()->drawPrimitive(QStyle::PE_PanelMenuBar, &frame, &p, this); } diff --git a/src/widgets/widgets/qtoolbarextension.cpp b/src/widgets/widgets/qtoolbarextension.cpp index 069ac0f165..350a900457 100644 --- a/src/widgets/widgets/qtoolbarextension.cpp +++ b/src/widgets/widgets/qtoolbarextension.cpp @@ -49,7 +49,7 @@ QSize QToolBarExtension::sizeHint() const { QStyleOption opt; opt.initFrom(this); - const int ext = style()->pixelMetric(QStyle::PM_ToolBarExtensionExtent, &opt); + const int ext = style()->pixelMetric(QStyle::PM_ToolBarExtensionExtent, &opt, this); return QSize(ext, ext); } diff --git a/src/widgets/widgets/qwidgettextcontrol.cpp b/src/widgets/widgets/qwidgettextcontrol.cpp index 6b21cca9cc..6dcaeee0c8 100644 --- a/src/widgets/widgets/qwidgettextcontrol.cpp +++ b/src/widgets/widgets/qwidgettextcontrol.cpp @@ -2470,7 +2470,7 @@ void QWidgetTextControl::setCursorWidth(int width) { Q_D(QWidgetTextControl); if (width == -1) - width = QApplication::style()->pixelMetric(QStyle::PM_TextCursorWidth, nullptr); + width = QApplication::style()->pixelMetric(QStyle::PM_TextCursorWidth, nullptr, qobject_cast<QWidget *>(parent())); d->doc->documentLayout()->setProperty("cursorWidth", width); d->repaintCursor(); } |