Automatically disable Auto-Fill when enabling LCP Disortion Correction, #1791

This commit is contained in:
Beep6581
2016-05-30 23:47:13 +02:00
parent d57eec1628
commit 9fccdd6ca5
5 changed files with 31 additions and 0 deletions

View File

@@ -113,3 +113,19 @@ void LensGeometry::setBatchMode (bool batchMode)
ToolPanel::setBatchMode (batchMode);
removeIfThere (this, autoCrop);
}
void LensGeometry::disableAutoFillIfActive ()
{
if (!batchMode) {
if (fill->get_active()) {
fillConn.block (true);
fill->set_active(false);
if (listener) {
listener->panelChanged (EvTransAutoFill, M("GENERAL_DISABLED"));
}
fillConn.block (false);
}
}
}

View File

@@ -53,6 +53,7 @@ public:
{
rlistener = l;
}
void disableAutoFillIfActive ();
};
#endif

View File

@@ -142,6 +142,10 @@ void LensProfilePanel::write( rtengine::procparams::ProcParams* pp, ParamsEdited
void LensProfilePanel::onLCPFileChanged()
{
// Disable Auto-Fill when enabling LCP Distortion Correction, #1791
lensgeomLcpFill->disableAutoFillIfActive();
lcpFileChanged = true;
updateDisabled(lcpStore->isValidLCPFileName(fcbLCPFile->get_filename()));
@@ -164,6 +168,12 @@ void LensProfilePanel::onLCPFileReset()
void LensProfilePanel::onUseDistChanged()
{
// Disable Auto-Fill when enabling LCP Distortion Correction, #1791
if (ckbUseDist->get_active()) {
lensgeomLcpFill->disableAutoFillIfActive();
}
useDistChanged = true;
if (listener) {

View File

@@ -22,6 +22,7 @@
#include <gtkmm.h>
#include "toolpanel.h"
#include "guiutils.h"
#include "lensgeom.h"
class LensProfilePanel : public ToolParamBlock, public FoldableToolPanel
{
@@ -38,6 +39,7 @@ protected:
void updateDisabled(bool enable);
bool allowFocusDep;
bool isRaw;
LensGeometry *lensgeomLcpFill;
public:
@@ -52,6 +54,7 @@ public:
void onUseDistChanged();
void onUseVignChanged();
void onUseCAChanged();
void setLensGeomRef( LensGeometry *foo) { lensgeomLcpFill = foo ;};
};
#endif

View File

@@ -53,6 +53,7 @@ ToolPanelCoordinator::ToolPanelCoordinator () : ipc(nullptr), editDataProvider(n
colortoning = Gtk::manage (new ColorToning ());
lensgeom = Gtk::manage (new LensGeometry ());
lensProf = Gtk::manage (new LensProfilePanel ());
lensProf->setLensGeomRef(lensgeom);
distortion = Gtk::manage (new Distortion ());
rotate = Gtk::manage (new Rotate ());
vibrance = Gtk::manage (new Vibrance ());