digiKam
Loading...
Searching...
No Matches
itemquerybuilder.h
Go to the documentation of this file.
1/* ============================================================
2 *
3 * This file is a part of digiKam project
4 * https://www.digikam.org
5 *
6 * Date : 2007-03-22
7 * Description : Building complex database SQL queries from search descriptions
8 *
9 * SPDX-FileCopyrightText: 2005 by Renchi Raju <renchi dot raju at gmail dot com>
10 * SPDX-FileCopyrightText: 2007-2012 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de>
11 * SPDX-FileCopyrightText: 2012-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
12 *
13 * SPDX-License-Identifier: GPL-2.0-or-later
14 *
15 * ============================================================ */
16
17#pragma once
18
19// Qt includes
20
21#include <QVariant>
22#include <QString>
23
24// Local includes
25
26#include "coredbsearchxml.h"
27#include "itemqueryposthooks.h"
28#include "digikam_export.h"
29
30class QUrl;
31
32namespace Digikam
33{
34
35class DIGIKAM_DATABASE_EXPORT ItemQueryBuilder
36{
37public:
38
40
41 QString buildQuery(const QString& q, QList<QVariant>* boundValues, ItemQueryPostHooks* const hooks) const;
42 QString buildQueryFromUrl(const QUrl& url, QList<QVariant>* boundValues) const;
43 QString buildQueryFromXml(const QString& xml, QList<QVariant>* boundValues, ItemQueryPostHooks* const hooks) const;
44 QString convertFromUrlToXml(const QUrl& url) const;
45
50 void setImageTagPropertiesJoined(bool isJoined);
51
52public:
53
54 static void addSqlOperator(QString& sql, SearchXml::Operator op, bool isFirst);
55 static void addSqlRelation(QString& sql, SearchXml::Relation rel);
56 static void addNoEffectContent(QString& sql, SearchXml::Operator op);
57
58protected:
59
60 void buildGroup(QString& sql, SearchXmlCachingReader& reader,
61 QList<QVariant>* boundValues, ItemQueryPostHooks* const hooks) const;
62 bool buildField(QString& sql, SearchXmlCachingReader& reader, const QString& name,
63 QList<QVariant>* boundValues, ItemQueryPostHooks* const hooks) const;
64
65 QString possibleDate(const QString& str, bool& exact) const;
66
67protected:
68
69 QString m_longMonths[12];
70 QString m_shortMonths[12];
71 bool m_imageTagPropertiesJoined = false;
72};
73
74} // namespace Digikam
Definition itemquerybuilder.h:36
Definition itemqueryposthooks.h:54
Definition coredbsearchxml.h:366
Relation
Definition coredbsearchxml.h:56
Operator
Definition coredbsearchxml.h:38
Definition datefolderview.cpp:34