[Digikam-devel] [Bug 103255] wish: *add* (not edit) EXIF headers like date, comment etc

Gilles Caulier caulier.gilles at free.fr
Tue Oct 24 11:48:36 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 12:48 -------
SVN commit 598655 by cgilles:

kipiplugins from trunk : MetadataEdit plugin: Exif Exposure informations editor: add Exposure Bias Value settings

CCBUGS: 103255

 M  +38 -6     exifexposure.cpp  
 M  +5 -6      exiflens.cpp  
 M  +1 -2      exiflight.cpp  


--- trunk/extragear/libs/kipi-plugins/metadataedit/exifexposure.cpp #598654:598655
 @ -57,6 +57,7  @
         exposureTimeCheck    = 0;
         exposureProgramCheck = 0;
         exposureModeCheck    = 0;
+        exposureBiasCheck    = 0;
         ISOSpeedCheck        = 0;
         meteringModeCheck    = 0;
         exposureProgramCB    = 0;
 @ -65,11 +66,13  @
         meteringModeCB       = 0;
         exposureTimeNumEdit  = 0;
         exposureTimeDenEdit  = 0;
+        exposureBiasEdit     = 0;
     }
 
     QCheckBox      *exposureTimeCheck;
     QCheckBox      *exposureProgramCheck;
     QCheckBox      *exposureModeCheck;
+    QCheckBox      *exposureBiasCheck;
     QCheckBox      *ISOSpeedCheck;
     QCheckBox      *meteringModeCheck;
    
 @ -80,6 +83,8  @
 
     KIntSpinBox    *exposureTimeNumEdit;
     KIntSpinBox    *exposureTimeDenEdit;
+
+    KDoubleSpinBox *exposureBiasEdit;
 };
 
 EXIFExposure::EXIFExposure(QWidget* parent, QByteArray& exifData)
 @ -87,7 +92,7  @
 {
     d = new EXIFExposurePriv;
 
-    QGridLayout* grid = new QGridLayout(parent, 5, 5, KDialog::spacingHint());
+    QGridLayout* grid = new QGridLayout(parent, 6, 5, KDialog::spacingHint());
 
     // --------------------------------------------------------
 
 @ -138,6 +143,15  @
 
     // --------------------------------------------------------
 
+    d->exposureBiasCheck = new QCheckBox(i18n("Exposure Bias (APEX):"), parent);
+    d->exposureBiasEdit  = new KDoubleSpinBox(-99.99, 99.99, 0.1, 0.0, 2, parent);
+    grid->addMultiCellWidget(d->exposureBiasCheck, 3, 3, 0, 0);
+    grid->addMultiCellWidget(d->exposureBiasEdit, 3, 3, 2, 2);
+    QWhatsThis::add(d->exposureBiasEdit, i18n("<p>Set here the exposure bias value in APEX unit "
+                                             "used by camera to take the picture."));
+
+    // --------------------------------------------------------
+
     d->meteringModeCheck = new QCheckBox(i18n("Metering mode:"), parent);
     d->meteringModeCB    = new QComboBox(false, parent);
     d->meteringModeCB->insertItem(i18n("Unknown"),                 0);
 @ -148,8 +162,8  @
     d->meteringModeCB->insertItem(i18n("Multi-segment"),           5);
     d->meteringModeCB->insertItem(i18n("Partial"),                 6);
     d->meteringModeCB->insertItem(i18n("Other"),                   7);
-    grid->addMultiCellWidget(d->meteringModeCheck, 3, 3, 0, 0);
-    grid->addMultiCellWidget(d->meteringModeCB, 3, 3, 2, 5);
+    grid->addMultiCellWidget(d->meteringModeCheck, 4, 4, 0, 0);
+    grid->addMultiCellWidget(d->meteringModeCB, 4, 4, 2, 5);
     QWhatsThis::add(d->meteringModeCB, i18n("<p>Select here the metering mode used by the camera "
                                        "to set exposure when the picture have been shot."));
 
 @ -193,14 +207,14  @
     d->ISOSpeedCB->insertItem("20000", 33);
     d->ISOSpeedCB->insertItem("25000", 34);
     d->ISOSpeedCB->insertItem("32000", 35);
-    grid->addMultiCellWidget(d->ISOSpeedCheck, 4, 4, 0, 0);
-    grid->addMultiCellWidget(d->ISOSpeedCB, 4, 4, 2, 5);
+    grid->addMultiCellWidget(d->ISOSpeedCheck, 5, 5, 0, 0);
+    grid->addMultiCellWidget(d->ISOSpeedCB, 5, 5, 2, 5);
     QWhatsThis::add(d->ISOSpeedCB, i18n("<p>Select here the ISO Speed of the camera "
                     "witch have taken the picture."));
 
     grid->setColStretch(1, 10);                     
     grid->setColStretch(5, 10);                     
-    grid->setRowStretch(5, 10);                     
+    grid->setRowStretch(6, 10);                     
 
     // --------------------------------------------------------
 
 @ -216,6 +230,9  @
     connect(d->exposureModeCheck, SIGNAL(toggled(bool)),
             d->exposureModeCB, SLOT(setEnabled(bool)));
 
+    connect(d->exposureBiasCheck, SIGNAL(toggled(bool)),
+            d->exposureBiasEdit, SLOT(setEnabled(bool)));
+
     connect(d->meteringModeCheck, SIGNAL(toggled(bool)),
             d->meteringModeCB, SLOT(setEnabled(bool)));
 
 @ -274,6 +291,13  @
     }
     d->exposureModeCB->setEnabled(d->exposureModeCheck->isChecked());
 
+    if (exiv2Iface.getExifTagRational("Exif.Photo.ExposureBiasValue", num, den))
+    {
+        d->exposureBiasEdit->setValue((double)(num) / (double)(den));
+        d->exposureBiasCheck->setChecked(true);
+    }
+    d->exposureBiasEdit->setEnabled(d->exposureBiasCheck->isChecked());
+
     if (exiv2Iface.getExifTagLong("Exif.Photo.MeteringMode", val))
     {
         d->meteringModeCB->setCurrentItem(val > 6 ? 7 : val);
 @ -330,6 +354,14  @
     else
         exiv2Iface.removeExifTag("Exif.Photo.ExposureMode");
 
+    if (d->exposureBiasCheck->isChecked())
+    {
+        exiv2Iface.convertToRational(d->exposureBiasEdit->value(), &num, &den, 1);
+        exiv2Iface.setExifTagRational("Exif.Photo.ExposureBiasValue", num, den);
+    }
+    else
+        exiv2Iface.removeExifTag("Exif.Photo.ExposureBiasValue");
+
     if (d->meteringModeCheck->isChecked())
     {
         long met = d->meteringModeCB->currentItem();
--- trunk/extragear/libs/kipi-plugins/metadataedit/exiflens.cpp #598654:598655
 @ -154,7 +154,7  @
     d->focalLengthCheck = new QCheckBox(i18n("Focal length (mm):"), parent);
     d->focalLengthEdit  = new KDoubleSpinBox(1.0, 10000.0, 1.0, 50.0, 1, parent);
     grid->addMultiCellWidget(d->focalLengthCheck, 0, 0, 0, 0);
-    grid->addMultiCellWidget(d->focalLengthEdit, 0, 0, 1, 1);
+    grid->addMultiCellWidget(d->focalLengthEdit, 0, 0, 2, 2);
     QWhatsThis::add(d->focalLengthEdit, i18n("<p>Set here the lens focal lenght in milimeters "
                                              "used by camera to take the picture."));
 
 @ -163,7 +163,7  @
     d->focalLength35mmCheck = new QCheckBox(i18n("Focal length in 35mm film (mm):"), parent);
     d->focalLength35mmEdit  = new KIntSpinBox(1, 10000, 1, 1, 10, parent);
     grid->addMultiCellWidget(d->focalLength35mmCheck, 1, 1, 0, 0);
-    grid->addMultiCellWidget(d->focalLength35mmEdit, 1, 1, 1, 1);
+    grid->addMultiCellWidget(d->focalLength35mmEdit, 1, 1, 2, 2);
     QWhatsThis::add(d->focalLength35mmEdit, i18n("<p>Set here equivalent focal length assuming "
                                             "a 35mm film camera, in mm. A value of 0 means the focal "
                                             "length is unknown."));
 @ -173,7 +173,7  @
     d->digitalZoomRatioCheck = new QCheckBox(i18n("Digital zoom ratio:"), parent);
     d->digitalZoomRatioEdit  = new KDoubleSpinBox(0.0, 100.0, 0.1, 1.0, 1, parent);
     grid->addMultiCellWidget(d->digitalZoomRatioCheck, 2, 2, 0, 0);
-    grid->addMultiCellWidget(d->digitalZoomRatioEdit, 2, 2, 1, 1);
+    grid->addMultiCellWidget(d->digitalZoomRatioEdit, 2, 2, 2, 2);
     QWhatsThis::add(d->digitalZoomRatioEdit, i18n("<p>Set here the digital zoom ratio "
                                              "used by camera to take the picture."));
 
 @ -183,7 +183,7  @
     d->apertureCB    = new QComboBox(false, parent);
     d->apertureCB->insertStringList(d->apertureValues);
     grid->addMultiCellWidget(d->apertureCheck, 3, 3, 0, 0);
-    grid->addMultiCellWidget(d->apertureCB, 3, 3, 1, 1);
+    grid->addMultiCellWidget(d->apertureCB, 3, 3, 2, 2);
     QWhatsThis::add(d->apertureCB, i18n("<p>Select here the lens aperture used by camera "
                                         "to take the picture."));
 
 @ -193,12 +193,11  @
     d->maxApertureCB    = new QComboBox(false, parent);
     d->maxApertureCB->insertStringList(d->apertureValues);
     grid->addMultiCellWidget(d->maxApertureCheck, 4, 4, 0, 0);
-    grid->addMultiCellWidget(d->maxApertureCB, 4, 4, 1, 1);
+    grid->addMultiCellWidget(d->maxApertureCB, 4, 4, 2, 2);
     QWhatsThis::add(d->maxApertureCB, i18n("<p>Select here the smallest aperture of the lens used by camera "
                                            "to take the picture."));
 
     grid->setColStretch(1, 10);                     
-    grid->setColStretch(2, 10);                     
     grid->setRowStretch(5, 10);                     
 
     // --------------------------------------------------------
--- trunk/extragear/libs/kipi-plugins/metadataedit/exiflight.cpp #598654:598655
 @ -152,7 +152,7  @
     d->lightSourceCB->insertItem(i18n("ISO studio tungsten"),                     19);
     d->lightSourceCB->insertItem(i18n("Other light source"),                      20);
     grid->addMultiCellWidget(d->lightSourceCheck, 0, 0, 0, 0);
-    grid->addMultiCellWidget(d->lightSourceCB, 0, 0, 2, 5);
+    grid->addMultiCellWidget(d->lightSourceCB, 0, 0, 2, 3);
     QWhatsThis::add(d->lightSourceCB, i18n("<p>Select here the kind of light source used "
                                            "to take the picture."));
 
 @ -195,7 +195,6  @
 
 
     grid->setColStretch(1, 10);                     
-    grid->setColStretch(3, 10);                     
     grid->setRowStretch(4, 10);                     
 
     // --------------------------------------------------------



More information about the Digikam-devel mailing list