[Digikam-devel] [Bug 103255] wish: *add* (not edit) EXIF headers like date, comment etc
Gilles Caulier
caulier.gilles at free.fr
Wed Oct 25 11:39:23 BST 2006
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
http://bugs.kde.org/show_bug.cgi?id=103255
------- Additional Comments From caulier.gilles free fr 2006-10-25 12:39 -------
SVN commit 598987 by cgilles:
kipiplugins from trunk : MetadataEdit plugin: Exif Device informations editor: add Scene Capture Type settings
CCBUGS: 103255
M +35 -3 exifdevice.cpp
--- trunk/extragear/libs/kipi-plugins/metadataedit/exifdevice.cpp #598986:598987
@ -66,11 +66,13 @
ISOSpeedCheck = 0;
meteringModeCheck = 0;
sensingMethodCheck = 0;
+ sceneTypeCheck = 0;
exposureProgramCB = 0;
exposureModeCB = 0;
ISOSpeedCB = 0;
meteringModeCB = 0;
sensingMethodCB = 0;
+ sceneTypeCB = 0;
exposureTimeNumEdit = 0;
exposureTimeDenEdit = 0;
exposureBiasEdit = 0;
@ -88,6 +90,7 @
QCheckBox *ISOSpeedCheck;
QCheckBox *meteringModeCheck;
QCheckBox *sensingMethodCheck;
+ QCheckBox *sceneTypeCheck;
QComboBox *deviceTypeCB;
QComboBox *exposureProgramCB;
@ -95,6 +98,7 @
QComboBox *ISOSpeedCB;
QComboBox *meteringModeCB;
QComboBox *sensingMethodCB;
+ QComboBox *sceneTypeCB;
KLineEdit *makeEdit;
KLineEdit *modelEdit;
@ -110,7 +114,7 @
{
d = new EXIFDevicePriv;
- QGridLayout* grid = new QGridLayout(parent, 11, 5, KDialog::spacingHint());
+ QGridLayout* grid = new QGridLayout(parent, 12, 5, KDialog::spacingHint());
// EXIF only accept printable Ascii char.
QRegExp asciiRx("[\x20-\x7F]+$");
@ -286,13 +290,26 @
// --------------------------------------------------------
+ d->sceneTypeCheck = new QCheckBox(i18n("Scene capture type:"), parent);
+ d->sceneTypeCB = new QComboBox(false, parent);
+ d->sceneTypeCB->insertItem(i18n("Standard"), 0);
+ d->sceneTypeCB->insertItem(i18n("Landscape"), 1);
+ d->sceneTypeCB->insertItem(i18n("Portrait"), 2);
+ d->sceneTypeCB->insertItem(i18n("Night scene"), 3);
+ grid->addMultiCellWidget(d->sceneTypeCheck, 10, 10, 0, 0);
+ grid->addMultiCellWidget(d->sceneTypeCB, 10, 10, 2, 5);
+ QWhatsThis::add(d->sceneTypeCB, i18n("<p>Select here the type of scene used by the camera "
+ "to take the picture."));
+
+ // --------------------------------------------------------
+
QLabel *exifNote = new QLabel(i18n("<b>Note: EXIF text tags annoted by (*) only support printable "
"ASCII characters set.</b>"), parent);
- grid->addMultiCellWidget(exifNote, 10, 10, 0, 5);
+ grid->addMultiCellWidget(exifNote, 11, 11, 0, 5);
grid->setColStretch(1, 10);
grid->setColStretch(5, 10);
- grid->setRowStretch(11, 10);
+ grid->setRowStretch(12, 10);
// --------------------------------------------------------
@ -329,6 +346,9 @
connect(d->sensingMethodCheck, SIGNAL(toggled(bool)),
d->sensingMethodCB, SLOT(setEnabled(bool)));
+ connect(d->sceneTypeCheck, SIGNAL(toggled(bool)),
+ d->sceneTypeCB, SLOT(setEnabled(bool)));
+
// --------------------------------------------------------
readMetadata(exifData);
@ -454,6 +474,13 @
d->sensingMethodCheck->setChecked(true);
}
d->sensingMethodCB->setEnabled(d->sensingMethodCheck->isChecked());
+
+ if (exiv2Iface.getExifTagLong("Exif.Photo.SceneCaptureType", val))
+ {
+ d->sceneTypeCB->setCurrentItem(val);
+ d->sceneTypeCheck->setChecked(true);
+ }
+ d->sceneTypeCB->setEnabled(d->sceneTypeCheck->isChecked());
}
void EXIFDevice::applyMetadata(QByteArray& exifData)
@ -541,6 +568,11 @
else
exiv2Iface.removeExifTag("Exif.Photo.SensingMethod");
+ if (d->sceneTypeCheck->isChecked())
+ exiv2Iface.setExifTagLong("Exif.Photo.SceneCaptureType", d->sceneTypeCB->currentItem());
+ else
+ exiv2Iface.removeExifTag("Exif.Photo.SceneCaptureType");
+
exifData = exiv2Iface.getExif();
}
More information about the Digikam-devel
mailing list