diff options
-rw-r--r-- | src/qml/doc/src/qmllanguageref/modules/qmldir.qdoc | 14 | ||||
-rw-r--r-- | src/quick/items/qquickitemview.cpp | 2 | ||||
-rw-r--r-- | src/quick/items/qquickrectangle.cpp | 20 | ||||
-rw-r--r-- | src/quick/items/qquickrectangle_p.h | 6 | ||||
-rw-r--r-- | tests/auto/quick/qquickrectangle/tst_qquickrectangle.cpp | 7 |
5 files changed, 38 insertions, 11 deletions
diff --git a/src/qml/doc/src/qmllanguageref/modules/qmldir.qdoc b/src/qml/doc/src/qmllanguageref/modules/qmldir.qdoc index c89d4a3c0d..88c866baf3 100644 --- a/src/qml/doc/src/qmllanguageref/modules/qmldir.qdoc +++ b/src/qml/doc/src/qmllanguageref/modules/qmldir.qdoc @@ -27,7 +27,7 @@ /*! \page qtqml-modules-qmldir.html \title Module Definition qmldir Files -\brief How to write a qmldir file which defines a QML module +\brief Defines a QML module There are two distinct types of \c qmldir files: \list @@ -177,6 +177,18 @@ plugin <Name> [<Path>] \code plugin MyPluginLibrary \endcode + \row + \li C++ Plugin Class + \li + \code + classname <C++ plugin class> + \endcode + \li Provides the class name of the C++ plugin used by the module. + + This information is required for all the QML modules that depend + on a C++ plugin for additional functionality. Qt Quick applications + built with static linking cannot resolve the module imports without + this information. \row \li Type Information Description File Declaration diff --git a/src/quick/items/qquickitemview.cpp b/src/quick/items/qquickitemview.cpp index e5b2ee822c..d6cedbb78d 100644 --- a/src/quick/items/qquickitemview.cpp +++ b/src/quick/items/qquickitemview.cpp @@ -1836,7 +1836,7 @@ void QQuickItemViewPrivate::layout() prepareVisibleItemTransitions(); - QRectF viewBounds(0, position(), q->width(), q->height()); + QRectF viewBounds(q->contentX(), q->contentY(), q->width(), q->height()); for (QList<FxViewItem*>::Iterator it = releasePendingTransition.begin(); it != releasePendingTransition.end(); ) { FxViewItem *item = *it; diff --git a/src/quick/items/qquickrectangle.cpp b/src/quick/items/qquickrectangle.cpp index 48f79a2192..e50f772e89 100644 --- a/src/quick/items/qquickrectangle.cpp +++ b/src/quick/items/qquickrectangle.cpp @@ -255,6 +255,18 @@ QQmlListProperty<QQuickGradientStop> QQuickGradient::stops() return QQmlListProperty<QQuickGradientStop>(this, m_stops); } +QGradientStops QQuickGradient::gradientStops() const +{ + QGradientStops stops; + for (int i = 0; i < m_stops.size(); ++i){ + int j = 0; + while (j < stops.size() && stops.at(j).first < m_stops[i]->position()) + j++; + stops.insert(j, QGradientStop(m_stops.at(i)->position(), m_stops.at(i)->color())); + } + return stops; +} + void QQuickGradient::doUpdate() { emit updated(); @@ -480,13 +492,7 @@ QSGNode *QQuickRectangle::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData QGradientStops stops; if (d->gradient) { - QList<QQuickGradientStop *> qxstops = d->gradient->m_stops; - for (int i = 0; i < qxstops.size(); ++i){ - int j = 0; - while (j < stops.size() && stops.at(j).first < qxstops[i]->position()) - j++; - stops.insert(j, QGradientStop(qxstops.at(i)->position(), qxstops.at(i)->color())); - } + stops = d->gradient->gradientStops(); } rectangle->setGradientStops(stops); diff --git a/src/quick/items/qquickrectangle_p.h b/src/quick/items/qquickrectangle_p.h index 009512afd4..09b530c191 100644 --- a/src/quick/items/qquickrectangle_p.h +++ b/src/quick/items/qquickrectangle_p.h @@ -81,7 +81,7 @@ private: bool m_valid : 1; }; -class Q_AUTOTEST_EXPORT QQuickGradientStop : public QObject +class Q_QUICK_PRIVATE_EXPORT QQuickGradientStop : public QObject { Q_OBJECT @@ -105,7 +105,7 @@ private: QColor m_color; }; -class Q_AUTOTEST_EXPORT QQuickGradient : public QObject +class Q_QUICK_PRIVATE_EXPORT QQuickGradient : public QObject { Q_OBJECT @@ -118,6 +118,8 @@ public: QQmlListProperty<QQuickGradientStop> stops(); + QGradientStops gradientStops() const; + Q_SIGNALS: void updated(); diff --git a/tests/auto/quick/qquickrectangle/tst_qquickrectangle.cpp b/tests/auto/quick/qquickrectangle/tst_qquickrectangle.cpp index 204a3ff019..5657ec44a8 100644 --- a/tests/auto/quick/qquickrectangle/tst_qquickrectangle.cpp +++ b/tests/auto/quick/qquickrectangle/tst_qquickrectangle.cpp @@ -79,6 +79,13 @@ void tst_qquickrectangle::gradient() QCOMPARE(stops.at(&stops, 1)->position(), 1.0); QCOMPARE(stops.at(&stops, 1)->color(), QColor("white")); + QGradientStops gradientStops = grad->gradientStops(); + QCOMPARE(gradientStops.count(), 2); + QCOMPARE(gradientStops.at(0).first, 0.0); + QCOMPARE(gradientStops.at(0).second, QColor("gray")); + QCOMPARE(gradientStops.at(1).first, 1.0); + QCOMPARE(gradientStops.at(1).second, QColor("white")); + QMetaObject::invokeMethod(rect, "resetGradient"); grad = rect->gradient(); |