diff --git a/RELEASE_NOTES.txt b/RELEASE_NOTES.txt
index 5affd4b39..ee44c6de1 100644
--- a/RELEASE_NOTES.txt
+++ b/RELEASE_NOTES.txt
@@ -1,8 +1,8 @@
-RAWTHERAPEE 5.2 RELEASE NOTES
+RAWTHERAPEE 5.3-dev RELEASE NOTES
-----------------------------
This is a development version of RawTherapee. We update the code almost daily. Every few months, once enough changes have accumulated and the code is stabilized, we make a new official release. Every code change between these releases is known as a "development" version, and this is one of them.
-RawTherapee provides you with a selection of powerful tools with which you can practice the art of developing raw photos. Be sure to read RawPedia to understand how each tool works so that you may make the most of it.
+RawTherapee provides you with a selection of powerful tools with which you can practise the art of developing raw photos. Be sure to read RawPedia to understand how each tool works so that you may make the most of it.
http://rawpedia.rawtherapee.com/
A great place to start is the "Getting Started" article. Click on "Main page" in the top-left corner when you have finished reading that article to see all other articles.
@@ -15,7 +15,8 @@ While we only commit tested and relatively stable code and so the development ve
News Relevant to Photographers
------------------------------
-RawTherapee supports most raw formats, including some unusual ones like those from cameras using Foveon and X-Trans sensors. If you're wondering whether it supports your camera's raw format, first download RawTherapee and try for yourself. If a raw format is not supported it will either not open, or the preview in the Editor tab will appear black, white, or have a strong color cast - usually magenta. In that case, read the "Adding Support for New Raw Formats" RawPedia article.
+RawTherapee supports most raw formats, including Pentax Pixel Shift, Canon Dual-Pixel, and those from Foveon and X-Trans sensors.
+If you're wondering whether it supports your camera's raw format, first download RawTherapee and try for yourself. If a raw format is not supported it will either not open, or the preview in the Editor tab will appear black, white, or have a strong color cast - usually magenta. In that case, read the "Adding Support for New Raw Formats" RawPedia article.
In order to use RawTherapee efficiently you should know that:
- You can scroll all panels using the mouse scroll-wheel.
@@ -24,8 +25,8 @@ In order to use RawTherapee efficiently you should know that:
- All curves support the Shift and Ctrl keys while dragging a point. Shift+drag makes the point snap to meaningful axes (top, bottom, diagonal, other), while Ctrl+drag makes your mouse movement super-fine for precise point positioning.
- There are many keyboard shortcuts which make working with RawTherapee much faster and give you greater control. Make sure you familiarize yourself with them on RawPedia's "Keyboard Shortcuts" page!
-New features since 5.2:
-- To be filled in once 5.3 is released.
+New features since 5.3:
+- To be filled in when 5.4 is released.
News Relevant to Package Maintainers
------------------------------------
@@ -38,14 +39,13 @@ In general:
- For development builds and release-candidates use -DCACHE_NAME_SUFFIX="5-dev"
Changes since 5.2:
-- To be filled in once 5.3 is released.
+- To be filled in when 5.4 is released.
News Relevant to Developers
---------------------------
- Announce and discuss your plans in GitHub before starting work.
- Keep branches small so that completed and working features can be merged into the "dev" branch often, and so that they can be abandoned if they head in the wrong direction.
- Use C++11.
-- Code must be run through astyle.
DOCUMENTATION
-------------
diff --git a/rtdata/dcpprofiles/Panasonic DC-TZ90.dcp b/rtdata/dcpprofiles/Panasonic DC-TZ90.dcp
new file mode 100644
index 000000000..2a3abfaed
Binary files /dev/null and b/rtdata/dcpprofiles/Panasonic DC-TZ90.dcp differ
diff --git a/rtdata/dcpprofiles/Panasonic DC-TZ92.dcp b/rtdata/dcpprofiles/Panasonic DC-TZ92.dcp
new file mode 100644
index 000000000..2a3abfaed
Binary files /dev/null and b/rtdata/dcpprofiles/Panasonic DC-TZ92.dcp differ
diff --git a/rtdata/dcpprofiles/Panasonic DC-TZ93.dcp b/rtdata/dcpprofiles/Panasonic DC-TZ93.dcp
new file mode 100644
index 000000000..2a3abfaed
Binary files /dev/null and b/rtdata/dcpprofiles/Panasonic DC-TZ93.dcp differ
diff --git a/rtdata/images/rt_splash.svg b/rtdata/images/rt_splash.svg
index 8048ccb97..c80cdd5c7 100644
--- a/rtdata/images/rt_splash.svg
+++ b/rtdata/images/rt_splash.svg
@@ -10,20 +10,48 @@
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- width="588.79999"
- height="369.06668"
- id="svg2"
+ width="552"
+ height="346"
+ viewBox="0 0 146.05 91.545836"
version="1.1"
+ id="svg783"
inkscape:version="0.92.1 r"
sodipodi:docname="rt_splash.svg"
- style="enable-background:new"
- inkscape:export-filename="/tmp/rt_splash_52_dev.png"
- inkscape:export-xdpi="90"
- inkscape:export-ydpi="90">
-
RawTherapee Splash Screen
+ inkscape:export-filename="/tmp/splash.png"
+ inkscape:export-xdpi="96"
+ inkscape:export-ydpi="96">
+ id="defs777">
+
+
+
+
+
+
+
@@ -58,6 +106,16 @@
offset="1"
style="stop-color:#971ec6;stop-opacity:1" />
+
+
@@ -81,6 +149,16 @@
offset="1"
style="stop-color:#1526c3;stop-opacity:1" />
+
+
@@ -104,6 +192,16 @@
offset="1"
style="stop-color:#fc12aa;stop-opacity:1" />
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ inkscape:window-maximized="1">
+ inkscape:color="rgb(0,0,255)" />
-
-
-
+
+
+
-
-
+ id="metadata780">
image/svg+xml
- RawTherapee Splash Screen
-
-
- Morgan Hardwood
-
-
-
-
- rawtherapee
- logo
- splash
-
-
- www.rawtherapee.com
-
+
-
-
-
-
-
-
-
-
+ transform="translate(0,-205.45415)">
+ style="fill:#2a2a2a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.26458338;enable-background:new" />
+ width="146.05"
+ height="32.22514"
+ x="0"
+ y="310.22934"
+ rx="3.1236236"
+ ry="1.1284066" />
+ transform="matrix(0.6837777,0,0,0.68377778,2.6015099,222.16553)"
+ style="filter:url(#filter3580);enable-background:new">
For logo specifics, refer to rt_logo.svg 64pt, skewed -3°. RawTherapee splash screen design version 1.1 from 2017-01-28 | www.rawtherapee.com
-
+ x="32.400429"
+ y="340.74057"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:1.60844219px;line-height:1.25;font-family:OxygenSans;-inkscape-font-specification:OxygenSans;letter-spacing:0.26807371px;fill:#ffcc00;fill-opacity:1;stroke-width:0.26807371">RawTherapee splash screen design version 1.1 from 2017-01-28 | www.rawtherapee.com
Raw
Therapee
GNU GPLv3
+ x="7.6874547"
+ y="290.34174"
+ style="font-size:3.96875px;line-height:1.25;stroke-width:0.26458338px">GNU GPLv3
5
. 2
+ sodipodi:role="line">. 3
+ transform="matrix(0.24804687,0,0,0.2480469,-10.282719,273.1232)"
+ style="fill:#ffffff;enable-background:new">
Development
-
diff --git a/rtdata/images/splash.png b/rtdata/images/splash.png
index 2a0806946..701ef02bf 100644
Binary files a/rtdata/images/splash.png and b/rtdata/images/splash.png differ
diff --git a/rtdata/themes/RawTherapee-GTK3-20_.css b/rtdata/themes/RawTherapee-GTK3-20_.css
index e0e6fe096..94886d6fb 100644
--- a/rtdata/themes/RawTherapee-GTK3-20_.css
+++ b/rtdata/themes/RawTherapee-GTK3-20_.css
@@ -171,6 +171,7 @@ eventbox.frame {
border-color: #565656;
}
+/*** Scrollbar ***************************************/
scrollbar {
background-color: #303030;
}
@@ -181,6 +182,42 @@ scrollbar slider:hover {
background-color: #999999;
}
+scrollbar:not(.overlay-indicator).horizontal slider,
+scrollbar.horizontal.hovering slider {
+ min-height: 6px;
+ min-width: 24px;
+}
+scrollbar:not(.overlay-indicator).horizontal.fine-tune slider,
+scrollbar.horizontal.hovering.fine-tune slider {
+ min-height: 4px;
+ border-width: 4px;
+ margin: 0 -1px;
+}
+scrollbar.horizontal.overlay-indicator:not(.hovering) slider {
+ min-width: 24px;
+ min-height: 3px;
+ margin: 0 2px;
+}
+
+scrollbar:not(.overlay-indicator).vertical slider,
+scrollbar.vertical.hovering slider {
+ min-height: 24px;
+ min-width: 6px;
+}
+scrollbar:not(.overlay-indicator).vertical.fine-tune slider,
+scrollbar.vertical.hovering.fine-tune slider {
+ min-width: 4px;
+ border-width: 4px;
+ margin: -1px 0;
+}
+scrollbar.vertical.overlay-indicator:not(.hovering) slider {
+ min-width: 3px;
+ min-height: 24px;
+ margin: 2px 0;
+}
+
+/**************************************************/
+
button {
padding: 0;
min-height: 5px;
diff --git a/rtengine/improcfun.cc b/rtengine/improcfun.cc
index ad7543e8e..b4da73193 100644
--- a/rtengine/improcfun.cc
+++ b/rtengine/improcfun.cc
@@ -1814,10 +1814,10 @@ void ImProcFunctions::ciecam_02float (CieImage* ncie, float adap, int begh, int
hist16Qthr.clear();
}
- // #pragma omp for reduction(+:sum,sumQ)
+ // #pragma omp for reduction(+:sum,sumQ)
#pragma omp for reduction(+:sum)
-
+
for (int i = 0; i < height; i++)
for (int j = 0; j < width; j++) { //rough correspondence between L and J
float currL = lab->L[i][j] / 327.68f;
@@ -1862,25 +1862,25 @@ void ImProcFunctions::ciecam_02float (CieImage* ncie, float adap, int begh, int
}
//estimation of wh only with La
-/*
- float whestim = 500.f;
+ /*
+ float whestim = 500.f;
- if (la < 200.f) {
- whestim = 200.f;
- } else if (la < 2500.f) {
- whestim = 350.f;
- } else {
- whestim = 500.f;
- }
-*/
+ if (la < 200.f) {
+ whestim = 200.f;
+ } else if (la < 2500.f) {
+ whestim = 350.f;
+ } else {
+ whestim = 500.f;
+ }
+ */
if (needQ) {
hist16Qthr[CLIP ((int) (32768.f * sqrt ((koef * (lab->L[i][j])) / 32768.f)))]++; //for brightness Q : approximation for Q=wh*sqrt(J/100) J not equal L
//perhaps needs to introduce whestim ??
- // hist16Qthr[ (int) (sqrtf ((koef * (lab->L[i][j])) * 32768.f))]++; //for brightness Q : approximation for Q=wh*sqrt(J/100) J not equal L
+ //hist16Qthr[ (int) (sqrtf ((koef * (lab->L[i][j])) * 32768.f))]++; //for brightness Q : approximation for Q=wh*sqrt(J/100) J not equal L
}
sum += koef * lab->L[i][j]; //evaluate mean J to calculate Yb
- // sumQ += whestim * sqrt ((koef * (lab->L[i][j])) / 32768.f);
+ //sumQ += whestim * sqrt ((koef * (lab->L[i][j])) / 32768.f);
//can be used in case of...
}
diff --git a/rtgui/history.cc b/rtgui/history.cc
index 8523c2600..75b46d0cf 100644
--- a/rtgui/history.cc
+++ b/rtgui/history.cc
@@ -26,7 +26,7 @@ using namespace rtengine::procparams;
Glib::ustring eventDescrArray[NUMOFEVENTS];
-History::History (bool bookmarkSupport) : historyVPaned(nullptr), blistener(nullptr), tpc (nullptr), bmnum (1)
+History::History (bool bookmarkSupport) : historyVPaned (nullptr), blistener (nullptr), tpc (nullptr), bmnum (1)
{
blistenerLock = false; // sets default that the Before preview will not be locked
@@ -51,9 +51,9 @@ History::History (bool bookmarkSupport) : historyVPaned(nullptr), blistener(null
historyModel = Gtk::ListStore::create (historyColumns);
hTreeView->set_model (historyModel);
hTreeView->set_headers_visible (false);
- hTreeView->set_hscroll_policy(Gtk::SCROLL_MINIMUM);
- hTreeView->set_vscroll_policy(Gtk::SCROLL_NATURAL);
- hTreeView->set_size_request(80, -1);
+ hTreeView->set_hscroll_policy (Gtk::SCROLL_MINIMUM);
+ hTreeView->set_vscroll_policy (Gtk::SCROLL_NATURAL);
+ hTreeView->set_size_request (80, -1);
Gtk::CellRendererText *changecrt = Gtk::manage (new Gtk::CellRendererText());
changecrt->property_ellipsize() = Pango::ELLIPSIZE_END;
@@ -261,38 +261,36 @@ void History::procParamsChanged (ProcParams* params, ProcEvent ev, Glib::ustring
}
// if there is no last item or its chev!=ev, create a new one
- if (descr != "") {
- if (size == 0 || !row || row[historyColumns.chev] != ev || ev == EvProfileChanged) {
- Gtk::TreeModel::Row newrow = * (historyModel->append());
- newrow[historyColumns.realText] = eventDescrArray[ev];
- newrow[historyColumns.text] = text;
- newrow[historyColumns.value] = descr;
- newrow[historyColumns.chev] = ev;
- newrow[historyColumns.params] = *params;
- newrow[historyColumns.paramsEdited] = paramsEdited ? *paramsEdited : defParamsEdited;
+ if (size == 0 || !row || row[historyColumns.chev] != ev || ev == EvProfileChanged) {
+ Gtk::TreeModel::Row newrow = * (historyModel->append());
+ newrow[historyColumns.realText] = eventDescrArray[ev];
+ newrow[historyColumns.text] = text;
+ newrow[historyColumns.value] = g_markup_escape_text (descr.c_str(), -1);
+ newrow[historyColumns.chev] = ev;
+ newrow[historyColumns.params] = *params;
+ newrow[historyColumns.paramsEdited] = paramsEdited ? *paramsEdited : defParamsEdited;
- if (ev != EvBookmarkSelected) {
- selection->select (newrow);
- }
-
- if (blistener && row && !blistenerLock) {
- blistener->historyBeforeLineChanged (row[historyColumns.params]);
- } else if (blistener && size == 0 && !blistenerLock) {
- blistener->historyBeforeLineChanged (newrow[historyColumns.params]);
- }
+ if (ev != EvBookmarkSelected) {
+ selection->select (newrow);
}
- // else just update it
- else {
- row[historyColumns.realText] = eventDescrArray[ev];
- row[historyColumns.text] = text;
- row[historyColumns.value] = descr;
- row[historyColumns.chev] = ev;
- row[historyColumns.params] = *params;
- row[historyColumns.paramsEdited] = paramsEdited ? *paramsEdited : defParamsEdited;
- if (ev != EvBookmarkSelected) {
- selection->select (row);
- }
+ if (blistener && row && !blistenerLock) {
+ blistener->historyBeforeLineChanged (row[historyColumns.params]);
+ } else if (blistener && size == 0 && !blistenerLock) {
+ blistener->historyBeforeLineChanged (newrow[historyColumns.params]);
+ }
+ }
+ // else just update it
+ else {
+ row[historyColumns.realText] = eventDescrArray[ev];
+ row[historyColumns.text] = text;
+ row[historyColumns.value] = g_markup_escape_text (descr.c_str(), -1);
+ row[historyColumns.chev] = ev;
+ row[historyColumns.params] = *params;
+ row[historyColumns.paramsEdited] = paramsEdited ? *paramsEdited : defParamsEdited;
+
+ if (ev != EvBookmarkSelected) {
+ selection->select (row);
}
}
diff --git a/rtgui/lensprofile.cc b/rtgui/lensprofile.cc
index fb4c34069..0c3b227aa 100644
--- a/rtgui/lensprofile.cc
+++ b/rtgui/lensprofile.cc
@@ -601,7 +601,7 @@ void LensProfilePanel::LFDbHelper::fillLensfunCameras()
camnames[c.getMake()].insert(c.getModel());
if (options.rtSettings.verbose) {
- std::cout << " found: " << c.getDisplayString() << std::endl;
+ std::cout << " found: " << c.getDisplayString().c_str() << std::endl;
}
}
for (auto &p : camnames) {
@@ -630,7 +630,7 @@ void LensProfilePanel::LFDbHelper::fillLensfunLenses()
lenses[make].insert(name);
if (options.rtSettings.verbose) {
- std::cout << " found: " << l.getDisplayString() << std::endl;
+ std::cout << " found: " << l.getDisplayString().c_str() << std::endl;
}
}
for (auto &p : lenses) {