digiKam
Loading...
Searching...
No Matches
dataproviders.h
Go to the documentation of this file.
1/* ============================================================
2 *
3 * This file is a part of digiKam
4 *
5 * Date : 2013-05-18
6 * Description : Wrapper class for face recognition
7 *
8 * SPDX-FileCopyrightText: 2013 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de>
9 * SPDX-FileCopyrightText: 2014-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
10 * SPDX-FileCopyrightText: 2024 by Michael Miller <michael underscore miller at msn dot com>
11 *
12 * SPDX-License-Identifier: GPL-2.0-or-later
13 *
14 * ============================================================ */
15
16#pragma once
17
18// Qt includes
19
20#include <QImage>
21#include <QList>
22
23// Local includes
24
25#include "digikam_export.h"
26#include "identity.h"
27
28namespace Digikam
29{
30
36class DIGIKAM_GUI_EXPORT ImageListProvider
37{
38public:
39
40 ImageListProvider() = default;
41 virtual ~ImageListProvider() = default;
42
43 virtual int size() const = 0;
44 virtual bool atEnd() const = 0;
45 virtual void proceed(int steps = 1) = 0;
46 virtual QPair<QImage*, QString> image() = 0;
47 virtual QList<QPair<QImage*, QString> > images() = 0;
48 virtual void setImages(const QList<QPair<QImage*, QString> >&) = 0;
49 virtual void setUnpairedImages(const QList<QImage*>&) = 0;
50
51private:
52
53 Q_DISABLE_COPY(ImageListProvider)
54};
55
56// ----------------------------------------------------------------------------------------
57
61class DIGIKAM_GUI_EXPORT QListImageListProvider : public ImageListProvider
62{
63public:
64
66 ~QListImageListProvider() override;
67
68 void reset();
69
70public:
71
72 int size() const override;
73 bool atEnd() const override;
74 void proceed(int steps = 1) override;
75 QPair<QImage*, QString> image() override;
76 QList<QPair<QImage*, QString> > images() override;
77 void setImages(const QList<QPair<QImage*, QString> >&) override;
78 void setUnpairedImages(const QList<QImage*>&) override;
79
80public:
81
82 QList<QPair<QImage*, QString> > list;
83 QList<QPair<QImage*, QString> >::const_iterator it;
84
85private:
86
87 Q_DISABLE_COPY(QListImageListProvider)
88};
89
90// ----------------------------------------------------------------------------------------
91
92class DIGIKAM_GUI_EXPORT EmptyImageListProvider : public ImageListProvider
93{
94public:
95
98
99 int size() const override;
100 bool atEnd() const override;
101 void proceed(int steps = 1) override;
102 QPair<QImage*, QString> image() override;
103 QList<QPair<QImage*, QString> > images() override;
104 void setImages(const QList<QPair<QImage*, QString> >&) override;
105 void setUnpairedImages(const QList<QImage*>&) override;
106
107private:
108
109 Q_DISABLE_COPY(EmptyImageListProvider)
110};
111
112// ----------------------------------------------------------------------------------------
113
120class DIGIKAM_GUI_EXPORT TrainingDataProvider
121{
122public:
123
125 virtual ~TrainingDataProvider() = default;
126
132 virtual ImageListProvider* newImages(const Identity& identity) = 0;
133
138 virtual ImageListProvider* images(const Identity& identity) = 0;
139
140private:
141
142 Q_DISABLE_COPY(TrainingDataProvider)
143};
144
145} // namespace Digikam
Definition dataproviders.h:93
Definition identity.h:31
Definition dataproviders.h:37
virtual QList< QPair< QImage *, QString > > images()=0
virtual void proceed(int steps=1)=0
virtual void setImages(const QList< QPair< QImage *, QString > > &)=0
virtual ~ImageListProvider()=default
virtual QPair< QImage *, QString > image()=0
virtual int size() const =0
virtual bool atEnd() const =0
virtual void setUnpairedImages(const QList< QImage * > &)=0
Definition dataproviders.h:62
QList< QPair< QImage *, QString > > list
Definition dataproviders.h:82
QList< QPair< QImage *, QString > >::const_iterator it
Definition dataproviders.h:83
Definition dataproviders.h:121
virtual ImageListProvider * newImages(const Identity &identity)=0
virtual ~TrainingDataProvider()=default
virtual ImageListProvider * images(const Identity &identity)=0
Definition datefolderview.cpp:34