summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBradley T. Hughes <bradley.hughes@nokia.com>2011-11-28 13:05:33 +0100
committerQt by Nokia <qt-info@nokia.com>2011-12-01 17:46:57 +0100
commitba635d7e74472f3a54c0c4686966af46d9035c6f (patch)
tree70fb0b7e41cc1d0a9a5f3959eaf0cc771e9e74ca
parentc7f80420649d8d37e25514bcd2859de1e21166d6 (diff)
Add QObject::objectNameChanged(const QString &objectName) signal
This is sent when the object's name changes. tst_moc must be updated since the method count of QObject has changed. The test assumed that there were 4 invokable methods in QObject. The new signal is the 5th, which breaks the test's assumptions. Fix this as well. tst_QObject must be updated since the QObjectPrivate::isSignalConnected() method only supports the first 64 signals. With the addition of this new signal, sig61() in the test becomes the 65th signal, and will always appear connected now. Task-number: QTBUG-13999 (related) Change-Id: Ie87893c71a231fafa7ccf2f16102238a7be8327a Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com> Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
-rw-r--r--src/corelib/kernel/qobject.cpp17
-rw-r--r--src/corelib/kernel/qobject.h3
-rw-r--r--tests/auto/corelib/kernel/qobject/tst_qobject.cpp2
-rw-r--r--tests/auto/tools/moc/tst_moc.cpp28
4 files changed, 28 insertions, 22 deletions
diff --git a/src/corelib/kernel/qobject.cpp b/src/corelib/kernel/qobject.cpp
index b1d2463737..bdf833bc48 100644
--- a/src/corelib/kernel/qobject.cpp
+++ b/src/corelib/kernel/qobject.cpp
@@ -1096,13 +1096,20 @@ QString QObject::objectName() const
void QObject::setObjectName(const QString &name)
{
Q_D(QObject);
- bool objectNameChanged = d->declarativeData && d->objectName != name;
+ if (d->objectName != name) {
+ d->objectName = name;
+ if (d->declarativeData)
+ d->declarativeData->objectNameChanged(d->declarativeData, this);
+ emit objectNameChanged(d->objectName);
+ }
+}
- d->objectName = name;
+/*! \fn void QObject::objectNameChanged(const QString &objectName)
- if (objectNameChanged)
- d->declarativeData->objectNameChanged(d->declarativeData, this);
-}
+ This signal is emitted after the object's name has been changed. The new object name is passed as \a objectName.
+
+ \sa QObject::objectName
+*/
/*!
\fn bool QObject::isWidgetType() const
diff --git a/src/corelib/kernel/qobject.h b/src/corelib/kernel/qobject.h
index 307518d81e..1865656d49 100644
--- a/src/corelib/kernel/qobject.h
+++ b/src/corelib/kernel/qobject.h
@@ -115,7 +115,7 @@ public:
class Q_CORE_EXPORT QObject
{
Q_OBJECT
- Q_PROPERTY(QString objectName READ objectName WRITE setObjectName)
+ Q_PROPERTY(QString objectName READ objectName WRITE setObjectName NOTIFY objectNameChanged)
Q_DECLARE_PRIVATE(QObject)
public:
@@ -313,6 +313,7 @@ public:
Q_SIGNALS:
void destroyed(QObject * = 0);
+ void objectNameChanged(const QString &objectName);
public:
inline QObject *parent() const { return d_ptr->parent; }
diff --git a/tests/auto/corelib/kernel/qobject/tst_qobject.cpp b/tests/auto/corelib/kernel/qobject/tst_qobject.cpp
index b20b98da54..1ba4e29f3b 100644
--- a/tests/auto/corelib/kernel/qobject/tst_qobject.cpp
+++ b/tests/auto/corelib/kernel/qobject/tst_qobject.cpp
@@ -3487,7 +3487,6 @@ void tst_QObject::isSignalConnected()
QVERIFY(!priv->isSignalConnected(priv->signalIndex("sig15()")));
QVERIFY(!priv->isSignalConnected(priv->signalIndex("sig29()")));
QVERIFY(!priv->isSignalConnected(priv->signalIndex("sig60()")));
- QVERIFY(!priv->isSignalConnected(priv->signalIndex("sig61()")));
#endif
QObject::connect(&o, SIGNAL(sig00()), &o, SIGNAL(sig69()));
@@ -3542,7 +3541,6 @@ void tst_QObject::isSignalConnected()
QVERIFY(!priv->isSignalConnected(priv->signalIndex("sig21()")));
QVERIFY(!priv->isSignalConnected(priv->signalIndex("sig25()")));
QVERIFY(!priv->isSignalConnected(priv->signalIndex("sig55()")));
- QVERIFY(!priv->isSignalConnected(priv->signalIndex("sig61()")));
#endif
emit o.sig00();
diff --git a/tests/auto/tools/moc/tst_moc.cpp b/tests/auto/tools/moc/tst_moc.cpp
index 6d3ee2611e..95d7d2ce00 100644
--- a/tests/auto/tools/moc/tst_moc.cpp
+++ b/tests/auto/tools/moc/tst_moc.cpp
@@ -1091,15 +1091,15 @@ void tst_Moc::invokable()
{
{
const QMetaObject &mobj = InvokableBeforeReturnType::staticMetaObject;
- QCOMPARE(mobj.methodCount(), 5);
- QVERIFY(mobj.method(4).signature() == QByteArray("foo()"));
+ QCOMPARE(mobj.methodCount(), 6);
+ QVERIFY(mobj.method(5).signature() == QByteArray("foo()"));
}
{
const QMetaObject &mobj = InvokableBeforeInline::staticMetaObject;
- QCOMPARE(mobj.methodCount(), 6);
- QVERIFY(mobj.method(4).signature() == QByteArray("foo()"));
- QVERIFY(mobj.method(5).signature() == QByteArray("bar()"));
+ QCOMPARE(mobj.methodCount(), 7);
+ QVERIFY(mobj.method(5).signature() == QByteArray("foo()"));
+ QVERIFY(mobj.method(6).signature() == QByteArray("bar()"));
}
}
@@ -1107,23 +1107,23 @@ void tst_Moc::singleFunctionKeywordSignalAndSlot()
{
{
const QMetaObject &mobj = SingleFunctionKeywordBeforeReturnType::staticMetaObject;
- QCOMPARE(mobj.methodCount(), 6);
- QVERIFY(mobj.method(4).signature() == QByteArray("mySignal()"));
- QVERIFY(mobj.method(5).signature() == QByteArray("mySlot()"));
+ QCOMPARE(mobj.methodCount(), 7);
+ QVERIFY(mobj.method(5).signature() == QByteArray("mySignal()"));
+ QVERIFY(mobj.method(6).signature() == QByteArray("mySlot()"));
}
{
const QMetaObject &mobj = SingleFunctionKeywordBeforeInline::staticMetaObject;
- QCOMPARE(mobj.methodCount(), 6);
- QVERIFY(mobj.method(4).signature() == QByteArray("mySignal()"));
- QVERIFY(mobj.method(5).signature() == QByteArray("mySlot()"));
+ QCOMPARE(mobj.methodCount(), 7);
+ QVERIFY(mobj.method(5).signature() == QByteArray("mySignal()"));
+ QVERIFY(mobj.method(6).signature() == QByteArray("mySlot()"));
}
{
const QMetaObject &mobj = SingleFunctionKeywordAfterInline::staticMetaObject;
- QCOMPARE(mobj.methodCount(), 6);
- QVERIFY(mobj.method(4).signature() == QByteArray("mySignal()"));
- QVERIFY(mobj.method(5).signature() == QByteArray("mySlot()"));
+ QCOMPARE(mobj.methodCount(), 7);
+ QVERIFY(mobj.method(5).signature() == QByteArray("mySignal()"));
+ QVERIFY(mobj.method(6).signature() == QByteArray("mySlot()"));
}
}