Updated frame handling with any type of hierarchy (see #4008)

Images can now be detected in nested IFDs or as root IFDs.
This commit is contained in:
Hombre57
2017-09-16 22:30:07 +02:00
parent ae19b6485a
commit ee0bff4124
11 changed files with 667 additions and 494 deletions

View File

@@ -1297,7 +1297,7 @@ void EditorPanel::info_toggled ()
int ww = ipc->getFullWidth();
int hh = ipc->getFullHeight();
//megapixels
infoString = Glib::ustring::compose ("%1\n<span size=\"small\">%2 MP (%2x%3)</span>",
infoString = Glib::ustring::compose ("%1\n<span size=\"small\">%2 MP (%3x%4)</span>",
infoString,
Glib::ustring::format (std::setw (4), std::fixed, std::setprecision (1), (float)ww * hh / 1000000),
ww, hh);
@@ -1313,7 +1313,6 @@ void EditorPanel::info_toggled ()
infoString = Glib::ustring::compose ("%1 / %2", infoString, M(Glib::ustring::compose("SAMPLEFORMAT_%1", sampleFormat)));
}
} else if (isPixelShift) {
infoString = Glib::ustring::compose ("%1\n" + M("QINFO_HDR"), infoString, numFrames);
infoString = Glib::ustring::compose ("%1\n" + M("QINFO_PIXELSHIFT"), infoString, numFrames);
}
} else {

View File

@@ -189,13 +189,13 @@ void ExifPanel::setImageData (const FramesMetaData* id)
exifTreeModel->clear ();
if (id) {
for (unsigned int frameNum = 0; frameNum < id->getFrameCount (); ++frameNum) {
if ( id->getExifData (frameNum)) {
//id->getExifData ()->printAll ();
if (frameNum > 0) {
for (unsigned int rootNum = 0; rootNum < id->getRootCount (); ++rootNum) {
if ( id->getRootExifData (rootNum)) {
//id->getRootExifData ()->printAll ();
if (rootNum > 0) {
addSeparator();
}
addDirectory (id->getExifData (frameNum), exifTreeModel->children());
addDirectory (id->getRootExifData (rootNum), exifTreeModel->children());
}
}
}

View File

@@ -265,7 +265,7 @@ rtengine::procparams::ProcParams* Thumbnail::createProcParamsForUpdate(bool retu
const rtexif::TagDirectory* exifDir = nullptr;
if (imageMetaData && (exifDir = imageMetaData->getExifData())) {
if (imageMetaData && (exifDir = imageMetaData->getRootExifData())) {
exifDir->CPBDump(tmpFileName, fname, outFName,
defaultPparamsPath == DEFPROFILE_INTERNAL ? DEFPROFILE_INTERNAL : Glib::build_filename(defaultPparamsPath, Glib::path_get_basename(defProf) + paramFileExtension),
cfs,