47 QPlaceCategory category;
49 category.setName(categoryObject.value(QStringLiteral(
"title")).toString());
51 const QUrl href(categoryObject.value(QStringLiteral(
"href")).toString());
52 const QString hrefPath(href.path());
53 category.setCategoryId(hrefPath.mid(hrefPath.lastIndexOf(QLatin1Char(
'/')) + 1));
56 category.setIcon(engine->icon(categoryObject.value(QStringLiteral(
"icon")).toString()));
75 QList<QPlaceContactDetail> contactDetails;
77 for (
int i = 0; i < contacts.count(); ++i) {
78 QJsonObject contact = contacts.at(i).toObject();
80 QPlaceContactDetail detail;
81 detail.setLabel(contact.value(QStringLiteral(
"label")).toString());
82 detail.setValue(contact.value(QStringLiteral(
"value")).toString());
84 contactDetails.append(detail);
87 return contactDetails;
95 QPlaceContent image(QPlaceContent::ImageType);
97 image.setValue(QPlaceContent::ContentAttribution, imageObject.value(
98 QStringLiteral(
"attribution")).toString());
99 image.setValue(QPlaceContent::ImageUrl, imageObject.value(
100 QStringLiteral(
"src")).toString());
101 image.setValue(QPlaceContent::ContentSupplier, QVariant::fromValue(parseSupplier(
102 imageObject.value(QStringLiteral(
"supplier")).toObject(), engine)));
112 QPlaceContent review(QPlaceContent::ReviewType);
114 review.setValue(QPlaceContent::ReviewDateTime, QDateTime::fromString(
115 reviewObject.value(QStringLiteral(
"date")).toString()));
117 if (reviewObject.contains(QStringLiteral(
"title"))) {
118 review.setValue(QPlaceContent::ReviewTitle, reviewObject.value(
119 QStringLiteral(
"title")).toString());
122 if (reviewObject.contains(QStringLiteral(
"rating"))) {
123 review.setValue(QPlaceContent::ReviewRating, reviewObject.value(
124 QStringLiteral(
"rating")).toDouble());
127 review.setValue(QPlaceContent::ReviewText, reviewObject.value(
128 QStringLiteral(
"description")).toString());
130 QJsonObject userObject = reviewObject.value(QStringLiteral(
"user")).toObject();
133 user.setUserId(userObject.value(QStringLiteral(
"id")).toString());
134 user.setName(userObject.value(QStringLiteral(
"title")).toString());
135 review.setValue(QPlaceContent::ContentUser, QVariant::fromValue(user));
137 review.setValue(QPlaceContent::ContentAttribution, reviewObject.value(
138 QStringLiteral(
"attribution")).toString());
140 review.setValue(QPlaceContent::ReviewLanguage, reviewObject.value(
141 QStringLiteral(
"language")).toString());
143 review.setValue(QPlaceContent::ContentSupplier, QVariant::fromValue(parseSupplier(
144 reviewObject.value(QStringLiteral(
"supplier")).toObject(), engine)));
158 QPlaceContent editorial(QPlaceContent::EditorialType);
160 editorial.setValue(QPlaceContent::ContentAttribution, editorialObject.value(QStringLiteral(
"attribution")).toString());
166 editorial.setValue(QPlaceContent::ContentSupplier, QVariant::fromValue(parseSupplier(
167 editorialObject.value(QStringLiteral(
"supplier")).toObject(), engine)));
168 editorial.setValue(QPlaceContent::EditorialLanguage, editorialObject.value(
169 QStringLiteral(
"language")).toString());
170 editorial.setValue(QPlaceContent::EditorialText, editorialObject.value(
171 QStringLiteral(
"description")).toString());
177 QPlaceContent::Collection *collection,
int *totalCount,
178 QPlaceContentRequest *previous, QPlaceContentRequest *next,
184 *totalCount = object.value(QStringLiteral(
"available")).toDouble();
187 if (object.contains(QStringLiteral(
"offset")))
188 offset = object.value(QStringLiteral(
"offset")).toDouble();
190 if (previous && object.contains(QStringLiteral(
"previous"))) {
191 previous->setContentType(type);
192 previous->setContentContext(QUrl(object.value(QStringLiteral(
"previous")).toString()));
195 if (next && object.contains(QStringLiteral(
"next"))) {
196 next->setContentType(type);
197 next->setContentContext(QUrl(object.value(QStringLiteral(
"next")).toString()));
201 QJsonArray items = object.value(QStringLiteral(
"items")).toArray();
202 for (
int i = 0; i < items.count(); ++i) {
203 QJsonObject itemObject = items.at(i).toObject();
206 case QPlaceContent::ImageType:
207 collection->insert(offset + i, parseImage(itemObject, engine));
209 case QPlaceContent::ReviewType:
210 collection->insert(offset + i, parseReview(itemObject, engine));
212 case QPlaceContent::EditorialType:
213 collection->insert(offset + i, parseEditorial(itemObject, engine));
215 case QPlaceContent::NoType:
void parseCollection(QPlaceContent::Type type, const QJsonObject &object, QPlaceContent::Collection *collection, int *totalCount, QPlaceContentRequest *previous, QPlaceContentRequest *next, const QPlaceManagerEngineNokiaV2 *engine)