Make static QQmlProperty::read() take a const QObject pointer.
authorAndreas Hartmetz <andreas.hartmetz@kdab.com>
Fri, 30 Nov 2012 15:35:45 +0000 (16:35 +0100)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Fri, 30 Nov 2012 17:46:35 +0000 (18:46 +0100)
It uses the QObject in a non-const, but still logically const, way
internally. Given that the compiler disregards const for code generation
and that the QObject won't change in any way observable from the
outside, that should not be a problem.

Task-number: QTBUG-28258
Change-Id: I1a852a2597eb2ff05b421e8024e70e7ac5299627
Reviewed-by: Alan Alpert <aalpert@rim.com>

src/qml/qml/qqmlproperty.cpp
src/qml/qml/qqmlproperty.h

index 4f44594..a2bd374 100644 (file)
@@ -1074,9 +1074,9 @@ Return the \a name property value of \a object.  This method is equivalent to:
     p.read();
 \endcode
 */
-QVariant QQmlProperty::read(QObject *object, const QString &name)
+QVariant QQmlProperty::read(const QObject *object, const QString &name)
 {
-    QQmlProperty p(object, name);
+    QQmlProperty p(const_cast<QObject *>(object), name);
     return p.read();
 }
 
@@ -1090,9 +1090,9 @@ QVariant QQmlProperty::read(QObject *object, const QString &name)
     p.read();
   \endcode
 */
-QVariant QQmlProperty::read(QObject *object, const QString &name, QQmlContext *ctxt)
+QVariant QQmlProperty::read(const QObject *object, const QString &name, QQmlContext *ctxt)
 {
-    QQmlProperty p(object, name, ctxt);
+    QQmlProperty p(const_cast<QObject *>(object), name, ctxt);
     return p.read();
 }
 
@@ -1107,9 +1107,9 @@ QVariant QQmlProperty::read(QObject *object, const QString &name, QQmlContext *c
     p.read();
   \endcode
 */
-QVariant QQmlProperty::read(QObject *object, const QString &name, QQmlEngine *engine)
+QVariant QQmlProperty::read(const QObject *object, const QString &name, QQmlEngine *engine)
 {
-    QQmlProperty p(object, name, engine);
+    QQmlProperty p(const_cast<QObject *>(object), name, engine);
     return p.read();
 }
 
index d651315..2a688a8 100644 (file)
@@ -100,9 +100,9 @@ public:
     QString name() const;
 
     QVariant read() const;
-    static QVariant read(QObject *, const QString &);
-    static QVariant read(QObject *, const QString &, QQmlContext *);
-    static QVariant read(QObject *, const QString &, QQmlEngine *);
+    static QVariant read(const QObject *, const QString &);
+    static QVariant read(const QObject *, const QString &, QQmlContext *);
+    static QVariant read(const QObject *, const QString &, QQmlEngine *);
 
     bool write(const QVariant &) const;
     static bool write(QObject *, const QString &, const QVariant &);