merge with Dev
This commit is contained in:
@@ -48,6 +48,7 @@
|
|||||||
#47 19.11.2017 HDR-Dynamikkompression (TooWaBoo) RT 5.3
|
#47 19.11.2017 HDR-Dynamikkompression (TooWaBoo) RT 5.3
|
||||||
#48 13.12.2017 Erweiterung (TooWaBoo) RT 5.3
|
#48 13.12.2017 Erweiterung (TooWaBoo) RT 5.3
|
||||||
#49 21.12.2017 Lokaler Kontrast (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_BUILD;Version
|
||||||
ABOUT_TAB_CREDITS;Danksagungen
|
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_282;(Farbanpassungen)\nSättigung schützen\nSchwelle
|
||||||
HISTORY_MSG_283;(Farbanpassungen)\nIntensität
|
HISTORY_MSG_283;(Farbanpassungen)\nIntensität
|
||||||
HISTORY_MSG_284;(Farbanpassungen)\nSättigung schützen\nAutomatisch
|
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_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_288;(Weißbild)\nKontrolle zu heller Bereiche
|
||||||
HISTORY_MSG_289;(Weißbild)\nAuto-Kontrolle zu\nheller Bereiche
|
HISTORY_MSG_289;(Weißbild)\nAuto-Kontrolle zu\nheller Bereiche
|
||||||
HISTORY_MSG_290;(Sensor-Matrix)\nSchwarzpunkt - Rot
|
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_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_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_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;Schriftart
|
||||||
PREFERENCES_SELECTFONT_COLPICKER;Schriftart für die Farbwähler
|
PREFERENCES_SELECTFONT_COLPICKER;Schriftart für die Farbwähler
|
||||||
PREFERENCES_SELECTLANG;Sprache
|
PREFERENCES_SELECTLANG;Sprache
|
||||||
@@ -1513,7 +1514,7 @@ TP_DIRPYRDENOISE_LUMINANCE_CURVE;Luminanzkurve
|
|||||||
TP_DIRPYRDENOISE_LUMINANCE_DETAIL;Luminanzdetails
|
TP_DIRPYRDENOISE_LUMINANCE_DETAIL;Luminanzdetails
|
||||||
TP_DIRPYRDENOISE_LUMINANCE_FRAME;Luminanz
|
TP_DIRPYRDENOISE_LUMINANCE_FRAME;Luminanz
|
||||||
TP_DIRPYRDENOISE_LUMINANCE_SMOOTHING;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_LAB;L*a*b*
|
||||||
TP_DIRPYRDENOISE_MAIN_COLORSPACE_LABEL;Rauschreduzierung
|
TP_DIRPYRDENOISE_MAIN_COLORSPACE_LABEL;Rauschreduzierung
|
||||||
TP_DIRPYRDENOISE_MAIN_COLORSPACE_RGB;RGB
|
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_AGGRESSIVE;Hoch
|
||||||
TP_DIRPYRDENOISE_MAIN_MODE_CONSERVATIVE;Standard
|
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_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_CHROMINANCE;Nur Farbe
|
||||||
TP_DIRPYRDENOISE_MEDIAN_METHOD_LAB;L*a*b*
|
TP_DIRPYRDENOISE_MEDIAN_METHOD_LAB;L*a*b*
|
||||||
TP_DIRPYRDENOISE_MEDIAN_METHOD_LABEL;Medianfilter
|
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_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_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_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_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;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.
|
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.
|
! 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>
|
BATCHQUEUE_STARTSTOPHINT;Startet / Stoppt die Verarbeitung\nder Warteschlange.\n\nTaste: <b>Strg</b> + <b>s</b>
|
||||||
!GENERAL_SLIDER;Slider
|
GENERAL_SLIDER;Regler
|
||||||
!HISTORY_MSG_173;NR - Detail recovery
|
HISTORY_MSG_173;(Rauschreduzierung)\nLuminanzdetails
|
||||||
!HISTORY_MSG_203;NR - Color space
|
HISTORY_MSG_203;(Rauschreduzierung)\nFarbraum
|
||||||
!HISTORY_MSG_256;NR - Median - Type
|
HISTORY_MSG_256;(Rauschreduzierung)\nMedianfilter - Mediantyp
|
||||||
!HISTORY_MSG_297;NR - Mode
|
HISTORY_MSG_297;(Rauschreduzierung)\nQualität
|
||||||
!HISTORY_MSG_METADATA_MODE;Metadata copy mode
|
HISTORY_MSG_METADATA_MODE;(Metadaten)\nKopiermodus
|
||||||
!PREFERENCES_CROP;Crop editing
|
PREFERENCES_CROP;Einstellung des Ausschnittswerkzeuges
|
||||||
!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area
|
PREFERENCES_CROP_AUTO_FIT;Automatischer Zoom des Ausschnitts
|
||||||
!PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop
|
PREFERENCES_CROP_GUIDES;Hilfslinien anzeigen wenn Ausschnitt nicht verändert wird
|
||||||
!PREFERENCES_CROP_GUIDES_FRAME;Frame
|
PREFERENCES_CROP_GUIDES_FRAME;Rahmen
|
||||||
!PREFERENCES_CROP_GUIDES_FULL;Original
|
PREFERENCES_CROP_GUIDES_FULL;Vorgabe des Ausschnittswerkzeuges
|
||||||
!PREFERENCES_CROP_GUIDES_NONE;None
|
PREFERENCES_CROP_GUIDES_NONE;Keine
|
||||||
!PREFERENCES_EDITORCMDLINE;Custom command line
|
PREFERENCES_EDITORCMDLINE;Benutzerdefinierte Befehlszeile
|
||||||
!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_CHROMINANCE_CURVE_TOOLTIP;Erhöht / Reduziert die Intensität der\nChrominanz-Rauschreduzierung in\nAbhängigkeit der Farbsättigung.
|
||||||
!TP_DIRPYRDENOISE_LABEL;Noise Reduction
|
TP_DIRPYRDENOISE_LABEL;Rauschreduzierung
|
||||||
!TP_METADATA_EDIT;Apply modifications
|
TP_METADATA_EDIT;Veränderte Daten
|
||||||
!TP_METADATA_MODE;Metadata copy mode
|
TP_METADATA_MODE;Kopiermodus
|
||||||
!TP_METADATA_STRIP;Strip all metadata
|
TP_METADATA_STRIP;Keine
|
||||||
!TP_METADATA_TUNNEL;Copy unchanged
|
TP_METADATA_TUNNEL;Unveränderte Daten
|
||||||
!TP_RAW_PIXELSHIFTONEGREEN;Use one green instead of average
|
TP_RAW_PIXELSHIFTONEGREEN;Benutze ein Grün
|
||||||
!TP_RAW_PIXELSHIFTONEGREEN_TOOLTIP;Use one green instead of averaging two greens for regions without motion.
|
TP_RAW_PIXELSHIFTONEGREEN_TOOLTIP;Benutze ein Grün anstelle des\nDurchschnitts beider Grüns für\nBereiche ohne Bewegung.
|
||||||
|
@@ -2444,7 +2444,7 @@ TP_WBALANCE_WATER_HEADER;UnderWater
|
|||||||
ZOOMPANEL_100;(100%)
|
ZOOMPANEL_100;(100%)
|
||||||
ZOOMPANEL_NEWCROPWINDOW;Open (new) detail window
|
ZOOMPANEL_NEWCROPWINDOW;Open (new) detail window
|
||||||
ZOOMPANEL_ZOOM100;Zoom to 100%\nShortcut: <b>z</b>
|
ZOOMPANEL_ZOOM100;Zoom to 100%\nShortcut: <b>z</b>
|
||||||
ZOOMPANEL_ZOOMFITCROPSCREEN;Fit crop to screen\nShortcut: <b>Alt</b>-<b>f</b>
|
ZOOMPANEL_ZOOMFITCROPSCREEN;Fit crop to screen\nShortcut: <b>f</b>
|
||||||
ZOOMPANEL_ZOOMFITSCREEN;Fit whole image 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_ZOOMIN;Zoom In\nShortcut: <b>+</b>
|
||||||
ZOOMPANEL_ZOOMOUT;Zoom Out\nShortcut: <b>-</b>
|
ZOOMPANEL_ZOOMOUT;Zoom Out\nShortcut: <b>-</b>
|
||||||
|
@@ -2,7 +2,7 @@
|
|||||||
This file is part of RawTherapee.
|
This file is part of RawTherapee.
|
||||||
|
|
||||||
Copyright (c) 2016-2017 TooWaBoo
|
Copyright (c) 2016-2017 TooWaBoo
|
||||||
Version 2.60
|
Version 2.61
|
||||||
|
|
||||||
RawTherapee is free software: you can redistribute it and/or modify
|
RawTherapee is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@@ -213,10 +213,6 @@ dialog frame > label {
|
|||||||
padding-left: 0.91667em;
|
padding-left: 0.91667em;
|
||||||
}
|
}
|
||||||
|
|
||||||
#BatchQueueButtons {
|
|
||||||
margin-top: 0.66667em;
|
|
||||||
}
|
|
||||||
|
|
||||||
frame > label {
|
frame > label {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0.5em 0;
|
padding: 0.5em 0;
|
||||||
@@ -637,6 +633,11 @@ scale:disabled trough {
|
|||||||
background-image: none;
|
background-image: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#BatchQueueButtonsMainContainer scale:disabled slider,
|
||||||
|
#BatchQueueButtonsMainContainer scale:disabled trough {
|
||||||
|
background-color: shade(@bg-light-grey,.85);
|
||||||
|
}
|
||||||
|
|
||||||
/*** end ***************************************************************************************/
|
/*** end ***************************************************************************************/
|
||||||
|
|
||||||
/*** Progressbar *******************************************************************************/
|
/*** Progressbar *******************************************************************************/
|
||||||
@@ -1225,6 +1226,51 @@ popover.background modelbutton:hover {
|
|||||||
}
|
}
|
||||||
/** end ****************************************************************************************/
|
/** 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 ***********************************************************************************/
|
/*** Buttons ***********************************************************************************/
|
||||||
button {
|
button {
|
||||||
min-height: 2.16667em;
|
min-height: 2.16667em;
|
||||||
@@ -1355,6 +1401,7 @@ button.MiddleH {
|
|||||||
/**/
|
/**/
|
||||||
|
|
||||||
/* Button base format for Toolbox and dialogs */
|
/* Button base format for Toolbox and dialogs */
|
||||||
|
#ToolPanelNotebook > stack > box > box > combobox .combo,
|
||||||
dialog button,
|
dialog button,
|
||||||
#MyExpander button,
|
#MyExpander button,
|
||||||
#BatchQueueButtonsMainContainer button {
|
#BatchQueueButtonsMainContainer button {
|
||||||
@@ -1371,7 +1418,7 @@ combobox .combo,
|
|||||||
dialog combobox .combo,
|
dialog combobox .combo,
|
||||||
#ToolPanelNotebook combobox .combo,
|
#ToolPanelNotebook combobox .combo,
|
||||||
#BatchQueueButtonsMainContainer combobox .combo {
|
#BatchQueueButtonsMainContainer combobox .combo {
|
||||||
padding: 0 0.208334em;
|
padding: 0 0.26667em;
|
||||||
}
|
}
|
||||||
/**/
|
/**/
|
||||||
|
|
||||||
@@ -1386,6 +1433,7 @@ dialog combobox .combo,
|
|||||||
#MyExpander combobox + label */ {
|
#MyExpander combobox + label */ {
|
||||||
margin-left: 0.16667em;
|
margin-left: 0.16667em;
|
||||||
}
|
}
|
||||||
|
|
||||||
#MyExpander label + * > button:not(.flat).Left,
|
#MyExpander label + * > button:not(.flat).Left,
|
||||||
#MyExpander label + combobox:not(:first-child):not(:only-child),
|
#MyExpander label + combobox:not(:first-child):not(:only-child),
|
||||||
#MyExpander label + button:not(.flat):not(spinbutton) {
|
#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 */
|
/* View & Filechooser Buttons */
|
||||||
dialog .view button,
|
dialog .view button,
|
||||||
window .view button {
|
window .view button {
|
||||||
|
@@ -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 lum = (r + g + b) / 3.f;
|
||||||
const float newLum = lutToneCurve[lum];
|
const float newLum = lutToneCurve[lum];
|
||||||
|
|
||||||
|
if (newLum == lum) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
float h, s, v;
|
float h, s, v;
|
||||||
Color::rgb2hsvtc(r, g, b, h, s, v);
|
Color::rgb2hsvtc(r, g, b, h, s, v);
|
||||||
|
|
||||||
|
@@ -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 = RT_PI;
|
||||||
constexpr float RT_PI_F_2 = RT_PI_2;
|
constexpr float RT_PI_F_2 = RT_PI_2;
|
||||||
constexpr float RT_PI_F_180 = RT_PI_180;
|
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_INFINITY_F = std::numeric_limits<float>::infinity();
|
||||||
constexpr float RT_NAN_F = std::numeric_limits<float>::quiet_NaN();
|
constexpr float RT_NAN_F = std::numeric_limits<float>::quiet_NaN();
|
||||||
|
@@ -923,9 +923,8 @@ __inline float mulsignf(float x, float y) {
|
|||||||
return intBitsToFloat(floatToRawIntBits(x) ^ (floatToRawIntBits(y) & (1 << 31)));
|
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 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 xisnanf(float x) { return x != x; }
|
||||||
__inline int xisinff(float x) { return x == rtengine::RT_INFINITY_F || x == -rtengine::RT_INFINITY_F; }
|
__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;
|
int q;
|
||||||
float u, s;
|
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_Af*4, d);
|
||||||
d = mlaf(q, -PI4_Bf*4, d);
|
d = mlaf(q, -PI4_Bf*4, d);
|
||||||
@@ -1009,7 +1008,7 @@ __inline float xcosf(float d) {
|
|||||||
int q;
|
int q;
|
||||||
float u, s;
|
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_Af*2, d);
|
||||||
d = mlaf(q, -PI4_Bf*2, d);
|
d = mlaf(q, -PI4_Bf*2, d);
|
||||||
@@ -1035,7 +1034,7 @@ __inline float2 xsincosf(float d) {
|
|||||||
float u, s, t;
|
float u, s, t;
|
||||||
float2 r;
|
float2 r;
|
||||||
|
|
||||||
q = (int)rint(d * ((float)(2 * rtengine::RT_1_PI)));
|
q = rint(d * rtengine::RT_2_PI_F);
|
||||||
|
|
||||||
s = d;
|
s = d;
|
||||||
|
|
||||||
@@ -1076,7 +1075,7 @@ __inline float xtanf(float d) {
|
|||||||
int q;
|
int q;
|
||||||
float u, s, x;
|
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;
|
x = d;
|
||||||
|
|
||||||
@@ -1202,7 +1201,7 @@ __inline float xlogf(float d) {
|
|||||||
__inline float xexpf(float d) {
|
__inline float xexpf(float d) {
|
||||||
if(d<=-104.0f) return 0.0f;
|
if(d<=-104.0f) return 0.0f;
|
||||||
|
|
||||||
int q = (int)xrintf(d * R_LN2f);
|
int q = rint(d * R_LN2f);
|
||||||
float s, u;
|
float s, u;
|
||||||
|
|
||||||
s = mlaf(q, -L2Uf, d);
|
s = mlaf(q, -L2Uf, d);
|
||||||
|
@@ -1643,7 +1643,7 @@ bool EditorPanel::handleShortcutKey (GdkEventKey* event)
|
|||||||
return true;
|
return true;
|
||||||
|
|
||||||
case GDK_KEY_f:
|
case GDK_KEY_f:
|
||||||
iareapanel->imageArea->zoomPanel->zoomFitClicked();
|
iareapanel->imageArea->zoomPanel->zoomFitCropClicked();
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
case GDK_KEY_F5:
|
case GDK_KEY_F5:
|
||||||
@@ -1718,7 +1718,7 @@ bool EditorPanel::handleShortcutKey (GdkEventKey* event)
|
|||||||
return true;
|
return true;
|
||||||
|
|
||||||
case GDK_KEY_f:
|
case GDK_KEY_f:
|
||||||
iareapanel->imageArea->zoomPanel->zoomFitCropClicked();
|
iareapanel->imageArea->zoomPanel->zoomFitClicked();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -94,10 +94,34 @@ struct LocaleToLang : private std::map<std::pair<Glib::ustring, Glib::ustring>,
|
|||||||
|
|
||||||
return "default";
|
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;
|
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;
|
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();
|
translations.clear();
|
||||||
|
|
||||||
for (const auto& fname : fnames) {
|
for (const auto& fname : fnames) {
|
||||||
|
@@ -30,7 +30,7 @@ class MultiLangMgr
|
|||||||
public:
|
public:
|
||||||
MultiLangMgr ();
|
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;
|
Glib::ustring getStr(const std::string& key) const;
|
||||||
static bool isOSLanguageDetectSupported();
|
static bool isOSLanguageDetectSupported();
|
||||||
static Glib::ustring getOSUserLanguage();
|
static Glib::ustring getOSUserLanguage();
|
||||||
|
@@ -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);
|
rtengine::init (&options.rtSettings, argv0, rtdir, !lightweight);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user