summaryrefslogtreecommitdiff
path: root/tests/auto/geotestplugin/qplacemanagerengine_test.h
diff options
context:
space:
mode:
authorAaron McCarthy <aaron.mccarthy@jollamobile.com>2014-01-20 10:57:08 +1000
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-01-22 01:47:34 +0100
commit0b36e73112b099090f5dcbbc21d172dcc7c97f30 (patch)
tree92779dfa9e00b8933e53dd0aafebf6947fbf5905 /tests/auto/geotestplugin/qplacemanagerengine_test.h
parentbdcc97c444fadc566b4476f5f91b02bd8be21ec3 (diff)
downloadqtlocation-0b36e73112b099090f5dcbbc21d172dcc7c97f30.tar.gz
Remove offset attribute from place content requests.
This complements 1d0966c6924876655c52725e779a7aa24866ff60 Not all service providers support arbitrary offsets when requesting place content. The offset attribute has been removed, instead service providers can supply a previous and next content request query in the form of a QPlaceContentRequest. Change-Id: I6239b42c31bed5dcd6645d86d5a48d7e6a667f46 Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
Diffstat (limited to 'tests/auto/geotestplugin/qplacemanagerengine_test.h')
-rw-r--r--tests/auto/geotestplugin/qplacemanagerengine_test.h35
1 files changed, 26 insertions, 9 deletions
diff --git a/tests/auto/geotestplugin/qplacemanagerengine_test.h b/tests/auto/geotestplugin/qplacemanagerengine_test.h
index 816493d0..edcf09b7 100644
--- a/tests/auto/geotestplugin/qplacemanagerengine_test.h
+++ b/tests/auto/geotestplugin/qplacemanagerengine_test.h
@@ -363,10 +363,10 @@ public:
return reply;
}
- QPlaceContentReply *getPlaceContent(const QString &placeId, const QPlaceContentRequest &query)
+ QPlaceContentReply *getPlaceContent(const QPlaceContentRequest &query) Q_DECL_OVERRIDE
{
ContentReply *reply = new ContentReply(this);
- if (placeId.isEmpty() || !m_places.contains(placeId)) {
+ if (query.placeId().isEmpty() || !m_places.contains(query.placeId())) {
reply->setError(QPlaceReply::PlaceDoesNotExistError, tr("Place does not exist"));
QMetaObject::invokeMethod(reply, "emitError", Qt::QueuedConnection);
@@ -375,31 +375,33 @@ public:
int totalCount = 0;
switch (query.contentType()) {
case QPlaceContent::ReviewType:
- totalCount = m_placeReviews.value(placeId).count();
+ totalCount = m_placeReviews.value(query.placeId()).count();
break;
case QPlaceContent::ImageType:
- totalCount = m_placeImages.value(placeId).count();
+ totalCount = m_placeImages.value(query.placeId()).count();
break;
case QPlaceContent::EditorialType:
- totalCount = m_placeEditorials.value(placeId).count();
+ totalCount = m_placeEditorials.value(query.placeId()).count();
default:
//do nothing
break;
}
- int offset = qMax(query.offset(), 0);
+ QVariantMap context = query.contentContext().toMap();
+
+ int offset = context.value(QStringLiteral("offset"), 0).toInt();
int max = (query.limit() == -1) ? totalCount
: qMin(offset + query.limit(), totalCount);
for (int i = offset; i < max; ++i) {
switch (query.contentType()) {
case QPlaceContent::ReviewType:
- collection.insert(i, m_placeReviews.value(placeId).at(i));
+ collection.insert(i, m_placeReviews.value(query.placeId()).at(i));
break;
case QPlaceContent::ImageType:
- collection.insert(i, m_placeImages.value(placeId).at(i));
+ collection.insert(i, m_placeImages.value(query.placeId()).at(i));
break;
case QPlaceContent::EditorialType:
- collection.insert(i, m_placeEditorials.value(placeId).at(i));
+ collection.insert(i, m_placeEditorials.value(query.placeId()).at(i));
default:
//do nothing
break;
@@ -408,6 +410,21 @@ public:
reply->setContent(collection);
reply->setTotalCount(totalCount);
+
+ if (max != totalCount) {
+ context.clear();
+ context.insert(QStringLiteral("offset"), offset + query.limit());
+ QPlaceContentRequest request = query;
+ request.setContentContext(context);
+ reply->setNextPageRequest(request);
+ }
+ if (offset > 0) {
+ context.clear();
+ context.insert(QStringLiteral("offset"), qMin(0, offset - query.limit()));
+ QPlaceContentRequest request = query;
+ request.setContentContext(context);
+ reply->setPreviousPageRequest(request);
+ }
}
QMetaObject::invokeMethod(reply, "emitFinished", Qt::QueuedConnection);