@@ -51,6 +51,24 @@ DirPyrEqualizer::DirPyrEqualizer () : FoldableToolPanel(this, "dirpyrequalizer",
|
||||
Color::hsv2rgb01(0.3240, 0.5, 0.5, r, g, b);
|
||||
milestones.push_back( GradientMilestone(1. , r, g, b) ); // hsv: 0.324 rad: 2.5
|
||||
|
||||
Gtk::VBox * cbVBox = Gtk::manage ( new Gtk::VBox());
|
||||
cbVBox->set_border_width(4);
|
||||
cbVBox->set_spacing(2);
|
||||
|
||||
cdbox = Gtk::manage (new Gtk::HBox ());
|
||||
labmcd = Gtk::manage (new Gtk::Label (M("TP_CBDL_METHOD") + ":"));
|
||||
cdbox->pack_start (*labmcd, Gtk::PACK_SHRINK, 1);
|
||||
|
||||
cbdlMethod = Gtk::manage (new MyComboBoxText ());
|
||||
cbdlMethod->append_text (M("TP_CBDL_BEF"));
|
||||
cbdlMethod->append_text (M("TP_CBDL_AFT"));
|
||||
cbdlMethod->set_active(0);
|
||||
cbdlMethodConn = cbdlMethod->signal_changed().connect ( sigc::mem_fun(*this, &DirPyrEqualizer::cbdlMethodChanged) );
|
||||
cbdlMethod->set_tooltip_markup (M("TP_CBDL_METHOD_TOOLTIP"));
|
||||
cdbox->pack_start(*cbdlMethod);
|
||||
cbVBox->pack_start(*cdbox);
|
||||
pack_start(*cbVBox);
|
||||
|
||||
setEnabledTooltipMarkup(M("TP_SHARPENING_TOOLTIP"));
|
||||
|
||||
Gtk::HBox * buttonBox1 = Gtk::manage (new Gtk::HBox(true, 10));
|
||||
@@ -146,12 +164,17 @@ void DirPyrEqualizer::read (const ProcParams* pp, const ParamsEdited* pedited)
|
||||
{
|
||||
|
||||
disableListener ();
|
||||
cbdlMethodConn.block(true);
|
||||
|
||||
if (pedited) {
|
||||
|
||||
set_inconsistent (multiImage && !pedited->dirpyrequalizer.enabled);
|
||||
gamutlab->set_inconsistent (!pedited->dirpyrequalizer.gamutlab);
|
||||
|
||||
if (!pedited->dirpyrequalizer.cbdlMethod) {
|
||||
cbdlMethod->set_active_text(M("GENERAL_UNCHANGED"));
|
||||
}
|
||||
|
||||
for(int i = 0; i < 6; i++) {
|
||||
multiplier[i]->setEditedState (pedited->dirpyrequalizer.mult[i] ? Edited : UnEdited);
|
||||
}
|
||||
@@ -187,6 +210,15 @@ void DirPyrEqualizer::read (const ProcParams* pp, const ParamsEdited* pedited)
|
||||
skinprotect->setValue(pp->dirpyrequalizer.skinprotect);
|
||||
hueskin->setValue<int>(pp->dirpyrequalizer.hueskin);
|
||||
|
||||
if (pp->dirpyrequalizer.cbdlMethod == "bef") {
|
||||
cbdlMethod->set_active (0);
|
||||
} else if (pp->dirpyrequalizer.cbdlMethod == "aft") {
|
||||
cbdlMethod->set_active (1);
|
||||
}
|
||||
|
||||
cbdlMethodChanged ();
|
||||
cbdlMethodConn.block(false);
|
||||
|
||||
enableListener ();
|
||||
}
|
||||
|
||||
@@ -208,6 +240,7 @@ void DirPyrEqualizer::write (ProcParams* pp, ParamsEdited* pedited)
|
||||
|
||||
pedited->dirpyrequalizer.enabled = !get_inconsistent();
|
||||
pedited->dirpyrequalizer.hueskin = hueskin->getEditedState ();
|
||||
pedited->dirpyrequalizer.cbdlMethod = cbdlMethod->get_active_text() != M("GENERAL_UNCHANGED");
|
||||
|
||||
for(int i = 0; i < 6; i++) {
|
||||
pedited->dirpyrequalizer.mult[i] = multiplier[i]->getEditedState();
|
||||
@@ -218,6 +251,13 @@ void DirPyrEqualizer::write (ProcParams* pp, ParamsEdited* pedited)
|
||||
// pedited->dirpyrequalizer.algo = algo->get_active_text()!=M("GENERAL_UNCHANGED");
|
||||
}
|
||||
|
||||
|
||||
if (cbdlMethod->get_active_row_number() == 0) {
|
||||
pp->dirpyrequalizer.cbdlMethod = "bef";
|
||||
} else if (cbdlMethod->get_active_row_number() == 1) {
|
||||
pp->dirpyrequalizer.cbdlMethod = "aft";
|
||||
}
|
||||
|
||||
/* if (algo->get_active_row_number()==0)
|
||||
pp->dirpyrequalizer.algo = "FI";
|
||||
else if (algo->get_active_row_number()==1)
|
||||
@@ -282,6 +322,16 @@ void DirPyrEqualizer::setBatchMode (bool batchMode)
|
||||
// algo->append_text (M("GENERAL_UNCHANGED"));
|
||||
}
|
||||
|
||||
void DirPyrEqualizer::cbdlMethodChanged()
|
||||
{
|
||||
|
||||
if (listener) {
|
||||
listener->panelChanged (EvcbdlMethod, cbdlMethod->get_active_text ());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
void DirPyrEqualizer::adjusterChanged (Adjuster* a, double newval)
|
||||
{
|
||||
|
||||
|
@@ -45,6 +45,10 @@ protected:
|
||||
sigc::connection lumaneutralPressedConn;
|
||||
sigc::connection lumacontrastPlusPressedConn;
|
||||
sigc::connection lumacontrastMinusPressedConn;
|
||||
sigc::connection cbdlMethodConn;
|
||||
Gtk::Label* labmcd;
|
||||
Gtk::HBox* cdbox;
|
||||
MyComboBoxText* cbdlMethod;
|
||||
|
||||
bool lastgamutlab;
|
||||
|
||||
@@ -61,7 +65,7 @@ public:
|
||||
void trimValues (rtengine::procparams::ProcParams* pp);
|
||||
void adjusterChanged (ThresholdAdjuster* a, int newBottomLeft, int newTopLeft, int newBottomRight, int newTopRight);
|
||||
// void algoChanged ();
|
||||
|
||||
void cbdlMethodChanged();
|
||||
void adjusterChanged (Adjuster* a, double newval);
|
||||
void enabledChanged();
|
||||
void gamutlabToggled ();
|
||||
|
@@ -487,6 +487,8 @@ void ParamsEdited::set (bool v)
|
||||
|
||||
dirpyrequalizer.enabled = v;
|
||||
dirpyrequalizer.gamutlab = v;
|
||||
dirpyrequalizer.cbdlMethod = v;
|
||||
|
||||
|
||||
for(int i = 0; i < 6; i++) {
|
||||
dirpyrequalizer.mult[i] = v;
|
||||
@@ -973,6 +975,7 @@ void ParamsEdited::initFrom (const std::vector<rtengine::procparams::ProcParams>
|
||||
|
||||
dirpyrequalizer.enabled = dirpyrequalizer.enabled && p.dirpyrequalizer.enabled == other.dirpyrequalizer.enabled;
|
||||
dirpyrequalizer.gamutlab = dirpyrequalizer.gamutlab && p.dirpyrequalizer.gamutlab == other.dirpyrequalizer.gamutlab;
|
||||
dirpyrequalizer.cbdlMethod = dirpyrequalizer.cbdlMethod && p.dirpyrequalizer.cbdlMethod == other.dirpyrequalizer.cbdlMethod;
|
||||
|
||||
for(int i = 0; i < 6; i++) {
|
||||
dirpyrequalizer.mult[i] = dirpyrequalizer.mult[i] && p.dirpyrequalizer.mult[i] == other.dirpyrequalizer.mult[i];
|
||||
@@ -2700,6 +2703,10 @@ void ParamsEdited::combine (rtengine::procparams::ProcParams& toEdit, const rten
|
||||
toEdit.dirpyrequalizer.gamutlab = mods.dirpyrequalizer.gamutlab;
|
||||
}
|
||||
|
||||
if (dirpyrequalizer.cbdlMethod) {
|
||||
toEdit.dirpyrequalizer.cbdlMethod = mods.dirpyrequalizer.cbdlMethod;
|
||||
}
|
||||
|
||||
for(int i = 0; i < 6; i++) {
|
||||
if(dirpyrequalizer.mult[i]) {
|
||||
toEdit.dirpyrequalizer.mult[i] = dontforceSet && options.baBehav[ADDSET_DIRPYREQ] ? toEdit.dirpyrequalizer.mult[i] + mods.dirpyrequalizer.mult[i] : mods.dirpyrequalizer.mult[i];
|
||||
|
@@ -647,7 +647,7 @@ public:
|
||||
bool enabled;
|
||||
bool gamutlab;
|
||||
bool mult[6];
|
||||
|
||||
bool cbdlMethod;
|
||||
bool threshold;
|
||||
bool skinprotect;
|
||||
bool hueskin;
|
||||
|
Reference in New Issue
Block a user