From fd08361ad32d935931eefcbe55cea1330949feea Mon Sep 17 00:00:00 2001 From: Stephan Binner Date: Wed, 1 Mar 2017 20:27:40 +0100 Subject: Add feature.radiobutton Change-Id: Ie11f178ce22e2fafdfdf1760288e90563569e0cb Reviewed-by: Lars Knoll --- src/printsupport/configure.json | 11 ++++++++++- src/widgets/accessible/simplewidgets.cpp | 7 ++++++- src/widgets/configure.json | 6 ++++++ src/widgets/styles/qstylesheetstyle.cpp | 1 - src/widgets/widgets/qgroupbox.cpp | 4 ++++ src/widgets/widgets/qradiobutton.h | 2 ++ src/widgets/widgets/widgets.pri | 10 ++++++++-- 7 files changed, 36 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/printsupport/configure.json b/src/printsupport/configure.json index 45e768708e..d9da67527a 100644 --- a/src/printsupport/configure.json +++ b/src/printsupport/configure.json @@ -55,7 +55,16 @@ "label": "QPrintDialog", "purpose": "Provides a dialog widget for specifying printer configuration.", "section": "Dialogs", - "condition": "features.printer && features.combobox && features.buttongroup && features.spinbox && features.treeview && features.tabwidget && features.datetimeedit", + "condition": [ + "features.buttongroup", + "features.combobox", + "features.datetimeedit", + "features.printer", + "features.radiobutton", + "features.spinbox", + "features.tabwidget", + "features.treeview" + ], "output": [ "publicFeature", "feature" ] }, "printpreviewdialog": { diff --git a/src/widgets/accessible/simplewidgets.cpp b/src/widgets/accessible/simplewidgets.cpp index f22f9cb2ed..184b934c34 100644 --- a/src/widgets/accessible/simplewidgets.cpp +++ b/src/widgets/accessible/simplewidgets.cpp @@ -44,7 +44,9 @@ #include #include #include +#if QT_CONFIG(radiobutton) #include +#endif #include #include #include @@ -169,12 +171,15 @@ QRect QAccessibleButton::rect() const QStyleOptionButton opt; cb->initStyleOption(&opt); return cb->style()->subElementRect(QStyle::SE_CheckBoxClickRect, &opt, cb).translated(wpos); - } else if (QRadioButton *rb = qobject_cast(ab)) { + } +#if QT_CONFIG(radiobutton) + else if (QRadioButton *rb = qobject_cast(ab)) { QPoint wpos = rb->mapToGlobal(QPoint(0, 0)); QStyleOptionButton opt; rb->initStyleOption(&opt); return rb->style()->subElementRect(QStyle::SE_RadioButtonClickRect, &opt, rb).translated(wpos); } +#endif return QAccessibleWidget::rect(); } diff --git a/src/widgets/configure.json b/src/widgets/configure.json index 151935927a..399850a932 100644 --- a/src/widgets/configure.json +++ b/src/widgets/configure.json @@ -175,6 +175,12 @@ "section": "Widgets", "output": [ "publicFeature", "feature" ] }, + "radiobutton": { + "label": "QRadioButton", + "purpose": "Provides a radio button with a text label.", + "section": "Widgets", + "output": [ "publicFeature" ] + }, "spinbox": { "label": "QSpinBox", "purpose": "Provides spin boxes handling integers and discrete sets of values.", diff --git a/src/widgets/styles/qstylesheetstyle.cpp b/src/widgets/styles/qstylesheetstyle.cpp index 65894a6dde..35e7060b72 100644 --- a/src/widgets/styles/qstylesheetstyle.cpp +++ b/src/widgets/styles/qstylesheetstyle.cpp @@ -58,7 +58,6 @@ #include "private/qabstractscrollarea_p.h" #include #include -#include #include #include #include diff --git a/src/widgets/widgets/qgroupbox.cpp b/src/widgets/widgets/qgroupbox.cpp index a9b32ae065..fda68879d1 100644 --- a/src/widgets/widgets/qgroupbox.cpp +++ b/src/widgets/widgets/qgroupbox.cpp @@ -44,7 +44,9 @@ #include "qdrawutil.h" #include "qevent.h" #include "qlayout.h" +#if QT_CONFIG(radiobutton) #include "qradiobutton.h" +#endif #include "qstyle.h" #include "qstyleoption.h" #include "qstylepainter.h" @@ -430,11 +432,13 @@ void QGroupBoxPrivate::_q_fixFocus(Qt::FocusReason reason) QWidget * w = q; while ((w = w->nextInFocusChain()) != q) { if (q->isAncestorOf(w) && (w->focusPolicy() & Qt::TabFocus) == Qt::TabFocus && w->isVisibleTo(q)) { +#if QT_CONFIG(radiobutton) if (!best && qobject_cast(w) && ((QRadioButton*)w)->isChecked()) // we prefer a checked radio button or a widget that // already has focus, if there is one best = w; else +#endif if (!candidate) // but we'll accept anything that takes focus candidate = w; diff --git a/src/widgets/widgets/qradiobutton.h b/src/widgets/widgets/qradiobutton.h index 2dcb0d0fdf..137ae01380 100644 --- a/src/widgets/widgets/qradiobutton.h +++ b/src/widgets/widgets/qradiobutton.h @@ -43,6 +43,8 @@ #include #include +QT_REQUIRE_CONFIG(radiobutton); + QT_BEGIN_NAMESPACE diff --git a/src/widgets/widgets/widgets.pri b/src/widgets/widgets/widgets.pri index fc002c126a..1821a7f766 100644 --- a/src/widgets/widgets/widgets.pri +++ b/src/widgets/widgets/widgets.pri @@ -44,7 +44,6 @@ HEADERS += \ widgets/qprogressbar.h \ widgets/qpushbutton.h \ widgets/qpushbutton_p.h \ - widgets/qradiobutton.h \ widgets/qrubberband.h \ widgets/qscrollbar.h \ widgets/qscrollbar_p.h \ @@ -113,7 +112,6 @@ SOURCES += \ widgets/qmenubar.cpp \ widgets/qprogressbar.cpp \ widgets/qpushbutton.cpp \ - widgets/qradiobutton.cpp \ widgets/qrubberband.cpp \ widgets/qscrollbar.cpp \ widgets/qsizegrip.cpp \ @@ -151,6 +149,14 @@ qtConfig(commandlinkbutton) { widgets/qcommandlinkbutton.cpp } +qtConfig(radiobutton) { + HEADERS += \ + widgets/qradiobutton.h + + SOURCES += \ + widgets/qradiobutton.cpp +} + macx { HEADERS += \ widgets/qmacnativewidget_mac.h \ -- cgit v1.2.3