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 | /* ============================================================
*
* This file is a part of digiKam project
* https://www.digikam.org
*
* Date : 2013-03-14
* Description : Table view column helpers: Photo properties
*
* SPDX-FileCopyrightText: 2017-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
* SPDX-FileCopyrightText: 2013 by Michael G. Hansen <mike at mghansen dot de>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
* ============================================================ */
#pragma once
// Qt includes
#include <QStringList>
// Local includes
#include "tableview_columnfactory.h"
class QComboBox;
namespace Digikam
{
namespace TableViewColumns
{
class ColumnPhotoProperties : public TableViewColumn
{
Q_OBJECT
public:
enum SubColumn
{
SubColumnCameraMaker = 0,
SubColumnCameraModel = 1,
SubColumnLens = 2,
SubColumnAperture = 3,
SubColumnFocal = 4,
SubColumnExposure = 5,
SubColumnSensitivity = 6,
SubColumnModeProgram = 7,
SubColumnFlash = 8,
SubColumnWhiteBalance = 9
};
public:
explicit ColumnPhotoProperties(TableViewShared* const tableViewShared,
const TableViewColumnConfiguration& pConfiguration,
const SubColumn pSubColumn,
QObject* const parent = nullptr);
~ColumnPhotoProperties() override = default;
QString getTitle() const override;
ColumnFlags getColumnFlags() const override;
QVariant data(TableViewModel::Item* const item, const int role) const override;
ColumnCompareResult compare(TableViewModel::Item* const itemA, TableViewModel::Item* const itemB) const override;
TableViewColumnConfigurationWidget* getConfigurationWidget(QWidget* const parentWidget) const override;
void setConfiguration(const TableViewColumnConfiguration& newConfiguration) override;
static TableViewColumnDescription getDescription();<--- Derived function 'ColumnPhotoProperties::getDescription'
static QStringList getSubColumns();
private:
SubColumn subColumn = SubColumnExposure;
};
// ----------------------------------------------------------------------------------------------------------------------
class ColumnPhotoConfigurationWidget : public TableViewColumnConfigurationWidget
{
Q_OBJECT
public:
explicit ColumnPhotoConfigurationWidget(TableViewShared* const sharedObject,
const TableViewColumnConfiguration& columnConfiguration,
QWidget* const parentWidget);
~ColumnPhotoConfigurationWidget() override = default;
TableViewColumnConfiguration getNewConfiguration() override;
private Q_SLOTS:
void slotUpdateUI();
private:
ColumnPhotoProperties::SubColumn subColumn = ColumnPhotoProperties::SubColumnExposure;
QComboBox* selectorExposureTimeFormat = nullptr;
QComboBox* selectorExposureTimeUnit = nullptr;
};
} // namespace TableViewColumns
} // namespace Digikam
|