Krita Source Code Documentation
Loading...
Searching...
No Matches
KisMetaDataEditor Class Reference

#include <kis_meta_data_editor.h>

+ Inheritance diagram for KisMetaDataEditor:

Classes

struct  Private
 

Public Slots

void accept () override
 

Public Member Functions

 KisMetaDataEditor (QWidget *parent, KisMetaData::Store *store)
 
 ~KisMetaDataEditor () override
 

Private Attributes

Private *const d
 

Detailed Description

Definition at line 44 of file kis_meta_data_editor.h.

Constructor & Destructor Documentation

◆ KisMetaDataEditor()

KisMetaDataEditor::KisMetaDataEditor ( QWidget * parent,
KisMetaData::Store * store )

Definition at line 69 of file kis_meta_data_editor.cc.

70 : KPageDialog(parent)
71 , d(new Private)
72{
74 d->store = store;
75
76 // Add the Dublin Core widget
77 {
78 WdgDublinCore *wdg = new WdgDublinCore(this);
79
80 {
81 // copy from dublin core
82 const KisMetaData::Schema *schema =
84
85 Q_ASSERT(schema);
86
87 GET_DC_VALUE(creator, text, &QLineEdit::textEdited);
88 GET_DC_VALUE(publisher, text, &QLineEdit::textEdited);
89 GET_DC_VALUE(rights, text, &QLineEdit::textEdited);
90 GET_DC_VALUE(date, date, &QDateTimeEdit::editingFinished);
91 GET_DC_VALUE(title, text, &QLineEdit::textEdited);
92 GET_DC_VALUE(description, plainText, &QTextEdit::textChanged);
93 }
94
95 wdg->date->setDisplayFormat(QLocale().dateFormat());
96
97 KPageWidgetItem *page = new KPageWidgetItem(wdg, i18n("Dublin Core"));
98 page->setIcon(KisIconUtils::loadIcon("user-identity"));
99 addPage(page);
100 }
101
102 // Add the Exif widget
103 {
104 WdgExif *wdg = new WdgExif(this);
105
106 {
107 // copy from exif
108 const KisMetaData::Schema *schema =
110
111 Q_ASSERT(schema);
112
113 /* exposure tab */
114 GET_EXIF_VALUE(BrightnessValue, text, &QLineEdit::textEdited);
115 GET_EXIF_VALUE(ExposureTime, text, &QLineEdit::textEdited);
116 GET_EXIF_ARRAY_VALUE(ISOSpeedRatings, 0, value, QOverload<int>::of(&KisIntParseSpinBox::valueChanged));
117 GET_EXIF_VALUE(ExposureMode, currentIndex, QOverload<int>::of(&QComboBox::activated));
118 GET_EXIF_VALUE(ExposureProgram, currentIndex, QOverload<int>::of(&QComboBox::activated));
119 GET_EXIF_VALUE(ExposureIndex, text, &QLineEdit::textEdited);
120 GET_EXIF_VALUE(ExposureBiasValue, text, &QLineEdit::textEdited);
121 GET_EXIF_VALUE(ApertureValue, text, &QLineEdit::textEdited);
122 GET_EXIF_VALUE(ShutterSpeedValue, text, &QLineEdit::textEdited);
123 GET_EXIF_VALUE(FNumber, text, &QLineEdit::textEdited);
124 /* lens tab */
125 GET_EXIF_VALUE(FocalLengthIn35mmFilm, value, QOverload<int>::of(&QSpinBox::valueChanged));
126 GET_EXIF_VALUE(FocalLength, value, QOverload<int>::of(&QSpinBox::valueChanged));
127 GET_EXIF_VALUE(MaxApertureValue, text, &QLineEdit::textEdited);
128 /* autofocus tab */
129 GET_EXIF_VALUE(MeteringMode, currentIndex, QOverload<int>::of(&QComboBox::activated));
130 GET_EXIF_VALUE(SubjectDistance, text, &QLineEdit::textEdited);
131 GET_EXIF_VALUE(SubjectDistanceRange, currentIndex, QOverload<int>::of(&QComboBox::activated));
132 /* flash */
133 GET_EXIF_STRUCTURE_VALUE(Flash, Fired, isChecked, QOverload<bool>::of(&QCheckBox::toggled));
134 GET_EXIF_STRUCTURE_VALUE(Flash, StrobeReturn, currentIndex, QOverload<int>::of(&QComboBox::activated));
135 GET_EXIF_STRUCTURE_VALUE(Flash, Mode, currentIndex, QOverload<int>::of(&QComboBox::activated));
136 GET_EXIF_STRUCTURE_VALUE(Flash, Function, isChecked, QOverload<bool>::of(&QCheckBox::toggled));
137 GET_EXIF_STRUCTURE_VALUE(Flash, RedEyeMode, isChecked, QOverload<bool>::of(&QCheckBox::toggled));
138 GET_EXIF_VALUE(FlashEnergy, text, &QLineEdit::textEdited);
139 /* postprocessing tab */
140 GET_EXIF_VALUE(GainControl, currentIndex, QOverload<int>::of(&QComboBox::activated));
141 GET_EXIF_VALUE(LightSource, currentIndex, QOverload<int>::of(&QComboBox::activated));
142 GET_EXIF_VALUE(Sharpness, currentIndex, QOverload<int>::of(&QComboBox::activated));
143 GET_EXIF_VALUE(Contrast, currentIndex, QOverload<int>::of(&QComboBox::activated));
144 GET_EXIF_VALUE(WhiteBalance, currentIndex, QOverload<int>::of(&QComboBox::activated));
145 /* misc tab */
146 GET_EXIF_VALUE(SceneCaptureType, currentIndex, QOverload<int>::of(&QComboBox::activated));
147 GET_EXIF_VALUE(SensingMethod, currentIndex, QOverload<int>::of(&QComboBox::activated));
148 }
149
150 {
151 // copy from exif (tiff schema)
152 const KisMetaData::Schema *schema =
154
155 Q_ASSERT(schema);
156
157 /* misc */
158 GET_EXIF_VALUE(Make, text, &QLineEdit::textEdited);
159 GET_EXIF_VALUE(Model, text, &QLineEdit::textEdited);
160 }
161
162 KPageWidgetItem *page = new KPageWidgetItem(wdg, i18n("Exif"));
163 page->setIcon(KisIconUtils::loadIcon("camera-photo"));
164 addPage(page);
165 }
166
167 {
168 // Add the list page
169 QTableView *tableView = new QTableView;
171 tableView->setModel(model);
172 tableView->verticalHeader()->setVisible(false);
173 tableView->resizeColumnsToContents();
174 KPageWidgetItem *page = new KPageWidgetItem(tableView, i18n("List"));
175 page->setIcon(KisIconUtils::loadIcon("format-list-unordered"));
176 addPage(page);
177 }
178}
float value(const T *src, size_t ch)
static KisMetaData::SchemaRegistry * instance()
const Schema * schemaFromUri(const QString &uri) const
static const QString TIFFSchemaUri
static const QString DublinCoreSchemaUri
static const QString EXIFSchemaUri
#define GET_EXIF_STRUCTURE_VALUE(entryName, structureField, wdgPropertyName, editorSignal)
#define GET_EXIF_ARRAY_VALUE(entryName, arrayIndex, wdgPropertyName, editorSignal)
#define GET_DC_VALUE(entryName, wdgPropertyName, editorSignal)
#define GET_EXIF_VALUE(entryName, wdgPropertyName, editorSignal)
QIcon loadIcon(const QString &name)
KisMetaData::Store * temporaryStorage

References d, KisMetaData::Schema::DublinCoreSchemaUri, KisMetaData::Schema::EXIFSchemaUri, GET_DC_VALUE, GET_EXIF_ARRAY_VALUE, GET_EXIF_STRUCTURE_VALUE, GET_EXIF_VALUE, KisMetaData::SchemaRegistry::instance(), KisIconUtils::loadIcon(), KisMetaData::SchemaRegistry::schemaFromUri(), KisMetaDataEditor::Private::store, KisMetaDataEditor::Private::temporaryStorage, KisMetaData::Schema::TIFFSchemaUri, and value().

◆ ~KisMetaDataEditor()

KisMetaDataEditor::~KisMetaDataEditor ( )
override

Definition at line 180 of file kis_meta_data_editor.cc.

181{
182 Q_FOREACH (KisEntryEditor *e, d->entryHandlers) {
183 delete e;
184 }
185 delete d->temporaryStorage;
186 delete d;
187}
QList< KisEntryEditor * > entryHandlers

References d, KisMetaDataEditor::Private::entryHandlers, and KisMetaDataEditor::Private::temporaryStorage.

Member Function Documentation

◆ accept

void KisMetaDataEditor::accept ( )
overrideslot

Definition at line 189 of file kis_meta_data_editor.cc.

190{
191 KPageDialog::accept();
192
194}
void copyFrom(const Store *store)

References KisMetaData::Store::copyFrom(), d, KisMetaDataEditor::Private::store, and KisMetaDataEditor::Private::temporaryStorage.

Member Data Documentation

◆ d

Private* const KisMetaDataEditor::d
private

Definition at line 55 of file kis_meta_data_editor.h.


The documentation for this class was generated from the following files: