diff --git a/rtdata/languages/default b/rtdata/languages/default index cd8255717..cfe9b1372 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -2753,6 +2753,7 @@ TP_LOCALLAB_SOFTRETI_TOOLTIP;Take into account deltaE to improve Transmission ma TP_LOCALLAB_SOURCE_GRAY;Value TP_LOCALLAB_SPECIAL;Special use of RGB curves TP_LOCALLAB_SPECIAL_TOOLTIP;Only for this RGB curve, disabled (or reduce effects) of Scope, mask...for example, if you want to have a negative effect. +TP_LOCALLAB_SPECCASE; Specific cases TP_LOCALLAB_SPOTNAME;Control Spot # TP_LOCALLAB_STD;Standard TP_LOCALLAB_STR;Strength diff --git a/rtgui/controlspotpanel.cc b/rtgui/controlspotpanel.cc index 900c5cd01..83d62f572 100644 --- a/rtgui/controlspotpanel.cc +++ b/rtgui/controlspotpanel.cc @@ -86,6 +86,11 @@ ControlSpotPanel::ControlSpotPanel(): shortc_(Gtk::manage(new Gtk::CheckButton(M("TP_LOCALLAB_SHORTC")))), savrest_(Gtk::manage(new Gtk::CheckButton(M("TP_LOCALLAB_SAVREST")))), + expTransGrad_(Gtk::manage(new MyExpander(false, M("TP_LOCALLAB_TRANSIT")))), + expShapeDetect_(Gtk::manage(new MyExpander(false, M("TP_LOCALLAB_ARTIF")))), + expSpecCases_(Gtk::manage(new MyExpander(false, M("TP_LOCALLAB_SPECCASE")))), + expMaskMerge_(Gtk::manage(new MyExpander(false, M("TP_LOCALLAB_MASFRAME")))), + preview_(Gtk::manage(new Gtk::ToggleButton(M("TP_LOCALLAB_PREVIEW")))), controlPanelListener(nullptr), @@ -285,11 +290,8 @@ ControlSpotPanel::ControlSpotPanel(): ctboxqualitymethod->pack_start(*qualityMethod_); // pack_start(*ctboxqualitymethod); - Gtk::Frame* const transitFrame = Gtk::manage(new Gtk::Frame(M("TP_LOCALLAB_TRANSIT"))); - transitFrame->set_label_align(0.025, 0.5); - if (showtooltip) { - transitFrame->set_tooltip_text(M("TP_LOCALLAB_TRANSIT_TOOLTIP")); + expTransGrad_->set_tooltip_text(M("TP_LOCALLAB_TRANSIT_TOOLTIP")); } ToolParamBlock* const transitBox = Gtk::manage(new ToolParamBlock()); @@ -323,14 +325,11 @@ ControlSpotPanel::ControlSpotPanel(): transitBox->pack_start(*transitweak_); transitBox->pack_start(*transitgrad_); transitBox->pack_start(*feather_); - transitFrame->add(*transitBox); - pack_start(*transitFrame); - - Gtk::Frame* const artifFrame = Gtk::manage(new Gtk::Frame(M("TP_LOCALLAB_ARTIF"))); - artifFrame->set_label_align(0.025, 0.5); + expTransGrad_->add(*transitBox, false); + pack_start(*expTransGrad_, false, false); if (showtooltip) { - artifFrame->set_tooltip_text(M("TP_LOCALLAB_ARTIF_TOOLTIP")); + expShapeDetect_->set_tooltip_text(M("TP_LOCALLAB_ARTIF_TOOLTIP")); } ToolParamBlock* const artifBox = Gtk::manage(new ToolParamBlock()); @@ -363,12 +362,14 @@ ControlSpotPanel::ControlSpotPanel(): artifBox->pack_start(*colorde_); artifBox->pack_start(*preview_); artifBox->pack_start(*colorscope_); - artifFrame->add(*artifBox); - pack_start(*artifFrame); + expShapeDetect_->add(*artifBox, false); + pack_start(*expShapeDetect_, false, false); + + ToolParamBlock* const specCaseBox = Gtk::manage(new ToolParamBlock()); avoidConn_ = avoid_->signal_toggled().connect( sigc::mem_fun(*this, &ControlSpotPanel::avoidChanged)); - pack_start(*avoid_); + specCaseBox->pack_start(*avoid_); blwhConn_ = blwh_->signal_toggled().connect( sigc::mem_fun(*this, &ControlSpotPanel::blwhChanged)); @@ -377,7 +378,7 @@ ControlSpotPanel::ControlSpotPanel(): blwh_->set_tooltip_text(M("TP_LOCALLAB_BLWH_TOOLTIP")); } - pack_start(*blwh_); + specCaseBox->pack_start(*blwh_); recursConn_ = recurs_->signal_toggled().connect( sigc::mem_fun(*this, &ControlSpotPanel::recursChanged)); @@ -387,13 +388,12 @@ ControlSpotPanel::ControlSpotPanel(): avoid_->set_tooltip_text(M("TP_LABCURVE_AVOIDCOLORSHIFT_TOOLTIP")); } - pack_start(*recurs_); - - Gtk::Frame* const maskFrame = Gtk::manage(new Gtk::Frame(M("TP_LOCALLAB_MASFRAME"))); - maskFrame->set_label_align(0.025, 0.5); + specCaseBox->pack_start(*recurs_); + expSpecCases_->add(*specCaseBox, false); + pack_start(*expSpecCases_, false, false); if (showtooltip) { - maskFrame->set_tooltip_text(M("TP_LOCALLAB_MASFRAME_TOOLTIP")); + expMaskMerge_->set_tooltip_text(M("TP_LOCALLAB_MASFRAME_TOOLTIP")); } ToolParamBlock* const maskBox = Gtk::manage(new ToolParamBlock()); @@ -424,8 +424,8 @@ ControlSpotPanel::ControlSpotPanel(): // maskBox->pack_start(*shortc_); maskBox->pack_start(*lumask_); // maskBox->pack_start(*savrest_); - maskFrame->add(*maskBox); - pack_start(*maskFrame); + expMaskMerge_->add(*maskBox, false); + pack_start(*expMaskMerge_, false, false); Gtk::HSeparator *separatormet = Gtk::manage(new Gtk::HSeparator()); pack_start(*separatormet, Gtk::PACK_SHRINK, 2); @@ -1583,6 +1583,14 @@ void ControlSpotPanel::setParamEditable(bool cond) wavMethod_->set_sensitive(cond); } +void ControlSpotPanel::setDefaultExpanderVisibility() +{ + expTransGrad_->set_expanded(false); + expShapeDetect_->set_expanded(false); + expSpecCases_->set_expanded(false); + expMaskMerge_->set_expanded(false); +} + void ControlSpotPanel::addControlSpotCurve(Gtk::TreeModel::Row& row) { // printf("addControlSpotCurve\n"); diff --git a/rtgui/controlspotpanel.h b/rtgui/controlspotpanel.h index ebd94e603..f2bfa1fd0 100644 --- a/rtgui/controlspotpanel.h +++ b/rtgui/controlspotpanel.h @@ -205,6 +205,10 @@ public: * @param cond Condition to enable interactions */ void setParamEditable(bool cond); + /** + * Reset expander collapse state to default one + */ + void setDefaultExpanderVisibility(); // Batch mode management // Note: Batch mode is deactivated for Locallab @@ -396,6 +400,11 @@ private: Gtk::CheckButton* const savrest_; sigc::connection savrestConn_; + MyExpander* const expTransGrad_; + MyExpander* const expShapeDetect_; + MyExpander* const expSpecCases_; + MyExpander* const expMaskMerge_; + Gtk::ToggleButton* const preview_; sigc::connection previewConn_; diff --git a/rtgui/locallab.cc b/rtgui/locallab.cc index a3e725870..a4351c710 100644 --- a/rtgui/locallab.cc +++ b/rtgui/locallab.cc @@ -1097,6 +1097,9 @@ void Locallab::foldAllButOne(LocallabTool* except) void Locallab::openAllTools() { + // Set default visibility for settings panel sub-expanders + expsettings->setDefaultExpanderVisibility(); + for (auto tool : locallabTools) { tool->setExpanded(true);