1 // SPDX-FileCopyrightText: 2003-2019 The KPhotoAlbum Development Team
2 // SPDX-FileCopyrightText: 2021 Johannes Zarl-Zierl <johannes@zarl-zierl.at>
3 //
4 // SPDX-License-Identifier: GPL-2.0-or-later
5 
6 #ifndef EXIFSEARCHDIALOG_H
7 #define EXIFSEARCHDIALOG_H
8 
9 #include "RangeWidget.h"
10 #include "SearchDialogSettings.h"
11 
12 #include <kpaexif/SearchInfo.h>
13 
14 #include <KPageDialog>
15 
16 class QSpinBox;
17 class QGridLayout;
18 
19 namespace Exif
20 {
21 
22 class SearchDialog : public KPageDialog
23 {
24     Q_OBJECT
25 
26 public:
27     explicit SearchDialog(const Database *exifDB, QWidget *parent);
28     Exif::SearchInfo info();
29 
30 protected:
31     void makeISO(QGridLayout *layout);
32     QWidget *makeExposureProgram(QWidget *parent);
33     QWidget *makeOrientation(QWidget *parent);
34     QWidget *makeMeteringMode(QWidget *parent);
35     QWidget *makeContrast(QWidget *parent);
36     QWidget *makeSharpness(QWidget *parent);
37     QWidget *makeSaturation(QWidget *parent);
38     void makeExposureTime(QGridLayout *layout);
39     RangeWidget *makeFNumber(const QString &text, const QString &key, QGridLayout *layout, int row);
40     QWidget *makeCamera();
41     QWidget *makeLens();
42 
43 protected slots:
44     void fromFocalLengthChanged(int);
45     void toFocalLengthChanged(int);
46 
47 private:
48     const Exif::Database *m_exifDB;
49     Exif::RangeWidget *m_iso;
50     Exif::RangeWidget *m_exposureTime;
51     Exif::RangeWidget *m_fNumber;
52     Settings<int> m_exposureProgram;
53     Settings<int> m_orientation;
54     Settings<int> m_meteringMode;
55     Settings<int> m_contrast;
56     Settings<int> m_sharpness;
57     Settings<int> m_saturation;
58     Settings<Database::Camera> m_cameras;
59     Settings<Database::Lens> m_lenses;
60     QSpinBox *m_fromFocalLength;
61     QSpinBox *m_toFocalLength;
62 };
63 }
64 
65 #endif /* EXIFSEARCHDIALOG_H */
66 
67 // vi:expandtab:tabstop=4 shiftwidth=4:
68