aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/qml/doc/src/qmllanguageref/modules/qmldir.qdoc14
-rw-r--r--src/quick/items/qquickitemview.cpp2
-rw-r--r--src/quick/items/qquickrectangle.cpp20
-rw-r--r--src/quick/items/qquickrectangle_p.h6
-rw-r--r--tests/auto/quick/qquickrectangle/tst_qquickrectangle.cpp7
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();