Commit f3edb627 authored by Alex Blasche's avatar Alex Blasche
Browse files

Fix DeclarativePlace unit test


This broke due to a behavior change in QtDeclarative when converting
JS Array to C++. For more details see QTBUG-40431.

Change-Id: Id666b4872a5cd1e435cca67b5362c2ab3beb3633
Reviewed-by: default avatarSimon Hausmann <simon.hausmann@digia.com>
Showing with 6 additions and 2 deletions
......@@ -1203,14 +1203,18 @@ QPlaceManager *QDeclarativePlace::manager()
*/
QString QDeclarativePlace::primaryValue(const QString &contactType) const
{
if (m_contactDetails->value(contactType).userType() == QVariant::List) {
QVariant value = m_contactDetails->value(contactType);
if (value.userType() == qMetaTypeId<QJSValue>())
value = value.value<QJSValue>().toVariant();
if (value.userType() == QVariant::List) {
QVariantList detailList = m_contactDetails->value(contactType).toList();
if (!detailList.isEmpty()) {
QDeclarativeContactDetail *primaryDetail = qobject_cast<QDeclarativeContactDetail *>(detailList.at(0).value<QObject *>());
if (primaryDetail)
return primaryDetail->value();
}
} else if (m_contactDetails->value(contactType).userType() == QMetaType::QObjectStar) {
} else if (value.userType() == QMetaType::QObjectStar) {
QDeclarativeContactDetail *primaryDetail = qobject_cast<QDeclarativeContactDetail *>(m_contactDetails->value(contactType).value<QObject *>());
if (primaryDetail)
return primaryDetail->value();
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment