digiKam
fieldquerybuilder.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 : database SQL queries helper class
8  *
9  * Copyright (C) 2007-2012 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de>
10  * Copyright (C) 2012-2022 by Gilles Caulier <caulier dot gilles at gmail dot com>
11  *
12  * This program is free software; you can redistribute it
13  * and/or modify it under the terms of the GNU General
14  * Public License as published by the Free Software Foundation;
15  * either version 2, or (at your option)
16  * any later version.
17  *
18  * This program is distributed in the hope that it will be useful,
19  * but WITHOUT ANY WARRANTY; without even the implied warranty of
20  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21  * GNU General Public License for more details.
22  *
23  * ============================================================ */
24 
25 #ifndef DIGIKAM_FIELD_QUERY_BUILDER_H
26 #define DIGIKAM_FIELD_QUERY_BUILDER_H
27 
28 // Qt includes
29 
30 #include <QList>
31 #include <QString>
32 
33 // Local includes
34 
35 #include "coredbsearchxml.h"
36 
37 namespace Digikam
38 {
39 
40 class ItemQueryPostHooks;
41 
42 class Q_DECL_HIDDEN FieldQueryBuilder
43 {
44 public:
45 
46  FieldQueryBuilder(QString& sql,
47  SearchXmlCachingReader& reader,
48  QList<QVariant>* boundValues,
49  ItemQueryPostHooks* const hooks,
50  SearchXml::Relation relation);
51 
52 public:
53 
54  QString& sql;
59 
60 public:
61 
62  QString prepareForLike(const QString& str) const;
63 
64  void addIntField(const QString& name);
65  void addLongField(const QString& name);
66  void addDoubleField(const QString& name);
67  void addStringField(const QString& name);
68  void addDateField(const QString& name);
69  void addChoiceIntField(const QString& name);
70  void addLongListField(const QString& name);
71  void addIntBitmaskField(const QString& name);
72  void addChoiceStringField(const QString& name);
73  void addPosition();
74  void addRectanglePositionSearch(double lon1, double lat1, double lon2, double lat2) const;
75 };
76 
77 } // namespace Digikam
78 
79 #endif // DIGIKAM_FIELD_QUERY_BUILDER_H
Definition: fieldquerybuilder.h:43
QList< QVariant > * boundValues
Definition: fieldquerybuilder.h:56
SearchXml::Relation relation
Definition: fieldquerybuilder.h:58
SearchXmlCachingReader & reader
Definition: fieldquerybuilder.h:55
ItemQueryPostHooks * hooks
Definition: fieldquerybuilder.h:57
QString & sql
Definition: fieldquerybuilder.h:54
Definition: itemqueryposthooks.h:60
Definition: coredbsearchxml.h:376
Relation
Definition: coredbsearchxml.h:66
Definition: datefolderview.cpp:43