digiKam
Loading...
Searching...
No Matches
dbjobsthread.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 thread 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// Qt includes
18
19#include <QImage>
20
21// Local includes
22
23#include "dbengineparameters.h"
24#include "dbjobinfo.h"
25#include "dbjob.h"
26#include "haariface.h"
27#include "itemlisterrecord.h"
28#include "actionthreadbase.h"
29#include "digikam_export.h"
30
31namespace Digikam
32{
33
34class DBJob;
35
36class DIGIKAM_DATABASE_EXPORT DBJobsThread : public ActionThreadBase
37{
38 Q_OBJECT
39
40public:
41
42 explicit DBJobsThread(QObject* const parent);
43 ~DBJobsThread() override = default;
44
49 bool hasErrors();
50
55 QList<QString>& errorsList();
56
57protected:
58
63 void connectFinishAndErrorSignals(DBJob* const j);
64
65public Q_SLOTS:
66
71 void error(const QString& errString);
72
73Q_SIGNALS:
74
75 void finished();
76 void data(const QList<ItemListerRecord>& records);
77
78private:
79
80 QStringList m_errorsList;
81};
82
83// ---------------------------------------------
84
85class DIGIKAM_DATABASE_EXPORT AlbumsDBJobsThread : public DBJobsThread
86{
87 Q_OBJECT
88
89public:
90
91 explicit AlbumsDBJobsThread(QObject* const parent);
92 ~AlbumsDBJobsThread() override = default;
93
98 void albumsListing(const AlbumsDBJobInfo& info);
99
100Q_SIGNALS:
101
102 void foldersData(const QHash<int, int>&);
103 void faceFoldersData(const QMap<QString, QHash<int, int> >&);
104};
105
106// ---------------------------------------------
107
108class DIGIKAM_DATABASE_EXPORT TagsDBJobsThread : public DBJobsThread
109{
110 Q_OBJECT
111
112public:
113
114 explicit TagsDBJobsThread(QObject* const parent);
115 ~TagsDBJobsThread() override = default;
116
121 void tagsListing(const TagsDBJobInfo& info);
122
123Q_SIGNALS:
124
125 void foldersData(const QHash<int, int>&);
126 void faceFoldersData(const QMap<QString, QHash<int, int> >&);
127};
128
129// ---------------------------------------------
130
131class DIGIKAM_DATABASE_EXPORT DatesDBJobsThread : public DBJobsThread
132{
133 Q_OBJECT
134
135public:
136
137 explicit DatesDBJobsThread(QObject* const parent);
138 ~DatesDBJobsThread() override = default;
139
144 void datesListing(const DatesDBJobInfo& info);
145
146Q_SIGNALS:
147
148 void foldersData(const QHash<QDateTime, int>&);
149};
150
151// ---------------------------------------------
152
153class DIGIKAM_DATABASE_EXPORT SearchesDBJobsThread : public DBJobsThread
154{
155 Q_OBJECT
156
157public:
158
159 explicit SearchesDBJobsThread(QObject* const parent);
160 ~SearchesDBJobsThread() override = default;
161
166 void searchesListing(const SearchesDBJobInfo& info);
167
168public Q_SLOTS:
169
170 void slotImageProcessed(const ItemInfo&, const QImage&, int dup);
171 void slotDuplicatesResults(const HaarIface::DuplicatesResultsMap&);
172
173Q_SIGNALS:
174
175 void signalProgress(int percentage, const ItemInfo& inf, const QImage& img, int dup);
176
177private:
179 QScopedPointer<HaarIface> m_haarIface;
180 bool m_isAlbumUpdate = false;
181 int m_processedImages = 0;
182 int m_totalImages2Scan = 0;
183};
184
185// ---------------------------------------------
186
187class DIGIKAM_DATABASE_EXPORT GPSDBJobsThread : public DBJobsThread
188{
189 Q_OBJECT
190
191public:
192
193 explicit GPSDBJobsThread(QObject* const parent);
194 ~GPSDBJobsThread() override = default;
195
200 void GPSListing(const GPSDBJobInfo& info);
201
202Q_SIGNALS:
203
204 void directQueryData(const QList<QVariant>& data);
205};
206
207} // namespace Digikam
Definition actionthreadbase.h:100
Definition dbjobinfo.h:58
Definition dbjobsthread.h:86
void faceFoldersData(const QMap< QString, QHash< int, int > > &)
~AlbumsDBJobsThread() override=default
void foldersData(const QHash< int, int > &)
Definition dbjob.h:31
Definition dbjobsthread.h:37
~DBJobsThread() override=default
void data(const QList< ItemListerRecord > &records)
Definition dbjobinfo.h:177
Definition dbjobsthread.h:132
~DatesDBJobsThread() override=default
void foldersData(const QHash< QDateTime, int > &)
Definition dbjobinfo.h:102
Definition dbjobsthread.h:188
~GPSDBJobsThread() override=default
void directQueryData(const QList< QVariant > &data)
QMap< qlonglong, QPair< double, QList< qlonglong > > > DuplicatesResultsMap
Definition haariface.h:108
Definition iteminfo.h:68
Definition dbjobinfo.h:134
Definition dbjobsthread.h:154
~SearchesDBJobsThread() override=default
void signalProgress(int percentage, const ItemInfo &inf, const QImage &img, int dup)
Definition dbjobinfo.h:78
Definition dbjobsthread.h:109
void faceFoldersData(const QMap< QString, QHash< int, int > > &)
~TagsDBJobsThread() override=default
void foldersData(const QHash< int, int > &)
Definition datefolderview.cpp:34