1 | /**************************************************************************** |
2 | ** |
3 | ** Copyright (C) 2015 The Qt Company Ltd. |
4 | ** Contact: http://www.qt.io/licensing/ |
5 | ** |
6 | ** This file is part of the QtLocation module of the Qt Toolkit. |
7 | ** |
8 | ** $QT_BEGIN_LICENSE:LGPL3$ |
9 | ** Commercial License Usage |
10 | ** Licensees holding valid commercial Qt licenses may use this file in |
11 | ** accordance with the commercial license agreement provided with the |
12 | ** Software or, alternatively, in accordance with the terms contained in |
13 | ** a written agreement between you and The Qt Company. For licensing terms |
14 | ** and conditions see http://www.qt.io/terms-conditions. For further |
15 | ** information use the contact form at http://www.qt.io/contact-us. |
16 | ** |
17 | ** GNU Lesser General Public License Usage |
18 | ** Alternatively, this file may be used under the terms of the GNU Lesser |
19 | ** General Public License version 3 as published by the Free Software |
20 | ** Foundation and appearing in the file LICENSE.LGPLv3 included in the |
21 | ** packaging of this file. Please review the following information to |
22 | ** ensure the GNU Lesser General Public License version 3 requirements |
23 | ** will be met: https://www.gnu.org/licenses/lgpl.html. |
24 | ** |
25 | ** GNU General Public License Usage |
26 | ** Alternatively, this file may be used under the terms of the GNU |
27 | ** General Public License version 2.0 or later as published by the Free |
28 | ** Software Foundation and appearing in the file LICENSE.GPL included in |
29 | ** the packaging of this file. Please review the following information to |
30 | ** ensure the GNU General Public License version 2.0 requirements will be |
31 | ** met: http://www.gnu.org/licenses/gpl-2.0.html. |
32 | ** |
33 | ** $QT_END_LICENSE$ |
34 | ** |
35 | ****************************************************************************/ |
36 | |
37 | #include "qplacecontentrequest_p.h" |
38 | #include "qplacecontentrequest.h" |
39 | #include "qgeocoordinate.h" |
40 | |
41 | QT_BEGIN_NAMESPACE |
42 | |
43 | QPlaceContentRequestPrivate::QPlaceContentRequestPrivate() |
44 | : QSharedData(), contentType(QPlaceContent::NoType), limit(-1) |
45 | { |
46 | } |
47 | |
48 | QPlaceContentRequestPrivate::QPlaceContentRequestPrivate(const QPlaceContentRequestPrivate &other) |
49 | : QSharedData(other), contentType(other.contentType), placeId(other.placeId), |
50 | contentContext(other.contentContext), limit(other.limit) |
51 | { |
52 | } |
53 | |
54 | QPlaceContentRequestPrivate::~QPlaceContentRequestPrivate() |
55 | { |
56 | } |
57 | |
58 | bool QPlaceContentRequestPrivate::operator==(const QPlaceContentRequestPrivate &other) const |
59 | { |
60 | return contentType == other.contentType |
61 | && limit == other.limit; |
62 | } |
63 | |
64 | void QPlaceContentRequestPrivate::clear() |
65 | { |
66 | contentType = QPlaceContent::NoType; |
67 | limit = -1; |
68 | } |
69 | |
70 | /*! |
71 | \class QPlaceContentRequest |
72 | \inmodule QtLocation |
73 | \ingroup QtLocation-places |
74 | \ingroup QtLocation-places-requests |
75 | \since 5.6 |
76 | |
77 | \brief The QPlaceContentRequest class represents the parameters of a content request. |
78 | |
79 | The QPlaceContentRequest class is used in conjunction with a QPlaceManager to |
80 | retrieve rich content like images and reviews in a paginated fashion. |
81 | The following code would request a set of 5 images from the 10th index: |
82 | |
83 | \snippet places/requesthandler.h Content request |
84 | \dots |
85 | \dots |
86 | \snippet places/requesthandler.h Content handler |
87 | |
88 | \sa QPlaceContentReply |
89 | */ |
90 | |
91 | /*! |
92 | Constructs a new request object. |
93 | */ |
94 | QPlaceContentRequest::QPlaceContentRequest() |
95 | : d_ptr(new QPlaceContentRequestPrivate()) |
96 | { |
97 | } |
98 | |
99 | /*! |
100 | Constructs a copy of \a other. |
101 | */ |
102 | QPlaceContentRequest::QPlaceContentRequest(const QPlaceContentRequest &other) |
103 | : d_ptr(other.d_ptr) |
104 | { |
105 | } |
106 | |
107 | /*! |
108 | Destroys the request object |
109 | */ |
110 | QPlaceContentRequest::~QPlaceContentRequest() |
111 | { |
112 | } |
113 | |
114 | /*! |
115 | Assigns \a other to this content request and returns a reference |
116 | to this content request. |
117 | */ |
118 | QPlaceContentRequest &QPlaceContentRequest::operator= (const QPlaceContentRequest & other) |
119 | { |
120 | if (this == &other) |
121 | return *this; |
122 | |
123 | d_ptr = other.d_ptr; |
124 | return *this; |
125 | } |
126 | |
127 | /*! |
128 | Returns true if \a other is equal to this content request, |
129 | otherwise returns false. |
130 | */ |
131 | bool QPlaceContentRequest::operator== (const QPlaceContentRequest &other) const |
132 | { |
133 | Q_D(const QPlaceContentRequest); |
134 | return *d == *other.d_func(); |
135 | } |
136 | |
137 | /*! |
138 | Returns true if \a other is not equal to this content request, |
139 | otherwise returns false. |
140 | */ |
141 | bool QPlaceContentRequest::operator!= (const QPlaceContentRequest &other) const |
142 | { |
143 | Q_D(const QPlaceContentRequest); |
144 | return !(*d == *other.d_func()); |
145 | } |
146 | |
147 | /*! |
148 | Returns the type of content to be requested, for example reviews or images |
149 | */ |
150 | QPlaceContent::Type QPlaceContentRequest::contentType() const |
151 | { |
152 | Q_D(const QPlaceContentRequest); |
153 | return d->contentType; |
154 | } |
155 | |
156 | /*! |
157 | Sets the \a type of content to be requested. |
158 | */ |
159 | void QPlaceContentRequest::setContentType(QPlaceContent::Type type) |
160 | { |
161 | Q_D(QPlaceContentRequest); |
162 | d->contentType = type; |
163 | } |
164 | |
165 | /*! |
166 | Returns the identifier of the place content is to be fetched for. |
167 | */ |
168 | QString QPlaceContentRequest::placeId() const |
169 | { |
170 | Q_D(const QPlaceContentRequest); |
171 | return d->placeId; |
172 | } |
173 | |
174 | /*! |
175 | Sets the identifier of the place to fetch content for to \a identifier. |
176 | */ |
177 | void QPlaceContentRequest::setPlaceId(const QString &identifier) |
178 | { |
179 | Q_D(QPlaceContentRequest); |
180 | d->placeId = identifier; |
181 | } |
182 | |
183 | /*! |
184 | Returns backend specific additional content context associated with this place content request. |
185 | */ |
186 | QVariant QPlaceContentRequest::contentContext() const |
187 | { |
188 | Q_D(const QPlaceContentRequest); |
189 | return d->contentContext; |
190 | } |
191 | |
192 | /*! |
193 | Sets the content context to \a context. |
194 | |
195 | \note This method is intended to be used by geo service plugins when returning place content |
196 | results. |
197 | |
198 | The content context is used by backends to store additional content context related to the |
199 | content request. Other relevant fields should also be filled in. For example, if the content |
200 | request is for image content the content type should also be set with \l setContentType(). The |
201 | content context allows additional context to be kept which is not directly accessible via the |
202 | Qt Location API. |
203 | |
204 | The content context can be of any type storable in a QVariant. The value of the content context |
205 | is not intended to be used directly by applications. |
206 | */ |
207 | void QPlaceContentRequest::setContentContext(const QVariant &context) |
208 | { |
209 | Q_D(QPlaceContentRequest); |
210 | d->contentContext = context; |
211 | } |
212 | |
213 | /*! |
214 | Returns the maximum number of content items to retrieve. |
215 | |
216 | A negative value for limit means that it is undefined. It is left up to the backend |
217 | provider to choose an appropriate number of items to return. |
218 | |
219 | The default limit is -1. |
220 | */ |
221 | int QPlaceContentRequest::limit() const |
222 | { |
223 | Q_D(const QPlaceContentRequest); |
224 | return d->limit; |
225 | } |
226 | |
227 | /*! |
228 | Set the maximum number of content items to retrieve to |
229 | \a limit. |
230 | */ |
231 | void QPlaceContentRequest::setLimit(int limit) |
232 | { |
233 | Q_D(QPlaceContentRequest); |
234 | d->limit = limit; |
235 | } |
236 | |
237 | /*! |
238 | Clears the content request. |
239 | */ |
240 | void QPlaceContentRequest::clear() |
241 | { |
242 | Q_D(QPlaceContentRequest); |
243 | d->clear(); |
244 | } |
245 | |
246 | inline QPlaceContentRequestPrivate *QPlaceContentRequest::d_func() |
247 | { |
248 | return static_cast<QPlaceContentRequestPrivate *>(d_ptr.data()); |
249 | } |
250 | |
251 | inline const QPlaceContentRequestPrivate *QPlaceContentRequest::d_func() const |
252 | { |
253 | return static_cast<const QPlaceContentRequestPrivate *>(d_ptr.constData()); |
254 | } |
255 | |
256 | QT_END_NAMESPACE |
257 | |