Add feature to enable rounded line edit on mac
authorJens Bache-Wiig <jens.bache-wiig@digia.com>
Thu, 15 Nov 2012 16:04:18 +0000 (17:04 +0100)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Thu, 15 Nov 2012 17:15:50 +0000 (18:15 +0100)
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 <gabriel.dedietrich@digia.com>
src/widgets/styles/qmacstyle_mac.mm
src/widgets/styles/qstyleoption.h
src/widgets/widgets/qlineedit.cpp

index b4c1155..baeda89 100644 (file)
@@ -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;
index 2625bf7..b4641f3 100644 (file)
@@ -125,7 +125,8 @@ public:
     int midLineWidth;
     enum FrameFeature {
         None = 0x00,
-        Flat = 0x01
+        Flat = 0x01,
+        Rounded = 0x02
     };
     Q_DECLARE_FLAGS(FrameFeatures, FrameFeature)
     FrameFeatures features;
index a06c8ed..f4539e8 100644 (file)
@@ -120,8 +120,7 @@ void QLineEdit::initStyleOption(QStyleOptionFrame *option) const
     if (hasEditFocus())
         option->state |= QStyle::State_HasEditFocus;
 #endif
-    if (QStyleOptionFrameV2 *optionV2 = qstyleoption_cast<QStyleOptionFrameV2 *>(option))
-        optionV2->features = QStyleOptionFrameV2::None;
+    option->features = QStyleOptionFrame::None;
 }
 
 /*!