diff --git a/rtgui/guiutils.cc b/rtgui/guiutils.cc index 4d9dd3c5c..989ff2758 100644 --- a/rtgui/guiutils.cc +++ b/rtgui/guiutils.cc @@ -849,13 +849,15 @@ bool MyExpander::get_expanded() return expBox ? expBox->get_visible() : false; } -void MyExpander::add (Gtk::Container& widget) +void MyExpander::add (Gtk::Container& widget, bool setChild) { - child = &widget; + if(setChild) { + child = &widget; + } expBox = Gtk::manage (new ExpanderBox (child)); - expBox->add (*child); + expBox->add (widget); pack_start(*expBox, Gtk::PACK_SHRINK, 0); - child->show(); + widget.show(); expBox->hideBox(); } @@ -889,11 +891,6 @@ bool MyExpander::on_toggle(GdkEventButton* event) return false; } -Gtk::Container* MyExpander::getChild() -{ - return child; -} - // used to connect a function to the enabled_toggled signal MyExpander::type_signal_enabled_toggled MyExpander::signal_enabled_toggled() { diff --git a/rtgui/guiutils.h b/rtgui/guiutils.h index 085027577..7a71fc399 100644 --- a/rtgui/guiutils.h +++ b/rtgui/guiutils.h @@ -265,9 +265,6 @@ public: return headerWidget ? headerWidget : label; } - /// Get the widget shown/hidden by the expander - Gtk::Container* getChild(); - /// Set the collapsed/expanded state of the expander void set_expanded( bool expanded ); @@ -276,7 +273,7 @@ public: /// Add a Gtk::Container for the content of the expander /// Warning: do not manually Show/Hide the widget, because this parameter is handled by the click on the Expander's title - void add (Gtk::Container& widget); + void add (Gtk::Container& widget, bool setChild = true); void updateVScrollbars(bool hide); }; diff --git a/rtgui/retinex.cc b/rtgui/retinex.cc index 6f05f3f72..75f099488 100644 --- a/rtgui/retinex.cc +++ b/rtgui/retinex.cc @@ -194,7 +194,7 @@ Retinex::Retinex () : FoldableToolPanel (this, "retinex", M ("TP_RETINEX_LABEL") - expsettings = new MyExpander (false, M ("TP_RETINEX_SETTINGS")); + expsettings = Gtk::manage(new MyExpander(false, M ("TP_RETINEX_SETTINGS"))); setExpandAlignProperties (expsettings, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_START); expsettings->signal_button_release_event().connect_notify ( sigc::bind ( sigc::mem_fun (this, &Retinex::foldAllButMe), expsettings) ); @@ -474,7 +474,7 @@ Retinex::Retinex () : FoldableToolPanel (this, "retinex", M ("TP_RETINEX_LABEL") //-------------------------- - expsettings->add (*settingsGrid); + expsettings->add (*settingsGrid, false); expsettings->setLevel (2); pack_start (*expsettings); diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index 9a692b784..1fea0cd54 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -132,15 +132,15 @@ Wavelet::Wavelet() : wavLabels(Gtk::manage(new Gtk::Label("---", Gtk::ALIGN_CENTER))), labmC(Gtk::manage(new Gtk::Label(M("TP_WAVELET_CTYPE") + ":"))), labmNP(Gtk::manage(new Gtk::Label(M("TP_WAVELET_NPTYPE") + ":"))), - expchroma(new MyExpander(true, M("TP_WAVELET_LEVCH"))), - expcontrast(new MyExpander(true, M("TP_WAVELET_LEVF"))), - expedge(new MyExpander(true, M("TP_WAVELET_EDGE"))), - expfinal(new MyExpander(true, M("TP_WAVELET_FINAL"))), - expgamut(new MyExpander(false, M("TP_WAVELET_CONTR"))), - expnoise(new MyExpander(true, M("TP_WAVELET_NOISE"))), - expresid(new MyExpander(true, M("TP_WAVELET_RESID"))), - expsettings(new MyExpander(false, M("TP_WAVELET_SETTINGS"))), - exptoning(new MyExpander(true, M("TP_WAVELET_TON"))), + expchroma(Gtk::manage(new MyExpander(true, M("TP_WAVELET_LEVCH")))), + expcontrast(Gtk::manage(new MyExpander(true, M("TP_WAVELET_LEVF")))), + expedge(Gtk::manage(new MyExpander(true, M("TP_WAVELET_EDGE")))), + expfinal(Gtk::manage(new MyExpander(true, M("TP_WAVELET_FINAL")))), + expgamut(Gtk::manage(new MyExpander(false, M("TP_WAVELET_CONTR")))), + expnoise(Gtk::manage(new MyExpander(true, M("TP_WAVELET_NOISE")))), + expresid(Gtk::manage(new MyExpander(true, M("TP_WAVELET_RESID")))), + expsettings(Gtk::manage(new MyExpander(false, M("TP_WAVELET_SETTINGS")))), + exptoning(Gtk::manage(new MyExpander(true, M("TP_WAVELET_TON")))), neutrHBox(Gtk::manage(new Gtk::HBox())) { CurveListener::setMulti(true); @@ -838,39 +838,39 @@ Wavelet::Wavelet() : //----------------------------- - expsettings->add(*settingsBox); + expsettings->add(*settingsBox, false); expsettings->setLevel(2); pack_start (*expsettings); - expcontrast->add(*levBox); + expcontrast->add(*levBox, false); expcontrast->setLevel(2); pack_start (*expcontrast); - expchroma->add(*chBox); + expchroma->add(*chBox, false); expchroma->setLevel(2); pack_start (*expchroma); - exptoning->add(*tonBox); + exptoning->add(*tonBox, false); exptoning->setLevel(2); pack_start (*exptoning); - expnoise->add(*noiseBox); + expnoise->add(*noiseBox, false); expnoise->setLevel(2); pack_start (*expnoise); - expedge->add(*edgBox); + expedge->add(*edgBox, false); expedge->setLevel(2); pack_start (*expedge); - expgamut->add(*conBox); + expgamut->add(*conBox, false); expgamut->setLevel(2); pack_start (*expgamut); - expresid->add(*resBox); + expresid->add(*resBox, false); expresid->setLevel(2); pack_start(*expresid); - expfinal->add(*finalBox); + expfinal->add(*finalBox, false); expfinal->setLevel(2); pack_start(*expfinal); } @@ -887,6 +887,7 @@ Wavelet::~Wavelet () delete curveEditorG; delete opacityCurveEditorW; delete opacityCurveEditorWL; + } void Wavelet::wavChanged (double nlevel)