Increase padding for LineEdit controls in QWindows11Style
Change-Id: Ibf8e43160d7ae0aff04040f0e2bcf5bfbda52e1d Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> (cherry picked from commit 172422fcee0036b8c14bf9bda42dfe7d05804d5a) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
7384f78b2f
commit
4ff72f1bfd
@ -415,19 +415,19 @@ void QWindows11Style::drawComplexControl(ComplexControl control, const QStyleOpt
|
|||||||
#endif
|
#endif
|
||||||
#if QT_CONFIG(combobox)
|
#if QT_CONFIG(combobox)
|
||||||
case CC_ComboBox:
|
case CC_ComboBox:
|
||||||
if (const QStyleOptionComboBox *sb = qstyleoption_cast<const QStyleOptionComboBox *>(option)) {
|
if (const QStyleOptionComboBox *combobox = qstyleoption_cast<const QStyleOptionComboBox *>(option)) {
|
||||||
QBrush fillColor = state & State_MouseOver && !(state & State_HasFocus) ? QBrush(WINUI3Colors[colorSchemeIndex][subtleHighlightColor]) : option->palette.brush(QPalette::Base);
|
QBrush fillColor = state & State_MouseOver && !(state & State_HasFocus) ? QBrush(WINUI3Colors[colorSchemeIndex][subtleHighlightColor]) : option->palette.brush(QPalette::Base);
|
||||||
QRectF rect = option->rect.adjusted(2,2,-2,-2);
|
QRectF rect = option->rect.adjusted(2,2,-2,-2);
|
||||||
painter->setBrush(fillColor);
|
painter->setBrush(fillColor);
|
||||||
painter->setPen(highContrastTheme == true ? sb->palette.buttonText().color() : WINUI3Colors[colorSchemeIndex][frameColorLight]);
|
painter->setPen(highContrastTheme == true ? combobox->palette.buttonText().color() : WINUI3Colors[colorSchemeIndex][frameColorLight]);
|
||||||
painter->drawRoundedRect(rect, secondLevelRoundingRadius, secondLevelRoundingRadius);
|
painter->drawRoundedRect(rect, secondLevelRoundingRadius, secondLevelRoundingRadius);
|
||||||
if (sub & SC_ComboBoxArrow) {
|
if (sub & SC_ComboBoxArrow) {
|
||||||
QRectF rect = proxy()->subControlRect(CC_ComboBox, option, SC_ComboBoxArrow, widget).adjusted(0, 0, 0, 1);
|
QRectF rect = proxy()->subControlRect(CC_ComboBox, option, SC_ComboBoxArrow, widget).adjusted(-4, 0, -4, 1);
|
||||||
painter->setFont(assetFont);
|
painter->setFont(assetFont);
|
||||||
painter->setPen(sb->palette.text().color());
|
painter->setPen(combobox->palette.text().color());
|
||||||
painter->drawText(rect,"\uE019", Qt::AlignVCenter | Qt::AlignHCenter);
|
painter->drawText(rect,"\uE019", Qt::AlignVCenter | Qt::AlignHCenter);
|
||||||
}
|
}
|
||||||
if (sb->editable) {
|
if (combobox->editable) {
|
||||||
QColor lineColor = state & State_HasFocus ? option->palette.accent().color() : QColor(0,0,0);
|
QColor lineColor = state & State_HasFocus ? option->palette.accent().color() : QColor(0,0,0);
|
||||||
painter->setPen(QPen(lineColor));
|
painter->setPen(QPen(lineColor));
|
||||||
painter->drawLine(rect.bottomLeft() + QPoint(2,1), rect.bottomRight() + QPoint(-2,1));
|
painter->drawLine(rect.bottomLeft() + QPoint(2,1), rect.bottomRight() + QPoint(-2,1));
|
||||||
@ -1620,6 +1620,27 @@ int QWindows11Style::styleHint(StyleHint hint, const QStyleOption *opt,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QRect QWindows11Style::subElementRect(QStyle::SubElement element, const QStyleOption *option,
|
||||||
|
const QWidget *widget) const
|
||||||
|
{
|
||||||
|
QRect ret;
|
||||||
|
switch (element) {
|
||||||
|
case QStyle::SE_LineEditContents:
|
||||||
|
ret = option->rect.adjusted(8,0,-8,0);
|
||||||
|
break;
|
||||||
|
case QStyle::SE_ItemViewItemText:
|
||||||
|
if (widget && widget->parentWidget() &&
|
||||||
|
widget->parentWidget()->inherits("QComboBoxPrivateContainer"))
|
||||||
|
ret = option->rect.adjusted(5,0,-5,0);
|
||||||
|
else
|
||||||
|
ret = QWindowsVistaStyle::subElementRect(element, option, widget);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
ret = QWindowsVistaStyle::subElementRect(element, option, widget);
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\internal
|
\internal
|
||||||
*/
|
*/
|
||||||
@ -1629,6 +1650,19 @@ QRect QWindows11Style::subControlRect(ComplexControl control, const QStyleOption
|
|||||||
QRect ret;
|
QRect ret;
|
||||||
|
|
||||||
switch (control) {
|
switch (control) {
|
||||||
|
#if QT_CONFIG(combobox)
|
||||||
|
case QStyle::CC_ComboBox:
|
||||||
|
if (const QStyleOptionComboBox *combobox = qstyleoption_cast<const QStyleOptionComboBox *>(option)) {
|
||||||
|
switch (subControl) {
|
||||||
|
case SC_ComboBoxEditField:
|
||||||
|
ret = combobox->rect.adjusted(8,0,0,0);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
ret = QWindowsVistaStyle::subControlRect(control, option, subControl, widget);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
#if QT_CONFIG(spinbox)
|
#if QT_CONFIG(spinbox)
|
||||||
case CC_SpinBox:
|
case CC_SpinBox:
|
||||||
if (const QStyleOptionSpinBox *spinbox = qstyleoption_cast<const QStyleOptionSpinBox *>(option)) {
|
if (const QStyleOptionSpinBox *spinbox = qstyleoption_cast<const QStyleOptionSpinBox *>(option)) {
|
||||||
|
@ -33,6 +33,8 @@ public:
|
|||||||
QPainter *painter, const QWidget *widget) const override;
|
QPainter *painter, const QWidget *widget) const override;
|
||||||
void drawPrimitive(PrimitiveElement element, const QStyleOption *option,
|
void drawPrimitive(PrimitiveElement element, const QStyleOption *option,
|
||||||
QPainter *painter, const QWidget *widget) const override;
|
QPainter *painter, const QWidget *widget) const override;
|
||||||
|
QRect subElementRect(QStyle::SubElement element, const QStyleOption *option,
|
||||||
|
const QWidget *widget = nullptr) const override;
|
||||||
QRect subControlRect(ComplexControl control, const QStyleOptionComplex *option,
|
QRect subControlRect(ComplexControl control, const QStyleOptionComplex *option,
|
||||||
SubControl subControl, const QWidget *widget) const override;
|
SubControl subControl, const QWidget *widget) const override;
|
||||||
void drawControl(ControlElement element, const QStyleOption *option,
|
void drawControl(ControlElement element, const QStyleOption *option,
|
||||||
|
@ -3554,11 +3554,12 @@ void tst_QLineEdit::textMargin_data()
|
|||||||
QLineEdit testWidget;
|
QLineEdit testWidget;
|
||||||
QFontMetrics metrics(testWidget.font());
|
QFontMetrics metrics(testWidget.font());
|
||||||
const QString s = QLatin1String("MMM MMM MMM");
|
const QString s = QLatin1String("MMM MMM MMM");
|
||||||
|
const int windows11StyleHorizontalOffset = qApp->style()->inherits("QWindows11Style") ? 8 : 0;
|
||||||
|
|
||||||
// Different styles generate different offsets, so
|
// Different styles generate different offsets, so
|
||||||
// calculate the width rather than hardcode it.
|
// calculate the width rather than hardcode it.
|
||||||
const int pixelWidthOfM = metrics.horizontalAdvance(s, 1);
|
const int pixelWidthOfM = windows11StyleHorizontalOffset + metrics.horizontalAdvance(s, 1);
|
||||||
const int pixelWidthOfMMM_MM = metrics.horizontalAdvance(s, 6);
|
const int pixelWidthOfMMM_MM = windows11StyleHorizontalOffset + metrics.horizontalAdvance(s, 6);
|
||||||
|
|
||||||
QTest::newRow("default-0") << 0 << 0 << 0 << 0 << QPoint(pixelWidthOfMMM_MM, 0) << 6;
|
QTest::newRow("default-0") << 0 << 0 << 0 << 0 << QPoint(pixelWidthOfMMM_MM, 0) << 6;
|
||||||
QTest::newRow("default-1") << 0 << 0 << 0 << 0 << QPoint(1, 1) << 0;
|
QTest::newRow("default-1") << 0 << 0 << 0 << 0 << QPoint(1, 1) << 0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user