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:
Hombre57
2017-08-08 23:42:05 +02:00
parent b183a0b3c7
commit f23be9345c
45 changed files with 1529 additions and 265 deletions

View File

@@ -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());
}
}
}
}