diff --git a/rtgui/lensprofile.cc b/rtgui/lensprofile.cc index 1149991bf..6cf79a74c 100644 --- a/rtgui/lensprofile.cc +++ b/rtgui/lensprofile.cc @@ -35,13 +35,13 @@ LensProfilePanel::LensProfilePanel () : FoldableToolPanel(this, "lensprof", M("T hbLCPFile->pack_start(*lLCPFileHead, Gtk::PACK_SHRINK, 4); fcbLCPFile = Gtk::manage(new MyFileChooserButton(M("TP_LENSPROFILE_LABEL"), Gtk::FILE_CHOOSER_ACTION_OPEN)); - + Gtk::FileFilter filterLCP; filterLCP.set_name(M("TP_LENSPROFILE_FILEDLGFILTERLCP")); filterLCP.add_pattern("*.lcp"); filterLCP.add_pattern("*.LCP"); fcbLCPFile->add_filter(filterLCP); - + Glib::ustring defDir=lcpStore->getDefaultCommonDirectory(); if (!defDir.empty()) { #ifdef WIN32 @@ -58,20 +58,20 @@ LensProfilePanel::LensProfilePanel () : FoldableToolPanel(this, "lensprof", M("T pack_start(*hbLCPFile, Gtk::PACK_SHRINK, 4); - ckbUseDist = Gtk::manage (new Gtk::CheckButton (M("TP_LENSPROFILE_USEDIST"))); - pack_start (*ckbUseDist, Gtk::PACK_SHRINK, 4); - ckbUseVign = Gtk::manage (new Gtk::CheckButton (M("TP_LENSPROFILE_USEVIGN"))); - pack_start (*ckbUseVign, Gtk::PACK_SHRINK, 4); - ckbUseCA = Gtk::manage (new Gtk::CheckButton (M("TP_LENSPROFILE_USECA"))); - pack_start (*ckbUseCA, Gtk::PACK_SHRINK, 4); + ckbUseDist = Gtk::manage (new Gtk::CheckButton (M("TP_LENSPROFILE_USEDIST"))); + pack_start (*ckbUseDist, Gtk::PACK_SHRINK, 4); + ckbUseVign = Gtk::manage (new Gtk::CheckButton (M("TP_LENSPROFILE_USEVIGN"))); + pack_start (*ckbUseVign, Gtk::PACK_SHRINK, 4); + ckbUseCA = Gtk::manage (new Gtk::CheckButton (M("TP_LENSPROFILE_USECA"))); + pack_start (*ckbUseCA, Gtk::PACK_SHRINK, 4); conLCPFile = fcbLCPFile->signal_file_set().connect( sigc::mem_fun(*this, &LensProfilePanel::onLCPFileChanged), true); btnReset->signal_clicked().connect( sigc::mem_fun(*this, &LensProfilePanel::onLCPFileReset), true); - ckbUseDist->signal_toggled().connect( sigc::mem_fun(*this, &LensProfilePanel::onUseDistChanged) ); - ckbUseVign->signal_toggled().connect( sigc::mem_fun(*this, &LensProfilePanel::onUseVignChanged) ); - ckbUseCA->signal_toggled().connect( sigc::mem_fun(*this, &LensProfilePanel::onUseCAChanged) ); - - allowFocusDep=true; + ckbUseDist->signal_toggled().connect( sigc::mem_fun(*this, &LensProfilePanel::onUseDistChanged) ); + ckbUseVign->signal_toggled().connect( sigc::mem_fun(*this, &LensProfilePanel::onUseVignChanged) ); + ckbUseCA->signal_toggled().connect( sigc::mem_fun(*this, &LensProfilePanel::onUseCAChanged) ); + + allowFocusDep=true; } void LensProfilePanel::read(const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited) @@ -82,20 +82,20 @@ void LensProfilePanel::read(const rtengine::procparams::ProcParams* pp, const Pa fcbLCPFile->set_filename (pp->lensProf.lcpFile); updateDisabled(true); } else { - Glib::ustring fname = fcbLCPFile->get_filename(); + Glib::ustring fname = fcbLCPFile->get_filename(); if (!pp->lensProf.lcpFile.empty()) - fcbLCPFile->unselect_filename(fname); - else { - Glib::ustring lastFolder = fcbLCPFile->get_current_folder(); - fcbLCPFile->set_filename(""); - fcbLCPFile->set_current_folder(lastFolder); + fcbLCPFile->unselect_filename(fname); + else { + Glib::ustring lastFolder = fcbLCPFile->get_current_folder(); + fcbLCPFile->set_filename(""); + fcbLCPFile->set_current_folder(lastFolder); } updateDisabled(false); } ckbUseDist->set_active (pp->lensProf.useDist); - ckbUseVign->set_active (pp->lensProf.useVign); - ckbUseCA->set_active (pp->lensProf.useCA); + ckbUseVign->set_active (pp->lensProf.useVign && isRaw); + ckbUseCA->set_active (pp->lensProf.useCA && isRaw); lcpFileChanged=useDistChanged=useVignChanged=useCAChanged=false; @@ -105,14 +105,15 @@ void LensProfilePanel::read(const rtengine::procparams::ProcParams* pp, const Pa void LensProfilePanel::setRawMeta(bool raw, const rtengine::ImageMetaData* pMeta) { if (!raw || pMeta->getFocusDist()<=0) { disableListener(); - + // CA is very focus layer dependend, otherwise it might even worsen things allowFocusDep=false; ckbUseCA->set_active(false); ckbUseCA->set_sensitive(false); - + enableListener(); } + isRaw=raw; } void LensProfilePanel::write( rtengine::procparams::ProcParams* pp, ParamsEdited* pedited) @@ -172,6 +173,6 @@ void LensProfilePanel::onUseCAChanged() void LensProfilePanel::updateDisabled(bool enable) { ckbUseDist->set_sensitive(enable); - ckbUseVign->set_sensitive(enable); + ckbUseVign->set_sensitive(enable && isRaw); ckbUseCA->set_sensitive(enable && allowFocusDep); } diff --git a/rtgui/lensprofile.h b/rtgui/lensprofile.h index 29f2ebcff..8aedb1aa6 100644 --- a/rtgui/lensprofile.h +++ b/rtgui/lensprofile.h @@ -36,6 +36,7 @@ protected: sigc::connection conLCPFile, conUseDist, conUseVign, conUseCA; void updateDisabled(bool enable); bool allowFocusDep; + bool isRaw; public: