merge with Dev

This commit is contained in:
Desmis
2018-01-08 13:31:26 +01:00
10 changed files with 128 additions and 55 deletions

View File

@@ -48,6 +48,7 @@
#47 19.11.2017 HDR-Dynamikkompression (TooWaBoo) RT 5.3
#48 13.12.2017 Erweiterung (TooWaBoo) RT 5.3
#49 21.12.2017 Lokaler Kontrast (TooWaBoo) RT 5.3
#50 07.01.2018 Crop Settings (TooWaBoo) RT 5.3
ABOUT_TAB_BUILD;Version
ABOUT_TAB_CREDITS;Danksagungen
@@ -572,9 +573,9 @@ HISTORY_MSG_281;(Farbanpassungen)\nSättigung schützen\nIntensität
HISTORY_MSG_282;(Farbanpassungen)\nSättigung schützen\nSchwelle
HISTORY_MSG_283;(Farbanpassungen)\nIntensität
HISTORY_MSG_284;(Farbanpassungen)\nSättigung schützen\nAutomatisch
HISTORY_MSG_285;(Rauschreduzierung)\nMedianmethode
HISTORY_MSG_285;(Rauschreduzierung)\nMedianfilter - Methode
HISTORY_MSG_286;(Rauschreduzierung)\nMediantyp
HISTORY_MSG_287;(Rauschreduzierung)\nMedianiterationen
HISTORY_MSG_287;(Rauschreduzierung)\nMedianfilter - Iterationen
HISTORY_MSG_288;(Weißbild)\nKontrolle zu heller Bereiche
HISTORY_MSG_289;(Weißbild)\nAuto-Kontrolle zu\nheller Bereiche
HISTORY_MSG_290;(Sensor-Matrix)\nSchwarzpunkt - Rot
@@ -1151,7 +1152,7 @@ PREFERENCES_REMEMBERZOOMPAN;Zoom und Bildposition merken
PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Öffnen eines neuen Bildes mit den Zoom- und Positionswerten\ndes vorangegangenen Bildes.\n\nFunktioniert nur unter folgenden Bedingungen:\nEin-Reitermodus aktiv\n“Demosaikmethode für 100%-Ansicht“ muss auf “Wie im Bild-\nverarbeitungsprofil vorgegeben“ eingestellt sein.
PREFERENCES_RGBDTL_LABEL;Maximale Anzahl Threads für Rauschreduzierung
PREFERENCES_RGBDTL_TOOLTIP;Die Rauschreduzierung benötigt mindestens 128MB RAM für ein 10 Megapixel-Bild oder 512MB für ein 40 Megapixel-Bild, und zusätzlich 128MB RAM pro Thread. Je mehr Threads parallel ablaufen, desto schneller ist die Berechnung. Bei Einstellung "0" werden so viele Threads wie möglich benutzt.
PREFERENCES_SAVE_TP_OPEN_NOW;Werkzeugstatus jetzt sichern
PREFERENCES_SAVE_TP_OPEN_NOW;Werkzeugstatus jetzt speichern
PREFERENCES_SELECTFONT;Schriftart
PREFERENCES_SELECTFONT_COLPICKER;Schriftart für die Farbwähler
PREFERENCES_SELECTLANG;Sprache
@@ -1513,7 +1514,7 @@ TP_DIRPYRDENOISE_LUMINANCE_CURVE;Luminanzkurve
TP_DIRPYRDENOISE_LUMINANCE_DETAIL;Luminanzdetails
TP_DIRPYRDENOISE_LUMINANCE_FRAME;Luminanz
TP_DIRPYRDENOISE_LUMINANCE_SMOOTHING;Luminanz
TP_DIRPYRDENOISE_MAIN_COLORSPACE;Methode
TP_DIRPYRDENOISE_MAIN_COLORSPACE;Farbraum
TP_DIRPYRDENOISE_MAIN_COLORSPACE_LAB;L*a*b*
TP_DIRPYRDENOISE_MAIN_COLORSPACE_LABEL;Rauschreduzierung
TP_DIRPYRDENOISE_MAIN_COLORSPACE_RGB;RGB
@@ -1524,7 +1525,7 @@ TP_DIRPYRDENOISE_MAIN_MODE;Qualität
TP_DIRPYRDENOISE_MAIN_MODE_AGGRESSIVE;Hoch
TP_DIRPYRDENOISE_MAIN_MODE_CONSERVATIVE;Standard
TP_DIRPYRDENOISE_MAIN_MODE_TOOLTIP;Einstellung der Qualität der Rauschreduzierung.\nDie Einstellung “Hoch“ verbessert die Rausch-\nreduzierung auf Kosten der Verarbeitungszeit.
TP_DIRPYRDENOISE_MEDIAN_METHOD;Medianmethode
TP_DIRPYRDENOISE_MEDIAN_METHOD;Methode
TP_DIRPYRDENOISE_MEDIAN_METHOD_CHROMINANCE;Nur Farbe
TP_DIRPYRDENOISE_MEDIAN_METHOD_LAB;L*a*b*
TP_DIRPYRDENOISE_MEDIAN_METHOD_LABEL;Medianfilter
@@ -1532,7 +1533,7 @@ TP_DIRPYRDENOISE_MEDIAN_METHOD_LUMINANCE;Nur Luminanz
TP_DIRPYRDENOISE_MEDIAN_METHOD_RGB;RGB
TP_DIRPYRDENOISE_MEDIAN_METHOD_TOOLTIP;Bei der Methode “Nur Luminanz“ und “L*a*b*“,\nwird der Medianfilter nach den Waveletschritten\nverarbeitet.\nBei RGB wird der Medianfilter am Ende der\nRauschreduzierung verarbeitet.
TP_DIRPYRDENOISE_MEDIAN_METHOD_WEIGHTED;Gewichtet L* (wenig) + a*b* (normal)
TP_DIRPYRDENOISE_MEDIAN_PASSES;Medianiterationen
TP_DIRPYRDENOISE_MEDIAN_PASSES;Iterationen
TP_DIRPYRDENOISE_MEDIAN_PASSES_TOOLTIP;Manchmal führt ein kleines 3×3-Fenster mit\nmehreren Iterationen zu besseren Ergebnissen\nals ein 7×7-Fenster mit nur einer Iteration.
TP_DIRPYRDENOISE_MEDIAN_TYPE;Mediantyp
TP_DIRPYRDENOISE_MEDIAN_TYPE_TOOLTIP;Einen Medianfilter mit der gewünschten Fenstergröße auswählen.\nJe größer das Fenster, umso länger dauert die Verarbeitungszeit.\n\n3×3 weich: Nutzt 5 Pixel in einem 3×3-Pixelfenster.\n3×3: Nutzt 9 Pixel in einem 3×3-Pixelfenster.\n5×5 weich: Nutzt 13 Pixel in einem 5×5-Pixelfenster.\n5×5: Nutzt 25 Pixel in einem 5×5-Pixelfenster.\n7×7: Nutzt 49 Pixel in einem 7×7-Pixelfenster.\n9×9: Nutzt 81 Pixel in einem 9×9-Pixelfenster.\n\nManchmal ist das Ergebnis mit einem kleineren Fenster und mehreren Iterationen besser, als mit einem größeren und nur einer Iteration.
@@ -2226,25 +2227,25 @@ ZOOMPANEL_ZOOMOUT;Herauszoomen\nTaste: <b>-</b>
! Untranslated keys follow; remove the ! prefix after an entry is translated.
!!!!!!!!!!!!!!!!!!!!!!!!!
!BATCHQUEUE_STARTSTOPHINT;Start or stop processing the images in the queue.\n\nShortcut: <b>Ctrl</b>+<b>s</b>
!GENERAL_SLIDER;Slider
!HISTORY_MSG_173;NR - Detail recovery
!HISTORY_MSG_203;NR - Color space
!HISTORY_MSG_256;NR - Median - Type
!HISTORY_MSG_297;NR - Mode
!HISTORY_MSG_METADATA_MODE;Metadata copy mode
!PREFERENCES_CROP;Crop editing
!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area
!PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop
!PREFERENCES_CROP_GUIDES_FRAME;Frame
!PREFERENCES_CROP_GUIDES_FULL;Original
!PREFERENCES_CROP_GUIDES_NONE;None
!PREFERENCES_EDITORCMDLINE;Custom command line
!TP_DIRPYRDENOISE_CHROMINANCE_CURVE_TOOLTIP;Increase (multiply) the value of all chrominance sliders.\nThis curve lets you adjust the strength of chromatic noise reduction as a function of chromaticity, for instance to increase the action in areas of low saturation and to decrease it in those of high saturation.
!TP_DIRPYRDENOISE_LABEL;Noise Reduction
!TP_METADATA_EDIT;Apply modifications
!TP_METADATA_MODE;Metadata copy mode
!TP_METADATA_STRIP;Strip all metadata
!TP_METADATA_TUNNEL;Copy unchanged
!TP_RAW_PIXELSHIFTONEGREEN;Use one green instead of average
!TP_RAW_PIXELSHIFTONEGREEN_TOOLTIP;Use one green instead of averaging two greens for regions without motion.
BATCHQUEUE_STARTSTOPHINT;Startet / Stoppt die Verarbeitung\nder Warteschlange.\n\nTaste: <b>Strg</b> + <b>s</b>
GENERAL_SLIDER;Regler
HISTORY_MSG_173;(Rauschreduzierung)\nLuminanzdetails
HISTORY_MSG_203;(Rauschreduzierung)\nFarbraum
HISTORY_MSG_256;(Rauschreduzierung)\nMedianfilter - Mediantyp
HISTORY_MSG_297;(Rauschreduzierung)\nQualität
HISTORY_MSG_METADATA_MODE;(Metadaten)\nKopiermodus
PREFERENCES_CROP;Einstellung des Ausschnittswerkzeuges
PREFERENCES_CROP_AUTO_FIT;Automatischer Zoom des Ausschnitts
PREFERENCES_CROP_GUIDES;Hilfslinien anzeigen wenn Ausschnitt nicht verändert wird
PREFERENCES_CROP_GUIDES_FRAME;Rahmen
PREFERENCES_CROP_GUIDES_FULL;Vorgabe des Ausschnittswerkzeuges
PREFERENCES_CROP_GUIDES_NONE;Keine
PREFERENCES_EDITORCMDLINE;Benutzerdefinierte Befehlszeile
TP_DIRPYRDENOISE_CHROMINANCE_CURVE_TOOLTIP;Erhöht / Reduziert die Intensität der\nChrominanz-Rauschreduzierung in\nAbhängigkeit der Farbsättigung.
TP_DIRPYRDENOISE_LABEL;Rauschreduzierung
TP_METADATA_EDIT;Veränderte Daten
TP_METADATA_MODE;Kopiermodus
TP_METADATA_STRIP;Keine
TP_METADATA_TUNNEL;Unveränderte Daten
TP_RAW_PIXELSHIFTONEGREEN;Benutze ein Grün
TP_RAW_PIXELSHIFTONEGREEN_TOOLTIP;Benutze ein Grün anstelle des\nDurchschnitts beider Grüns für\nBereiche ohne Bewegung.

View File

@@ -2444,7 +2444,7 @@ TP_WBALANCE_WATER_HEADER;UnderWater
ZOOMPANEL_100;(100%)
ZOOMPANEL_NEWCROPWINDOW;Open (new) detail window
ZOOMPANEL_ZOOM100;Zoom to 100%\nShortcut: <b>z</b>
ZOOMPANEL_ZOOMFITCROPSCREEN;Fit crop to screen\nShortcut: <b>Alt</b>-<b>f</b>
ZOOMPANEL_ZOOMFITSCREEN;Fit whole image to screen\nShortcut: <b>f</b>
ZOOMPANEL_ZOOMFITCROPSCREEN;Fit crop to screen\nShortcut: <b>f</b>
ZOOMPANEL_ZOOMFITSCREEN;Fit whole image to screen\nShortcut: <b>Alt</b>-<b>f</b>
ZOOMPANEL_ZOOMIN;Zoom In\nShortcut: <b>+</b>
ZOOMPANEL_ZOOMOUT;Zoom Out\nShortcut: <b>-</b>

View File

@@ -2,7 +2,7 @@
This file is part of RawTherapee.
Copyright (c) 2016-2017 TooWaBoo
Version 2.60
Version 2.61
RawTherapee is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -213,10 +213,6 @@ dialog frame > label {
padding-left: 0.91667em;
}
#BatchQueueButtons {
margin-top: 0.66667em;
}
frame > label {
margin: 0;
padding: 0.5em 0;
@@ -637,6 +633,11 @@ scale:disabled trough {
background-image: none;
}
#BatchQueueButtonsMainContainer scale:disabled slider,
#BatchQueueButtonsMainContainer scale:disabled trough {
background-color: shade(@bg-light-grey,.85);
}
/*** end ***************************************************************************************/
/*** Progressbar *******************************************************************************/
@@ -1225,6 +1226,51 @@ popover.background modelbutton:hover {
}
/** end ****************************************************************************************/
/*** Switch ***********************************************************************************/
switch {
min-height: 2.16667em;
min-width: 11em;
margin: 0;
padding: 0;
border-radius: 0.2em;
background-image: none;
box-shadow: inset 0.08334em 0.08334em rgba(0, 0, 0, 0.08), 0 0.08334em rgba(242, 242, 242, 0.1);
border: 0.08334em solid @bg-entry-border;
background-color: @bg-scale-entry;
margin-bottom: 0.5em;
}
switch slider {
border: 0.08334em solid @bg-entry-border;
background-image: linear-gradient(to bottom, shade (@accent-color2,1.15), shade (@accent-color2,.85));
border: 0.08334em solid @bg-entry-border;
box-shadow: inset 0 0.08334em rgba(242, 242, 242, 0.1);
border-radius: 0.2em 0 0 0.2em;
}
switch:checked slider{
border-radius: 0 0.2em 0.2em 0;
}
switch:hover slider {
background-image: linear-gradient(to bottom, shade (@accent-color2,1.20), shade (@accent-color2,.90));
}
switch:checked {
background-color: rgb(140,0,20);
color: @headline-big;
}
switch:disabled:not(:checked) {
box-shadow: none;
background-image: none;
background-color: shade (@bg-light-grey, .85);
}
switch:disabled slider {
background-image: linear-gradient(to bottom, rgba(125,125,125,.4), rgba(60,60,60,.4));
background-color: shade (@bg-light-grey, .85);
}
/** end ****************************************************************************************/
/*** Buttons ***********************************************************************************/
button {
min-height: 2.16667em;
@@ -1355,6 +1401,7 @@ button.MiddleH {
/**/
/* Button base format for Toolbox and dialogs */
#ToolPanelNotebook > stack > box > box > combobox .combo,
dialog button,
#MyExpander button,
#BatchQueueButtonsMainContainer button {
@@ -1371,7 +1418,7 @@ combobox .combo,
dialog combobox .combo,
#ToolPanelNotebook combobox .combo,
#BatchQueueButtonsMainContainer combobox .combo {
padding: 0 0.208334em;
padding: 0 0.26667em;
}
/**/
@@ -1386,6 +1433,7 @@ dialog combobox .combo,
#MyExpander combobox + label */ {
margin-left: 0.16667em;
}
#MyExpander label + * > button:not(.flat).Left,
#MyExpander label + combobox:not(:first-child):not(:only-child),
#MyExpander label + button:not(.flat):not(spinbutton) {
@@ -1455,13 +1503,6 @@ messagedialog .dialog-action-area button:not(:only-child):nth-child(2) {
}
/**/
/* Queue */
#BatchQueueButtons button {
min-height: 2.16667em;
min-width: 10em;
}
/**/
/* View & Filechooser Buttons */
dialog .view button,
window .view button {

View File

@@ -1277,6 +1277,10 @@ inline void SatAndValueBlendingToneCurve::Apply(float& r, float& g, float& b) co
const float lum = (r + g + b) / 3.f;
const float newLum = lutToneCurve[lum];
if (newLum == lum) {
return;
}
float h, s, v;
Color::rgb2hsvtc(r, g, b, h, s, v);

View File

@@ -25,6 +25,8 @@ constexpr double RT_NAN = std::numeric_limits<double>::quiet_NaN();
constexpr float RT_PI_F = RT_PI;
constexpr float RT_PI_F_2 = RT_PI_2;
constexpr float RT_PI_F_180 = RT_PI_180;
constexpr float RT_1_PI_F = RT_1_PI;
constexpr float RT_2_PI_F = RT_2_PI;
constexpr float RT_INFINITY_F = std::numeric_limits<float>::infinity();
constexpr float RT_NAN_F = std::numeric_limits<float>::quiet_NaN();

View File

@@ -923,9 +923,8 @@ __inline float mulsignf(float x, float y) {
return intBitsToFloat(floatToRawIntBits(x) ^ (floatToRawIntBits(y) & (1 << 31)));
}
__inline float signf(float d) { return mulsignf(1, d); }
__inline float signf(float d) { return copysign(1, d); }
__inline float mlaf(float x, float y, float z) { return x * y + z; }
__inline float xrintf(float x) { return x < 0 ? (int)(x - 0.5f) : (int)(x + 0.5f); }
__inline int xisnanf(float x) { return x != x; }
__inline int xisinff(float x) { return x == rtengine::RT_INFINITY_F || x == -rtengine::RT_INFINITY_F; }
@@ -984,7 +983,7 @@ __inline float xsinf(float d) {
int q;
float u, s;
q = (int)xrintf(d * (float)rtengine::RT_1_PI);
q = rint(d * rtengine::RT_1_PI_F);
d = mlaf(q, -PI4_Af*4, d);
d = mlaf(q, -PI4_Bf*4, d);
@@ -1009,7 +1008,7 @@ __inline float xcosf(float d) {
int q;
float u, s;
q = 1 + 2*(int)xrintf(d * (float)rtengine::RT_1_PI - 0.5f);
q = 1 + 2*rint(d * rtengine::RT_1_PI_F - 0.5f);
d = mlaf(q, -PI4_Af*2, d);
d = mlaf(q, -PI4_Bf*2, d);
@@ -1035,7 +1034,7 @@ __inline float2 xsincosf(float d) {
float u, s, t;
float2 r;
q = (int)rint(d * ((float)(2 * rtengine::RT_1_PI)));
q = rint(d * rtengine::RT_2_PI_F);
s = d;
@@ -1076,7 +1075,7 @@ __inline float xtanf(float d) {
int q;
float u, s, x;
q = (int)xrintf(d * (float)(2 * rtengine::RT_1_PI));
q = rint(d * (float)(2 * rtengine::RT_1_PI));
x = d;
@@ -1202,7 +1201,7 @@ __inline float xlogf(float d) {
__inline float xexpf(float d) {
if(d<=-104.0f) return 0.0f;
int q = (int)xrintf(d * R_LN2f);
int q = rint(d * R_LN2f);
float s, u;
s = mlaf(q, -L2Uf, d);

View File

@@ -1643,7 +1643,7 @@ bool EditorPanel::handleShortcutKey (GdkEventKey* event)
return true;
case GDK_KEY_f:
iareapanel->imageArea->zoomPanel->zoomFitClicked();
iareapanel->imageArea->zoomPanel->zoomFitCropClicked();
return true;
case GDK_KEY_F5:
@@ -1718,7 +1718,7 @@ bool EditorPanel::handleShortcutKey (GdkEventKey* event)
return true;
case GDK_KEY_f:
iareapanel->imageArea->zoomPanel->zoomFitCropClicked();
iareapanel->imageArea->zoomPanel->zoomFitClicked();
return true;
}
}

View File

@@ -94,10 +94,34 @@ struct LocaleToLang : private std::map<std::pair<Glib::ustring, Glib::ustring>,
return "default";
}
std::string getLocale(const Glib::ustring &language) const
{
for (auto &p : *this) {
if (p.second == language) {
std::string ret = p.first.first;
if (!p.first.second.empty()) {
ret += "_" + p.first.second;
}
return ret;
}
}
return "C";
}
};
const LocaleToLang localeToLang;
void setGtkLanguage(const Glib::ustring &language)
{
auto l = localeToLang.getLocale(language);
#ifdef WIN32
putenv(("LANG=" + l).c_str());
#else
setenv("LANG", l.c_str(), true);
#endif
}
}
MultiLangMgr langMgr;
@@ -106,8 +130,10 @@ MultiLangMgr::MultiLangMgr ()
{
}
void MultiLangMgr::load (const std::vector<Glib::ustring> &fnames)
void MultiLangMgr::load(const Glib::ustring &language, const std::vector<Glib::ustring> &fnames)
{
setGtkLanguage(language);
translations.clear();
for (const auto& fname : fnames) {

View File

@@ -30,7 +30,7 @@ class MultiLangMgr
public:
MultiLangMgr ();
void load(const std::vector<Glib::ustring> &fnames);
void load(const Glib::ustring &language, const std::vector<Glib::ustring> &fnames);
Glib::ustring getStr(const std::string& key) const;
static bool isOSLanguageDetectSupported();
static Glib::ustring getOSUserLanguage();

View File

@@ -2386,7 +2386,7 @@ void Options::load (bool lightweight)
}
}
langMgr.load ({localeTranslation, languageTranslation, defaultTranslation});
langMgr.load (options.language, {localeTranslation, languageTranslation, defaultTranslation});
rtengine::init (&options.rtSettings, argv0, rtdir, !lightweight);
}