1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194 | /* ============================================================
*
* This file is a part of digiKam project
* https://www.digikam.org
*
* Date : 2015-06-05
* Description : DB Jobs Info
*
* SPDX-FileCopyrightText: 2015 by Mohamed_Anwer <m_dot_anwer at gmx dot com>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
* ============================================================ */
#pragma once
// Qt includes
#include <QString>
#include <QSet>
// Local includes
#include "coredburl.h"
#include "digikam_export.h"
#include "haariface.h"
namespace Digikam
{
class DIGIKAM_DATABASE_EXPORT DBJobInfo
{
public:
void setFoldersJob();
bool isFoldersJob() const;
void setListAvailableImagesOnly();
bool isListAvailableImagesOnly() const;
void setRecursive();
bool isRecursive() const;
protected:
DBJobInfo() = default;
private:
bool m_folders = false;
bool m_listAvailableImagesOnly = false;
bool m_recursive = false;
};
// ---------------------------------------------
class DIGIKAM_DATABASE_EXPORT AlbumsDBJobInfo : public DBJobInfo
{
public:
AlbumsDBJobInfo();
void setAlbumRootId(int id);
int albumRootId();
void setAlbum(const QString& album);
QString album();<--- Function 'album()' should return member 'm_album' by const reference.
private:
int m_albumRootId = -1;
QString m_album;
};
// ---------------------------------------------
class DIGIKAM_DATABASE_EXPORT TagsDBJobInfo : public DBJobInfo
{
public:
TagsDBJobInfo();
void setFaceFoldersJob();
bool isFaceFoldersJob() const;
void setSpecialTag(const QString& tag);
QString specialTag() const;<--- Function 'specialTag()' should return member 'm_specialTag' by const reference.
void setTagsIds(const QList<int>& tagsIds);
QList<int> tagsIds() const;<--- Function 'tagsIds()' should return member 'm_tagsIds' by const reference.
private:
bool m_faceFolders = false;
QString m_specialTag;
QList<int> m_tagsIds;
};
// ---------------------------------------------
class DIGIKAM_DATABASE_EXPORT GPSDBJobInfo : public DBJobInfo
{
public:
GPSDBJobInfo();
void setDirectQuery();
bool isDirectQuery() const;
void setLat1(qreal lat);
qreal lat1() const;
void setLng1(qreal lng);
qreal lng1() const;
void setLat2(qreal lat);
qreal lat2() const;
void setLng2(qreal lng);
qreal lng2() const;
private:
bool m_directQuery = false;
qreal m_lat1 = 0.0;
qreal m_lng1 = 0.0;
qreal m_lat2 = 0.0;
qreal m_lng2 = 0.0;
};
// ---------------------------------------------
class DIGIKAM_DATABASE_EXPORT SearchesDBJobInfo : public DBJobInfo
{
public:
explicit SearchesDBJobInfo(QList<int>&& searchIds);
SearchesDBJobInfo(QSet<qlonglong>&& imageIds,
bool isAlbumUpdate,
HaarIface::RefImageSelMethod referenceSelectionMethod,
QSet<qlonglong>&& refImageIds);
bool isDuplicatesJob() const;
bool isAlbumUpdate() const;
const QList<int>& searchIds() const;
const QSet<qlonglong>& imageIds() const;
HaarIface::RefImageSelMethod refImageSelectionMethod() const;
const QSet<qlonglong>& refImageIds() const;
void setMinThreshold(double t);
double minThreshold() const;
void setMaxThreshold(double t);
double maxThreshold() const;
void setSearchResultRestriction(int type);
int searchResultRestriction() const;
public:
bool m_duplicates = false;
bool m_albumUpdate = false;
int m_searchResultRestriction = 0;
QList<int> m_searchIds;
QSet<qlonglong> m_imageIds;
double m_minThreshold = 0.4;
double m_maxThreshold = 1.0;
QSet<qlonglong> m_refImageIds; ///< Image ids of the reference images if duplicates are available
HaarIface::RefImageSelMethod m_refImageSelectionMethod = HaarIface::RefImageSelMethod::OlderOrLarger;
};
// ---------------------------------------------
class DIGIKAM_DATABASE_EXPORT DatesDBJobInfo : public DBJobInfo
{
public:
DatesDBJobInfo();
void setStartDate(const QDate& date);
QDate startDate() const;
void setEndDate(const QDate& date);
QDate endDate() const;
private:
QDate m_startDate;
QDate m_endDate;
};
} // namespace Digikam
|