diff options
author | Liang Qi <liang.qi@qt.io> | 2017-09-26 16:08:55 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2017-09-26 16:14:54 +0200 |
commit | aadfe7d634de04519102c5827ca885dc2e2199c9 (patch) | |
tree | d92db346ca95332b177036a53f1f6beb2e24fb74 /src/widgets/styles/qstylesheetstyle.cpp | |
parent | 4b6c1448047362b8c38d265e6414f0e3e59b8d37 (diff) | |
parent | a732e16d5fd9dbf8a0289fec9f948b12e9ba2c19 (diff) |
Merge remote-tracking branch 'origin/5.10' into dev
Conflicts:
src/gui/kernel/qguiapplication.cpp
src/platformsupport/input/libinput/qlibinputpointer.cpp
src/plugins/platforminputcontexts/ibus/qibusplatforminputcontext.h
src/plugins/platforms/cocoa/qcocoawindow.h
src/testlib/qtestsystem.h
Change-Id: I5975ffb3261c2dd82fe02ec4e57df7c0950226c5
Diffstat (limited to 'src/widgets/styles/qstylesheetstyle.cpp')
-rw-r--r-- | src/widgets/styles/qstylesheetstyle.cpp | 74 |
1 files changed, 43 insertions, 31 deletions
diff --git a/src/widgets/styles/qstylesheetstyle.cpp b/src/widgets/styles/qstylesheetstyle.cpp index 6b611ab2b4..fd812d8d0d 100644 --- a/src/widgets/styles/qstylesheetstyle.cpp +++ b/src/widgets/styles/qstylesheetstyle.cpp @@ -45,11 +45,17 @@ #include "private/qcssutil_p.h" #include <qdebug.h> #include <qapplication.h> +#if QT_CONFIG(menu) #include <qmenu.h> +#endif +#if QT_CONFIG(menubar) #include <qmenubar.h> +#endif #include <qpainter.h> #include <qstyleoption.h> +#if QT_CONFIG(lineedit) #include <qlineedit.h> +#endif #include <private/qwindowsstyle_p.h> #if QT_CONFIG(combobox) #include <qcombobox.h> @@ -83,16 +89,22 @@ #include <qtabbar.h> #endif #include <QMetaProperty> +#if QT_CONFIG(mainwindow) #include <qmainwindow.h> +#endif #if QT_CONFIG(dockwidget) #include <qdockwidget.h> #endif +#if QT_CONFIG(mdiarea) #include <qmdisubwindow.h> +#endif #if QT_CONFIG(dialog) #include <qdialog.h> #endif #include <private/qwidget_p.h> +#if QT_CONFIG(spinbox) #include <QAbstractSpinBox> +#endif #if QT_CONFIG(label) #include <QLabel> #endif @@ -1647,7 +1659,7 @@ int QStyleSheetStyle::nativeFrameWidth(const QWidget *w) { QStyle *base = baseStyle(); -#ifndef QT_NO_SPINBOX +#if QT_CONFIG(spinbox) if (qobject_cast<const QAbstractSpinBox *>(w)) return base->pixelMetric(QStyle::PM_SpinBoxFrameWidth, 0, w); #endif @@ -1657,12 +1669,12 @@ int QStyleSheetStyle::nativeFrameWidth(const QWidget *w) return base->pixelMetric(QStyle::PM_ComboBoxFrameWidth, 0, w); #endif -#ifndef QT_NO_MENU +#if QT_CONFIG(menu) if (qobject_cast<const QMenu *>(w)) return base->pixelMetric(QStyle::PM_MenuPanelWidth, 0, w); #endif -#ifndef QT_NO_MENUBAR +#if QT_CONFIG(menubar) if (qobject_cast<const QMenuBar *>(w)) return base->pixelMetric(QStyle::PM_MenuBarPanelWidth, 0, w); #endif @@ -1805,7 +1817,7 @@ QRenderRule QStyleSheetStyle::renderRule(const QObject *obj, const QStyleOption case PseudoElement_SpinBoxDownButton: case PseudoElement_SpinBoxUpArrow: case PseudoElement_SpinBoxDownArrow: -#ifndef QT_NO_SPINBOX +#if QT_CONFIG(spinbox) if (const QStyleOptionSpinBox *sb = qstyleoption_cast<const QStyleOptionSpinBox *>(opt)) { bool on = false; bool up = pseudoElement == PseudoElement_SpinBoxUpButton @@ -1816,7 +1828,7 @@ QRenderRule QStyleSheetStyle::renderRule(const QObject *obj, const QStyleOption on = true; state |= (on ? QStyle::State_On : QStyle::State_Off); } -#endif // QT_NO_SPINBOX +#endif // QT_CONFIG(spinbox) break; case PseudoElement_GroupBoxTitle: state |= (complex->state & (QStyle::State_MouseOver | QStyle::State_Sunken)); @@ -1851,11 +1863,11 @@ QRenderRule QStyleSheetStyle::renderRule(const QObject *obj, const QStyleOption extraClass |= PseudoClass_ReadOnly; else extraClass |= PseudoClass_Editable; -#ifndef QT_NO_SPINBOX +#if QT_CONFIG(spinbox) } else if (const QStyleOptionSpinBox *spin = qstyleoption_cast<const QStyleOptionSpinBox *>(opt)) { if (!spin->frame) extraClass |= PseudoClass_Frameless; -#endif // QT_NO_SPINBOX +#endif // QT_CONFIG(spinbox) } else if (const QStyleOptionGroupBox *gb = qstyleoption_cast<const QStyleOptionGroupBox *>(opt)) { if (gb->features & QStyleOptionFrame::Flat) extraClass |= PseudoClass_Flat; @@ -2034,7 +2046,7 @@ QRenderRule QStyleSheetStyle::renderRule(const QObject *obj, const QStyleOption } #endif -#ifndef QT_NO_LINEEDIT +#if QT_CONFIG(lineedit) // LineEdit sets Sunken flag to indicate Sunken frame (argh) if (const QLineEdit *lineEdit = qobject_cast<const QLineEdit *>(obj)) { state &= ~QStyle::State_Sunken; @@ -2360,12 +2372,12 @@ static QWidget *embeddedWidget(QWidget *w) } #endif -#ifndef QT_NO_SPINBOX +#if QT_CONFIG(spinbox) if (QAbstractSpinBox *sb = qobject_cast<QAbstractSpinBox *>(w)) return sb->findChild<QLineEdit *>(); #endif -#ifndef QT_NO_SCROLLAREA +#if QT_CONFIG(scrollarea) if (QAbstractScrollArea *sa = qobject_cast<QAbstractScrollArea *>(w)) return sa->viewport(); #endif @@ -2382,21 +2394,21 @@ static QWidget *embeddedWidget(QWidget *w) */ static QWidget *containerWidget(const QWidget *w) { -#ifndef QT_NO_LINEEDIT +#if QT_CONFIG(lineedit) if (qobject_cast<const QLineEdit *>(w)) { //if the QLineEdit is an embeddedWidget, we need the rule of the real widget #if QT_CONFIG(combobox) if (qobject_cast<const QComboBox *>(w->parentWidget())) return w->parentWidget(); #endif -#ifndef QT_NO_SPINBOX +#if QT_CONFIG(spinbox) if (qobject_cast<const QAbstractSpinBox *>(w->parentWidget())) return w->parentWidget(); #endif } -#endif // QT_NO_LINEEDIT +#endif // QT_CONFIG(lineedit) -#ifndef QT_NO_SCROLLAREA +#if QT_CONFIG(scrollarea) if (const QAbstractScrollArea *sa = qobject_cast<const QAbstractScrollArea *>(w->parentWidget())) { if (sa->viewport() == w) return w->parentWidget(); @@ -2455,7 +2467,7 @@ static quint64 extendedPseudoClass(const QWidget *w) pc |= (combo->isEditable() ? PseudoClass_Editable : PseudoClass_ReadOnly); } else #endif -#ifndef QT_NO_LINEEDIT +#if QT_CONFIG(lineedit) if (const QLineEdit *edit = qobject_cast<const QLineEdit *>(w)) { pc |= (edit->isReadOnly() ? PseudoClass_ReadOnly : PseudoClass_Editable); } else @@ -2800,7 +2812,7 @@ void QStyleSheetStyle::polish(QWidget *w) } -#ifndef QT_NO_SCROLLAREA +#if QT_CONFIG(scrollarea) if (QAbstractScrollArea *sa = qobject_cast<QAbstractScrollArea *>(w)) { QRenderRule rule = renderRule(sa, PseudoElement_None, PseudoClass_Enabled); if ((rule.hasBorder() && rule.border()->hasBorderImage()) @@ -2825,13 +2837,13 @@ void QStyleSheetStyle::polish(QWidget *w) #ifndef QT_NO_FRAME || qobject_cast<QFrame *>(w) #endif -#ifndef QT_NO_MAINWINDOW +#if QT_CONFIG(mainwindow) || qobject_cast<QMainWindow *>(w) #endif -#ifndef QT_NO_MDIAREA +#if QT_CONFIG(mdiarea) || qobject_cast<QMdiSubWindow *>(w) #endif -#ifndef QT_NO_MENUBAR +#if QT_CONFIG(menubar) || qobject_cast<QMenuBar *>(w) #endif #if QT_CONFIG(dialog) @@ -2902,7 +2914,7 @@ void QStyleSheetStyle::unpolish(QWidget *w) w->setProperty("_q_stylesheet_maxh", QVariant()); w->setAttribute(Qt::WA_StyleSheet, false); QObject::disconnect(w, 0, this, 0); -#ifndef QT_NO_SCROLLAREA +#if QT_CONFIG(scrollarea) if (QAbstractScrollArea *sa = qobject_cast<QAbstractScrollArea *>(w)) { QObject::disconnect(sa->horizontalScrollBar(), SIGNAL(valueChanged(int)), sa, SLOT(update())); @@ -2981,7 +2993,7 @@ void QStyleSheetStyle::drawComplexControl(ComplexControl cc, const QStyleOptionC } break; -#ifndef QT_NO_SPINBOX +#if QT_CONFIG(spinbox) case CC_SpinBox: if (const QStyleOptionSpinBox *spin = qstyleoption_cast<const QStyleOptionSpinBox *>(opt)) { QStyleOptionSpinBox spinOpt(*spin); @@ -3044,7 +3056,7 @@ void QStyleSheetStyle::drawComplexControl(ComplexControl cc, const QStyleOptionC return; } break; -#endif // QT_NO_SPINBOX +#endif // QT_CONFIG(spinbox) case CC_GroupBox: if (const QStyleOptionGroupBox *gb = qstyleoption_cast<const QStyleOptionGroupBox *>(opt)) { @@ -3221,7 +3233,7 @@ void QStyleSheetStyle::drawComplexControl(ComplexControl cc, const QStyleOptionC break; #endif // QT_CONFIG(scrollbar) -#ifndef QT_NO_SLIDER +#if QT_CONFIG(slider) case CC_Slider: if (const QStyleOptionSlider *slider = qstyleoption_cast<const QStyleOptionSlider *>(opt)) { rule.drawRule(p, opt->rect); @@ -3275,7 +3287,7 @@ void QStyleSheetStyle::drawComplexControl(ComplexControl cc, const QStyleOptionC return; } break; -#endif // QT_NO_SLIDER +#endif // QT_CONFIG(slider) case CC_MdiControls: if (hasStyleRule(w, PseudoElement_MdiCloseButton) @@ -4337,7 +4349,7 @@ void QStyleSheetStyle::drawPrimitive(PrimitiveElement pe, const QStyleOption *op case PE_PanelLineEdit: if (const QStyleOptionFrame *frm = qstyleoption_cast<const QStyleOptionFrame *>(opt)) { -#ifndef QT_NO_SPINBOX +#if QT_CONFIG(spinbox) if (w && qobject_cast<const QAbstractSpinBox *>(w->parentWidget())) { QRenderRule spinboxRule = renderRule(w->parentWidget(), opt); if (!spinboxRule.hasNativeBorder() || !spinboxRule.baseStyleCanDraw()) @@ -4374,7 +4386,7 @@ void QStyleSheetStyle::drawPrimitive(PrimitiveElement pe, const QStyleOption *op } break; } -#ifndef QT_NO_SCROLLAREA +#if QT_CONFIG(scrollarea) if (const QAbstractScrollArea *sa = qobject_cast<const QAbstractScrollArea *>(w)) { const QAbstractScrollAreaPrivate *sap = sa->d_func(); rule.drawBackground(p, opt->rect, sap->contentsOffset()); @@ -4990,7 +5002,7 @@ QSize QStyleSheetStyle::sizeFromContents(ContentsType ct, const QStyleOption *op break; case CT_GroupBox: case CT_LineEdit: -#ifndef QT_NO_SPINBOX +#if QT_CONFIG(spinbox) if (qobject_cast<QAbstractSpinBox *>(w ? w->parentWidget() : 0)) return csz; // we only care about the size hint of the line edit #endif @@ -5388,7 +5400,7 @@ QRect QStyleSheetStyle::subControlRect(ComplexControl cc, const QStyleOptionComp } break; -#ifndef QT_NO_SPINBOX +#if QT_CONFIG(spinbox) case CC_SpinBox: if (const QStyleOptionSpinBox *spin = qstyleoption_cast<const QStyleOptionSpinBox *>(opt)) { QRenderRule upRule = renderRule(w, opt, PseudoElement_SpinBoxUpButton); @@ -5447,7 +5459,7 @@ QRect QStyleSheetStyle::subControlRect(ComplexControl cc, const QStyleOptionComp : QWindowsStyle::subControlRect(cc, &spinBox, sc, w); } break; -#endif // QT_NO_SPINBOX +#endif // QT_CONFIG(spinbox) case CC_GroupBox: if (const QStyleOptionGroupBox *gb = qstyleoption_cast<const QStyleOptionGroupBox *>(opt)) { @@ -5617,7 +5629,7 @@ QRect QStyleSheetStyle::subControlRect(ComplexControl cc, const QStyleOptionComp break; #endif // QT_CONFIG(scrollbar) -#ifndef QT_NO_SLIDER +#if QT_CONFIG(slider) case CC_Slider: if (const QStyleOptionSlider *slider = qstyleoption_cast<const QStyleOptionSlider *>(opt)) { QRenderRule subRule = renderRule(w, opt, PseudoElement_SliderGroove); @@ -5650,7 +5662,7 @@ QRect QStyleSheetStyle::subControlRect(ComplexControl cc, const QStyleOptionComp } } break; -#endif // QT_NO_SLIDER +#endif // QT_CONFIG(slider) case CC_MdiControls: if (hasStyleRule(w, PseudoElement_MdiCloseButton) |