diff --git a/rtdata/images/Dark/actions/atom.png b/rtdata/images/Dark/actions/atom.png
new file mode 100644
index 000000000..1e7ce3da0
Binary files /dev/null and b/rtdata/images/Dark/actions/atom.png differ
diff --git a/rtdata/images/Dark/actions/equalizer-narrow.png b/rtdata/images/Dark/actions/equalizer-narrow.png
new file mode 100644
index 000000000..dcf484ea7
Binary files /dev/null and b/rtdata/images/Dark/actions/equalizer-narrow.png differ
diff --git a/rtdata/images/Dark/actions/equalizer-wide.png b/rtdata/images/Dark/actions/equalizer-wide.png
new file mode 100644
index 000000000..50cfed8fa
Binary files /dev/null and b/rtdata/images/Dark/actions/equalizer-wide.png differ
diff --git a/rtdata/images/Light/actions/atom.png b/rtdata/images/Light/actions/atom.png
new file mode 100644
index 000000000..55feaf8d7
Binary files /dev/null and b/rtdata/images/Light/actions/atom.png differ
diff --git a/rtdata/images/Light/actions/equalizer-narrow.png b/rtdata/images/Light/actions/equalizer-narrow.png
new file mode 100644
index 000000000..c9e2c5b26
Binary files /dev/null and b/rtdata/images/Light/actions/equalizer-narrow.png differ
diff --git a/rtdata/images/Light/actions/equalizer-wide.png b/rtdata/images/Light/actions/equalizer-wide.png
new file mode 100644
index 000000000..f5b0aca68
Binary files /dev/null and b/rtdata/images/Light/actions/equalizer-wide.png differ
diff --git a/rtdata/languages/default b/rtdata/languages/default
index 503600e28..4ae69440d 100644
--- a/rtdata/languages/default
+++ b/rtdata/languages/default
@@ -816,6 +816,8 @@ MAIN_MSG_QOVERWRITE;Do you want to overwrite it?
MAIN_MSG_SETPATHFIRST;You first have to set a target path in Preferences in order to use this function!
MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue.
MAIN_MSG_WRITEFAILED;Failed to write\n"%1"\n\nMake sure that the folder exists and that you have write permission to it.
+MAIN_TAB_ADVANCED;Advanced
+MAIN_TAB_ADVANCED_TOOLTIP;Shortcut: Alt-w
MAIN_TAB_COLOR;Color
MAIN_TAB_COLOR_TOOLTIP;Shortcut: Alt-c
MAIN_TAB_DETAIL;Detail
@@ -834,8 +836,6 @@ MAIN_TAB_RAW;Raw
MAIN_TAB_RAW_TOOLTIP;Shortcut: Alt-r
MAIN_TAB_TRANSFORM;Transform
MAIN_TAB_TRANSFORM_TOOLTIP;Shortcut: Alt-t
-MAIN_TAB_WAVELET;Wavelet
-MAIN_TAB_WAVELET_TOOLTIP;Shortcut: Alt-w
MAIN_TOOLTIP_BACKCOLOR0;Background color of the preview: Theme-based\nShortcut: 9
MAIN_TOOLTIP_BACKCOLOR1;Background color of the preview: Black\nShortcut: 9
MAIN_TOOLTIP_BACKCOLOR2;Background color of the preview: White\nShortcut: 9
@@ -870,6 +870,7 @@ NAVIGATOR_XY_FULL;Width: %1, Height: %2
NAVIGATOR_XY_NA;x: --, y: --
OPTIONS_DEFIMG_MISSING;The default profile for non-raw photos could not be found or is not set.\n\nPlease check your profiles' directory, it may be missing or damaged.\n\nDefault internal values will be used.
OPTIONS_DEFRAW_MISSING;The default profile for raw photos could not be found or is not set.\n\nPlease check your profiles' directory, it may be missing or damaged.\n\nDefault internal values will be used.
+PARTIALPASTE_ADVANCEDGROUP;Advanced Settings
PARTIALPASTE_BASICGROUP;Basic Settings
PARTIALPASTE_CACORRECTION;Chromatic aberration correction
PARTIALPASTE_CHANNELMIXER;Channel mixer
@@ -941,7 +942,6 @@ PARTIALPASTE_SHARPENMICRO;Microcontrast
PARTIALPASTE_TM_FATTAL;HDR Tone mapping
PARTIALPASTE_VIBRANCE;Vibrance
PARTIALPASTE_VIGNETTING;Vignetting correction
-PARTIALPASTE_WAVELETGROUP;Wavelet Levels
PARTIALPASTE_WHITEBALANCE;White balance
PREFERENCES_ADD;Add
PREFERENCES_APPLNEXTSTARTUP;restart required
diff --git a/rtgui/partialpastedlg.cc b/rtgui/partialpastedlg.cc
index 898b6dad5..9271ccb58 100644
--- a/rtgui/partialpastedlg.cc
+++ b/rtgui/partialpastedlg.cc
@@ -43,8 +43,8 @@ PartialPasteDlg::PartialPasteDlg (const Glib::ustring &title, Gtk::Window* paren
meta ->set_name("PartialPasteHeader");
raw = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_RAWGROUP")));
raw ->set_name("PartialPasteHeader");
- wav = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_WAVELETGROUP")));
- wav ->set_name("PartialPasteHeader");
+ advanced = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_ADVANCEDGROUP")));
+ advanced ->set_name("PartialPasteHeader");
// options in basic:
wb = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_WHITEBALANCE")));
@@ -147,11 +147,9 @@ PartialPasteDlg::PartialPasteDlg (const Glib::ustring &title, Gtk::Window* paren
vboxes[0]->pack_start (*sh, Gtk::PACK_SHRINK, 2);
vboxes[0]->pack_start (*epd, Gtk::PACK_SHRINK, 2);
vboxes[0]->pack_start (*fattal, Gtk::PACK_SHRINK, 2);
- vboxes[0]->pack_start (*retinex, Gtk::PACK_SHRINK, 2);
vboxes[0]->pack_start (*pcvignette, Gtk::PACK_SHRINK, 2);
vboxes[0]->pack_start (*gradient, Gtk::PACK_SHRINK, 2);
vboxes[0]->pack_start (*labcurve, Gtk::PACK_SHRINK, 2);
- vboxes[0]->pack_start (*colorappearance, Gtk::PACK_SHRINK, 2);
//DETAIL
vboxes[1]->pack_start (*detail, Gtk::PACK_SHRINK, 2);
@@ -197,8 +195,10 @@ PartialPasteDlg::PartialPasteDlg (const Glib::ustring &title, Gtk::Window* paren
vboxes[4]->pack_start (*commonTrans, Gtk::PACK_SHRINK, 2);
//WAVELET
- vboxes[5]->pack_start (*wav, Gtk::PACK_SHRINK, 2);
+ vboxes[5]->pack_start (*advanced, Gtk::PACK_SHRINK, 2);
vboxes[5]->pack_start (*hseps[5], Gtk::PACK_SHRINK, 2);
+ vboxes[5]->pack_start (*retinex, Gtk::PACK_SHRINK, 2);
+ vboxes[5]->pack_start (*colorappearance, Gtk::PACK_SHRINK, 2);
vboxes[5]->pack_start (*wavelet, Gtk::PACK_SHRINK, 2);
//RAW
@@ -296,7 +296,7 @@ PartialPasteDlg::PartialPasteDlg (const Glib::ustring &title, Gtk::Window* paren
compositionConn = composition->signal_toggled().connect (sigc::mem_fun(*this, &PartialPasteDlg::compositionToggled));
metaConn = meta->signal_toggled().connect (sigc::mem_fun(*this, &PartialPasteDlg::metaToggled));
rawConn = raw->signal_toggled().connect (sigc::mem_fun(*this, &PartialPasteDlg::rawToggled));
- wavConn = wav->signal_toggled().connect (sigc::mem_fun(*this, &PartialPasteDlg::wavToggled));
+ advancedConn = advanced->signal_toggled().connect (sigc::mem_fun(*this, &PartialPasteDlg::advancedToggled));
wbConn = wb->signal_toggled().connect (sigc::bind (sigc::mem_fun(*basic, &Gtk::CheckButton::set_inconsistent), true));
exposureConn = exposure->signal_toggled().connect (sigc::bind (sigc::mem_fun(*basic, &Gtk::CheckButton::set_inconsistent), true));
@@ -318,7 +318,7 @@ PartialPasteDlg::PartialPasteDlg (const Glib::ustring &title, Gtk::Window* paren
dirpyreqConn = dirpyreq->signal_toggled().connect (sigc::bind (sigc::mem_fun(*detail, &Gtk::CheckButton::set_inconsistent), true));
defringeConn = defringe->signal_toggled().connect (sigc::bind (sigc::mem_fun(*detail, &Gtk::CheckButton::set_inconsistent), true));
- waveletConn = wavelet->signal_toggled().connect (sigc::bind (sigc::mem_fun(*wav, &Gtk::CheckButton::set_inconsistent), true));
+ waveletConn = wavelet->signal_toggled().connect (sigc::bind (sigc::mem_fun(*advanced, &Gtk::CheckButton::set_inconsistent), true));
icmConn = icm->signal_toggled().connect (sigc::bind (sigc::mem_fun(*color, &Gtk::CheckButton::set_inconsistent), true));
//gamcsconn = gam->signal_toggled().connect (sigc::bind (sigc::mem_fun(*color, &Gtk::CheckButton::set_inconsistent), true));
@@ -389,7 +389,7 @@ void PartialPasteDlg::everythingToggled ()
ConnectionBlocker compositionBlocker(compositionConn);
ConnectionBlocker metaBlocker(metaConn);
ConnectionBlocker rawBlocker(rawConn);
- ConnectionBlocker wavBlocker(wavConn);
+ ConnectionBlocker advancedBlocker(advancedConn);
everything->set_inconsistent (false);
@@ -401,7 +401,7 @@ void PartialPasteDlg::everythingToggled ()
composition->set_active(everything->get_active());
meta->set_active(everything->get_active());
raw->set_active(everything->get_active());
- wav->set_active(everything->get_active());
+ advanced->set_active(everything->get_active());
//toggle group children
PartialPasteDlg::basicToggled ();
@@ -411,7 +411,7 @@ void PartialPasteDlg::everythingToggled ()
PartialPasteDlg::compositionToggled ();
PartialPasteDlg::metaToggled ();
PartialPasteDlg::rawToggled ();
- PartialPasteDlg::wavToggled ();
+ PartialPasteDlg::advancedToggled ();
}
void PartialPasteDlg::rawToggled ()
@@ -481,9 +481,7 @@ void PartialPasteDlg::basicToggled ()
ConnectionBlocker fattalBlocker(fattalConn);
ConnectionBlocker pcvignetteBlocker(pcvignetteConn);
ConnectionBlocker gradientBlocker(gradientConn);
- ConnectionBlocker retinexBlocker(retinexConn);
ConnectionBlocker labcurveBlocker(labcurveConn);
- ConnectionBlocker colorappearanceBlocker(colorappearanceConn);
basic->set_inconsistent (false);
@@ -495,9 +493,7 @@ void PartialPasteDlg::basicToggled ()
fattal->set_active (basic->get_active ());
pcvignette->set_active (basic->get_active ());
gradient->set_active (basic->get_active ());
- retinex->set_active (basic->get_active ());
labcurve->set_active (basic->get_active ());
- colorappearance->set_active (basic->get_active ());
}
void PartialPasteDlg::detailToggled ()
@@ -522,13 +518,17 @@ void PartialPasteDlg::detailToggled ()
dirpyreq->set_active (detail->get_active ());
}
-void PartialPasteDlg::wavToggled ()
+void PartialPasteDlg::advancedToggled ()
{
ConnectionBlocker waveletBlocker(waveletConn);
+ ConnectionBlocker retinexBlocker(retinexConn);
+ ConnectionBlocker colorappearanceBlocker(colorappearanceConn);
- wav->set_inconsistent (false);
- wavelet->set_active (wav->get_active ());
+ advanced->set_inconsistent (false);
+ wavelet->set_active (advanced->get_active ());
+ retinex->set_active (basic->get_active ());
+ colorappearance->set_active (basic->get_active ());
}
void PartialPasteDlg::colorToggled ()
diff --git a/rtgui/partialpastedlg.h b/rtgui/partialpastedlg.h
index d1ae056c3..08e8ed81e 100644
--- a/rtgui/partialpastedlg.h
+++ b/rtgui/partialpastedlg.h
@@ -39,7 +39,7 @@ public:
Gtk::CheckButton* composition;
Gtk::CheckButton* meta;
Gtk::CheckButton* raw;
- Gtk::CheckButton* wav;
+ Gtk::CheckButton* advanced;
// options in basic:
Gtk::CheckButton* wb;
@@ -123,7 +123,7 @@ public:
Gtk::CheckButton* ff_BlurType;
Gtk::CheckButton* ff_ClipControl;
- sigc::connection everythingConn, basicConn, detailConn, colorConn, lensConn, compositionConn, metaConn, rawConn, wavConn;
+ sigc::connection everythingConn, basicConn, detailConn, colorConn, lensConn, compositionConn, metaConn, rawConn, advancedConn;
sigc::connection wbConn, exposureConn, localcontrastConn, shConn, pcvignetteConn, gradientConn, labcurveConn, colorappearanceConn;
sigc::connection sharpenConn, gradsharpenConn, microcontrastConn, impdenConn, dirpyrdenConn, defringeConn, epdConn, fattalConn, dirpyreqConn, waveletConn, retinexConn;
@@ -147,7 +147,7 @@ public:
void compositionToggled ();
void metaToggled ();
void rawToggled ();
- void wavToggled ();
+ void advancedToggled ();
};
#endif
diff --git a/rtgui/toolpanelcoord.cc b/rtgui/toolpanelcoord.cc
index 7726f9a5e..e9cb3ea43 100644
--- a/rtgui/toolpanelcoord.cc
+++ b/rtgui/toolpanelcoord.cc
@@ -36,7 +36,7 @@ ToolPanelCoordinator::ToolPanelCoordinator (bool batch) : ipc (nullptr), hasChan
colorPanel = Gtk::manage (new ToolVBox ());
transformPanel = Gtk::manage (new ToolVBox ());
rawPanel = Gtk::manage (new ToolVBox ());
- waveletPanel = Gtk::manage (new ToolVBox ());
+ advancedPanel = Gtk::manage (new ToolVBox ());
coarse = Gtk::manage (new CoarsePanel ());
toneCurve = Gtk::manage (new ToneCurve ());
@@ -115,16 +115,16 @@ ToolPanelCoordinator::ToolPanelCoordinator (bool batch) : ipc (nullptr), hasChan
addPanel (colorPanel, colortoning);
addPanel (exposurePanel, epd);
addPanel (exposurePanel, fattal);
- addPanel (exposurePanel, retinex);
+ addPanel (advancedPanel, retinex);
addPanel (exposurePanel, pcvignette);
addPanel (exposurePanel, gradient);
addPanel (exposurePanel, lcurve);
- addPanel (exposurePanel, colorappearance);
+ addPanel (advancedPanel, colorappearance);
addPanel (detailsPanel, impulsedenoise);
addPanel (detailsPanel, dirpyrdenoise);
addPanel (detailsPanel, defringe);
addPanel (detailsPanel, dirpyrequalizer);
- addPanel (waveletPanel, wavelet);
+ addPanel (advancedPanel, wavelet);
addPanel (transformPanel, crop);
addPanel (transformPanel, resize);
addPanel (resize->getPackBox(), prsharpening, 2);
@@ -161,7 +161,7 @@ ToolPanelCoordinator::ToolPanelCoordinator (bool batch) : ipc (nullptr), hasChan
colorPanelSW = Gtk::manage (new MyScrolledWindow ());
transformPanelSW = Gtk::manage (new MyScrolledWindow ());
rawPanelSW = Gtk::manage (new MyScrolledWindow ());
- waveletPanelSW = Gtk::manage (new MyScrolledWindow ());
+ advancedPanelSW = Gtk::manage (new MyScrolledWindow ());
updateVScrollbars (options.hideTPVScrollbar);
// load panel endings
@@ -185,9 +185,9 @@ ToolPanelCoordinator::ToolPanelCoordinator (bool batch) : ipc (nullptr), hasChan
colorPanel->pack_start (*Gtk::manage (new Gtk::HSeparator), Gtk::PACK_SHRINK, 0);
colorPanel->pack_start (*vbPanelEnd[2], Gtk::PACK_SHRINK, 4);
- waveletPanelSW->add (*waveletPanel);
- waveletPanel->pack_start (*Gtk::manage (new Gtk::HSeparator), Gtk::PACK_SHRINK, 0);
- waveletPanel->pack_start (*vbPanelEnd[5], Gtk::PACK_SHRINK, 0);
+ advancedPanelSW->add (*advancedPanel);
+ advancedPanel->pack_start (*Gtk::manage (new Gtk::HSeparator), Gtk::PACK_SHRINK, 0);
+ advancedPanel->pack_start (*vbPanelEnd[5], Gtk::PACK_SHRINK, 0);
transformPanelSW->add (*transformPanel);
transformPanel->pack_start (*Gtk::manage (new Gtk::HSeparator), Gtk::PACK_SHRINK, 0);
@@ -204,7 +204,7 @@ ToolPanelCoordinator::ToolPanelCoordinator (bool batch) : ipc (nullptr), hasChan
toiE = Gtk::manage (new TextOrIcon ("exposure.png", M ("MAIN_TAB_EXPOSURE"), M ("MAIN_TAB_EXPOSURE_TOOLTIP"), type));
toiD = Gtk::manage (new TextOrIcon ("detail.png", M ("MAIN_TAB_DETAIL"), M ("MAIN_TAB_DETAIL_TOOLTIP"), type));
toiC = Gtk::manage (new TextOrIcon ("colour.png", M ("MAIN_TAB_COLOR"), M ("MAIN_TAB_COLOR_TOOLTIP"), type));
- toiW = Gtk::manage (new TextOrIcon ("wavelet.png", M ("MAIN_TAB_WAVELET"), M ("MAIN_TAB_WAVELET_TOOLTIP"), type));
+ toiW = Gtk::manage (new TextOrIcon ("atom.png", M ("MAIN_TAB_ADVANCED"), M ("MAIN_TAB_ADVANCED_TOOLTIP"), type));
toiT = Gtk::manage (new TextOrIcon ("transform.png", M ("MAIN_TAB_TRANSFORM"), M ("MAIN_TAB_TRANSFORM_TOOLTIP"), type));
toiR = Gtk::manage (new TextOrIcon ("raw.png", M ("MAIN_TAB_RAW"), M ("MAIN_TAB_RAW_TOOLTIP"), type));
toiM = Gtk::manage (new TextOrIcon ("meta.png", M ("MAIN_TAB_METADATA"), M ("MAIN_TAB_METADATA_TOOLTIP"), type));
@@ -212,7 +212,7 @@ ToolPanelCoordinator::ToolPanelCoordinator (bool batch) : ipc (nullptr), hasChan
toolPanelNotebook->append_page (*exposurePanelSW, *toiE);
toolPanelNotebook->append_page (*detailsPanelSW, *toiD);
toolPanelNotebook->append_page (*colorPanelSW, *toiC);
- toolPanelNotebook->append_page (*waveletPanelSW, *toiW);
+ toolPanelNotebook->append_page (*advancedPanelSW, *toiW);
toolPanelNotebook->append_page (*transformPanelSW, *toiT);
toolPanelNotebook->append_page (*rawPanelSW, *toiR);
toolPanelNotebook->append_page (*metadata, *toiM);
@@ -801,7 +801,7 @@ bool ToolPanelCoordinator::handleShortcutKey (GdkEventKey* event)
return true;
case GDK_KEY_w:
- toolPanelNotebook->set_current_page (toolPanelNotebook->page_num (*waveletPanelSW));
+ toolPanelNotebook->set_current_page (toolPanelNotebook->page_num (*advancedPanelSW));
return true;
case GDK_KEY_m:
@@ -822,7 +822,7 @@ void ToolPanelCoordinator::updateVScrollbars (bool hide)
colorPanelSW->set_policy (Gtk::POLICY_AUTOMATIC, policy);
transformPanelSW->set_policy (Gtk::POLICY_AUTOMATIC, policy);
rawPanelSW->set_policy (Gtk::POLICY_AUTOMATIC, policy);
- waveletPanelSW->set_policy (Gtk::POLICY_AUTOMATIC, policy);
+ advancedPanelSW->set_policy (Gtk::POLICY_AUTOMATIC, policy);
for (auto currExp : expList) {
currExp->updateVScrollbars (hide);
diff --git a/rtgui/toolpanelcoord.h b/rtgui/toolpanelcoord.h
index 11f6dfc0a..c6d2e6380 100644
--- a/rtgui/toolpanelcoord.h
+++ b/rtgui/toolpanelcoord.h
@@ -160,7 +160,7 @@ protected:
ToolVBox* colorPanel;
ToolVBox* transformPanel;
ToolVBox* rawPanel;
- ToolVBox* waveletPanel;
+ ToolVBox* advancedPanel;
ToolBar* toolBar;
TextOrIcon* toiE;
@@ -179,7 +179,7 @@ protected:
Gtk::ScrolledWindow* colorPanelSW;
Gtk::ScrolledWindow* transformPanelSW;
Gtk::ScrolledWindow* rawPanelSW;
- Gtk::ScrolledWindow* waveletPanelSW;
+ Gtk::ScrolledWindow* advancedPanelSW;
std::vector expList;
diff --git a/tools/source_icons/scalable/atom.file b/tools/source_icons/scalable/atom.file
new file mode 100644
index 000000000..8c7faa135
--- /dev/null
+++ b/tools/source_icons/scalable/atom.file
@@ -0,0 +1 @@
+atom.png,w22,actions
diff --git a/tools/source_icons/scalable/atom.svg b/tools/source_icons/scalable/atom.svg
new file mode 100644
index 000000000..33eb0a7e5
--- /dev/null
+++ b/tools/source_icons/scalable/atom.svg
@@ -0,0 +1,121 @@
+
+
+
+
diff --git a/tools/source_icons/scalable/equalizer-narrow.file b/tools/source_icons/scalable/equalizer-narrow.file
new file mode 100644
index 000000000..c922b3554
--- /dev/null
+++ b/tools/source_icons/scalable/equalizer-narrow.file
@@ -0,0 +1 @@
+equalizer-narrow.png,w22,actions
diff --git a/tools/source_icons/scalable/equalizer-narrow.svg b/tools/source_icons/scalable/equalizer-narrow.svg
new file mode 100644
index 000000000..b31128b36
--- /dev/null
+++ b/tools/source_icons/scalable/equalizer-narrow.svg
@@ -0,0 +1,201 @@
+
+
+
+
diff --git a/tools/source_icons/scalable/equalizer-wide.file b/tools/source_icons/scalable/equalizer-wide.file
new file mode 100644
index 000000000..22ee0b4b9
--- /dev/null
+++ b/tools/source_icons/scalable/equalizer-wide.file
@@ -0,0 +1 @@
+equalizer-wide.png,w22,actions
diff --git a/tools/source_icons/scalable/equalizer-wide.svg b/tools/source_icons/scalable/equalizer-wide.svg
new file mode 100644
index 000000000..dcf184f56
--- /dev/null
+++ b/tools/source_icons/scalable/equalizer-wide.svg
@@ -0,0 +1,256 @@
+
+
+
+