First patch for issue 2648: "Improvements related to the GUI" ; now RT uses the new MyExpander class that integrates the Enabled button.

This commit is contained in:
Hombrenatureh.510
2015-03-11 02:03:48 +01:00
parent 1aa2ae3903
commit 6020234205
104 changed files with 5099 additions and 1257 deletions

View File

@@ -9,12 +9,8 @@
using namespace rtengine;
using namespace rtengine::procparams;
Gradient::Gradient () : FoldableToolPanel(this), EditSubscriber(ET_OBJECTS), lastObject(-1), draggedPointOldAngle(-1000.)
Gradient::Gradient () : FoldableToolPanel(this, "gradient", M("TP_GRADIENT_LABEL"), false, true), EditSubscriber(ET_OBJECTS), lastObject(-1), draggedPointOldAngle(-1000.)
{
enabled = Gtk::manage (new Gtk::CheckButton (M("GENERAL_ENABLED")));
enabled->set_active (false);
enaConn = enabled->signal_toggled().connect( sigc::mem_fun(*this, &Gradient::enabledChanged) );
edit = Gtk::manage (new Gtk::ToggleButton());
edit->add (*Gtk::manage (new RTImage ("editmodehand.png")));
edit->set_tooltip_text(M("EDIT_OBJECT_TOOLTIP"));
@@ -40,11 +36,6 @@ Gradient::Gradient () : FoldableToolPanel(this), EditSubscriber(ET_OBJECTS), las
centerY->set_tooltip_text (M("TP_GRADIENT_CENTER_Y_TOOLTIP"));
centerY->setAdjusterListener (this);
enaBox = Gtk::manage (new Gtk::HBox());
enaBox->pack_start(*enabled);
enaBox->pack_end(*edit, false, false, 0);
pack_start(*enaBox);
pack_start(*Gtk::manage (new Gtk::HSeparator()), Gtk::PACK_EXPAND_WIDGET, 4);
pack_start (*strength);
pack_start (*degree);
pack_start (*feather);
@@ -119,20 +110,16 @@ void Gradient::read (const ProcParams* pp, const ParamsEdited* pedited)
strength->setEditedState (pedited->gradient.strength ? Edited : UnEdited);
centerX->setEditedState (pedited->gradient.centerX ? Edited : UnEdited);
centerY->setEditedState (pedited->gradient.centerY ? Edited : UnEdited);
enabled->set_inconsistent (multiImage && !pedited->gradient.enabled);
set_inconsistent (multiImage && !pedited->gradient.enabled);
}
enaConn.block (true);
enabled->set_active (pp->gradient.enabled);
enaConn.block (false);
setEnabled(pp->gradient.enabled);
degree->setValue (pp->gradient.degree);
feather->setValue (pp->gradient.feather);
strength->setValue (pp->gradient.strength);
centerX->setValue (pp->gradient.centerX);
centerY->setValue (pp->gradient.centerY);
lastEnabled = pp->gradient.enabled;
updateGeometry (pp->gradient.centerX, pp->gradient.centerY, pp->gradient.feather, pp->gradient.degree);
enableListener ();
@@ -195,7 +182,7 @@ void Gradient::write (ProcParams* pp, ParamsEdited* pedited)
pp->gradient.strength = strength->getValue ();
pp->gradient.centerX = centerX->getIntValue ();
pp->gradient.centerY = centerY->getIntValue ();
pp->gradient.enabled = enabled->get_active();
pp->gradient.enabled = getEnabled();
if (pedited) {
pedited->gradient.degree = degree->getEditedState ();
@@ -203,7 +190,7 @@ void Gradient::write (ProcParams* pp, ParamsEdited* pedited)
pedited->gradient.strength = strength->getEditedState ();
pedited->gradient.centerX = centerX->getEditedState ();
pedited->gradient.centerY = centerY->getEditedState ();
pedited->gradient.enabled = !enabled->get_inconsistent();
pedited->gradient.enabled = !get_inconsistent();
}
}
@@ -234,7 +221,7 @@ void Gradient::adjusterChanged (Adjuster* a, double newval) {
updateGeometry (int(centerX->getValue()), int(centerY->getValue()), feather->getValue(), degree->getValue());
if (listener && enabled->get_active()) {
if (listener && getEnabled()) {
if (a == degree)
listener->panelChanged (EvGradientDegree, degree->getTextValue());
@@ -249,20 +236,10 @@ void Gradient::adjusterChanged (Adjuster* a, double newval) {
void Gradient::enabledChanged () {
if (batchMode) {
if (enabled->get_inconsistent()) {
enabled->set_inconsistent (false);
enaConn.block (true);
enabled->set_active (false);
enaConn.block (false);
}
else if (lastEnabled)
enabled->set_inconsistent (true);
lastEnabled = enabled->get_active ();
}
if (listener) {
if (enabled->get_active())
if (get_inconsistent())
listener->panelChanged (EvGradientEnabled, M("GENERAL_UNCHANGED"));
else if (getEnabled())
listener->panelChanged (EvGradientEnabled, M("GENERAL_ENABLED"));
else
listener->panelChanged (EvGradientEnabled, M("GENERAL_DISABLED"));
@@ -289,7 +266,7 @@ void Gradient::trimValues (rtengine::procparams::ProcParams* pp)
void Gradient::setBatchMode (bool batchMode)
{
removeIfThere(enaBox, edit, false);
removeIfThere(this, edit, false);
ToolPanel::setBatchMode (batchMode);
degree->showEditedCB ();
feather->showEditedCB ();