From 48f3128a7d97ca8961d5c7017c0b19ca1e735157 Mon Sep 17 00:00:00 2001 From: Jens Bache-Wiig Date: Thu, 15 Nov 2012 17:04:18 +0100 Subject: [PATCH] Add feature to enable rounded line edit on mac This will not currently be exposed in the widget API but we can make use of it for qt quick components. Change-Id: I08300a3bcd58e68df633fe9b36a988eb6176ef9c Reviewed-by: Gabriel de Dietrich --- src/widgets/styles/qmacstyle_mac.mm | 3 ++- src/widgets/styles/qstyleoption.h | 3 ++- src/widgets/widgets/qlineedit.cpp | 3 +-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/widgets/styles/qmacstyle_mac.mm b/src/widgets/styles/qmacstyle_mac.mm index b4c115583b..baeda89642 100644 --- a/src/widgets/styles/qmacstyle_mac.mm +++ b/src/widgets/styles/qmacstyle_mac.mm @@ -3118,7 +3118,8 @@ void QMacStyle::drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, QPai fdi.state = tds; SInt32 frame_size; if (pe == PE_FrameLineEdit) { - fdi.kind = kHIThemeFrameTextFieldSquare; + fdi.kind = frame->features & QStyleOptionFrame::Rounded ? kHIThemeFrameTextFieldRound : + kHIThemeFrameTextFieldSquare; GetThemeMetric(kThemeMetricEditTextFrameOutset, &frame_size); if ((frame->state & State_ReadOnly) || !(frame->state & State_Enabled)) fdi.state = kThemeStateInactive; diff --git a/src/widgets/styles/qstyleoption.h b/src/widgets/styles/qstyleoption.h index 2625bf7256..b4641f36bb 100644 --- a/src/widgets/styles/qstyleoption.h +++ b/src/widgets/styles/qstyleoption.h @@ -125,7 +125,8 @@ public: int midLineWidth; enum FrameFeature { None = 0x00, - Flat = 0x01 + Flat = 0x01, + Rounded = 0x02 }; Q_DECLARE_FLAGS(FrameFeatures, FrameFeature) FrameFeatures features; diff --git a/src/widgets/widgets/qlineedit.cpp b/src/widgets/widgets/qlineedit.cpp index a06c8ed54c..f4539e8e4a 100644 --- a/src/widgets/widgets/qlineedit.cpp +++ b/src/widgets/widgets/qlineedit.cpp @@ -120,8 +120,7 @@ void QLineEdit::initStyleOption(QStyleOptionFrame *option) const if (hasEditFocus()) option->state |= QStyle::State_HasEditFocus; #endif - if (QStyleOptionFrameV2 *optionV2 = qstyleoption_cast(option)) - optionV2->features = QStyleOptionFrameV2::None; + option->features = QStyleOptionFrame::None; } /*!