summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Blasche <alexander.blasche@digia.com>2014-09-23 12:28:41 +0200
committerAlex Blasche <alexander.blasche@digia.com>2014-09-23 13:07:11 +0200
commitf3edb627dc0cf780a593765babde59e1194aa9eb (patch)
tree0ca76620202214c6dd8577175f7761e89942adde
parent3a4fb52902f711de9662078aa22f2e92a8d17604 (diff)
downloadqtlocation-f3edb627dc0cf780a593765babde59e1194aa9eb.tar.gz
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: Simon Hausmann <simon.hausmann@digia.com>
-rw-r--r--src/imports/location/declarativeplaces/qdeclarativeplace.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/imports/location/declarativeplaces/qdeclarativeplace.cpp b/src/imports/location/declarativeplaces/qdeclarativeplace.cpp
index 0b755b19..05fa3d01 100644
--- a/src/imports/location/declarativeplaces/qdeclarativeplace.cpp
+++ b/src/imports/location/declarativeplaces/qdeclarativeplace.cpp
@@ -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();