diff --git a/rtgui/editorpanel.cc b/rtgui/editorpanel.cc index d858ab9d7..52adf1da4 100644 --- a/rtgui/editorpanel.cc +++ b/rtgui/editorpanel.cc @@ -484,7 +484,12 @@ public: }; EditorPanel::EditorPanel (FilePanel* filePanel) - : catalogPane (nullptr), realized (false), tbBeforeLock (nullptr), iHistoryShow (nullptr), iHistoryHide (nullptr), iTopPanel_1_Show (nullptr), iTopPanel_1_Hide (nullptr), iRightPanel_1_Show (nullptr), iRightPanel_1_Hide (nullptr), iBeforeLockON (nullptr), iBeforeLockOFF (nullptr), previewHandler (nullptr), beforePreviewHandler (nullptr), beforeIarea (nullptr), beforeBox (nullptr), afterBox (nullptr), beforeLabel (nullptr), afterLabel (nullptr), beforeHeaderBox (nullptr), afterHeaderBox (nullptr), parent (nullptr), parentWindow (nullptr), openThm (nullptr), isrc (nullptr), ipc (nullptr), beforeIpc (nullptr), err (0), isProcessing (false) + : catalogPane (nullptr), realized (false), tbBeforeLock (nullptr), iHistoryShow (nullptr), iHistoryHide (nullptr), + iTopPanel_1_Show (nullptr), iTopPanel_1_Hide (nullptr), iRightPanel_1_Show (nullptr), iRightPanel_1_Hide (nullptr), + iBeforeLockON (nullptr), iBeforeLockOFF (nullptr), previewHandler (nullptr), beforePreviewHandler (nullptr), + beforeIarea (nullptr), beforeBox (nullptr), afterBox (nullptr), beforeLabel (nullptr), afterLabel (nullptr), + beforeHeaderBox (nullptr), afterHeaderBox (nullptr), parent (nullptr), parentWindow (nullptr), openThm (nullptr), + selectedFrame(0), isrc (nullptr), ipc (nullptr), beforeIpc (nullptr), err (0), isProcessing (false) { epih = new EditorPanelIdleHelper; @@ -1137,6 +1142,9 @@ void EditorPanel::procParamsChanged (rtengine::procparams::ProcParams* params, r // if (ev!=EvPhotoLoaded) // saveLabel->set_markup (Glib::ustring("") + M("MAIN_BUTTON_SAVE") + ""); + + selectedFrame = params->raw.bayersensor.imageNum; + info_toggled(); } void EditorPanel::setProgressState (bool inProcessing) @@ -1314,16 +1322,16 @@ void EditorPanel::info_toggled () const rtengine::FramesMetaData* idata = ipc->getInitialImage()->getMetaData(); - if (idata && idata->hasExif()) { + if (idata && idata->hasExif(selectedFrame)) { infoString = Glib::ustring::compose ("%1 + %2\nf/%3 %4s %5%6 %7mm", Glib::ustring (idata->getMake() + " " + idata->getModel()), Glib::ustring (idata->getLens()), - Glib::ustring (idata->apertureToString (idata->getFNumber())), - Glib::ustring (idata->shutterToString (idata->getShutterSpeed())), - M ("QINFO_ISO"), idata->getISOSpeed(), - Glib::ustring::format (std::setw (3), std::fixed, std::setprecision (2), idata->getFocalLen())); + Glib::ustring (idata->apertureToString (idata->getFNumber(selectedFrame))), + Glib::ustring (idata->shutterToString (idata->getShutterSpeed(selectedFrame))), + M ("QINFO_ISO"), idata->getISOSpeed(selectedFrame), + Glib::ustring::format (std::setw (3), std::fixed, std::setprecision (2), idata->getFocalLen(selectedFrame))); - expcomp = Glib::ustring (idata->expcompToString (idata->getExpComp(), true)); // maskZeroexpcomp + expcomp = Glib::ustring (idata->expcompToString (idata->getExpComp(selectedFrame), true)); // maskZeroexpcomp if (!expcomp.empty ()) { infoString = Glib::ustring::compose ("%1 %2EV", @@ -1351,7 +1359,7 @@ void EditorPanel::info_toggled () if (isHDR) { infoString = Glib::ustring::compose ("%1\n" + M("QINFO_HDR"), infoString, numFrames); if (numFrames == 1) { - int sampleFormat = idata->getSampleFormat(); + int sampleFormat = idata->getSampleFormat(selectedFrame); infoString = Glib::ustring::compose ("%1 / %2", infoString, M(Glib::ustring::compose("SAMPLEFORMAT_%1", sampleFormat))); } } else if (isPixelShift) { diff --git a/rtgui/editorpanel.h b/rtgui/editorpanel.h index 9c063661a..5beb9ee7d 100644 --- a/rtgui/editorpanel.h +++ b/rtgui/editorpanel.h @@ -212,6 +212,8 @@ private: Thumbnail* openThm; // may get invalid on external delete event Glib::ustring fname; // must be saved separately + int selectedFrame; + rtengine::InitialImage* isrc; rtengine::StagedImageProcessor* ipc; rtengine::StagedImageProcessor* beforeIpc; // for the before-after view diff --git a/rtgui/exifpanel.cc b/rtgui/exifpanel.cc index 874c6b6e2..0e7875815 100644 --- a/rtgui/exifpanel.cc +++ b/rtgui/exifpanel.cc @@ -262,7 +262,7 @@ void ExifPanel::addDirectory (const TagDirectory* dir, Gtk::TreeModel::Children if (checkForSeparator && i == 0) { for (int j = 0; j < dir->getCount(); ++j) { Tag* t2 = (const_cast (dir))->getTagByIndex (j); - const TagAttrib* currAttrib = t->getAttrib(); + const TagAttrib* currAttrib = t2->getAttrib(); if (currAttrib && ((options.lastShowAllExif) || (!options.lastShowAllExif && currAttrib->action != AC_SYSTEM))) { addSeparator();