Changeset View
Changeset View
Standalone View
Standalone View
src/lib/query.cpp
Show First 20 Lines • Show All 306 Lines • ▼ Show 20 Line(s) | 301 | { | |||
---|---|---|---|---|---|
307 | 307 | | |||
308 | if (!title.isEmpty()) | 308 | if (!title.isEmpty()) | ||
309 | urlQuery.addQueryItem(QStringLiteral("title"), title); | 309 | urlQuery.addQueryItem(QStringLiteral("title"), title); | ||
310 | 310 | | |||
311 | url.setQuery(urlQuery); | 311 | url.setQuery(urlQuery); | ||
312 | return url; | 312 | return url; | ||
313 | } | 313 | } | ||
314 | 314 | | |||
315 | static QString jsonQueryFromUrl(const QUrl &url) | ||||
316 | { | ||||
317 | const QString path = url.path(); | ||||
bruns: dayFilter/monthFilter/yearFilter are pointless, as they just default, but have to be parsed in… | |||||
318 | | ||||
319 | if (path == QLatin1String("/documents")) { | ||||
320 | return QStringLiteral("{\"type\":[\"Document\"]}"); | ||||
321 | } else if (path.endsWith(QLatin1String("/images"))) { | ||||
322 | return QStringLiteral("{\"type\":[\"Image\"]}"); | ||||
323 | } else if (path.endsWith(QLatin1String("/audio"))) { | ||||
324 | return QStringLiteral("{\"type\":[\"Audio\"]}"); | ||||
325 | } else if (path.endsWith(QLatin1String("/videos"))) { | ||||
326 | return QStringLiteral("{\"type\":[\"Video\"]}"); | ||||
327 | } | ||||
328 | | ||||
329 | return QString(); | ||||
bruns: can be replaced by `QStringLiteral("{\"type\":[\"Document\"]}")`, dito below. | |||||
330 | } | ||||
331 | | ||||
315 | Query Query::fromSearchUrl(const QUrl& url) | 332 | Query Query::fromSearchUrl(const QUrl& url) | ||
316 | { | 333 | { | ||
317 | if (url.scheme() != QLatin1String("baloosearch")) | 334 | if (url.scheme() != QLatin1String("baloosearch")) | ||
318 | return Query(); | 335 | return Query(); | ||
319 | 336 | | |||
337 | Query q; | ||||
320 | QUrlQuery urlQuery(url); | 338 | QUrlQuery urlQuery(url); | ||
339 | | ||||
340 | if (urlQuery.hasQueryItem(QStringLiteral("json"))) { | ||||
321 | QString jsonString = urlQuery.queryItemValue(QStringLiteral("json"), QUrl::FullyDecoded); | 341 | QString jsonString = urlQuery.queryItemValue(QStringLiteral("json"), QUrl::FullyDecoded); | ||
322 | return Query::fromJSON(jsonString.toUtf8()); | 342 | q = Query::fromJSON(jsonString.toUtf8()); | ||
bruns: just `return Query::fromJSON(jsonString.toUtf8());` | |||||
343 | } else if (urlQuery.hasQueryItem(QStringLiteral("query"))) { | ||||
bruns: remove the `else` | |||||
344 | QString queryString = urlQuery.queryItemValue(QStringLiteral("query"), QUrl::FullyDecoded); | ||||
345 | q.setSearchString(queryString); | ||||
bruns: just `return q;` | |||||
346 | } else { | ||||
bruns: remove `else` | |||||
347 | const QString jsonString = jsonQueryFromUrl(url); | ||||
348 | if (!jsonString.isEmpty()) { | ||||
349 | q = Query::fromJSON(jsonString.toUtf8()); | ||||
bruns: just `return Query::fromJSON(jsonString.toUtf8());` | |||||
350 | } | ||||
351 | } | ||||
352 | | ||||
353 | return q; | ||||
323 | } | 354 | } | ||
324 | 355 | | |||
325 | QString Query::titleFromQueryUrl(const QUrl& url) | 356 | QString Query::titleFromQueryUrl(const QUrl& url) | ||
326 | { | 357 | { | ||
327 | QUrlQuery urlQuery(url); | 358 | QUrlQuery urlQuery(url); | ||
328 | return urlQuery.queryItemValue(QStringLiteral("title"), QUrl::FullyDecoded); | 359 | return urlQuery.queryItemValue(QStringLiteral("title"), QUrl::FullyDecoded); | ||
329 | } | 360 | } | ||
330 | 361 | | |||
Show All 32 Lines |
dayFilter/monthFilter/yearFilter are pointless, as they just default, but have to be parsed in fromJSON.