digiKam
Loading...
Searching...
No Matches
dbjob.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 : 2015-06-01
7 * Description : DB Jobs for listing and scanning
8 *
9 * SPDX-FileCopyrightText: 2015 by Mohamed_Anwer <m_dot_anwer at gmx dot com>
10 *
11 * SPDX-License-Identifier: GPL-2.0-or-later
12 *
13 * ============================================================ */
14
15#pragma once
16
17// Local includes
18
19#include "dbjobinfo.h"
20#include "itemlisterrecord.h"
22#include "actionthreadbase.h"
23#include "digikam_export.h"
24
25namespace Digikam
26{
27
28class DuplicatesProgressObserver;
29
30class DIGIKAM_DATABASE_EXPORT DBJob : public ActionJob
31{
32 Q_OBJECT
33
34protected:
35
36 DBJob();
37 ~DBJob() override = default;
38
39Q_SIGNALS:
40
41 void data(const QList<ItemListerRecord>& records);
42 void error(const QString& err);
43
44private:
45
46 // Disable
47 explicit DBJob(QObject*) = delete;
48};
49
50// ----------------------------------------------
51
52class DIGIKAM_DATABASE_EXPORT AlbumsJob : public DBJob
53{
54 Q_OBJECT
55
56public:
57
58 explicit AlbumsJob(const AlbumsDBJobInfo& jobInfo);
59 ~AlbumsJob() override = default;
60
61protected:
62
63 void run() override;
64
65Q_SIGNALS:
66
67 void foldersData(const QHash<int, int>&);
68
69private:
70
71 AlbumsDBJobInfo m_jobInfo;
72
73private:
74
75 // Disable
76 AlbumsJob(QObject*);
77};
78
79// ----------------------------------------------
80
81class DIGIKAM_DATABASE_EXPORT DatesJob : public DBJob
82{
83 Q_OBJECT
84
85public:
86
87 explicit DatesJob(const DatesDBJobInfo& jobInfo);
88 ~DatesJob() override = default;
89
90protected:
91
92 void run() override;
93
94Q_SIGNALS:
95
96 void foldersData(const QHash<QDateTime, int>& datesStatMap);
97
98private:
99
100 DatesDBJobInfo m_jobInfo;
101
102private:
103
104 // Disable
105 DatesJob(QObject*) = delete;
106};
107
108// ----------------------------------------------
109
110class DIGIKAM_DATABASE_EXPORT GPSJob : public DBJob
111{
112 Q_OBJECT
113
114public:
115
116 explicit GPSJob(const GPSDBJobInfo& jobInfo);
117 ~GPSJob() override = default;
118
119protected:
120
121 void run() override;
122
123Q_SIGNALS:
124
125 void directQueryData(const QList<QVariant>& data);
126
127private:
128
129 GPSDBJobInfo m_jobInfo;
130
131private:
132
133 // Disable
134 GPSJob(QObject*);
135};
136
137// ----------------------------------------------
138
139class DIGIKAM_DATABASE_EXPORT TagsJob : public DBJob
140{
141 Q_OBJECT
142
143public:
144
145 explicit TagsJob(const TagsDBJobInfo& jobInfo);
146 ~TagsJob() override = default;
147
148protected:
149
150 void run() override;
151
152Q_SIGNALS:
153
154 void foldersData(const QHash<int, int>& data);
155 void faceFoldersData(const QMap<QString, QHash<int, int> >& data);
156
157private:
158
159 TagsDBJobInfo m_jobInfo;
160
161private:
162
163 // Disable
164 TagsJob(QObject*);
165};
166
167// ----------------------------------------------
168
169class DIGIKAM_DATABASE_EXPORT SearchesJob : public DBJob
170{
171 Q_OBJECT
172
173public:
174
175 explicit SearchesJob(const SearchesDBJobInfo& jobInfo);
176 SearchesJob(const SearchesDBJobInfo& jobInfo,
177 const QSet<qlonglong>::const_iterator& begin,
178 const QSet<qlonglong>::const_iterator& end,
179 HaarIface* iface);
180
181 ~SearchesJob() override = default;
182
183 bool isCanceled() const;
184
185Q_SIGNALS:
186
187 void signalImageProcessed(const ItemInfo&, const QImage&, int dup);
189
190protected:
191
192 void run() override;
193
194private:
195
196 SearchesDBJobInfo m_jobInfo;
197 QSet<qlonglong>::const_iterator m_begin;
198 QSet<qlonglong>::const_iterator m_end;
199 HaarIface* m_iface = nullptr;
200
201private:
202
203 // Disable
204 SearchesJob(QObject*);
205
206 void runSearches();
207 void runFindDuplicates();
208};
209
210} // namespace Digikam
Definition actionthreadbase.h:36
Definition dbjobinfo.h:58
Definition dbjob.h:53
void foldersData(const QHash< int, int > &)
~AlbumsJob() override=default
Definition dbjob.h:31
~DBJob() override=default
void data(const QList< ItemListerRecord > &records)
void error(const QString &err)
Definition dbjobinfo.h:177
Definition dbjob.h:82
void foldersData(const QHash< QDateTime, int > &datesStatMap)
~DatesJob() override=default
Definition dbjobinfo.h:102
Definition dbjob.h:111
~GPSJob() override=default
void directQueryData(const QList< QVariant > &data)
Definition haariface.h:65
QMap< qlonglong, QPair< double, QList< qlonglong > > > DuplicatesResultsMap
Definition haariface.h:108
Definition iteminfo.h:68
Definition dbjobinfo.h:134
Definition dbjob.h:170
~SearchesJob() override=default
void signalDuplicatesResults(const HaarIface::DuplicatesResultsMap &)
void signalImageProcessed(const ItemInfo &, const QImage &, int dup)
Definition dbjobinfo.h:78
Definition dbjob.h:140
void foldersData(const QHash< int, int > &data)
~TagsJob() override=default
void faceFoldersData(const QMap< QString, QHash< int, int > > &data)
Definition datefolderview.cpp:34