summaryrefslogtreecommitdiffstats
path: root/src/declarative/qml
diff options
context:
space:
mode:
authorWarwick Allison <warwick.allison@nokia.com>2009-10-26 05:45:10 (GMT)
committerWarwick Allison <warwick.allison@nokia.com>2009-10-26 05:45:10 (GMT)
commit5d5630f19afdecf0d68092d852d0e49d78ffd7b4 (patch)
treedda9d9ece605856d62fa39cbc3ec85344c8d4534 /src/declarative/qml
parent91be655a7e893d34fdbdb71aa5a329b641c80992 (diff)
parentcc29b52707a556a83a90d207d3c7796a6ce27616 (diff)
downloadQt-5d5630f19afdecf0d68092d852d0e49d78ffd7b4.zip
Qt-5d5630f19afdecf0d68092d852d0e49d78ffd7b4.tar.gz
Qt-5d5630f19afdecf0d68092d852d0e49d78ffd7b4.tar.bz2
Merge branch 'kinetic-declarativeui' of git@scm.dev.nokia.troll.no:qt/kinetic into kinetic-declarativeui
Conflicts: src/declarative/qml/qbitfield_p.h
Diffstat (limited to 'src/declarative/qml')
-rw-r--r--src/declarative/qml/qbitfield_p.h4
-rw-r--r--src/declarative/qml/qmlcomponent.cpp2
-rw-r--r--src/declarative/qml/qmldom.cpp96
-rw-r--r--src/declarative/qml/qmldom.h20
-rw-r--r--src/declarative/qml/qmlxmlhttprequest.cpp9
5 files changed, 127 insertions, 4 deletions
diff --git a/src/declarative/qml/qbitfield_p.h b/src/declarative/qml/qbitfield_p.h
index 9804a18..a8cc9dc 100644
--- a/src/declarative/qml/qbitfield_p.h
+++ b/src/declarative/qml/qbitfield_p.h
@@ -139,11 +139,11 @@ QBitField QBitField::united(const QBitField &o)
rv.data = rv.ownData + 1;
if (bits > o.bits) {
::memcpy((quint32 *)rv.data, data, length * sizeof(quint32));
- for (quint32 ii = 0; ii < quint32(o.bits + 31) / 32; ++ii)
+ for (quint32 ii = 0; ii < (o.bits + quint32(31)) / 32; ++ii)
((quint32 *)rv.data)[ii] |= o.data[ii];
} else {
::memcpy((quint32 *)rv.data, o.data, length * sizeof(quint32));
- for (quint32 ii = 0; ii < quint32(bits + 31) / 32; ++ii)
+ for (quint32 ii = 0; ii < (bits + quint32(31)) / 32; ++ii)
((quint32 *)rv.data)[ii] |= data[ii];
}
return rv;
diff --git a/src/declarative/qml/qmlcomponent.cpp b/src/declarative/qml/qmlcomponent.cpp
index 12fb120..0894758 100644
--- a/src/declarative/qml/qmlcomponent.cpp
+++ b/src/declarative/qml/qmlcomponent.cpp
@@ -390,8 +390,6 @@ valid for components created directly from QML.
*/
QmlContext *QmlComponent::creationContext() const
{
- Q_D(const QmlComponent);
-
QmlDeclarativeData *ddata = QmlDeclarativeData::get(this);
if (ddata)
return ddata->context;
diff --git a/src/declarative/qml/qmldom.cpp b/src/declarative/qml/qmldom.cpp
index a0601d7..21eeb7c 100644
--- a/src/declarative/qml/qmldom.cpp
+++ b/src/declarative/qml/qmldom.cpp
@@ -1181,6 +1181,75 @@ QmlDomObject QmlDomValueValueSource::object() const
return rv;
}
+/*!
+ \class QmlDomValueValueInterceptor
+ \internal
+ \brief The QmlDomValueValueInterceptor class represents a value interceptor assignment value.
+
+ In QML, value interceptor are special write-intercepting types that may be
+ assigned to properties. Value interceptor inherit the QmlPropertyValueInterceptor
+ class. In the example below, the "x" property is being assigned the
+ Behavior value interceptor.
+
+ \qml
+Rectangle {
+ x: Behavior { NumberAnimation { duration: 500 } }
+}
+ \endqml
+*/
+
+/*!
+ Construct an empty QmlDomValueValueInterceptor.
+*/
+QmlDomValueValueInterceptor::QmlDomValueValueInterceptor():
+ d(new QmlDomBasicValuePrivate)
+{
+}
+
+/*!
+ Create a copy of \a other QmlDomValueValueInterceptor.
+*/
+QmlDomValueValueInterceptor::QmlDomValueValueInterceptor(const QmlDomValueValueInterceptor &other)
+: d(other.d)
+{
+}
+
+/*!
+ Destroy the QmlDomValueValueInterceptor.
+*/
+QmlDomValueValueInterceptor::~QmlDomValueValueInterceptor()
+{
+}
+
+/*!
+ Assign \a other to this QmlDomValueValueInterceptor.
+*/
+QmlDomValueValueInterceptor &QmlDomValueValueInterceptor::operator=(const QmlDomValueValueInterceptor &other)
+{
+ d = other.d;
+ return *this;
+}
+
+/*!
+ Return the value interceptor object.
+
+ In the example below, an object representing the Behavior will be
+ returned.
+ \qml
+Rectangle {
+ x: Behavior { NumberAnimation { duration: 500 } }
+}
+ \endqml
+*/
+QmlDomObject QmlDomValueValueInterceptor::object() const
+{
+ QmlDomObject rv;
+ if (d->value) {
+ rv.d->object = d->value->object;
+ rv.d->object->addref();
+ }
+ return rv;
+}
QmlDomValuePrivate::QmlDomValuePrivate()
: property(0), value(0)
@@ -1286,6 +1355,7 @@ QmlDomValue &QmlDomValue::operator=(const QmlDomValue &other)
\value Literal The QmlDomValue is a literal value assignment. Use QmlDomValue::toLiteral() to access the type instance.
\value PropertyBinding The QmlDomValue is a property binding. Use QmlDomValue::toBinding() to access the type instance.
\value ValueSource The QmlDomValue is a property value source. Use QmlDomValue::toValueSource() to access the type instance.
+ \value ValueInterceptor The QmlDomValue is a property value interceptor. Use QmlDomValue::toValueInterceptor() to access the type instance.
\value Object The QmlDomValue is an object assignment. Use QmlDomValue::toObject() to access the type instnace.
\value List The QmlDomValue is a list of other values. Use QmlDomValue::toList() to access the type instance.
*/
@@ -1314,6 +1384,8 @@ QmlDomValue::Type QmlDomValue::type() const
return PropertyBinding;
case QmlParser::Value::ValueSource:
return ValueSource;
+ case QmlParser::Value::ValueInterceptor:
+ return ValueInterceptor;
case QmlParser::Value::CreatedObject:
return Object;
case QmlParser::Value::SignalObject:
@@ -1359,6 +1431,14 @@ bool QmlDomValue::isValueSource() const
}
/*!
+ Returns true if this is a value interceptor value, otherwise false.
+*/
+bool QmlDomValue::isValueInterceptor() const
+{
+ return type() == ValueInterceptor;
+}
+
+/*!
Returns true if this is an object value, otherwise false.
*/
bool QmlDomValue::isObject() const
@@ -1423,6 +1503,22 @@ QmlDomValueValueSource QmlDomValue::toValueSource() const
}
/*!
+ Returns a QmlDomValueValueInterceptor if this value is a property value interceptor
+ type, otherwise returns an invalid QmlDomValueValueInterceptor.
+
+ \sa QmlDomValue::type()
+*/
+QmlDomValueValueInterceptor QmlDomValue::toValueInterceptor() const
+{
+ QmlDomValueValueInterceptor rv;
+ if (type() == ValueInterceptor) {
+ rv.d->value = d->value;
+ rv.d->value->addref();
+ }
+ return rv;
+}
+
+/*!
Returns a QmlDomObject if this value is an object assignment type, otherwise
returns an invalid QmlDomObject.
diff --git a/src/declarative/qml/qmldom.h b/src/declarative/qml/qmldom.h
index f344bb2..5816780 100644
--- a/src/declarative/qml/qmldom.h
+++ b/src/declarative/qml/qmldom.h
@@ -175,6 +175,7 @@ private:
friend class QmlDomComponent;
friend class QmlDomValue;
friend class QmlDomValueValueSource;
+ friend class QmlDomValueValueInterceptor;
QSharedDataPointer<QmlDomObjectPrivate> d;
};
@@ -225,6 +226,22 @@ private:
QSharedDataPointer<QmlDomBasicValuePrivate> d;
};
+class Q_DECLARATIVE_EXPORT QmlDomValueValueInterceptor
+{
+public:
+ QmlDomValueValueInterceptor();
+ QmlDomValueValueInterceptor(const QmlDomValueValueInterceptor &);
+ ~QmlDomValueValueInterceptor();
+ QmlDomValueValueInterceptor &operator=(const QmlDomValueValueInterceptor &);
+
+ QmlDomObject object() const;
+
+private:
+ friend class QmlDomValue;
+ QSharedDataPointer<QmlDomBasicValuePrivate> d;
+};
+
+
class Q_DECLARATIVE_EXPORT QmlDomComponent : public QmlDomObject
{
public:
@@ -244,6 +261,7 @@ public:
Literal,
PropertyBinding,
ValueSource,
+ ValueInterceptor,
Object,
List
};
@@ -259,12 +277,14 @@ public:
bool isLiteral() const;
bool isBinding() const;
bool isValueSource() const;
+ bool isValueInterceptor() const;
bool isObject() const;
bool isList() const;
QmlDomValueLiteral toLiteral() const;
QmlDomValueBinding toBinding() const;
QmlDomValueValueSource toValueSource() const;
+ QmlDomValueValueInterceptor toValueInterceptor() const;
QmlDomObject toObject() const;
QmlDomList toList() const;
diff --git a/src/declarative/qml/qmlxmlhttprequest.cpp b/src/declarative/qml/qmlxmlhttprequest.cpp
index 5117a00..eb7235b 100644
--- a/src/declarative/qml/qmlxmlhttprequest.cpp
+++ b/src/declarative/qml/qmlxmlhttprequest.cpp
@@ -1102,6 +1102,7 @@ void QmlXMLHttpRequest::abort()
void QmlXMLHttpRequest::downloadProgress(qint64 bytes)
{
+ Q_UNUSED(bytes)
m_status =
m_network->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
m_statusText =
@@ -1124,6 +1125,7 @@ void QmlXMLHttpRequest::downloadProgress(qint64 bytes)
void QmlXMLHttpRequest::error(QNetworkReply::NetworkError error)
{
+ Q_UNUSED(error)
m_status =
m_network->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
m_statusText =
@@ -1315,6 +1317,7 @@ static QScriptValue qmlxmlhttprequest_abort(QScriptContext *context, QScriptEngi
static QScriptValue qmlxmlhttprequest_getResponseHeader(QScriptContext *context, QScriptEngine *engine)
{
+ Q_UNUSED(engine)
QmlXMLHttpRequest *request = qobject_cast<QmlXMLHttpRequest *>(context->thisObject().data().toQObject());
if (!request) return context->throwError(QScriptContext::ReferenceError, QLatin1String("Not an XMLHttpRequest object"));
@@ -1333,6 +1336,7 @@ static QScriptValue qmlxmlhttprequest_getResponseHeader(QScriptContext *context,
static QScriptValue qmlxmlhttprequest_getAllResponseHeaders(QScriptContext *context, QScriptEngine *engine)
{
+ Q_UNUSED(engine)
QmlXMLHttpRequest *request = qobject_cast<QmlXMLHttpRequest *>(context->thisObject().data().toQObject());
if (!request) return context->throwError(QScriptContext::ReferenceError, QLatin1String("Not an XMLHttpRequest object"));
@@ -1350,6 +1354,7 @@ static QScriptValue qmlxmlhttprequest_getAllResponseHeaders(QScriptContext *cont
// XMLHttpRequest properties
static QScriptValue qmlxmlhttprequest_readyState(QScriptContext *context, QScriptEngine *engine)
{
+ Q_UNUSED(engine)
QmlXMLHttpRequest *request = qobject_cast<QmlXMLHttpRequest *>(context->thisObject().data().toQObject());
if (!request) return context->throwError(QScriptContext::ReferenceError, QLatin1String("Not an XMLHttpRequest object"));
@@ -1358,6 +1363,7 @@ static QScriptValue qmlxmlhttprequest_readyState(QScriptContext *context, QScrip
static QScriptValue qmlxmlhttprequest_status(QScriptContext *context, QScriptEngine *engine)
{
+ Q_UNUSED(engine)
QmlXMLHttpRequest *request = qobject_cast<QmlXMLHttpRequest *>(context->thisObject().data().toQObject());
if (!request) return context->throwError(QScriptContext::ReferenceError, QLatin1String("Not an XMLHttpRequest object"));
@@ -1373,6 +1379,7 @@ static QScriptValue qmlxmlhttprequest_status(QScriptContext *context, QScriptEng
static QScriptValue qmlxmlhttprequest_statusText(QScriptContext *context, QScriptEngine *engine)
{
+ Q_UNUSED(engine)
QmlXMLHttpRequest *request = qobject_cast<QmlXMLHttpRequest *>(context->thisObject().data().toQObject());
if (!request) return context->throwError(QScriptContext::ReferenceError, QLatin1String("Not an XMLHttpRequest object"));
@@ -1388,6 +1395,7 @@ static QScriptValue qmlxmlhttprequest_statusText(QScriptContext *context, QScrip
static QScriptValue qmlxmlhttprequest_responseText(QScriptContext *context, QScriptEngine *engine)
{
+ Q_UNUSED(engine)
QmlXMLHttpRequest *request = qobject_cast<QmlXMLHttpRequest *>(context->thisObject().data().toQObject());
if (!request) return context->throwError(QScriptContext::ReferenceError, QLatin1String("Not an XMLHttpRequest object"));
@@ -1412,6 +1420,7 @@ static QScriptValue qmlxmlhttprequest_responseXML(QScriptContext *context, QScri
static QScriptValue qmlxmlhttprequest_onreadystatechange(QScriptContext *context, QScriptEngine *engine)
{
+ Q_UNUSED(engine)
QmlXMLHttpRequest *request = qobject_cast<QmlXMLHttpRequest *>(context->thisObject().data().toQObject());
if (!request) return context->throwError(QScriptContext::ReferenceError, QLatin1String("Not an XMLHttpRequest object"));