[Digikam-devel] [Bug 103255] wish: *add* (not edit) EXIF headers like date, comment etc
Gilles Caulier
caulier.gilles at free.fr
Tue Oct 24 14:15:26 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-24 15:15 -------
SVN commit 598747 by cgilles:
kipiplugins from trunk : MetadataEdit plugin: Exif Exposure informations editor: add Sensing Method settings
CCBUGS: 103255
M +40 -2 exifexposure.cpp
--- trunk/extragear/libs/kipi-plugins/metadataedit/exifexposure.cpp #598746:598747
@ -60,10 +60,12 @
exposureBiasCheck = 0;
ISOSpeedCheck = 0;
meteringModeCheck = 0;
+ sensingMethodCheck = 0;
exposureProgramCB = 0;
exposureModeCB = 0;
ISOSpeedCB = 0;
meteringModeCB = 0;
+ sensingMethodCB = 0;
exposureTimeNumEdit = 0;
exposureTimeDenEdit = 0;
exposureBiasEdit = 0;
@ -75,11 +77,13 @
QCheckBox *exposureBiasCheck;
QCheckBox *ISOSpeedCheck;
QCheckBox *meteringModeCheck;
+ QCheckBox *sensingMethodCheck;
QComboBox *exposureProgramCB;
QComboBox *exposureModeCB;
QComboBox *ISOSpeedCB;
QComboBox *meteringModeCB;
+ QComboBox *sensingMethodCB;
KIntSpinBox *exposureTimeNumEdit;
KIntSpinBox *exposureTimeDenEdit;
@ -92,7 +96,7 @
{
d = new EXIFExposurePriv;
- QGridLayout* grid = new QGridLayout(parent, 6, 5, KDialog::spacingHint());
+ QGridLayout* grid = new QGridLayout(parent, 7, 5, KDialog::spacingHint());
// --------------------------------------------------------
@ -212,9 +216,25 @
QWhatsThis::add(d->ISOSpeedCB, i18n("<p>Select here the ISO Speed of the camera "
"witch have taken the picture."));
+ // --------------------------------------------------------
+
+ d->sensingMethodCheck = new QCheckBox(i18n("Sensing method:"), parent);
+ d->sensingMethodCB = new QComboBox(false, parent);
+ d->sensingMethodCB->insertItem(i18n("Not defined"), 0);
+ d->sensingMethodCB->insertItem(i18n("One-chip color area"), 1);
+ d->sensingMethodCB->insertItem(i18n("Two-chip color area"), 2);
+ d->sensingMethodCB->insertItem(i18n("Three-chip color area"), 3);
+ d->sensingMethodCB->insertItem(i18n("Color sequential area"), 4);
+ d->sensingMethodCB->insertItem(i18n("Trilinear sensor"), 5);
+ d->sensingMethodCB->insertItem(i18n("Color sequential linear"), 6);
+ grid->addMultiCellWidget(d->sensingMethodCheck, 6, 6, 0, 0);
+ grid->addMultiCellWidget(d->sensingMethodCB, 6, 6, 2, 5);
+ QWhatsThis::add(d->sensingMethodCB, i18n("<p>Select here the image sensor type used by the camera "
+ "to take the picture."));
+
grid->setColStretch(1, 10);
grid->setColStretch(5, 10);
- grid->setRowStretch(6, 10);
+ grid->setRowStretch(7, 10);
// --------------------------------------------------------
@ -239,6 +259,9 @
connect(d->ISOSpeedCheck, SIGNAL(toggled(bool)),
d->ISOSpeedCB, SLOT(setEnabled(bool)));
+ connect(d->sensingMethodCheck, SIGNAL(toggled(bool)),
+ d->sensingMethodCB, SLOT(setEnabled(bool)));
+
// --------------------------------------------------------
readMetadata(exifData);
@ -333,6 +356,13 @
}
}
d->ISOSpeedCB->setEnabled(d->ISOSpeedCheck->isChecked());
+
+ if (exiv2Iface.getExifTagLong("Exif.Photo.SensingMethod", val))
+ {
+ d->sensingMethodCB->setCurrentItem(val > 6 ? val-2 : val-1);
+ d->sensingMethodCheck->setChecked(true);
+ }
+ d->sensingMethodCB->setEnabled(d->sensingMethodCheck->isChecked());
}
void EXIFExposure::applyMetadata(QByteArray& exifData)
@ -397,6 +427,14 @
exiv2Iface.removeExifTag("Exif.Photo.ExposureIndex");
}
+ if (d->sensingMethodCheck->isChecked())
+ {
+ long sem = d->sensingMethodCB->currentItem();
+ exiv2Iface.setExifTagLong("Exif.Photo.SensingMethod", sem > 4 ? sem+2 : sem+1);
+ }
+ else
+ exiv2Iface.removeExifTag("Exif.Photo.SensingMethod");
+
exifData = exiv2Iface.getExif();
}
More information about the Digikam-devel
mailing list