summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@theqtcompany.com>2016-04-11 08:48:27 +0200
committerLiang Qi <liang.qi@theqtcompany.com>2016-04-11 09:12:36 +0200
commitf34e73a16a3d757057e007874cb5008f16e20f02 (patch)
treebcc228617cf240773fd09daac1a1a2614b552b68 /tests/auto/widgets
parent5380808453728a354ae28aae76e85ac448245cf1 (diff)
parentb9d386f2ccd69c7f6a766a6d90a6024eeb48e90a (diff)
Merge remote-tracking branch 'origin/5.7' into dev
Conflicts: src/corelib/kernel/qobject.cpp src/gui/painting/qpaintengine_raster.cpp Change-Id: I74e1779832f43d033708dcfd6b666c7b4f0111fb
Diffstat (limited to 'tests/auto/widgets')
-rw-r--r--tests/auto/widgets/graphicsview/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp1
-rw-r--r--tests/auto/widgets/styles/qstyle/tst_qstyle.cpp107
-rw-r--r--tests/auto/widgets/widgets/qdatetimeedit/tst_qdatetimeedit.cpp16
3 files changed, 115 insertions, 9 deletions
diff --git a/tests/auto/widgets/graphicsview/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp b/tests/auto/widgets/graphicsview/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp
index ceecd70cad..5794c32803 100644
--- a/tests/auto/widgets/graphicsview/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp
+++ b/tests/auto/widgets/graphicsview/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp
@@ -1,4 +1,3 @@
-
/****************************************************************************
**
** Copyright (C) 2016 The Qt Company Ltd.
diff --git a/tests/auto/widgets/styles/qstyle/tst_qstyle.cpp b/tests/auto/widgets/styles/qstyle/tst_qstyle.cpp
index a08de0cf0c..bafebc0dc6 100644
--- a/tests/auto/widgets/styles/qstyle/tst_qstyle.cpp
+++ b/tests/auto/widgets/styles/qstyle/tst_qstyle.cpp
@@ -106,6 +106,7 @@ private slots:
void testFrameOnlyAroundContents();
void testProxyCalled();
+ void testStyleOptionInit();
private:
void lineUpLayoutTest(QStyle *);
QWidget *testWidget;
@@ -789,5 +790,111 @@ void tst_QStyle::testProxyCalled()
}
}
+
+class TestStyleOptionInitProxy: public QProxyStyle
+{
+ Q_OBJECT
+public:
+ mutable bool invalidOptionsDetected;
+ explicit TestStyleOptionInitProxy(QStyle *style = Q_NULLPTR)
+ : QProxyStyle(style),
+ invalidOptionsDetected(false)
+ {}
+
+ void drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, QPainter *p, const QWidget *w) const Q_DECL_OVERRIDE {
+ checkStyleEnum<QStyle::PrimitiveElement>(pe, opt);
+ return QProxyStyle::drawPrimitive(pe, opt, p, w);
+ }
+
+ void drawControl(ControlElement element, const QStyleOption *opt, QPainter *p, const QWidget *w) const Q_DECL_OVERRIDE {
+ checkStyleEnum<QStyle::ControlElement>(element, opt);
+ return QProxyStyle::drawControl(element, opt, p, w);
+ }
+
+ QRect subElementRect(SubElement subElement, const QStyleOption *option, const QWidget *widget) const Q_DECL_OVERRIDE {
+ checkStyleEnum<QStyle::SubElement>(subElement, option);
+ return QProxyStyle::subElementRect(subElement, option, widget);
+ }
+
+ void drawComplexControl(ComplexControl cc, const QStyleOptionComplex *opt, QPainter *p, const QWidget *widget) const Q_DECL_OVERRIDE {
+ checkStyleEnum<QStyle::ComplexControl>(cc, opt);
+ return QProxyStyle::drawComplexControl(cc, opt, p, widget);
+ }
+
+ QRect subControlRect(ComplexControl cc, const QStyleOptionComplex *opt, SubControl sc, const QWidget *widget) const Q_DECL_OVERRIDE {
+ checkStyleEnum<QStyle::ComplexControl>(cc, opt);
+ return QProxyStyle::subControlRect(cc, opt, sc, widget);
+ }
+
+ int pixelMetric(PixelMetric metric, const QStyleOption *option, const QWidget *widget) const Q_DECL_OVERRIDE {
+ checkStyleEnum<QStyle::PixelMetric>(metric, option);
+ return QProxyStyle::pixelMetric(metric, option, widget);
+ }
+
+ QSize sizeFromContents(ContentsType ct, const QStyleOption *opt, const QSize &contentsSize, const QWidget *w) const Q_DECL_OVERRIDE {
+ checkStyleEnum<QStyle::ContentsType>(ct, opt);
+ return QProxyStyle::sizeFromContents(ct, opt, contentsSize, w);
+ }
+
+ int styleHint(StyleHint stylehint, const QStyleOption *opt, const QWidget *widget, QStyleHintReturn *returnData) const Q_DECL_OVERRIDE {
+ checkStyleEnum<QStyle::StyleHint>(stylehint, opt);
+ return QProxyStyle::styleHint(stylehint, opt, widget, returnData);
+ }
+
+ QPixmap standardPixmap(StandardPixmap standardPixmap, const QStyleOption *opt, const QWidget *widget) const Q_DECL_OVERRIDE {
+ checkStyleEnum<QStyle::StandardPixmap>(standardPixmap, opt);
+ return QProxyStyle::standardPixmap(standardPixmap, opt, widget);
+ }
+
+ QIcon standardIcon(StandardPixmap standardIcon, const QStyleOption *option, const QWidget *widget) const Q_DECL_OVERRIDE {
+ checkStyleEnum<QStyle::StandardPixmap>(standardIcon, option);
+ return QProxyStyle::standardIcon(standardIcon, option, widget);
+ }
+
+ QPixmap generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap, const QStyleOption *opt) const Q_DECL_OVERRIDE {
+ checkStyle(QString::asprintf("QIcon::Mode(%i)", iconMode).toLatin1(), opt);
+ return QProxyStyle::generatedIconPixmap(iconMode, pixmap, opt);
+ }
+
+ int layoutSpacing(QSizePolicy::ControlType control1, QSizePolicy::ControlType control2, Qt::Orientation orientation, const QStyleOption *option, const QWidget *widget) const Q_DECL_OVERRIDE {
+ checkStyle(QString::asprintf("QSizePolicy::ControlType(%i), QSizePolicy::ControlType(%i)", control1, control2).toLatin1(), option);
+ return QProxyStyle::layoutSpacing(control1, control2, orientation, option, widget);
+ }
+
+private:
+ void checkStyle(const QByteArray &info, const QStyleOption *opt) const {
+ if (opt && (opt->version == 0 || opt->styleObject == Q_NULLPTR) ) {
+ invalidOptionsDetected = true;
+ qWarning() << baseStyle()->metaObject()->className()
+ << "Invalid QStyleOption found for"
+ << info;
+ qWarning() << "Version:" << opt->version << "StyleObject:" << opt->styleObject;
+ }
+ }
+
+ template<typename MEnum>
+ void checkStyleEnum(MEnum element, const QStyleOption *opt) const {
+ static QMetaEnum _enum = QMetaEnum::fromType<MEnum>();
+ checkStyle(_enum.valueToKey(element), opt);
+ }
+};
+
+void tst_QStyle::testStyleOptionInit()
+{
+ QStringList keys = QStyleFactory::keys();
+ QVector<QStyle*> styles;
+ styles.reserve(keys.size() + 1);
+
+ styles << new QCommonStyle();
+
+ Q_FOREACH (QStyle *style, styles) {
+ TestStyleOptionInitProxy testStyle;
+ testStyle.setBaseStyle(style);
+ testAllFunctions(style);
+ QVERIFY(!testStyle.invalidOptionsDetected);
+ delete style;
+ }
+}
+
QTEST_MAIN(tst_QStyle)
#include "tst_qstyle.moc"
diff --git a/tests/auto/widgets/widgets/qdatetimeedit/tst_qdatetimeedit.cpp b/tests/auto/widgets/widgets/qdatetimeedit/tst_qdatetimeedit.cpp
index 5904103743..28c2e92f78 100644
--- a/tests/auto/widgets/widgets/qdatetimeedit/tst_qdatetimeedit.cpp
+++ b/tests/auto/widgets/widgets/qdatetimeedit/tst_qdatetimeedit.cpp
@@ -3530,7 +3530,7 @@ void tst_QDateTimeEdit::dateEditCorrectSectionSize_data()
<< threeDigitDayIssueKeypresses_DayName << QString::fromLatin1("00/2/Tuesday");
QTest::newRow("no fixday, leap, yy/M/ddd") << defaultLocale << defaultDate << QString::fromLatin1("yy/M/ddd")
- << threeDigitDayIssueKeypresses_DayName << QString::fromLatin1("00/2/Tue");
+ << threeDigitDayIssueKeypresses_DayName << QString::fromLatin1("00/2/Tue.");
QTest::newRow("no fixday, leap, yy/MM/dddd") << defaultLocale << defaultDate << QString::fromLatin1("yy/MM/dddd")
<< threeDigitDayIssueKeypresses_DayName << QString::fromLatin1("00/02/Tuesday");
@@ -3578,13 +3578,13 @@ void tst_QDateTimeEdit::dateEditCorrectSectionSize_data()
<< threeDigitDayIssueKeypresses_YearDayMonth << QString::fromLatin1("2000/29/2");
QTest::newRow("fixday, leap, yyyy/MMM/dd") << defaultLocale << defaultDate << QString::fromLatin1("yyyy/MMM/dd")
- << threeDigitDayIssueKeypresses_ShortMonthName << QString::fromLatin1("2000/Feb/29");
+ << threeDigitDayIssueKeypresses_ShortMonthName << QString::fromLatin1("2000/Feb./29");
QTest::newRow("fixday, leap, yyyy/MMM/d") << defaultLocale << defaultDate << QString::fromLatin1("yyyy/MMM/d")
- << threeDigitDayIssueKeypresses_ShortMonthName << QString::fromLatin1("2000/Feb/29");
+ << threeDigitDayIssueKeypresses_ShortMonthName << QString::fromLatin1("2000/Feb./29");
QTest::newRow("fixday, leap, yy/MMM/dd") << defaultLocale << defaultDate << QString::fromLatin1("yy/MMM/dd")
- << threeDigitDayIssueKeypresses_ShortMonthName << QString::fromLatin1("00/Feb/29");
+ << threeDigitDayIssueKeypresses_ShortMonthName << QString::fromLatin1("00/Feb./29");
QTest::newRow("fixday, leap, yyyy/dddd/M") << defaultLocale << defaultDate << QString::fromLatin1("yyyy/dddd/M")
<< threeDigitDayIssueKeypresses_DayName_YearDayMonth << QString::fromLatin1("2000/Tuesday/2");
@@ -3659,16 +3659,16 @@ void tst_QDateTimeEdit::dateEditCorrectSectionSize_data()
<< threeDigitDayIssueKeypresses_MonthYearDay << QString::fromLatin1("02/2000/29");
QTest::newRow("fixday, leap, MMM/yy/d") << defaultLocale << defaultDate << QString::fromLatin1("MMM/yy/d")
- << threeDigitDayIssueKeypresses_ShortMonthName_MonthYearDay << QString::fromLatin1("Feb/00/29");
+ << threeDigitDayIssueKeypresses_ShortMonthName_MonthYearDay << QString::fromLatin1("Feb./00/29");
QTest::newRow("fixday, leap, MMM/yyyy/d") << defaultLocale << defaultDate << QString::fromLatin1("MMM/yyyy/d")
- << threeDigitDayIssueKeypresses_ShortMonthName_MonthYearDay << QString::fromLatin1("Feb/2000/29");
+ << threeDigitDayIssueKeypresses_ShortMonthName_MonthYearDay << QString::fromLatin1("Feb./2000/29");
QTest::newRow("fixday, MMM/yyyy/d") << defaultLocale << defaultDate.addYears(1) << QString::fromLatin1("MMM/yyyy/d")
- << threeDigitDayIssueKeypresses_ShortMonthName_MonthYearDay << QString::fromLatin1("Feb/2001/28");
+ << threeDigitDayIssueKeypresses_ShortMonthName_MonthYearDay << QString::fromLatin1("Feb./2001/28");
QTest::newRow("fixday, leap, MMM/yyyy/dd") << defaultLocale << defaultDate << QString::fromLatin1("MMM/yyyy/dd")
- << threeDigitDayIssueKeypresses_ShortMonthName_MonthYearDay << QString::fromLatin1("Feb/2000/29");
+ << threeDigitDayIssueKeypresses_ShortMonthName_MonthYearDay << QString::fromLatin1("Feb./2000/29");
QTest::newRow("fixday, leap, dddd, dd. MMMM yyyy") << defaultLocale
<< defaultDate << QString::fromLatin1("dddd, dd. MMMM yyyy")