[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:26:20 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:26 -------
SVN commit 598985 by cgilles:
kipiplugins from trunk : MetadataEdit plugin: Exif Device informations editor: add File Source settings
CCBUGS: 103255
M +34 -2 exifdevice.cpp
--- trunk/extragear/libs/kipi-plugins/metadataedit/exifdevice.cpp #598984:598985
@ -58,6 +58,7 @
{
makeCheck = 0;
modelCheck = 0;
+ deviceTypeCheck = 0;
exposureTimeCheck = 0;
exposureProgramCheck = 0;
exposureModeCheck = 0;
@ -79,6 +80,7 @
QCheckBox *makeCheck;
QCheckBox *modelCheck;
+ QCheckBox *deviceTypeCheck;
QCheckBox *exposureTimeCheck;
QCheckBox *exposureProgramCheck;
QCheckBox *exposureModeCheck;
@ -87,6 +89,7 @
QCheckBox *meteringModeCheck;
QCheckBox *sensingMethodCheck;
+ QComboBox *deviceTypeCB;
QComboBox *exposureProgramCB;
QComboBox *exposureModeCB;
QComboBox *ISOSpeedCB;
@ -115,7 +118,7 @
// --------------------------------------------------------
- d->makeCheck = new QCheckBox(i18n("Make (*):"), parent);
+ d->makeCheck = new QCheckBox(i18n("Device manufacturer (*):"), parent);
d->makeEdit = new KLineEdit(parent);
d->makeEdit->setValidator(asciiValidator);
grid->addMultiCellWidget(d->makeCheck, 0, 0, 0, 0);
@ -125,7 +128,7 @
// --------------------------------------------------------
- d->modelCheck = new QCheckBox(i18n("Model (*):"), parent);
+ d->modelCheck = new QCheckBox(i18n("Device model (*):"), parent);
d->modelEdit = new KLineEdit(parent);
d->modelEdit->setValidator(asciiValidator);
grid->addMultiCellWidget(d->modelCheck, 1, 1, 0, 0);
@ -135,6 +138,20 @
// --------------------------------------------------------
+ d->deviceTypeCheck = new QCheckBox(i18n("Device type:"), parent);
+ d->deviceTypeCB = new QComboBox(false, parent);
+ d->deviceTypeCB->insertItem(i18n("Film scanner"), 0);
+ d->deviceTypeCB->insertItem(i18n("Reflection print scanner"), 1);
+ d->deviceTypeCB->insertItem(i18n("Digital camera"), 2);
+ d->deviceTypeCheck->setTristate(true);
+
+ grid->addMultiCellWidget(d->deviceTypeCheck, 2, 2, 0, 0);
+ grid->addMultiCellWidget(d->deviceTypeCB, 2, 2, 2, 5);
+ QWhatsThis::add(d->deviceTypeCB, i18n("<p>Select here the image input equipment type used to "
+ "generate the picture."));
+
+ // --------------------------------------------------------
+
d->exposureTimeCheck = new QCheckBox(i18n("Exposure time (seconds):"), parent);
d->exposureTimeNumEdit = new KIntSpinBox(1, 100000, 1, 1, 10, parent);
d->exposureTimeDenEdit = new KIntSpinBox(1, 100000, 1, 1, 10, parent);
@ -285,6 +302,9 @
connect(d->modelCheck, SIGNAL(toggled(bool)),
d->modelEdit, SLOT(setEnabled(bool)));
+ connect(d->deviceTypeCheck, SIGNAL(toggled(bool)),
+ d->deviceTypeCB, SLOT(setEnabled(bool)));
+
connect(d->exposureTimeCheck, SIGNAL(toggled(bool)),
d->exposureTimeNumEdit, SLOT(setEnabled(bool)));
@ -343,6 +363,13 @
}
d->modelEdit->setEnabled(d->modelCheck->isChecked());
+ if (exiv2Iface.getExifTagLong("Exif.Photo.FileSource", val))
+ {
+ d->deviceTypeCB->setCurrentItem(val-1);
+ d->deviceTypeCheck->setChecked(true);
+ }
+ d->deviceTypeCB->setEnabled(d->deviceTypeCheck->isChecked());
+
if (exiv2Iface.getExifTagRational("Exif.Photo.ExposureTime", num, den))
{
d->exposureTimeNumEdit->setValue(num);
@ -445,6 +472,11 @
else
exiv2Iface.removeExifTag("Exif.Image.Model");
+ if (d->deviceTypeCheck->isChecked())
+ exiv2Iface.setExifTagLong("Exif.Photo.FileSource", d->deviceTypeCB->currentItem()+1);
+ else
+ exiv2Iface.removeExifTag("Exif.Photo.FileSource");
+
if (d->exposureTimeCheck->isChecked())
{
exiv2Iface.setExifTagRational("Exif.Photo.ExposureTime", d->exposureTimeNumEdit->value(),
More information about the Digikam-devel
mailing list