Add multi-frame handling.
- Exif of all frames are displayed in the Editor's Exif tab (without separator) - isHDR and isPixelShift is added to the data files stored in cache - In the Editor panel, the QuickInfo frame display the HDR and PixelShift information, as well as the number of frame and bit-depth for HDR image - the number of frame is provided by dcraw. If not set, it is provided by the Exif's main IFD count - the PixelShift information (for Pentax as of now) is provided by looking at the Exif informations - the HDR information is provided by the Exif information of the first frame for Pentax raw files, or by the bitspersample, sampleformat and compression tags for other files TODO: add icons to the thumbnails to tag HDR and PixelShift files.
This commit is contained in:
@@ -177,15 +177,28 @@ void ExifPanel::setDefaults (const ProcParams* defParams, const ParamsEdited* pe
|
||||
defChangeList = defParams->exif;
|
||||
}
|
||||
|
||||
void ExifPanel::setImageData (const ImageMetaData* id)
|
||||
void ExifPanel::setImageData (const FramesMetaData* id)
|
||||
{
|
||||
|
||||
idata = id;
|
||||
exifTreeModel->clear ();
|
||||
|
||||
if (id && id->getExifData ()) {
|
||||
// id->getExifData ()->printAll ();
|
||||
addDirectory (id->getExifData (), exifTreeModel->children());
|
||||
if (id) {
|
||||
//bool first = true;
|
||||
// HOMBRE: Should we only display the current frame's Exifs ?
|
||||
for (int frameNum = 0; frameNum < id->getFrameCount (); ++frameNum) {
|
||||
if ( id->getExifData (frameNum)) {
|
||||
/*
|
||||
if (!first) {
|
||||
Gtk::Separator *sep = Gtk::manage (new Gtk::Separator);
|
||||
sep->set_orientation(Gtk::ORIENTATION_HORIZONTAL);
|
||||
first = false;
|
||||
}
|
||||
*/
|
||||
//id->getExifData ()->printAll ();
|
||||
addDirectory (id->getExifData (frameNum), exifTreeModel->children());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user