From 0becc749deca457c47d8975d49f0665886048201 Mon Sep 17 00:00:00 2001 From: Michael Ezra Date: Fri, 9 Dec 2011 21:17:37 -0500 Subject: [PATCH] Thumbnail Exif string: append exposure compensation (see issue 1150) In order for this option to work on previously browsed thumbs the cache must be cleared. (Please be sure to add to the build release notes) --- rtdata/languages/default | 3 ++- rtgui/options.cc | 3 +++ rtgui/options.h | 1 + rtgui/preferences.cc | 16 +++++++++++----- rtgui/preferences.h | 1 + rtgui/thumbnail.cc | 3 +++ 6 files changed, 21 insertions(+), 6 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index c39f0f78e..0dccc00d3 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -609,7 +609,7 @@ PREFERENCES_DIRSOFTWARE;Installation directory PREFERENCES_EDITORCMDLINE;Other command line PREFERENCES_EDITORLAYOUT;Editor Layout PREFERENCES_EXTERNALEDITOR;External editor -PREFERENCES_FBROWSEROPTS;File Browser Options +PREFERENCES_FBROWSEROPTS;File Browser / Thumbnail Options PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Single row file browser toolbar (de-select for low res display) PREFERENCES_FILEFORMAT;File format PREFERENCES_FLATFIELDFOUND;Found @@ -672,6 +672,7 @@ PREFERENCES_SELECTTHEME;Select theme PREFERENCES_SET;SET PREFERENCES_SHOWBASICEXIF;Show basic Exif info PREFERENCES_SHOWDATETIME;Show date and time +PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation PREFERENCES_SHOWONLYRAW;Show only raw files PREFERENCES_SHOWPROFILESELECTOR;Show profile selector PREFERENCES_SHTHRESHOLD;Threshold for clipped shadows diff --git a/rtgui/options.cc b/rtgui/options.cc index 7271ff56b..c1a3b8694 100644 --- a/rtgui/options.cc +++ b/rtgui/options.cc @@ -91,6 +91,7 @@ void Options::setDefaults () { fbOnlyRaw = false; fbShowDateTime = true; fbShowBasicExif = true; + fbShowExpComp = true; fbShowHidden = false; fbArrangement = 2; // was 0 multiUser = true; @@ -352,6 +353,7 @@ if (keyFile.has_group ("File Browser")) { if (keyFile.has_key ("File Browser", "BrowseOnlyRaw")) fbOnlyRaw = keyFile.get_boolean ("File Browser", "BrowseOnlyRaw"); if (keyFile.has_key ("File Browser", "BrowserShowsDate")) fbShowDateTime = keyFile.get_boolean ("File Browser", "BrowserShowsDate"); if (keyFile.has_key ("File Browser", "BrowserShowsExif")) fbShowBasicExif = keyFile.get_boolean ("File Browser", "BrowserShowsExif"); + if (keyFile.has_key ("File Browser", "BrowserShowsExpComp"))fbShowExpComp = keyFile.get_boolean ("File Browser", "BrowserShowsExpComp"); if (keyFile.has_key ("File Browser", "BrowserShowsHidden")) fbShowHidden = keyFile.get_boolean ("File Browser", "BrowserShowsHidden"); if (keyFile.has_key ("File Browser", "MaxPreviewHeight")) maxThumbnailHeight = keyFile.get_integer ("File Browser", "MaxPreviewHeight"); if (keyFile.has_key ("File Browser", "MaxCacheEntries")) maxCacheEntries = keyFile.get_integer ("File Browser", "MaxCacheEntries"); @@ -504,6 +506,7 @@ int Options::saveToFile (Glib::ustring fname) { keyFile.set_boolean ("File Browser", "BrowseOnlyRaw", fbOnlyRaw); keyFile.set_boolean ("File Browser", "BrowserShowsDate", fbShowDateTime); keyFile.set_boolean ("File Browser", "BrowserShowsExif", fbShowBasicExif); + keyFile.set_boolean ("File Browser", "BrowserShowsExpComp", fbShowExpComp); keyFile.set_boolean ("File Browser", "BrowserShowsHidden", fbShowHidden); keyFile.set_integer ("File Browser", "ThumbnailSize", thumbSize); keyFile.set_integer ("File Browser", "ThumbnailSizeTab", thumbSizeTab); diff --git a/rtgui/options.h b/rtgui/options.h index 1d318df03..eb188413b 100644 --- a/rtgui/options.h +++ b/rtgui/options.h @@ -83,6 +83,7 @@ class Options { bool fbOnlyRaw; bool fbShowDateTime; bool fbShowBasicExif; + bool fbShowExpComp; bool fbShowHidden; int fbArrangement; bool multiUser; diff --git a/rtgui/preferences.cc b/rtgui/preferences.cc index 576ad0c1e..b3b7ee827 100644 --- a/rtgui/preferences.cc +++ b/rtgui/preferences.cc @@ -749,14 +749,18 @@ Gtk::Widget* Preferences::getFileBrowserPanel () { Gtk::Frame* fro = Gtk::manage( new Gtk::Frame (M("PREFERENCES_FBROWSEROPTS")) ); showDateTime = Gtk::manage( new Gtk::CheckButton (M("PREFERENCES_SHOWDATETIME")) ); showBasicExif = Gtk::manage( new Gtk::CheckButton (M("PREFERENCES_SHOWBASICEXIF")) ); + showExpComp = Gtk::manage( new Gtk::CheckButton (M("PREFERENCES_SHOWEXPOSURECOMPENSATION")) ); Gtk::VBox* vbro = Gtk::manage( new Gtk::VBox () ); + Gtk::HBox* hbro1 = Gtk::manage( new Gtk::HBox () ); overlayedFileNames = Gtk::manage( new Gtk::CheckButton (M("PREFERENCES_OVERLAY_FILENAMES")) ); ckbInternalThumbIfUntouched = Gtk::manage( new Gtk::CheckButton (M("PREFERENCES_INTERNALTHUMBIFUNTOUCHED"))); vbro->set_border_width (4); vbro->pack_start (*showDateTime, Gtk::PACK_SHRINK, 0); - vbro->pack_start (*showBasicExif, Gtk::PACK_SHRINK, 0); - vbro->pack_start (*overlayedFileNames, Gtk::PACK_SHRINK, 4); + hbro1->pack_start (*showBasicExif, Gtk::PACK_SHRINK, 0); + hbro1->pack_start (*showExpComp, Gtk::PACK_SHRINK, 4); + vbro->pack_start (*hbro1, Gtk::PACK_SHRINK, 0); + vbro->pack_start (*overlayedFileNames, Gtk::PACK_SHRINK, 0); vbro->pack_start (*ckbInternalThumbIfUntouched, Gtk::PACK_SHRINK, 0); fro->add (*vbro); @@ -963,9 +967,10 @@ void Preferences::storePreferences () { moptions.panAccelFactor = (int)panFactor->get_value(); moptions.fbShowDateTime = showDateTime->get_active (); moptions.fbShowBasicExif = showBasicExif->get_active (); - moptions.menuGroupRank = ckbmenuGroupRank->get_active(); - moptions.menuGroupLabel = ckbmenuGroupLabel->get_active(); - moptions.menuGroupFileOperations = ckbmenuGroupFileOperations->get_active(); + moptions.fbShowExpComp = showExpComp->get_active (); + moptions.menuGroupRank = ckbmenuGroupRank->get_active(); + moptions.menuGroupLabel = ckbmenuGroupLabel->get_active(); + moptions.menuGroupFileOperations = ckbmenuGroupFileOperations->get_active(); moptions.menuGroupProfileOperations = ckbmenuGroupProfileOperations->get_active(); moptions.blinkClipped = blinkClipped->get_active (); moptions.highlightThreshold = (int)hlThresh->get_value (); @@ -1108,6 +1113,7 @@ void Preferences::fillPreferences () { fontbutton->set_font_name(moptions.font); showDateTime->set_active (moptions.fbShowDateTime); showBasicExif->set_active (moptions.fbShowBasicExif); + showExpComp->set_active (moptions.fbShowExpComp); ckbmenuGroupRank->set_active(moptions.menuGroupRank); ckbmenuGroupLabel->set_active(moptions.menuGroupLabel); ckbmenuGroupFileOperations->set_active(moptions.menuGroupFileOperations); diff --git a/rtgui/preferences.h b/rtgui/preferences.h index f02da17bd..52ecb8e1f 100644 --- a/rtgui/preferences.h +++ b/rtgui/preferences.h @@ -74,6 +74,7 @@ class Preferences : public Gtk::Dialog { Gtk::CheckButton* showDateTime; Gtk::CheckButton* showBasicExif; + Gtk::CheckButton* showExpComp; Gtk::FileChooserButton* iccDir; Gtk::FileChooserButton* monProfile; diff --git a/rtgui/thumbnail.cc b/rtgui/thumbnail.cc index 8e7d00eff..c122857a3 100644 --- a/rtgui/thumbnail.cc +++ b/rtgui/thumbnail.cc @@ -489,6 +489,9 @@ void Thumbnail::generateExifDateTimeStrings () { exifString = Glib::ustring::compose ("f/%1 %2s %3%4 %5mm", Glib::ustring(rtengine::ImageData::apertureToString(cfs.fnumber)), Glib::ustring(rtengine::ImageData::shutterToString(cfs.shutter)), M("QINFO_ISO"), cfs.iso, cfs.focalLen); + if (options.fbShowExpComp && cfs.expcomp!="0.00" && cfs.expcomp!="") // don't show exposure compensation if it is 0.00EV;old cache iles do not have ExpComp, so value will not be displayed. + exifString = Glib::ustring::compose ("%1 %2EV", exifString, cfs.expcomp); // append exposure compensation to exifString + std::string dateFormat = options.dateFormat; std::ostringstream ostr; bool spec = false;