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

Gilles Caulier caulier.gilles at free.fr
Thu Oct 19 20:21:07 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-19 21:21 -------
SVN commit 597256 by cgilles:

kipi-plugins from trunk : MetadataEdit plugin : Exif Exposure editor : add Light Source settings

CCBUGS: 103255

 M  +63 -1     exifexposure.cpp  


--- trunk/extragear/libs/kipi-plugins/metadataedit/exifexposure.cpp #597255:597256
 @ -53,10 +53,12  @
         exposureModeCheck    = 0;
         ISOSpeedCheck        = 0;
         meteringModeCheck    = 0;
+        lightSourceCheck     = 0;
         exposureProgramCB    = 0;
         exposureModeCB       = 0;
         ISOSpeedCB           = 0;
         meteringModeCB       = 0;
+        lightSourceCB        = 0;
         exposureTimeNumEdit  = 0;
         exposureTimeDenEdit  = 0;
     }
 @ -66,11 +68,13  @
     QCheckBox   *exposureModeCheck;
     QCheckBox   *ISOSpeedCheck;
     QCheckBox   *meteringModeCheck;
+    QCheckBox   *lightSourceCheck;
 
     QComboBox   *exposureProgramCB;
     QComboBox   *exposureModeCB;
     QComboBox   *ISOSpeedCB;
     QComboBox   *meteringModeCB;
+    QComboBox   *lightSourceCB;
 
     KIntSpinBox *exposureTimeNumEdit;
     KIntSpinBox *exposureTimeDenEdit;
 @ -192,8 +196,38  @
     QWhatsThis::add(d->ISOSpeedCB, i18n("<p>Select here the ISO Speed of the digital still camera "
                     "witch have taken the picture."));
 
+    // --------------------------------------------------------
+
+    d->lightSourceCheck = new QCheckBox(i18n("Light source:"), parent);
+    d->lightSourceCB    = new QComboBox(false, parent);
+    d->lightSourceCB->insertItem(i18n("Unknown"),                                 0);
+    d->lightSourceCB->insertItem(i18n("Daylight"),                                1);
+    d->lightSourceCB->insertItem(i18n("Fluorescent"),                             2);
+    d->lightSourceCB->insertItem(i18n("Tungsten (incandescent light)"),           3);
+    d->lightSourceCB->insertItem(i18n("Flash"),                                   4);
+    d->lightSourceCB->insertItem(i18n("Fine weather"),                            5);
+    d->lightSourceCB->insertItem(i18n("Cloudy weather"),                          6);
+    d->lightSourceCB->insertItem(i18n("Shade"),                                   7);
+    d->lightSourceCB->insertItem(i18n("Daylight fluorescent (D 5700 - 7100K)"),   8);
+    d->lightSourceCB->insertItem(i18n("Day white fluorescent (N 4600 - 5400K)"),  9);
+    d->lightSourceCB->insertItem(i18n("Cool white fluorescent (W 3900 - 4500K)"), 10);
+    d->lightSourceCB->insertItem(i18n("White fluorescent (WW 3200 - 3700K)"),     11);
+    d->lightSourceCB->insertItem(i18n("Standard light A"),                        12);
+    d->lightSourceCB->insertItem(i18n("Standard light B"),                        13);
+    d->lightSourceCB->insertItem(i18n("Standard light C"),                        14);
+    d->lightSourceCB->insertItem(i18n("D55"),                                     15);
+    d->lightSourceCB->insertItem(i18n("D65"),                                     16);
+    d->lightSourceCB->insertItem(i18n("D75"),                                     17);
+    d->lightSourceCB->insertItem(i18n("D50"),                                     18);
+    d->lightSourceCB->insertItem(i18n("ISO studio tungsten"),                     19);
+    d->lightSourceCB->insertItem(i18n("Other light source"),                      20);
+    grid->addMultiCellWidget(d->lightSourceCheck, 6, 6, 0, 0);
+    grid->addMultiCellWidget(d->lightSourceCB, 6, 6, 2, 4);
+    QWhatsThis::add(d->lightSourceCB, i18n("<p>Select here the kind of light source used "
+                                           "to take the picture."));
+
     grid->setColStretch(1, 10);                     
-    grid->setRowStretch(6, 10);                     
+    grid->setRowStretch(7, 10);                     
 
     // --------------------------------------------------------
 
 @ -215,6 +249,9  @
     connect(d->ISOSpeedCheck, SIGNAL(toggled(bool)),
             d->ISOSpeedCB, SLOT(setEnabled(bool)));
 
+    connect(d->lightSourceCheck, SIGNAL(toggled(bool)),
+            d->lightSourceCB, SLOT(setEnabled(bool)));
+
     // --------------------------------------------------------
     
     readMetadata(exifData);
 @ -276,6 +313,18  @
         }
     }
     d->ISOSpeedCB->setEnabled(d->ISOSpeedCheck->isChecked());
+
+    if (exiv2Iface.getExifTagLong("Exif.Photo.LightSource", val))
+    {
+        if (val > 8 && val < 25)
+            val = val - 4;
+        else if (val == 255)    
+            val = 20;
+
+        d->lightSourceCB->setCurrentItem(val);
+        d->lightSourceCheck->setChecked(true);
+    }
+    d->lightSourceCB->setEnabled(d->lightSourceCheck->isChecked());
 }
 
 void EXIFExposure::applyMetadata(QByteArray& exifData)
 @ -312,6 +361,19  @
     else
         exiv2Iface.removeExifTag("Exif.Photo.ISOSpeedRatings");
 
+    if (d->lightSourceCheck->isChecked())
+    {
+        long val = d->lightSourceCB->currentItem();
+        if (val > 4 && val < 20)
+            val = val + 4;
+        else if (val == 20)    
+            val = 255;
+
+        exiv2Iface.setExifTagLong("Exif.Photo.LightSource", val);
+    }
+    else
+        exiv2Iface.removeExifTag("Exif.Photo.LightSource");
+
     exifData = exiv2Iface.getExif();
 }



More information about the Digikam-devel mailing list