Issue 2743:Disable vignetting correction LCP checkbox when working on non-raw images

This commit is contained in:
DrSlony
2015-04-19 19:07:27 +02:00
parent 23424a45c8
commit 336a08d605
2 changed files with 26 additions and 24 deletions

View File

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

View File

@@ -36,6 +36,7 @@ protected:
sigc::connection conLCPFile, conUseDist, conUseVign, conUseCA; sigc::connection conLCPFile, conUseDist, conUseVign, conUseCA;
void updateDisabled(bool enable); void updateDisabled(bool enable);
bool allowFocusDep; bool allowFocusDep;
bool isRaw;
public: public: