diff --git a/rtdata/dcpprofiles/FUJIFILM X-T20.dcp b/rtdata/dcpprofiles/FUJIFILM X-T20.dcp
new file mode 100644
index 000000000..1c631fd2a
Binary files /dev/null and b/rtdata/dcpprofiles/FUJIFILM X-T20.dcp differ
diff --git a/rtdata/languages/Catala b/rtdata/languages/Catala
index 8a8a966ac..7f71350d5 100644
--- a/rtdata/languages/Catala
+++ b/rtdata/languages/Catala
@@ -1338,6 +1338,7 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: -
!MAIN_MSG_OPERATIONCANCELLED;Operation cancelled
!MAIN_MSG_PATHDOESNTEXIST;The path\n\n%1\n\ndoes not exist. Please set a correct path in Preferences.
!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_INSPECT; Inspect
!MAIN_TAB_WAVELET;Wavelet
diff --git a/rtdata/languages/Chinese (Simplified) b/rtdata/languages/Chinese (Simplified)
index d898372a6..972987fc8 100644
--- a/rtdata/languages/Chinese (Simplified)
+++ b/rtdata/languages/Chinese (Simplified)
@@ -1254,6 +1254,7 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: -
!MAIN_MSG_IMAGEUNPROCESSED;This command requires all selected images to be queue-processed first.
!MAIN_MSG_PATHDOESNTEXIST;The path\n\n%1\n\ndoes not exist. Please set a correct path in Preferences.
!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_COLOR_TOOLTIP;Shortcut: Alt-c
!MAIN_TAB_DETAIL_TOOLTIP;Shortcut: Alt-d
diff --git a/rtdata/languages/Chinese (Traditional) b/rtdata/languages/Chinese (Traditional)
index 42389180c..76220c3bd 100644
--- a/rtdata/languages/Chinese (Traditional)
+++ b/rtdata/languages/Chinese (Traditional)
@@ -1007,6 +1007,7 @@ TP_WBALANCE_TEMPERATURE;色溫
!MAIN_MSG_OPERATIONCANCELLED;Operation cancelled
!MAIN_MSG_PATHDOESNTEXIST;The path\n\n%1\n\ndoes not exist. Please set a correct path in Preferences.
!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_COLOR_TOOLTIP;Shortcut: Alt-c
!MAIN_TAB_DETAIL_TOOLTIP;Shortcut: Alt-d
diff --git a/rtdata/languages/Czech b/rtdata/languages/Czech
index e28f57971..7b64b64dc 100644
--- a/rtdata/languages/Czech
+++ b/rtdata/languages/Czech
@@ -37,6 +37,7 @@
#36 2016-10-18 updated by mkyral
#37 2017-01-10 updated by mkyral
#38 2017-04-26 updated by mkyral
+#39 2017-07-21 updated by mkyral
ABOUT_TAB_BUILD;Verze
ABOUT_TAB_CREDITS;Zásluhy
@@ -640,7 +641,7 @@ HISTORY_MSG_356;Vlnka - DH - Maximální práh
HISTORY_MSG_357;Vlnka - Odšumění - Propojení s DH
HISTORY_MSG_358;Vlnka - Paleta - Kontrast úrovní barevnost
HISTORY_MSG_359;Vypálené/Mrtvé - Práh
-HISTORY_MSG_360;MT - Gama
+HISTORY_MSG_360;TM - Gama
HISTORY_MSG_361;Vlnka - Dokončení - Vyvážení barev
HISTORY_MSG_362;Vlnka - Zůstatek - Kompresní metoda
HISTORY_MSG_363;Vlnka - Zůstatek - Síla komprese
@@ -710,7 +711,7 @@ HISTORY_MSG_426;Retinex - Korekce odstínu
HISTORY_MSG_427;Výstupní záměr reprodukce
HISTORY_MSG_428;Záměr reprodukce monitoru
HISTORY_MSG_429;Retinex - Průchody
-HISTORY_MSG_430;Retinex - Přenos gradientu
+HISTORY_MSG_430;Retinex - Gradient přenosu
HISTORY_MSG_431;Retinex - Síla gradientu
HISTORY_MSG_432;Retinex - M - Světla
HISTORY_MSG_433;Retinex - M - Světla tóny
@@ -723,39 +724,23 @@ HISTORY_MSG_439;Retinex - Zpracování
HISTORY_MSG_440;Metoda KdDÚ
HISTORY_MSG_441;Retinex - Přenos zisku
HISTORY_MSG_442;Retinex - Měřítko
-HISTORY_MSG_443;Kompenzace výstupního černého bodu
+HISTORY_MSG_443;Výstupní kompenzace černého bodu
HISTORY_MSG_444;VB - Zdůraznění teploty
-HISTORY_MSG_445;Raw Dílčí snímek
-HISTORY_MSG_446;EvPixelShiftMotion
-HISTORY_MSG_447;EvPixelShiftMotionCorrection
-HISTORY_MSG_448;EvPixelShiftStddevFactorGreen
-HISTORY_MSG_449;PS přizpůsobení ISO
-HISTORY_MSG_450;EvPixelShiftNreadIso
-HISTORY_MSG_451;EvPixelShiftPrnu
-HISTORY_MSG_452;PS Ukázat pohyb
-HISTORY_MSG_453;PS Zobrazit jen masku
-HISTORY_MSG_454;EvPixelShiftAutomatic
-HISTORY_MSG_455;EvPixelShiftNonGreenHorizontal
-HISTORY_MSG_456;EvPixelShiftNonGreenVertical
-HISTORY_MSG_457;PS Kontrola červená/modrá
-HISTORY_MSG_458;EvPixelShiftStddevFactorRed
-HISTORY_MSG_459;EvPixelShiftStddevFactorBlue
-HISTORY_MSG_460;EvPixelShiftGreenAmaze
-HISTORY_MSG_461;EvPixelShiftNonGreenAmaze
-HISTORY_MSG_462;PS Kontrola zelená
-HISTORY_MSG_463;EvPixelShiftRedBlueWeight
-HISTORY_MSG_464;PS Maska pohybové neostrosti
-HISTORY_MSG_465;PS Poloměr rozostření
-HISTORY_MSG_466;EvPixelShiftSum
-HISTORY_MSG_467;EvPixelShiftExp0
-HISTORY_MSG_468;PS Vyplnit díry
-HISTORY_MSG_469;PS Medián
-HISTORY_MSG_470;EvPixelShiftMedian3
-HISTORY_MSG_471;PS korekce pohybu
-HISTORY_MSG_472;PS plynulé přechody
-HISTORY_MSG_473;PS Použít LMMSE
-HISTORY_MSG_474;PS korekce
-HISTORY_MSG_475;PS korekce kanálu
+HISTORY_MSG_445;Raw dílčí snímek
+HISTORY_MSG_449;PS - přizpůsobení ISO
+HISTORY_MSG_452;PS - Ukázat pohyb
+HISTORY_MSG_453;PS - Zobrazit jen masku
+HISTORY_MSG_457;PS - Kontrola červená/modrá
+HISTORY_MSG_462;PS - Kontrola zelená
+HISTORY_MSG_464;PS - Maska pohybové neostrosti
+HISTORY_MSG_465;PS - Poloměr rozostření
+HISTORY_MSG_468;PS - Vyplnit díry
+HISTORY_MSG_469;PS - Medián
+HISTORY_MSG_471;PS - korekce pohybu
+HISTORY_MSG_472;PS - plynulé přechody
+HISTORY_MSG_473;PS - Použít LMMSE
+HISTORY_MSG_474;PS - korekce
+HISTORY_MSG_475;PS - korekce kanálu
HISTORY_NEWSNAPSHOT;Přidat
HISTORY_NEWSNAPSHOT_TOOLTIP;Zkratka: Alt-s
HISTORY_SNAPSHOT;Snímek
@@ -835,18 +820,19 @@ MAIN_MSG_OPERATIONCANCELLED;Operace zrušena
MAIN_MSG_PATHDOESNTEXIST;Cesta\n\n%1\n\nneexistuje. Nastavte prosím správnou cestu v okně "Volby".
MAIN_MSG_QOVERWRITE;Chcete jej přepsat?
MAIN_MSG_SETPATHFIRST;K použití této funkce musíte nejprve zadat cílovou cestu\nv okně "Volby"!
+MAIN_MSG_TOOMANYOPENEDITORS;Příliš mnoho otevřených editorů.\nPro pokračování nejprve některý ukončete.
MAIN_MSG_WRITEFAILED;Chyba zápisu\n"%1"\n\nUjistěte se, že složka existuje a máte práva do ní zapisovat.
MAIN_TAB_COLOR;Barvy
MAIN_TAB_COLOR_TOOLTIP;Zkratka: Alt-c
MAIN_TAB_DETAIL;Detaily
MAIN_TAB_DETAIL_TOOLTIP;Zkratka: Alt-d
-MAIN_TAB_DEVELOP; Vyvolání
+MAIN_TAB_DEVELOP; Dávková editace
MAIN_TAB_EXIF;Exif
-MAIN_TAB_EXPORT; Rychlý export
+MAIN_TAB_EXPORT; Rychlý export
MAIN_TAB_EXPOSURE;Expozice
MAIN_TAB_EXPOSURE_TOOLTIP;Zkratka: Alt-e
-MAIN_TAB_FILTER; Filtr
-MAIN_TAB_INSPECT; Prohlížení
+MAIN_TAB_FILTER; Filtr
+MAIN_TAB_INSPECT; Prohlížení
MAIN_TAB_IPTC;IPTC
MAIN_TAB_METADATA;Metadata
MAIN_TAB_METADATA_TOOLTIP;Zkratka: Alt-m
@@ -1745,6 +1731,7 @@ TP_RAW_HD_TOOLTIP;Nižší hodnoty učiní detekci vypálených/mrtvých bodů a
TP_RAW_HPHD;HPHD
TP_RAW_IGV;IGV
TP_RAW_IMAGENUM;Dílčí snímek
+TP_RAW_IMAGENUM_TOOLTIP;Některé raw snímky obsahují několik podsnímků (Pentax Pixel Shift, Pentax 3-in-1 HDR, Canon Dual Pixel).\n\nV případě, že je pro demozajkování použita jiná metoda než Pixel Shift, tato volba určí, který podsnímek se použije.\n\nPokud je použita Pixel Shift metoda demozajkování na Pixel Shift raw soubory, budou použity všechny podsnímky a tato volba určí, který snímek bude použit pro pohyblivé části.
TP_RAW_LABEL;Demozajkování
TP_RAW_LMMSE;LMMSE
TP_RAW_LMMSEITERATIONS;Kroky rozšíření LMMSE
@@ -1755,7 +1742,7 @@ TP_RAW_PIXELSHIFT;Pixel Shift
TP_RAW_PIXELSHIFTADAPTIVE;Přizpůsobivá detekce
TP_RAW_PIXELSHIFTBLUR;Maska pohybové neostrosti
TP_RAW_PIXELSHIFTEPERISO;Přizpůsobení ISO
-TP_RAW_PIXELSHIFTEPERISO_TOOLTIP;Výchozí hodnota (0,0) by měla dostačovat pro základní hodnoty ISO.\nDetekci pohybu na vyšších hodnotách ISO vylepšíte navýšením této hodnoty.\nZvyšujte po malých krocích a sledujte přitom masku pohybu.
+TP_RAW_PIXELSHIFTEPERISO_TOOLTIP;Výchozí hodnota 0 by měla dostačovat pro základní hodnoty ISO.\nDetekci pohybu na vyšších hodnotách ISO vylepšíte navýšením této hodnoty.\nZvyšujte po malých krocích a sledujte přitom masku pohybu.
TP_RAW_PIXELSHIFTEQUALBRIGHT;Vyrovnat jas snímků
TP_RAW_PIXELSHIFTEQUALBRIGHTCHANNEL;Korekce po kanálech
TP_RAW_PIXELSHIFTEQUALBRIGHTCHANNEL_TOOLTIP;Zapnuto: Nezávislá korekce jednotlivých RGB kanálů.\nVypnuto: Použije se stejná hodnota pro všechny kanály.
@@ -1767,7 +1754,7 @@ TP_RAW_PIXELSHIFTHOLEFILL_TOOLTIP;Vyplnit díry v masce pohybu
TP_RAW_PIXELSHIFTLMMSE;Použít LMMSE pro části s pohybem
TP_RAW_PIXELSHIFTLMMSE_TOOLTIP;Pro oblasti s pohybem použít LMMSE namísto AMaZE.\nUžitečné pro fotografie s vysokým ISO.
TP_RAW_PIXELSHIFTMASKTHRESHOLD;3x3 nový práh
-TP_RAW_PIXELSHIFTMEDIAN;Medián
+TP_RAW_PIXELSHIFTMEDIAN;Použít medián pro části s pohybem
TP_RAW_PIXELSHIFTMEDIAN3;Vyjmout vybraný snímek z mediánu
TP_RAW_PIXELSHIFTMEDIAN3_TOOLTIP;Vyjme vybraný snímek z mediánu.\nUžitečné, pokud se pohybující se objekty překrývají jen ve druhém a třetím.
TP_RAW_PIXELSHIFTMEDIAN_TOOLTIP;Pro oblasti s pohybem použijte medián všech snímků namísto vybraného.\nOdstraní objekty, které jsou na všech snímcích na různých místech.\nVytvoří efekt pohybu pro pomalu se pohybující (překrývající se) objekty.
@@ -1777,23 +1764,23 @@ TP_RAW_PIXELSHIFTMM_OFF;Vypnuto
TP_RAW_PIXELSHIFTMOTION;Úroveň kontroly pohybu (zastaralé)
TP_RAW_PIXELSHIFTMOTIONCORRECTION;Míra korekce pohybu v zelené
TP_RAW_PIXELSHIFTMOTIONMETHOD;Korekce pohybu
-TP_RAW_PIXELSHIFTMOTION_TOOLTIP;0 znamená bez detekce pohybu\n1 - 99 znamená, že pohybu bude detekován dle této hodnoty. Pro zvýšení míry detekce použijte vyšší hodnotu\n100 znamená, že bude použito AMaZE demozajkování snímku
+TP_RAW_PIXELSHIFTMOTION_TOOLTIP;0 znamená bez detekce pohybu.\n1 - 99 znamená, že pohybu bude detekován dle této hodnoty. Pro zvýšení míry detekce použijte vyšší hodnotu.\n100 znamená, že bude použito AMaZE demozajkování snímku.
TP_RAW_PIXELSHIFTNONGREENAMAZE;Kontrolovat červené/modré AMaZE
TP_RAW_PIXELSHIFTNONGREENCROSS;Kontrolovat pohyb v červeném a modrém kanálu
-TP_RAW_PIXELSHIFTNONGREENCROSS2;Kontrolovat zelené amaze
+TP_RAW_PIXELSHIFTNONGREENCROSS2;Kontrolovat zelené AMaZE
TP_RAW_PIXELSHIFTNONGREENHORIZONTAL;Kontrolovat červenou/modrou vodorovně
TP_RAW_PIXELSHIFTNONGREENVERTICAL;Kontrolovat červenou/modrou svisle
TP_RAW_PIXELSHIFTNREADISO;nRead
TP_RAW_PIXELSHIFTPRNU;PRNU (%)
TP_RAW_PIXELSHIFTREDBLUEWEIGHT;Váha červené a modré
-TP_RAW_PIXELSHIFTSHOWMOTION;Ukázat pohyb
-TP_RAW_PIXELSHIFTSHOWMOTIONMASKONLY;Zobrazit pouze masku
-TP_RAW_PIXELSHIFTSHOWMOTIONMASKONLY_TOOLTIP;Ukázat masku pohybu bez obrázku
-TP_RAW_PIXELSHIFTSHOWMOTION_TOOLTIP;Překryje obrázek maskou, která ukazuje oblasti s pohybem
+TP_RAW_PIXELSHIFTSHOWMOTION;Ukázat masku pohybu
+TP_RAW_PIXELSHIFTSHOWMOTIONMASKONLY;Ukázat pouze masku pohybu
+TP_RAW_PIXELSHIFTSHOWMOTIONMASKONLY_TOOLTIP;Ukázat masku pohybu bez obrázku.
+TP_RAW_PIXELSHIFTSHOWMOTION_TOOLTIP;Překryje obrázek maskou, která ukazuje oblasti s pohybem.
TP_RAW_PIXELSHIFTSIGMA;Poloměr rozostření
-TP_RAW_PIXELSHIFTSIGMA_TOOLTIP;Výchozí poloměr 1,0 většinou dobře funguje pro základní ISO. U snímků s vyšším ISO poloměr zvětšete.\nHodnota 5,0 je dobrým výchozím bodem pro snímky pořízené na vysoké ISO.\nBěhem změny hodnoty poloměru sledujte masku pohybu.
+TP_RAW_PIXELSHIFTSIGMA_TOOLTIP;Výchozí poloměr 1,0 většinou velmi dobře funguje pro základní ISO.\nU snímků s vysokým ISO poloměr zvětšete. Hodnota 5,0 je dobrým výchozím bodem.\nBěhem změny hodnoty sledujte masku pohybu.
TP_RAW_PIXELSHIFTSMOOTH;Hladké přechody
-TP_RAW_PIXELSHIFTSMOOTH_TOOLTIP;Plynulé přechody mezi místy s pohybem a bez něj.\nNastavte 0 pro zakázání plynulých přechodů\nNastavte 1 pro použití AMaZE/LMMSE nebo Median
+TP_RAW_PIXELSHIFTSMOOTH_TOOLTIP;Vyhlazení přechodů mezi oblastmi s pohybem a bez pohybu.\nNastavte na 0 pro vypnutí vyhlazování přechodů.\nNastavte na 1 pro získání AMaZE/LMMSE výsledku pro vybraný snímek (závisí na tom, zda je vybrána volba "Použít LMMSE") nebo mediánu všech čtyř snímků (pokud je vybrána volba "Použít medián").
TP_RAW_PIXELSHIFTSTDDEVFACTORBLUE;StdDev faktor modrý
TP_RAW_PIXELSHIFTSTDDEVFACTORGREEN;StdDev faktor zelený
TP_RAW_PIXELSHIFTSTDDEVFACTORRED;StdDev faktor červený
@@ -2180,8 +2167,3 @@ ZOOMPANEL_ZOOMFITSCREEN;Přizpůsobit obrázek obrazovce\nZkratka: f
ZOOMPANEL_ZOOMIN;Přiblížit\nZkratka: +
ZOOMPANEL_ZOOMOUT;Oddálit\nZkratka: -
-!!!!!!!!!!!!!!!!!!!!!!!!!
-! Untranslated keys follow; remove the ! prefix after an entry is translated.
-!!!!!!!!!!!!!!!!!!!!!!!!!
-
-!TP_RAW_IMAGENUM_TOOLTIP;Some raw files consist of several sub-images (Pentax Pixel Shift, Pentax 3-in-1 HDR, Canon Dual Pixel).\n\nWhen using any demosaicing method other than Pixel Shift, this selects which sub-image is used.\n\nWhen using the Pixel Shift demosaicing method on a Pixel Shift raw, all sub-images are used, and this selects which sub-image should be used for moving parts.
diff --git a/rtdata/languages/Dansk b/rtdata/languages/Dansk
index 30878dd74..3586e3d6f 100644
--- a/rtdata/languages/Dansk
+++ b/rtdata/languages/Dansk
@@ -1004,6 +1004,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur
!MAIN_MSG_OPERATIONCANCELLED;Operation cancelled
!MAIN_MSG_PATHDOESNTEXIST;The path\n\n%1\n\ndoes not exist. Please set a correct path in Preferences.
!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_COLOR_TOOLTIP;Shortcut: Alt-c
!MAIN_TAB_DETAIL_TOOLTIP;Shortcut: Alt-d
diff --git a/rtdata/languages/Deutsch b/rtdata/languages/Deutsch
index acb61f8c6..6d4f7e95d 100644
--- a/rtdata/languages/Deutsch
+++ b/rtdata/languages/Deutsch
@@ -41,6 +41,7 @@
#40 30.04.2017 Erweiterung/Korrekturen (TooWaBoo) RT 5.0 r1
#41 03.05.2017 Erweiterung/Korrekturen (TooWaBoo) RT 5.0 r1
#42 13.05.2017 Erweiterung (TooWaBoo) RT 5.0 r1
+#43 21.07.2017 Erweiterung (TooWaBoo) RT 5.1
ABOUT_TAB_BUILD;Version
ABOUT_TAB_CREDITS;Danksagungen
@@ -759,7 +760,7 @@ HISTORY_MSG_471;(Sensor-Matrix)\nFarbinterpolation\nBewegungskorrektur
HISTORY_MSG_472;(Sensor-Matrix)\nFarbinterpolation\nWeicher Übergang
HISTORY_MSG_473;(Sensor-Matrix)\nFarbinterpolation\nLMMSE für Bewegungs-\nteile verwenden
HISTORY_MSG_474;(Sensor-Matrix)\nFarbinterpolation\nFrame-Helligkeit angleichen
-HISTORY_MSG_475;(Sensor-Matrix)\nAusgleich pro Kanal
+HISTORY_MSG_475;(Sensor-Matrix)\nFarbinterpolation)\nAusgleich pro Kanal
HISTORY_NEWSNAPSHOT;Hinzufügen
HISTORY_NEWSNAPSHOT_TOOLTIP;Taste: Alt + s
HISTORY_SNAPSHOT;Schnappschuss
@@ -2185,3 +2186,8 @@ ZOOMPANEL_ZOOMFITSCREEN;An Bildschirm anpassen\nTaste: f
ZOOMPANEL_ZOOMIN;Hineinzoomen\nTaste: +
ZOOMPANEL_ZOOMOUT;Herauszoomen\nTaste: -
+!!!!!!!!!!!!!!!!!!!!!!!!!
+! Untranslated keys follow; remove the ! prefix after an entry is translated.
+!!!!!!!!!!!!!!!!!!!!!!!!!
+
+MAIN_MSG_TOOMANYOPENEDITORS;Zu viele geöffnete Editorfenster.\nUm fortzufahren, schließen sie bitte ein Editorfenster.
diff --git a/rtdata/languages/English (UK) b/rtdata/languages/English (UK)
index dc363a720..80b66899a 100644
--- a/rtdata/languages/English (UK)
+++ b/rtdata/languages/English (UK)
@@ -865,6 +865,7 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh
!MAIN_MSG_PATHDOESNTEXIST;The path\n\n%1\n\ndoes not exist. Please set a correct path in Preferences.
!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_COLOR_TOOLTIP;Shortcut: Alt-c
!MAIN_TAB_DETAIL;Detail
diff --git a/rtdata/languages/English (US) b/rtdata/languages/English (US)
index 0b477ca56..b7e3e1c00 100644
--- a/rtdata/languages/English (US)
+++ b/rtdata/languages/English (US)
@@ -784,6 +784,7 @@
!MAIN_MSG_PATHDOESNTEXIST;The path\n\n%1\n\ndoes not exist. Please set a correct path in Preferences.
!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_COLOR;Color
!MAIN_TAB_COLOR_TOOLTIP;Shortcut: Alt-c
diff --git a/rtdata/languages/Espanol b/rtdata/languages/Espanol
index 625e6ad83..c61f2dbbf 100644
--- a/rtdata/languages/Espanol
+++ b/rtdata/languages/Espanol
@@ -1723,6 +1723,7 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nAtajo: -
!IPTCPANEL_TITLEHINT;Enter a short verbal and human readable name for the image, this may be the file name.
!IPTCPANEL_TRANSREFERENCE;Job ID
!IPTCPANEL_TRANSREFERENCEHINT;Enter a number or identifier needed for workflow control or tracking.
+!MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue.
!MAIN_TAB_INSPECT; Inspect
!MAIN_TAB_WAVELET;Wavelet
!MAIN_TAB_WAVELET_TOOLTIP;Shortcut: Alt-w
diff --git a/rtdata/languages/Euskara b/rtdata/languages/Euskara
index a9727e172..b7ff4c0f9 100644
--- a/rtdata/languages/Euskara
+++ b/rtdata/languages/Euskara
@@ -1004,6 +1004,7 @@ TP_WBALANCE_TEMPERATURE;Tenperatura
!MAIN_MSG_OPERATIONCANCELLED;Operation cancelled
!MAIN_MSG_PATHDOESNTEXIST;The path\n\n%1\n\ndoes not exist. Please set a correct path in Preferences.
!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_COLOR_TOOLTIP;Shortcut: Alt-c
!MAIN_TAB_DETAIL_TOOLTIP;Shortcut: Alt-d
diff --git a/rtdata/languages/Francais b/rtdata/languages/Francais
index 0b58dd529..65cf503eb 100644
--- a/rtdata/languages/Francais
+++ b/rtdata/languages/Francais
@@ -34,6 +34,15 @@ CURVEEDITOR_TOOLTIPPASTE;Colle la courbe du presse-papier
CURVEEDITOR_TOOLTIPSAVE;Enregistrer la courbe actuelle
CURVEEDITOR_TYPE;Type:
DIRBROWSER_FOLDERS;Répertoires
+DYNPROFILEEDITOR_DELETE;Supprimer
+DYNPROFILEEDITOR_EDIT;Modifier
+DYNPROFILEEDITOR_EDIT_RULE;Modifier une règle de Profil Dynamique
+DYNPROFILEEDITOR_ENTRY_TOOLTIP;La correspondance est insensible à la casse.\nUtilisez le préfix "re:" pour entrer\nune expression régulière.
+DYNPROFILEEDITOR_MOVE_DOWN;Déplacer vers le bas
+DYNPROFILEEDITOR_MOVE_UP;Déplacer vers le haut
+DYNPROFILEEDITOR_NEW;Nouveau
+DYNPROFILEEDITOR_NEW_RULE;Nouvelle Règle de Profil Dynamique
+DYNPROFILEEDITOR_PROFILE;Profil de Traitement
EDITWINDOW_TITLE;Édition d'image
EDIT_OBJECT_TOOLTIP;Affiche des éléments dans la fenêtre de prévisualisation qui vous permettront d'ajuster cet outil.
EDIT_PIPETTE_TOOLTIP;Pour ajouter un point d'ajustement de la courbe, maintenez la touche Ctrl pressée et cliquez dans l'image avec le bouton gauche.\nPour ajuster le point, pressez la touche Ctrl lors du clic-gauche sur la zone correspondante dans l'aperçu, puis relachez Ctrl (sauf si vous désirez un contrôle plus fin) et tout en gardant le bouton gauche appuyé, déplacez le curseur vers le haut ou le bas pour ajuster la position du point.
@@ -60,6 +69,7 @@ EXIFPANEL_RESETALL;Réinitialiser tout
EXIFPANEL_RESETALLHINT;Réinitialise tous les tags à leur valeur initiale
EXIFPANEL_RESETHINT;Réinitialise les données sélectionnées à la valeur initiale
EXIFPANEL_SUBDIRECTORY;Sous-répertoire
+EXPORT_BYPASS;Étapes de traitement à ignorer
EXPORT_BYPASS_ALL;Sélectionner / Désélectionner tout
EXPORT_BYPASS_DEFRINGE;Ignorer la corr. d'aberration chromatique
EXPORT_BYPASS_DIRPYRDENOISE;Ignorer la réduction du bruit
@@ -82,8 +92,12 @@ EXPORT_FASTEXPORTOPTIONS;Options d'Export Rapide
EXPORT_INSTRUCTIONS;Les options d'Export Rapide permettent de forcer des paramètres afin d'éviter d'utiliser des outils très consommateurs de temps et de ressources, et d'utiliser ces options dans la file de traitement. Cette méthode est recommandée pour la génération rapide d'images de basse résolution quand la vitesse est une priorité ou lorsqu'on désire une version redimensionnée d'une ou plusieurs images de sortie sans avoir à modifier leurs paramètres de développement.
EXPORT_MAXHEIGHT;Hauteur maximum:
EXPORT_MAXWIDTH;Largeur maximum:
+EXPORT_PIPELINE;Pipeline de Traitement
EXPORT_PUTTOQUEUEFAST;Mettre dans la file de traitement\npour Export Rapide
EXPORT_RAW_DMETHOD;Méthode de dématriçage
+EXPORT_USE_FAST_PIPELINE;Dédié\n(traitement complet sur une image rédimmentionnée)
+EXPORT_USE_FAST_PIPELINE_TIP;Utilise un pipeline de traitement dédié pour les images en Export Rapide, qui priviliégie la vitesse sur la qualité. Le redimentionnement des images est fait dès que possible, au lieu d'être fait à la fin comme dans le pipeline normal. L'accélération peut être significative, mais soyez prêt à voir des artéfacts et une dégradation générale de la qualité de sortie.
+EXPORT_USE_NORMAL_PIPELINE;Standard\n(ignore des étapes, redimentionne à la fin)
EXTPROGTARGET_1;raw
EXTPROGTARGET_2;file de traitement
FILEBROWSER_ADDDELTEMPLATE;Ajouter/Supprimer le modèle...
@@ -155,6 +169,7 @@ FILEBROWSER_RANK3_TOOLTIP;Rang 3 *\nRaccourci: Shift-3
FILEBROWSER_RANK4_TOOLTIP;Rang 4 *\nRaccourci: Shift-4
FILEBROWSER_RANK5_TOOLTIP;Rang 5 *\nRaccourci: Shift-5
FILEBROWSER_RENAMEDLGLABEL;Renommage du fichier
+FILEBROWSER_RESETDEFAULTPROFILE;Réinitialise au traitement par défaut
FILEBROWSER_SELECTDARKFRAME;Choisir une image de Trame Noire...
FILEBROWSER_SELECTFLATFIELD;Sélectionner un Champ Uniforme...
FILEBROWSER_SHOWCOLORLABEL1HINT;Afficher les images avec un label Rouge\nRaccourci: Alt-1
@@ -671,6 +686,22 @@ HISTORY_MSG_440;CpND - Méthode
HISTORY_MSG_441;Retinex - Gain de Tansmission
HISTORY_MSG_442;Retinex - Échelle
HISTORY_MSG_443;Compensation du Point Noir de Sortie
+HISTORY_MSG_444;BdB - Ajustement Temp
+HISTORY_MSG_445;Sous-image RAW
+HISTORY_MSG_449;PS - Adaptation ISO
+HISTORY_MSG_452;PS - Voir les zones de mouvement
+HISTORY_MSG_453;PS - Voir uniquement le masque
+HISTORY_MSG_457;PS - Vérifier le rouge/bleu
+HISTORY_MSG_462;PS - Vérifier le vert
+HISTORY_MSG_464;PS - Flouter le masque de mouvement
+HISTORY_MSG_465;PS - Rayons de floutage
+HISTORY_MSG_468;PS - Remplir les trous
+HISTORY_MSG_469;PS - Médiane
+HISTORY_MSG_471;PS - Correction de mouvement
+HISTORY_MSG_472;PS - Adoucir les transitions
+HISTORY_MSG_473;PS - Utiliser LMMSE
+HISTORY_MSG_474;PS - Égaliser
+HISTORY_MSG_475;PS - Égaliser par canal
HISTORY_NEWSNAPSHOT;Ajouter
HISTORY_NEWSNAPSHOT_TOOLTIP;Raccourci: Alt-s
HISTORY_SNAPSHOT;Capture
@@ -750,6 +781,7 @@ MAIN_MSG_OPERATIONCANCELLED;Opération annulée
MAIN_MSG_PATHDOESNTEXIST;Le chemin \n\n%1\n\nn'existe pas. S.V.P indiquez un chemin correct dans la fenêtre Préférences.
MAIN_MSG_QOVERWRITE;Voulez-vous l'écraser?
MAIN_MSG_SETPATHFIRST;Vous devez d'abord choisir un dossier cible dans Préférences\npour pouvoir utiliser cette fonction!
+MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue.
MAIN_MSG_WRITEFAILED;Échec de l'enregistrement du fichier\n\n"%1"\n\nAssurez-vous que le dossier existe et qu'il est permis d'y écrire.
MAIN_TAB_COLOR;Couleur
MAIN_TAB_COLOR_TOOLTIP;Raccourci:Alt-c
@@ -860,6 +892,7 @@ PARTIALPASTE_RAW_DCBENHANCE;Amélioration de DCB
PARTIALPASTE_RAW_DCBITERATIONS;Nombre d'itération de DCB
PARTIALPASTE_RAW_DMETHOD;Algorithme de dématriçage
PARTIALPASTE_RAW_FALSECOLOR;Nbr d'itération des fausses couleurs
+PARTIALPASTE_RAW_IMAGENUM;Sub-image
PARTIALPASTE_RAW_LMMSEITERATIONS;Niveau d'amélioration LMMSE
PARTIALPASTE_RAW_PIXELSHIFT;PixelShift
PARTIALPASTE_RESIZE;Redimentionnement
@@ -1032,8 +1065,10 @@ PREFERENCES_PROFILEHANDLING;Gestionnaire des profils de traitement
PREFERENCES_PROFILELOADPR;Priorité de chargement des profils
PREFERENCES_PROFILEPRCACHE;Profil dans le Cache
PREFERENCES_PROFILEPRFILE;Profil accolé au fichier d'entrée
+PREFERENCES_PROFILESAVEBOTH;Save processing profile both to the cache and next to the input file
PREFERENCES_PROFILESAVECACHE;Enregistrer la paramètres de traitement dans le Cache
PREFERENCES_PROFILESAVEINPUT;Enregistrer la paramètres de traitement accolé au fichier d'entrée
+PREFERENCES_PROFILESAVELOCATION;Processing profile saving location
PREFERENCES_PROFILE_NONE;Aucun
PREFERENCES_PROPERTY;Propriété
PREFERENCES_PRTINTENT;Intention de rendu
@@ -1068,6 +1103,7 @@ PREFERENCES_STARTUPIMDIR;Répertoire Image au démarrage
PREFERENCES_STDAUT;Standard
PREFERENCES_TAB_BROWSER;Navigateur de fichiers
PREFERENCES_TAB_COLORMGR;Gestion des couleurs
+PREFERENCES_TAB_DYNAMICPROFILE;Règles de Profil Dynamique
PREFERENCES_TAB_GENERAL;Général
PREFERENCES_TAB_IMPROC;Traitement de l'image
PREFERENCES_TAB_PERFORMANCE;Performance
@@ -1095,6 +1131,7 @@ PROFILEPANEL_MODE_TIP;Mode de complètement des profils de traitement.\n\nBouton
PROFILEPANEL_MYPROFILES;Mes profils
PROFILEPANEL_PASTEPPASTE;Paramètres à coller
PROFILEPANEL_PCUSTOM;Personnel
+PROFILEPANEL_PDYNAMIC;Dynamique
PROFILEPANEL_PFILE;Depuis le fichier
PROFILEPANEL_PINTERNAL;Neutre
PROFILEPANEL_PLASTSAVED;Dernière sauvegarde
@@ -1637,21 +1674,82 @@ TP_RAWEXPOS_LINEAR;Corr. du Point Blanc
TP_RAWEXPOS_PRESER;Préservation des HL
TP_RAWEXPOS_RGB;Rouge, Vert, Bleu
TP_RAWEXPOS_TWOGREEN;Lier les verts
+TP_RAW_1PASSMEDIUM;1-Passe (Medium)
+TP_RAW_3PASSBEST;3-Passes (Meilleur)
+TP_RAW_AHD;AHD
+TP_RAW_AMAZE;AMaZE
+TP_RAW_DCB;DCB
TP_RAW_DCBENHANCE;Amélioration de DCB
TP_RAW_DCBITERATIONS;Nombre d'itération de DCB
TP_RAW_DMETHOD;Méthode
TP_RAW_DMETHOD_PROGRESSBAR;Dématriçage %1...
TP_RAW_DMETHOD_PROGRESSBAR_REFINE;Affinage du dématriçage...
TP_RAW_DMETHOD_TOOLTIP;Note: IGV et LMMSE sont dédiés aux images à haut ISO
+TP_RAW_EAHD;EAHD
TP_RAW_FALSECOLOR;Itérations pour la suppression\ndes fausses couleurs
+TP_RAW_FAST;Fast
TP_RAW_HD;Seuil
TP_RAW_HD_TOOLTIP;Des valeurs basses rendront la détection de pixel chaud/mort plus agressive, mais les faux positifs peuvent conduire à des artéfacts. Si vous observez de quelconques artéfacts en activant le 'Filtre de pixel chaud/mort', augmentez graduellement ce seuil jusqu'à leur disparition.
+TP_RAW_HPHD;HPHD
+TP_RAW_IGV;IGV
+TP_RAW_IMAGENUM;Sous-image
+TP_RAW_IMAGENUM_TOOLTIP;Certains fichiers RAW consistent en plusieurs sous-images (Pentax Pixel Shift, Pentax HDR 3-en-1, Canon Dual Pixel).\n\nLors de l'usage d'une méthode de dématriçage autre que Pixel Shift, ceci sélectionne quel sous-image est utilisée.\n\nLors de l'usage de la méthode de dématriçage Pixel Shift sur un fichier RAW Pixel, toutes les sous-images sont utilisées, et ceci sélectionne quelle sous-image devrait être utilisé pour la détection de mouvement.
TP_RAW_LABEL;Dématriçage
+TP_RAW_LMMSE;LMMSE
TP_RAW_LMMSEITERATIONS;Niveau d'amélioration LMMSE
TP_RAW_LMMSE_TOOLTIP;Ajoute gamma (niveau 1) + médian (niveau 2-4) + affinage (niveau 5-6) pour réduire les artéfacts et améliorer le rapport signal/bruit
+TP_RAW_MONO;Mono
+TP_RAW_NONE;Aucun (montre ce que voit le capteur)
+TP_RAW_PIXELSHIFT;Pixel Shift
+TP_RAW_PIXELSHIFTADAPTIVE;Détection adaptative
+TP_RAW_PIXELSHIFTBLUR;Flouter le masque de mouvement
+TP_RAW_PIXELSHIFTEPERISO;Adaptation ISO
+TP_RAW_PIXELSHIFTEPERISO_TOOLTIP;La valeur par défaut de 0 devrait bien fonctionner pour l'ISO de base.\nAugmenter la valeur pour améliorer la détection de mouvement pour les ISO plus haut.\nAugmentez par petit incrément et vérifier le masque de mouvement à chaque itération.
+TP_RAW_PIXELSHIFTEQUALBRIGHT;Égaliser la luminosité des sous-images
+TP_RAW_PIXELSHIFTEQUALBRIGHTCHANNEL;Égaliser par canal
+TP_RAW_PIXELSHIFTEQUALBRIGHTCHANNEL_TOOLTIP;Activé: Égalise les canaux RVB individuellement.\nDésactivé: Utilise le même facteur d'égalisation pour tous les canaux.
+TP_RAW_PIXELSHIFTEQUALBRIGHT_TOOLTIP;Égalise la luminosité des sous-images à la luminosité de la sous-image sélectionnée.\nS'il y a des zones surexposées dans les sous-images, sélectionne la sous-image la plus lumineuse pour éviter des dérives coiuleurs magenta dans les zone surexposées ou permettre la détection de mouvement.
+TP_RAW_PIXELSHIFTEXP0;Expérimental
+TP_RAW_PIXELSHIFTGREEN;Vérifier le canal vert pour le mouvement
+TP_RAW_PIXELSHIFTHOLEFILL;Rempli les trous dans le masque de mouvement
+TP_RAW_PIXELSHIFTHOLEFILL_TOOLTIP;Rempli les trous dans le masque de mouvement
+TP_RAW_PIXELSHIFTLMMSE;Utilise LMMSE pour les zone de mouvement
+TP_RAW_PIXELSHIFTLMMSE_TOOLTIP;Utilise LMMSE au lieu d'AMaZE pour les zone de mouvement.\nutil pour les images de haut ISO.
+TP_RAW_PIXELSHIFTMASKTHRESHOLD;Nouveau seuil 3x3
+TP_RAW_PIXELSHIFTMEDIAN;Utilise la médiane pour les zones de mouvement
+TP_RAW_PIXELSHIFTMEDIAN3;Exclure la sous-image sélectionnée de la médiane
+TP_RAW_PIXELSHIFTMEDIAN3_TOOLTIP;Exclu la sous-image sélectionné de la médiane.\nUtil si mes objets en mouvement se chevauchent dans les sous-images 2 et 3
+TP_RAW_PIXELSHIFTMEDIAN_TOOLTIP;Utilise la médianes de toutes les sous-images au lieu de la sous-images sélectionnée pour les zones de mouvement.\nRetir les objets qui sont à des endroits différents dans toutes les sous-images.\nDonne un effet de mouvement aux objets se déplaçant lentement (se chevauchant).
+TP_RAW_PIXELSHIFTMM_AUTO;Automatique
+TP_RAW_PIXELSHIFTMM_CUSTOM;Manuel
+TP_RAW_PIXELSHIFTMM_OFF;Arrêt
+TP_RAW_PIXELSHIFTMOTION;Niveau de détection de mouvement (dépréconisé)
+TP_RAW_PIXELSHIFTMOTIONCORRECTION;Taille de la correction de mouvement vert
+TP_RAW_PIXELSHIFTMOTIONMETHOD;Correction de Mouvement
+TP_RAW_PIXELSHIFTMOTION_TOOLTIP;0 signifie pas de détection de mouvement.\n1 - 99 signifie que le mouvement sera détecté par-rapport à cette valeur. Augmentez cette valeur pour augmenter le taux de détection.\n100 signifie que la sous-image sélectionnée et dématricée en AMaZE sera utilisée tel quel.
+TP_RAW_PIXELSHIFTNONGREENAMAZE;Vérifier rouge/bleu AMaZE
+TP_RAW_PIXELSHIFTNONGREENCROSS;Vérifier les canaux rouge/bleu pour le mouvement
+TP_RAW_PIXELSHIFTNONGREENCROSS2;Vérifier vert AMaZE
+TP_RAW_PIXELSHIFTNONGREENHORIZONTAL;Vérifier rouge/bleu horizontal
+TP_RAW_PIXELSHIFTNONGREENVERTICAL;Vérifier rouge/bleu vertical
+TP_RAW_PIXELSHIFTNREADISO;Lire
+TP_RAW_PIXELSHIFTPRNU;PRNU (%)
+TP_RAW_PIXELSHIFTREDBLUEWEIGHT;Poid Rouge&Bleu
+TP_RAW_PIXELSHIFTSHOWMOTION;Voir le masque de mouvement
+TP_RAW_PIXELSHIFTSHOWMOTIONMASKONLY;Voir uniquement le masque
+TP_RAW_PIXELSHIFTSHOWMOTIONMASKONLY_TOOLTIP;Affiche le masque sans l'image.
+TP_RAW_PIXELSHIFTSHOWMOTION_TOOLTIP;Superpose sur l'image le masque montrant les zones avec mouvement.
+TP_RAW_PIXELSHIFTSIGMA;Rayon de floutage
+TP_RAW_PIXELSHIFTSIGMA_TOOLTIP;Le rayon par défaut de 1.0 fonctionne généralement bien pour l'ISO de base.\nAugmentez cette valeur pour les images de haut ISO, 5.0 est un bon point de départ.\nContrôlez le masque de mouvement à chaque nouvelle valeur.
+TP_RAW_PIXELSHIFTSMOOTH;Adoucir les transitions
+TP_RAW_PIXELSHIFTSMOOTH_TOOLTIP;Adouci les transitions entre les zones avec mouvement et les zones sans.\nRéglez à 0 pour désactiver l'adoucissement des transitions.\nRéglez à 1 pour obtenir soit le résultat du dématriçage AMaZE/LMMSE de la sous-image sélectionnée (selon que "Utilise LMMSE" est sélectionné), ou la médiane des 4 sous-images si "Utilise la médiane ..." est sélectionné.
+TP_RAW_PIXELSHIFTSTDDEVFACTORBLUE;Facteur DevStd Bleu
+TP_RAW_PIXELSHIFTSTDDEVFACTORGREEN;Facteur DevStd Vert
+TP_RAW_PIXELSHIFTSTDDEVFACTORRED;Facteur DevStd Rouge
TP_RAW_SENSOR_BAYER_LABEL;Capteur à matrice de Bayer
TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-passes donne les meilleurs résultats (recommendé pour les images de faible ISO).\n1-passe est presque indifférentiable de 3-passes pour les images à haut ISO et est plus rapide.
TP_RAW_SENSOR_XTRANS_LABEL;Capteur à matrice X-Trans
+TP_RAW_VNG4;VNG4
TP_RESIZE_APPLIESTO;S'applique à:
TP_RESIZE_CROPPEDAREA;La zone recadrée
TP_RESIZE_FITBOX;Boîte englobante
@@ -2016,6 +2114,8 @@ TP_WBALANCE_SOLUX41;Solux 4100K
TP_WBALANCE_SOLUX47;Solux 4700K (fabricant)
TP_WBALANCE_SOLUX47_NG;Solux 4700K (Nat. Gallery)
TP_WBALANCE_SPOTWB;Point de mesure
+TP_WBALANCE_TEMPBIAS;Ajustement de la température BdB
+TP_WBALANCE_TEMPBIAS_TOOLTIP;Permet d'ajuster le calcul de la "Balance des blancs auto" en recherchant une température plus chaude ou plus froide. L'ajustement est éxprimé comme un poucentage de la température calculée, de manière à ce que le résultat soit "tempCalculé + tempCalculé * ajustement".
TP_WBALANCE_TEMPERATURE;Température
TP_WBALANCE_TUNGSTEN;Tungstène
TP_WBALANCE_WATER1;Sous-marin 1
@@ -2029,106 +2129,3 @@ ZOOMPANEL_ZOOMFITSCREEN;Affiche l'image entière\nRaccourci: f
ZOOMPANEL_ZOOMIN;Zoom Avant\nRaccourci: +
ZOOMPANEL_ZOOMOUT;Zoom Arrière\nRaccourci: -
-!!!!!!!!!!!!!!!!!!!!!!!!!
-! Untranslated keys follow; remove the ! prefix after an entry is translated.
-!!!!!!!!!!!!!!!!!!!!!!!!!
-
-!DYNPROFILEEDITOR_DELETE;Delete
-!DYNPROFILEEDITOR_EDIT;Edit
-!DYNPROFILEEDITOR_EDIT_RULE;Edit Dynamic Profile Rule
-!DYNPROFILEEDITOR_ENTRY_TOOLTIP;The matching is case insensitive.\nUse the "re:" prefix to enter\na regular expression.
-!DYNPROFILEEDITOR_MOVE_DOWN;Move Down
-!DYNPROFILEEDITOR_MOVE_UP;Move Up
-!DYNPROFILEEDITOR_NEW;New
-!DYNPROFILEEDITOR_NEW_RULE;New Dynamic Profile Rule
-!DYNPROFILEEDITOR_PROFILE;Processing Profile
-!EXPORT_BYPASS;Processing steps to bypass
-!EXPORT_PIPELINE;Processing pipeline
-!EXPORT_USE_FAST_PIPELINE;Dedicated (full processing on resized image)
-!EXPORT_USE_FAST_PIPELINE_TIP;Use a dedicated processing pipeline for images in Fast Export mode, that trades speed for quality. Resizing of the image is done as early as possible, instead of doing it at the end like in the normal pipeline. The speedup can be significant, but be prepared to see artifacts and a general degradation of output quality.
-!EXPORT_USE_NORMAL_PIPELINE;Standard (bypass some steps, resize at the end)
-!FILEBROWSER_RESETDEFAULTPROFILE;Reset to default
-!HISTORY_MSG_444;WB - Temp bias
-!HISTORY_MSG_445;Raw sub-image
-!HISTORY_MSG_449;PS - ISO adaption
-!HISTORY_MSG_452;PS - Show motion
-!HISTORY_MSG_453;PS - Show mask only
-!HISTORY_MSG_457;PS - Check red/blue
-!HISTORY_MSG_462;PS - Check green
-!HISTORY_MSG_464;PS - Blur motion mask
-!HISTORY_MSG_465;PS - Blur radius
-!HISTORY_MSG_468;PS - Fill holes
-!HISTORY_MSG_469;PS - Median
-!HISTORY_MSG_471;PS - Motion correction
-!HISTORY_MSG_472;PS - Smooth transitions
-!HISTORY_MSG_473;PS - Use LMMSE
-!HISTORY_MSG_474;PS - Equalize
-!HISTORY_MSG_475;PS - Equalize channel
-!PARTIALPASTE_RAW_IMAGENUM;Sub-image
-!PREFERENCES_PROFILESAVEBOTH;Save processing profile both to the cache and next to the input file
-!PREFERENCES_PROFILESAVELOCATION;Processing profile saving location
-!PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules
-!PROFILEPANEL_PDYNAMIC;Dynamic
-!TP_RAW_1PASSMEDIUM;1-Pass (Medium)
-!TP_RAW_3PASSBEST;3-Pass (Best)
-!TP_RAW_AHD;AHD
-!TP_RAW_AMAZE;AMaZE
-!TP_RAW_DCB;DCB
-!TP_RAW_EAHD;EAHD
-!TP_RAW_FAST;Fast
-!TP_RAW_HPHD;HPHD
-!TP_RAW_IGV;IGV
-!TP_RAW_IMAGENUM;Sub-image
-!TP_RAW_IMAGENUM_TOOLTIP;Some raw files consist of several sub-images (Pentax Pixel Shift, Pentax 3-in-1 HDR, Canon Dual Pixel).\n\nWhen using any demosaicing method other than Pixel Shift, this selects which sub-image is used.\n\nWhen using the Pixel Shift demosaicing method on a Pixel Shift raw, all sub-images are used, and this selects which sub-image should be used for moving parts.
-!TP_RAW_LMMSE;LMMSE
-!TP_RAW_MONO;Mono
-!TP_RAW_NONE;None (Shows sensor pattern)
-!TP_RAW_PIXELSHIFT;Pixel Shift
-!TP_RAW_PIXELSHIFTADAPTIVE;Adaptive detection
-!TP_RAW_PIXELSHIFTBLUR;Blur motion mask
-!TP_RAW_PIXELSHIFTEPERISO;ISO adaption
-!TP_RAW_PIXELSHIFTEPERISO_TOOLTIP;The default value of 0 should work fine for base ISO.\nIncrease the value to improve motion detection for higher ISO.\nIncrease in small steps and watch the motion mask while increasing.
-!TP_RAW_PIXELSHIFTEQUALBRIGHT;Equalize brightness of frames
-!TP_RAW_PIXELSHIFTEQUALBRIGHTCHANNEL;Equalize per channel
-!TP_RAW_PIXELSHIFTEQUALBRIGHTCHANNEL_TOOLTIP;Enabled: Equalize the RGB channels individually.\nDisabled: Use same equalization factor for all channels.
-!TP_RAW_PIXELSHIFTEQUALBRIGHT_TOOLTIP;Equalize the brightness of the frames to the brightness of the selected frame.\nIf there are overexposed areas in the frames select the brightest frame to avoid magenta colour cast in overexposed areas or enable motion correction.
-!TP_RAW_PIXELSHIFTEXP0;Experimental
-!TP_RAW_PIXELSHIFTGREEN;Check green channel for motion
-!TP_RAW_PIXELSHIFTHOLEFILL;Fill holes in motion mask
-!TP_RAW_PIXELSHIFTHOLEFILL_TOOLTIP;Fill holes in motion mask
-!TP_RAW_PIXELSHIFTLMMSE;Use LMMSE for moving parts
-!TP_RAW_PIXELSHIFTLMMSE_TOOLTIP;Use LMMSE instead of AMaZE for areas of motion.\nUseful for high ISO images.
-!TP_RAW_PIXELSHIFTMASKTHRESHOLD;3x3 new threshold
-!TP_RAW_PIXELSHIFTMEDIAN;Use median for moving parts
-!TP_RAW_PIXELSHIFTMEDIAN3;Exclude selected frame from median
-!TP_RAW_PIXELSHIFTMEDIAN3_TOOLTIP;Excludes selected frame from median.\nUseful if moving objects overlap in frame 2 and 3
-!TP_RAW_PIXELSHIFTMEDIAN_TOOLTIP;Use median of all frames instead of selected frame for regions with motion.\nRemoves objects which are at different places in all frames.\nGives motion effect on slow moving (overlapping) objects.
-!TP_RAW_PIXELSHIFTMM_AUTO;Automatic
-!TP_RAW_PIXELSHIFTMM_CUSTOM;Custom
-!TP_RAW_PIXELSHIFTMM_OFF;Off
-!TP_RAW_PIXELSHIFTMOTION;Motion detection level (deprecated)
-!TP_RAW_PIXELSHIFTMOTIONCORRECTION;Green motion correction size
-!TP_RAW_PIXELSHIFTMOTIONMETHOD;Motion Correction
-!TP_RAW_PIXELSHIFTMOTION_TOOLTIP;0 means no motion detection.\n1 - 99 means motion will be detected according to this value. Increase value to increase detection rate.\n100 means the AMaZE-demosaiced frame will be used.
-!TP_RAW_PIXELSHIFTNONGREENAMAZE;Check red/blue AMaZE
-!TP_RAW_PIXELSHIFTNONGREENCROSS;Check red/blue channels for motion
-!TP_RAW_PIXELSHIFTNONGREENCROSS2;Check green AMaZE
-!TP_RAW_PIXELSHIFTNONGREENHORIZONTAL;Check red/blue horizontal
-!TP_RAW_PIXELSHIFTNONGREENVERTICAL;Check red/blue vertical
-!TP_RAW_PIXELSHIFTNREADISO;nRead
-!TP_RAW_PIXELSHIFTPRNU;PRNU (%)
-!TP_RAW_PIXELSHIFTREDBLUEWEIGHT;Red&Blue weight
-!TP_RAW_PIXELSHIFTSHOWMOTION;Show motion mask
-!TP_RAW_PIXELSHIFTSHOWMOTIONMASKONLY;Show only motion mask
-!TP_RAW_PIXELSHIFTSHOWMOTIONMASKONLY_TOOLTIP;Shows the motion mask without the image.
-!TP_RAW_PIXELSHIFTSHOWMOTION_TOOLTIP;Overlays the image with a mask showing the regions with motion.
-!TP_RAW_PIXELSHIFTSIGMA;Blur radius
-!TP_RAW_PIXELSHIFTSIGMA_TOOLTIP;The default radius of 1.0 usually fits well for base ISO.\nIncrease the value for high ISO shots, 5.0 is a good starting point.\nWatch the motion mask while changing the value.
-!TP_RAW_PIXELSHIFTSMOOTH;Smooth transitions
-!TP_RAW_PIXELSHIFTSMOOTH_TOOLTIP;Smooth transitions between areas with motion and areas without.\nSet to 0 to disable transition smoothing.\nSet to 1 to either get the AMaZE/LMMSE result of the selected frame (depending on whether "Use LMMSE" is selected), or the median of all four frames if "Use median" is selected.
-!TP_RAW_PIXELSHIFTSTDDEVFACTORBLUE;StdDev factor Blue
-!TP_RAW_PIXELSHIFTSTDDEVFACTORGREEN;StdDev factor Green
-!TP_RAW_PIXELSHIFTSTDDEVFACTORRED;StdDev factor Red
-!TP_RAW_VNG4;VNG4
-!TP_WBALANCE_TEMPBIAS;AWB temperature bias
-!TP_WBALANCE_TEMPBIAS_TOOLTIP;Allows to alter the computation of the "auto white balance"\nby biasing it towards warmer or cooler temperatures. The bias\nis expressed as a percentage of the computed temperature,\nso that the result is given by "computedTemp + computedTemp * bias".
diff --git a/rtdata/languages/Greek b/rtdata/languages/Greek
index 322871e1d..f678165ac 100644
--- a/rtdata/languages/Greek
+++ b/rtdata/languages/Greek
@@ -1003,6 +1003,7 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία
!MAIN_MSG_OPERATIONCANCELLED;Operation cancelled
!MAIN_MSG_PATHDOESNTEXIST;The path\n\n%1\n\ndoes not exist. Please set a correct path in Preferences.
!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_COLOR_TOOLTIP;Shortcut: Alt-c
!MAIN_TAB_DETAIL_TOOLTIP;Shortcut: Alt-d
diff --git a/rtdata/languages/Hebrew b/rtdata/languages/Hebrew
index 6732d6279..c3e51752e 100644
--- a/rtdata/languages/Hebrew
+++ b/rtdata/languages/Hebrew
@@ -1004,6 +1004,7 @@ TP_WBALANCE_TEMPERATURE;מידת חום
!MAIN_MSG_OPERATIONCANCELLED;Operation cancelled
!MAIN_MSG_PATHDOESNTEXIST;The path\n\n%1\n\ndoes not exist. Please set a correct path in Preferences.
!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_COLOR_TOOLTIP;Shortcut: Alt-c
!MAIN_TAB_DETAIL_TOOLTIP;Shortcut: Alt-d
diff --git a/rtdata/languages/Italiano b/rtdata/languages/Italiano
index b0e9228d4..decf11bd6 100644
--- a/rtdata/languages/Italiano
+++ b/rtdata/languages/Italiano
@@ -1597,6 +1597,7 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: -
!IPTCPANEL_TRANSREFERENCE;Job ID
!IPTCPANEL_TRANSREFERENCEHINT;Enter a number or identifier needed for workflow control or tracking.
!MAIN_BUTTON_SENDTOEDITOR;Edit image in external editor
+!MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue.
!MAIN_TAB_INSPECT; Inspect
!MAIN_TAB_WAVELET;Wavelet
!MAIN_TAB_WAVELET_TOOLTIP;Shortcut: Alt-w
diff --git a/rtdata/languages/Japanese b/rtdata/languages/Japanese
index d7f847570..74249d80d 100644
--- a/rtdata/languages/Japanese
+++ b/rtdata/languages/Japanese
@@ -1975,6 +1975,7 @@ ZOOMPANEL_ZOOMOUT;ズームアウト\nショートカット: -
!IPTCPANEL_TRANSREFERENCE;Job ID
!IPTCPANEL_TRANSREFERENCEHINT;Enter a number or identifier needed for workflow control or tracking.
!MAIN_BUTTON_SENDTOEDITOR;Edit image in external editor
+!MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue.
!MONITOR_PROFILE_SYSTEM;System default
!PARTIALPASTE_PRSHARPENING;Post-resize sharpening
!PARTIALPASTE_RAWCACORR_CAREDBLUE;CA red & blue
diff --git a/rtdata/languages/Latvian b/rtdata/languages/Latvian
index 946e95b8a..caecfdd69 100644
--- a/rtdata/languages/Latvian
+++ b/rtdata/languages/Latvian
@@ -1004,6 +1004,7 @@ TP_WBALANCE_TEMPERATURE;Temperatūra
!MAIN_MSG_OPERATIONCANCELLED;Operation cancelled
!MAIN_MSG_PATHDOESNTEXIST;The path\n\n%1\n\ndoes not exist. Please set a correct path in Preferences.
!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_COLOR_TOOLTIP;Shortcut: Alt-c
!MAIN_TAB_DETAIL_TOOLTIP;Shortcut: Alt-d
diff --git a/rtdata/languages/Magyar b/rtdata/languages/Magyar
index 90f6e2e31..50ff7d2a2 100644
--- a/rtdata/languages/Magyar
+++ b/rtdata/languages/Magyar
@@ -1267,6 +1267,7 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés -
!MAIN_MSG_OPERATIONCANCELLED;Operation cancelled
!MAIN_MSG_PATHDOESNTEXIST;The path\n\n%1\n\ndoes not exist. Please set a correct path in Preferences.
!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_INSPECT; Inspect
!MAIN_TAB_WAVELET;Wavelet
diff --git a/rtdata/languages/Nederlands b/rtdata/languages/Nederlands
index 7bbe32a68..737b8e252 100644
--- a/rtdata/languages/Nederlands
+++ b/rtdata/languages/Nederlands
@@ -2143,6 +2143,7 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: -
!HISTORY_MSG_441;Retinex - Gain transmission
!HISTORY_MSG_475;PS - Equalize channel
+!MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue.
!PREFERENCES_PROFILESAVEBOTH;Save processing profile both to the cache and next to the input file
!PREFERENCES_PROFILESAVELOCATION;Processing profile saving location
!TP_RAW_IMAGENUM_TOOLTIP;Some raw files consist of several sub-images (Pentax Pixel Shift, Pentax 3-in-1 HDR, Canon Dual Pixel).\n\nWhen using any demosaicing method other than Pixel Shift, this selects which sub-image is used.\n\nWhen using the Pixel Shift demosaicing method on a Pixel Shift raw, all sub-images are used, and this selects which sub-image should be used for moving parts.
diff --git a/rtdata/languages/Norsk BM b/rtdata/languages/Norsk BM
index b703933bc..a9d58c105 100644
--- a/rtdata/languages/Norsk BM
+++ b/rtdata/languages/Norsk BM
@@ -1003,6 +1003,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur
!MAIN_MSG_OPERATIONCANCELLED;Operation cancelled
!MAIN_MSG_PATHDOESNTEXIST;The path\n\n%1\n\ndoes not exist. Please set a correct path in Preferences.
!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_COLOR_TOOLTIP;Shortcut: Alt-c
!MAIN_TAB_DETAIL_TOOLTIP;Shortcut: Alt-d
diff --git a/rtdata/languages/Polish b/rtdata/languages/Polish
index cb685f555..55848a5e0 100644
--- a/rtdata/languages/Polish
+++ b/rtdata/languages/Polish
@@ -1681,6 +1681,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: -
!IPTCPANEL_TRANSREFERENCE;Job ID
!IPTCPANEL_TRANSREFERENCEHINT;Enter a number or identifier needed for workflow control or tracking.
!MAIN_BUTTON_SENDTOEDITOR;Edit image in external editor
+!MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue.
!MAIN_TAB_INSPECT; Inspect
!MAIN_TAB_WAVELET;Wavelet
!MAIN_TAB_WAVELET_TOOLTIP;Shortcut: Alt-w
diff --git a/rtdata/languages/Polish (Latin Characters) b/rtdata/languages/Polish (Latin Characters)
index 2090d8129..beb370933 100644
--- a/rtdata/languages/Polish (Latin Characters)
+++ b/rtdata/languages/Polish (Latin Characters)
@@ -1681,6 +1681,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: -
!IPTCPANEL_TRANSREFERENCE;Job ID
!IPTCPANEL_TRANSREFERENCEHINT;Enter a number or identifier needed for workflow control or tracking.
!MAIN_BUTTON_SENDTOEDITOR;Edit image in external editor
+!MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue.
!MAIN_TAB_INSPECT; Inspect
!MAIN_TAB_WAVELET;Wavelet
!MAIN_TAB_WAVELET_TOOLTIP;Shortcut: Alt-w
diff --git a/rtdata/languages/Portugues (Brasil) b/rtdata/languages/Portugues (Brasil)
index f2b7cad15..09f9913e9 100644
--- a/rtdata/languages/Portugues (Brasil)
+++ b/rtdata/languages/Portugues (Brasil)
@@ -1004,6 +1004,7 @@ TP_WBALANCE_TEMPERATURE;Temperatura
!MAIN_MSG_OPERATIONCANCELLED;Operation cancelled
!MAIN_MSG_PATHDOESNTEXIST;The path\n\n%1\n\ndoes not exist. Please set a correct path in Preferences.
!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_COLOR_TOOLTIP;Shortcut: Alt-c
!MAIN_TAB_DETAIL_TOOLTIP;Shortcut: Alt-d
diff --git a/rtdata/languages/Russian b/rtdata/languages/Russian
index b56b39c47..f984ec628 100644
--- a/rtdata/languages/Russian
+++ b/rtdata/languages/Russian
@@ -1540,6 +1540,7 @@ ZOOMPANEL_ZOOMOUT;Удалить -
!IPTCPANEL_TRANSREFERENCE;Job ID
!IPTCPANEL_TRANSREFERENCEHINT;Enter a number or identifier needed for workflow control or tracking.
!MAIN_BUTTON_SENDTOEDITOR;Edit image in external editor
+!MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue.
!MAIN_TAB_INSPECT; Inspect
!MAIN_TAB_WAVELET;Wavelet
!MAIN_TAB_WAVELET_TOOLTIP;Shortcut: Alt-w
diff --git a/rtdata/languages/Serbian (Cyrilic Characters) b/rtdata/languages/Serbian (Cyrilic Characters)
index e635f2d4b..855ef7c97 100644
--- a/rtdata/languages/Serbian (Cyrilic Characters)
+++ b/rtdata/languages/Serbian (Cyrilic Characters)
@@ -1572,6 +1572,7 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике -
!IPTCPANEL_TITLEHINT;Enter a short verbal and human readable name for the image, this may be the file name.
!IPTCPANEL_TRANSREFERENCE;Job ID
!IPTCPANEL_TRANSREFERENCEHINT;Enter a number or identifier needed for workflow control or tracking.
+!MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue.
!MAIN_TAB_INSPECT; Inspect
!MAIN_TAB_WAVELET;Wavelet
!MAIN_TAB_WAVELET_TOOLTIP;Shortcut: Alt-w
diff --git a/rtdata/languages/Serbian (Latin Characters) b/rtdata/languages/Serbian (Latin Characters)
index efeb435e8..40f9b6136 100644
--- a/rtdata/languages/Serbian (Latin Characters)
+++ b/rtdata/languages/Serbian (Latin Characters)
@@ -1572,6 +1572,7 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike -
!IPTCPANEL_TITLEHINT;Enter a short verbal and human readable name for the image, this may be the file name.
!IPTCPANEL_TRANSREFERENCE;Job ID
!IPTCPANEL_TRANSREFERENCEHINT;Enter a number or identifier needed for workflow control or tracking.
+!MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue.
!MAIN_TAB_INSPECT; Inspect
!MAIN_TAB_WAVELET;Wavelet
!MAIN_TAB_WAVELET_TOOLTIP;Shortcut: Alt-w
diff --git a/rtdata/languages/Slovak b/rtdata/languages/Slovak
index 6c05cece0..d5a294c3d 100644
--- a/rtdata/languages/Slovak
+++ b/rtdata/languages/Slovak
@@ -1060,6 +1060,7 @@ ZOOMPANEL_ZOOMOUT;Oddialiť -
!MAIN_MSG_OPERATIONCANCELLED;Operation cancelled
!MAIN_MSG_PATHDOESNTEXIST;The path\n\n%1\n\ndoes not exist. Please set a correct path in Preferences.
!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_COLOR_TOOLTIP;Shortcut: Alt-c
!MAIN_TAB_DETAIL_TOOLTIP;Shortcut: Alt-d
diff --git a/rtdata/languages/Suomi b/rtdata/languages/Suomi
index 3fbf3d4df..1ab62fee2 100644
--- a/rtdata/languages/Suomi
+++ b/rtdata/languages/Suomi
@@ -1005,6 +1005,7 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K]
!MAIN_MSG_OPERATIONCANCELLED;Operation cancelled
!MAIN_MSG_PATHDOESNTEXIST;The path\n\n%1\n\ndoes not exist. Please set a correct path in Preferences.
!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_COLOR_TOOLTIP;Shortcut: Alt-c
!MAIN_TAB_DETAIL_TOOLTIP;Shortcut: Alt-d
diff --git a/rtdata/languages/Swedish b/rtdata/languages/Swedish
index a4770a3ad..a2fd6d0d7 100644
--- a/rtdata/languages/Swedish
+++ b/rtdata/languages/Swedish
@@ -1967,6 +1967,7 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: -
!IPTCPANEL_TITLEHINT;Enter a short verbal and human readable name for the image, this may be the file name.
!IPTCPANEL_TRANSREFERENCE;Job ID
!IPTCPANEL_TRANSREFERENCEHINT;Enter a number or identifier needed for workflow control or tracking.
+!MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue.
!PARTIALPASTE_COLORTONING;Color toning
!PARTIALPASTE_FLATFIELDCLIPCONTROL;Flat-field clip control
!PARTIALPASTE_RAWCACORR_CAREDBLUE;CA red & blue
diff --git a/rtdata/languages/Turkish b/rtdata/languages/Turkish
index 4c76637d5..85e6f02b8 100644
--- a/rtdata/languages/Turkish
+++ b/rtdata/languages/Turkish
@@ -1004,6 +1004,7 @@ TP_WBALANCE_TEMPERATURE;Isı
!MAIN_MSG_OPERATIONCANCELLED;Operation cancelled
!MAIN_MSG_PATHDOESNTEXIST;The path\n\n%1\n\ndoes not exist. Please set a correct path in Preferences.
!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_COLOR_TOOLTIP;Shortcut: Alt-c
!MAIN_TAB_DETAIL_TOOLTIP;Shortcut: Alt-d
diff --git a/rtengine/dcrop.cc b/rtengine/dcrop.cc
index 2c9c728a4..60b636839 100644
--- a/rtengine/dcrop.cc
+++ b/rtengine/dcrop.cc
@@ -1438,8 +1438,8 @@ void Crop::update (int todo)
parent->ipf.chromiLuminanceCurve (this, 1, labnCrop, labnCrop, parent->chroma_acurve, parent->chroma_bcurve, parent->satcurve, parent->lhskcurve, parent->clcurve, parent->lumacurve, utili, autili, butili, ccutili, cclutili, clcutili, dummy, dummy);
parent->ipf.vibrance (labnCrop);
- if ((params.colorappearance.enabled && !params.colorappearance.tonecie) || (!params.colorappearance.enabled)) {
- parent->ipf.EPDToneMap (labnCrop, 5, 1);
+ if((params.colorappearance.enabled && !params.colorappearance.tonecie) || (!params.colorappearance.enabled)) {
+ parent->ipf.EPDToneMap(labnCrop, 5, skip);
}
//parent->ipf.EPDToneMap(labnCrop, 5, 1); //Go with much fewer than normal iterates for fast redisplay.
diff --git a/rtengine/fujicompressed.cc b/rtengine/fujicompressed.cc
index c5dfa8f13..d9fa4d332 100644
--- a/rtengine/fujicompressed.cc
+++ b/rtengine/fujicompressed.cc
@@ -841,7 +841,7 @@ void CLASS fuji_decode_strip (const struct fuji_compressed_params* info_common,
cur_block_width = fuji_block_width;
if (cur_block + 1 == fuji_total_blocks) {
- cur_block_width = raw_width % fuji_block_width;
+ cur_block_width = raw_width - cur_block * fuji_block_width;
}
struct i_pair {
@@ -992,10 +992,10 @@ void CLASS parse_fuji_compressed_header()
|| h_raw_width < 0x300
|| h_raw_width % 24
|| h_raw_rounded_width > 0x3000
- || h_raw_rounded_width < h_block_size
+ || h_block_size != 0x300
+ || h_raw_rounded_width < h_block_size
|| h_raw_rounded_width % h_block_size
|| h_raw_rounded_width - h_raw_width >= h_block_size
- || h_block_size != 0x300
|| h_blocks_in_row > 0x10
|| h_blocks_in_row == 0
|| h_blocks_in_row != h_raw_rounded_width / h_block_size
diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc
index 9140b9e69..fa121c043 100644
--- a/rtengine/improccoordinator.cc
+++ b/rtengine/improccoordinator.cc
@@ -3169,8 +3169,8 @@ void ImProcCoordinator::updatePreviewImage (int todo, Crop* cropCall)
ipf.chromiLuminanceCurve (nullptr, pW, nprevl, nprevl, chroma_acurve, chroma_bcurve, satcurve, lhskcurve, clcurve, lumacurve, utili, autili, butili, ccutili, cclutili, clcutili, histCCurve, histLCurve);
ipf.vibrance (nprevl);
- if ((params.colorappearance.enabled && !params.colorappearance.tonecie) || (!params.colorappearance.enabled)) {
- ipf.EPDToneMap (nprevl, 5, 1);
+ if((params.colorappearance.enabled && !params.colorappearance.tonecie) || (!params.colorappearance.enabled)) {
+ ipf.EPDToneMap(nprevl, 5, scale);
}
// for all treatments Defringe, Sharpening, Contrast detail , Microcontrast they are activated if "CIECAM" function are disabled
diff --git a/rtengine/improcfun.cc b/rtengine/improcfun.cc
index ad288681d..42f2da230 100644
--- a/rtengine/improcfun.cc
+++ b/rtengine/improcfun.cc
@@ -6448,7 +6448,7 @@ void ImProcFunctions::EPDToneMapCIE (CieImage *ncie, float a_w, float c_, float
//Jacques Desmis : always Iterates=5 for compatibility images between preview and output
- epd.CompressDynamicRange (Qpr, sca / (float) skip, edgest, Compression, DetailBoost, Iterates, rew);
+ epd.CompressDynamicRange (Qpr, sca / (float)skip, edgest, Compression, DetailBoost, Iterates, rew);
//Restore past range, also desaturate a bit per Mantiuk's Color correction for tone mapping.
float s = (1.0f + 38.7889f) * powf (Compression, 1.5856f) / (1.0f + 38.7889f * powf (Compression, 1.5856f));
@@ -6483,7 +6483,7 @@ void ImProcFunctions::EPDToneMapCIE (CieImage *ncie, float a_w, float c_, float
if(Iterates == 0) Iterates = (unsigned int)(edgest*15.0);
- epd.CompressDynamicRange(Qpr2, (float)sca/skip, (float)edgest, Compression2, DetailBoost2, Iterates, rew, Qpr2);
+ epd.CompressDynamicRange(Qpr2, sca/(float)skip, edgest, Compression2, DetailBoost2, Iterates, rew, Qpr2);
//Restore past range, also desaturate a bit per Mantiuk's Color correction for tone mapping.
float s2 = (1.0f + 38.7889f)*powf(Compression, 1.5856f)/(1.0f + 38.7889f*powf(Compression, 1.5856f));
@@ -6698,7 +6698,7 @@ void ImProcFunctions::EPDToneMap (LabImage *lab, unsigned int Iterates, int skip
fwrite(L, N, sizeof(float), f);
fclose(f);*/
- epd.CompressDynamicRange (L, sca / float (skip), edgest, Compression, DetailBoost, Iterates, rew);
+ epd.CompressDynamicRange (L, sca / float(skip), edgest, Compression, DetailBoost, Iterates, rew);
//Restore past range, also desaturate a bit per Mantiuk's Color correction for tone mapping.
float s = (1.0f + 38.7889f) * powf (Compression, 1.5856f) / (1.0f + 38.7889f * powf (Compression, 1.5856f));
diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc
index 8b693239a..16f398d9f 100644
--- a/rtengine/procparams.cc
+++ b/rtengine/procparams.cc
@@ -1448,8 +1448,8 @@ void ProcParams::setDefaults ()
epd.enabled = false;
epd.strength = 0.5;
epd.gamma = 1.0;
- epd.edgeStopping = 0.5;
- epd.scale = 0.1;
+ epd.edgeStopping = 1.4;
+ epd.scale = 1.0;
epd.reweightingIterates = 0;
sh.enabled = false;
diff --git a/rtgui/CMakeLists.txt b/rtgui/CMakeLists.txt
index 47daf8ea8..0fad38a21 100644
--- a/rtgui/CMakeLists.txt
+++ b/rtgui/CMakeLists.txt
@@ -230,7 +230,7 @@ if((WIN32) AND NOT(UPPER_CMAKE_BUILD_TYPE STREQUAL "DEBUG"))
set_target_properties(rth PROPERTIES LINK_FLAGS "-mwindows")
endif()
set_target_properties(rth PROPERTIES COMPILE_FLAGS "${CMAKE_CXX_FLAGS}" OUTPUT_NAME rawtherapee)
-set_target_properties(rth-cli PROPERTIES COMPILE_FLAGS "${CMAKE_CXX_FLAGS}" OUTPUT_NAME rawtherapee-cli)
+set_target_properties(rth-cli PROPERTIES COMPILE_FLAGS "${CMAKE_CXX_FLAGS} -DRAWTHERAPEE_CLI" OUTPUT_NAME rawtherapee-cli)
# Add linked libraries dependencies to executables targets
target_link_libraries(rth rtengine
diff --git a/rtgui/editorpanel.cc b/rtgui/editorpanel.cc
index d139cc8e8..389c16a4e 100644
--- a/rtgui/editorpanel.cc
+++ b/rtgui/editorpanel.cc
@@ -1547,11 +1547,11 @@ bool EditorPanel::handleShortcutKey (GdkEventKey* event)
return true;
case GDK_KEY_less:
- iareapanel->imageArea->indClippedPanel->toggleClipped (true);
+ iareapanel->imageArea->indClippedPanel->toggleClipped (false);
return true;
case GDK_KEY_greater:
- iareapanel->imageArea->indClippedPanel->toggleClipped (false);
+ iareapanel->imageArea->indClippedPanel->toggleClipped (true);
return true;
case GDK_KEY_F5:
diff --git a/rtgui/main-cli.cc b/rtgui/main-cli.cc
index 4cb0cbd7d..69c3d8487 100644
--- a/rtgui/main-cli.cc
+++ b/rtgui/main-cli.cc
@@ -59,7 +59,7 @@ Glib::ustring argv0;
Glib::ustring creditsPath;
Glib::ustring licensePath;
Glib::ustring argv1;
-bool simpleEditor;
+//bool simpleEditor;
//Glib::Threads::Thread* mainThread;
namespace
diff --git a/rtgui/main.cc b/rtgui/main.cc
index d269bf948..b987c2e21 100644
--- a/rtgui/main.cc
+++ b/rtgui/main.cc
@@ -63,6 +63,7 @@ Glib::ustring argv1;
Glib::ustring argv2;
bool simpleEditor = false;
bool gimpPlugin = false;
+bool remote = false;
Glib::RefPtr cssForced;
Glib::RefPtr cssRT;
//Glib::Threads::Thread* mainThread;
@@ -89,8 +90,6 @@ Glib::ustring fname_to_utf8 (const char* fname)
#endif
}
-}
-
// This recursive mutex will be used by gdk_threads_enter/leave instead of a simple mutex
static Glib::Threads::RecMutex myGdkRecMutex;
@@ -110,6 +109,7 @@ static void myGdkLockLeave()
myGdkRecMutex.unlock();
}
+
/* Process line command options
* Returns
* 0 if process in batch has executed
@@ -119,19 +119,319 @@ static void myGdkLockLeave()
* -2 if an error occurred during processing
* -3 if at least one required procparam file was not found */
int processLineParams ( int argc, char **argv );
+int processLineParams( int argc, char **argv )
+{
+ for( int iArg = 1; iArg < argc; iArg++) {
+ Glib::ustring currParam(argv[iArg]);
+#if ECLIPSE_ARGS
+ currParam = currParam.substr(1, currParam.length()-2);
+#endif
+ if( currParam.at(0) == '-' ) {
+ switch( currParam.at(1) ) {
+#ifdef WIN32
+
+ case 'w': // This case is handled outside this function
+ break;
+#endif
+ case 'v':
+ return 0;
+
+#ifndef __APPLE__ // TODO agriggio - there seems to be already some "single instance app" support for OSX in rtwindow. Disabling it here until I understand how to merge the two
+ case 'R':
+ if (!gimpPlugin) {
+ remote = true;
+ }
+ break;
+#endif
+
+ case 'g':
+ if (currParam == "-gimp") {
+ gimpPlugin = true;
+ simpleEditor = true;
+ remote = false;
+ break;
+ }
+ // no break here on purpose
+
+ case 'h':
+ case '?':
+ default: {
+ Glib::ustring pparamsExt = paramFileExtension.substr(1);
+ std::cout << " An advanced, cross-platform program for developing raw photos." << std::endl;
+ std::cout << std::endl;
+ std::cout << " Website: http://www.rawtherapee.com/" << std::endl;
+ std::cout << " Documentation: http://rawpedia.rawtherapee.com/" << std::endl;
+ std::cout << " Forum: https://discuss.pixls.us/c/software/rawtherapee" << std::endl;
+ std::cout << " Code and bug reports: https://github.com/Beep6581/RawTherapee" << std::endl;
+ std::cout << std::endl;
+ std::cout << "Symbols:" << std::endl;
+ std::cout << " indicate parameters you can change." << std::endl;
+ //std::cout << " [Square brackets] mean the parameter is optional." << std::endl;
+ //std::cout << " The pipe symbol | indicates a choice of one or the other." << std::endl;
+ //std::cout << " The dash symbol - denotes a range of possible values from one to the other." << std::endl;
+ std::cout << std::endl;
+ std::cout << "Usage:" << std::endl;
+ std::cout << " " << Glib::path_get_basename(argv[0]) << " Start File Browser inside folder." << std::endl;
+ std::cout << " " << Glib::path_get_basename(argv[0]) << " Start Image Editor with file." << std::endl;
+ std::cout << std::endl;
+ std::cout << "Options:" << std::endl;
+#ifdef WIN32
+ std::cout << " -w Do not open the Windows console" << std::endl;
+#endif
+ std::cout << " -v Print RawTherapee version number and exit" << std::endl;
+#ifndef __APPLE__
+ std::cout << " -R Raise an already running RawTherapee instance (if available)" << std::endl;
+#endif
+ std::cout << " -h -? Display this help message" << std::endl;
+ return -1;
+ }
+ }
+ } else {
+ if (argv1.empty()) {
+ argv1 = Glib::ustring(fname_to_utf8(argv[iArg]));
+#if ECLIPSE_ARGS
+ argv1 = argv1.substr(1, argv1.length()-2);
+#endif
+ } else if (gimpPlugin) {
+ argv2 = Glib::ustring(fname_to_utf8(argv[iArg]));
+ break;
+ }
+ if (!gimpPlugin) {
+ break;
+ }
+ }
+ }
+
+ return 1;
+}
+
+
+bool init_rt()
+{
+ if (!Options::load ()) {
+ return false;
+ }
+
+ extProgStore->init();
+ SoundManager::init();
+
+ if( !options.rtSettings.verbose ) {
+ TIFFSetWarningHandler(nullptr); // avoid annoying message boxes
+ }
+
+#ifndef WIN32
+
+ // Move the old path to the new one if the new does not exist
+ if (Glib::file_test(Glib::build_filename(options.rtdir, "cache"), Glib::FILE_TEST_IS_DIR) && !Glib::file_test(options.cacheBaseDir, Glib::FILE_TEST_IS_DIR)) {
+ g_rename(Glib::build_filename (options.rtdir, "cache").c_str (), options.cacheBaseDir.c_str ());
+ }
+
+#endif
+
+ return true;
+}
+
+
+void cleanup_rt()
+{
+ rtengine::cleanup();
+}
+
+
+RTWindow *create_rt_window()
+{
+ Glib::ustring icon_path = Glib::build_filename(argv0, "images");
+ Glib::RefPtr defaultIconTheme = Gtk::IconTheme::get_default();
+ defaultIconTheme->append_search_path(icon_path);
+
+ rtengine::setPaths(options);
+ MyExpander::init(); // has to stay AFTER rtengine::setPaths
+
+ // ------- loading theme files
+
+ Glib::RefPtr screen = Gdk::Screen::get_default();
+
+ if (screen) {
+ Gtk::Settings::get_for_screen(screen)->property_gtk_theme_name() = "Adwaita";
+ Gtk::Settings::get_for_screen(screen)->property_gtk_application_prefer_dark_theme() = true;
+
+ Glib::RefPtr regex = Glib::Regex::create(THEMEREGEXSTR, Glib::RegexCompileFlags::REGEX_CASELESS);
+ Glib::ustring filename = Glib::build_filename(argv0, "themes", options.theme + ".css");
+ if (!regex->match(options.theme + ".css") || !Glib::file_test(filename, Glib::FILE_TEST_EXISTS)) {
+ options.theme = "RawTherapee-GTK";
+ // We're not testing GTK_MAJOR_VERSION == 3 here, since this branch requires Gtk3 only
+ if (GTK_MINOR_VERSION < 20) {
+ options.theme = options.theme + "3-_19";
+ } else {
+ options.theme = options.theme + "3-20_";
+ }
+ filename = Glib::build_filename(argv0, "themes", options.theme + ".css");
+ }
+ cssRT = Gtk::CssProvider::create();
+
+ try {
+ cssRT->load_from_path (filename);
+ Gtk::StyleContext::add_provider_for_screen(screen, cssRT, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
+ } catch (Glib::Error &err) {
+ printf("Error: Can't load css file \"%s\"\nMessage: %s\n", filename.c_str(), err.what().c_str());
+ } catch (...) {
+ printf("Error: Can't load css file \"%s\"\n", filename.c_str());
+ }
+
+ // Set the font face and size
+ if (options.fontFamily != "default") {
+ try {
+ cssForced = Gtk::CssProvider::create();
+ //GTK318
+#if GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION < 20
+ cssForced->load_from_data (Glib::ustring::compose("* { font-family: %1; font-size: %2px }", options.fontFamily, options.fontSize));
+#else
+ cssForced->load_from_data (Glib::ustring::compose("* { font-family: %1; font-size: %2pt }", options.fontFamily, options.fontSize));
+#endif
+ //GTK318
+ Gtk::StyleContext::add_provider_for_screen(screen, cssForced, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
+ } catch (Glib::Error &err) {
+ printf("Error: \"%s\"\n", err.what().c_str());
+ } catch (...) {
+ printf("Error: Can't find the font named \"%s\"\n", options.fontFamily.c_str());
+ }
+ }
+ }
+
+#ifndef NDEBUG
+ else if (!screen) {
+ printf("ERROR: Can't get default screen!\n");
+ }
+
+#endif
+
+ // ------- end loading theme files
+
+ //gdk_threads_enter ();
+ RTWindow *rtWindow = new RTWindow();
+
+ // alerting users if the default raw and image profiles are missing
+ if (options.is_defProfRawMissing()) {
+ Gtk::MessageDialog msgd (Glib::ustring::compose(M("OPTIONS_DEFRAW_MISSING"), options.defProfRaw), true, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK, true);
+ msgd.run ();
+ }
+
+ if (options.is_defProfImgMissing()) {
+ Gtk::MessageDialog msgd (Glib::ustring::compose(M("OPTIONS_DEFIMG_MISSING"), options.defProfImg), true, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK, true);
+ msgd.run ();
+ }
+
+ return rtWindow;
+}
+
+
+class RTApplication: public Gtk::Application {
+public:
+ RTApplication():
+ Gtk::Application("com.rawtherapee.application",
+ Gio::APPLICATION_HANDLES_OPEN),
+ rtWindow(nullptr)
+ {
+ }
+
+ ~RTApplication()
+ {
+ if (rtWindow) {
+ delete rtWindow;
+ }
+ cleanup_rt();
+ }
+
+private:
+ bool create_window()
+ {
+ if (rtWindow) {
+ return true;
+ }
+
+ if (!init_rt()) {
+ Gtk::MessageDialog msgd ("Fatal error!\nThe RT_SETTINGS and/or RT_PATH environment variables are set, but use a relative path. The path must be absolute!", true, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK, true);
+ add_window(msgd);
+ msgd.run ();
+ return false;
+ } else {
+ rtWindow = create_rt_window();
+ add_window(*rtWindow);
+ return true;
+ }
+ }
+
+ // Override default signal handlers:
+ void on_activate() override
+ {
+ if (create_window()) {
+ rtWindow->present();
+ }
+ }
+
+ void on_open(const Gio::Application::type_vec_files& files,
+ const Glib::ustring& hint) override
+ {
+ if (create_window()) {
+ struct Data {
+ std::vector entries;
+ Glib::ustring lastfilename;
+ FileCatalog *filecatalog;
+ };
+ Data *d = new Data;
+ d->filecatalog = rtWindow->fpanel->fileCatalog;
+
+ for (const auto &f : files) {
+ Thumbnail *thm = cacheMgr->getEntry(f->get_path());
+ if (thm) {
+ d->entries.push_back(thm);
+ d->lastfilename = f->get_path();
+ }
+ }
+
+ if (!d->entries.empty()) {
+ const auto doit =
+ [](gpointer data) -> gboolean
+ {
+ Data *d = static_cast(data);
+ d->filecatalog->openRequested(d->entries);
+ d->filecatalog->selectImage(d->lastfilename, true);
+ delete d;
+ return FALSE;
+ };
+ gdk_threads_add_idle(doit, d);
+ } else {
+ delete d;
+ }
+ rtWindow->present();
+ }
+ }
+
+private:
+ RTWindow *rtWindow;
+};
+
+} // namespace
+
int main (int argc, char **argv)
{
setlocale (LC_ALL, "");
setlocale (LC_NUMERIC, "C"); // to set decimal point to "."
+ simpleEditor = false;
+ gimpPlugin = false;
+ remote = false;
+ argv0 = "";
+ argv1 = "";
+ argv2 = "";
+
Glib::init(); // called by Gtk::Main, but this may be important for thread handling, so we call it ourselves now
gdk_threads_set_lock_functions (G_CALLBACK (myGdkLockEnter), (G_CALLBACK (myGdkLockLeave)));
gdk_threads_init();
gtk_init (&argc, &argv); // use the "--g-fatal-warnings" command line flag to make warnings fatal
Gio::init ();
- //mainThread = Glib::Threads::Thread::self();
#ifdef BUILD_BUNDLE
char exname[512] = {0};
@@ -174,27 +474,19 @@ int main (int argc, char **argv)
creditsPath = CREDITS_SEARCH_PATH;
licensePath = LICENCE_SEARCH_PATH;
#endif
-
- if (!Options::load ()) {
- Gtk::Main m (&argc, &argv);
- Gtk::MessageDialog msgd ("Fatal error!\nThe RT_SETTINGS and/or RT_PATH environment variables are set, but use a relative path. The path must be absolute!", true, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK, true);
- msgd.run ();
- return -2;
- }
-
- extProgStore->init();
- SoundManager::init();
-
+
+
#ifdef WIN32
bool consoleOpened = false;
// suppression of annoying error boxes
SetErrorMode (SEM_FAILCRITICALERRORS | SEM_NOGPFAULTERRORBOX | SEM_NOOPENFILEERRORBOX);
- if (argc > 1 || options.rtSettings.verbose) {
- if (options.rtSettings.verbose || ( !Glib::file_test (fname_to_utf8 (argv[1]), Glib::FILE_TEST_EXISTS ) && !Glib::file_test (fname_to_utf8 (argv[1]), Glib::FILE_TEST_IS_DIR))) {
- bool stdoutRedirectedtoFile = (GetFileType (GetStdHandle (STD_OUTPUT_HANDLE)) == 0x0001);
- bool stderrRedirectedtoFile = (GetFileType (GetStdHandle (STD_ERROR_HANDLE)) == 0x0001);
+ if(argc > 1) {
+ int ret = processLineParams( argc, argv);
+ if (options.rtSettings.verbose || (!remote && !Glib::file_test (argv1, Glib::FILE_TEST_EXISTS ) && !Glib::file_test (argv1, Glib::FILE_TEST_IS_DIR))) {
+ bool stdoutRedirectedtoFile = (GetFileType(GetStdHandle(STD_OUTPUT_HANDLE)) == 0x0001);
+ bool stderrRedirectedtoFile = (GetFileType(GetStdHandle(STD_ERROR_HANDLE)) == 0x0001);
// no console, if stdout and stderr both are redirected to file
if ( ! (stdoutRedirectedtoFile && stderrRedirectedtoFile)) {
@@ -246,18 +538,14 @@ int main (int argc, char **argv)
}
}
- if (argc > 1) {
- int ret = processLineParams ( argc, argv);
-
- if ( ret <= 0 ) {
- if (consoleOpened) {
- printf ("Press any key to exit RawTherapee\n");
- FlushConsoleInputBuffer (GetStdHandle (STD_INPUT_HANDLE));
- getch();
- }
-
- return ret;
+ if( ret <= 0 ) {
+ if(consoleOpened) {
+ printf("Press any key to exit RawTherapee\n");
+ FlushConsoleInputBuffer(GetStdHandle(STD_INPUT_HANDLE));
+ getch();
}
+
+ return ret;
}
}
@@ -281,24 +569,6 @@ int main (int argc, char **argv)
#endif
- if ( !options.rtSettings.verbose ) {
- TIFFSetWarningHandler (nullptr); // avoid annoying message boxes
- }
-
-#ifndef WIN32
-
- // Move the old path to the new one if the new does not exist
- if (Glib::file_test (Glib::build_filename (options.rtdir, "cache"), Glib::FILE_TEST_IS_DIR) && !Glib::file_test (options.cacheBaseDir, Glib::FILE_TEST_IS_DIR)) {
- g_rename (Glib::build_filename (options.rtdir, "cache").c_str (), options.cacheBaseDir.c_str ());
- }
-
-#endif
-
- if (!argv1.empty()) {
- if( Glib::file_test(argv1, Glib::FILE_TEST_EXISTS) && !Glib::file_test(argv1, Glib::FILE_TEST_IS_DIR)) {
- simpleEditor = true;
- }
- }
if (gimpPlugin) {
if (!Glib::file_test(argv1, Glib::FILE_TEST_EXISTS) || Glib::file_test(argv1, Glib::FILE_TEST_IS_DIR)) {
printf("Error: argv1 doesn't exist\n");
@@ -308,113 +578,48 @@ int main (int argc, char **argv)
printf("Error: -gimp requires two arguments\n");
return 1;
}
+ } else if (!remote && Glib::file_test(argv1, Glib::FILE_TEST_EXISTS)) {
+ simpleEditor = true;
}
- Gtk::Main m (&argc, &argv);
-
-
- Glib::ustring icon_path = Glib::build_filename (argv0, "images");
- Glib::RefPtr defaultIconTheme = Gtk::IconTheme::get_default();
- defaultIconTheme->append_search_path (icon_path);
-
- rtengine::setPaths (options);
- MyExpander::init(); // has to stay AFTER rtengine::setPaths
-
- // ------- loading theme files
-
- Glib::RefPtr screen = Gdk::Screen::get_default();
-
- if (screen) {
- Gtk::Settings::get_for_screen (screen)->property_gtk_theme_name() = "Adwaita";
- Gtk::Settings::get_for_screen (screen)->property_gtk_application_prefer_dark_theme() = true;
-
- Glib::RefPtr regex = Glib::Regex::create (THEMEREGEXSTR, Glib::RegexCompileFlags::REGEX_CASELESS);
- Glib::ustring filename = Glib::build_filename (argv0, "themes", options.theme + ".css");
-
- if (!regex->match (options.theme + ".css") || !Glib::file_test (filename, Glib::FILE_TEST_EXISTS)) {
- options.theme = "RawTherapee-GTK";
-
- // We're not testing GTK_MAJOR_VERSION == 3 here, since this branch requires Gtk3 only
- if (GTK_MINOR_VERSION < 20) {
- options.theme = options.theme + "3-_19";
- } else {
- options.theme = options.theme + "3-20_";
- }
-
- filename = Glib::build_filename (argv0, "themes", options.theme + ".css");
+ int ret = 0;
+ if (remote) {
+ char *app_argv[2] = { const_cast(argv0.c_str()) };
+ int app_argc = 1;
+ if (!argv1.empty()) {
+ app_argc = 2;
+ app_argv[1] = const_cast(argv1.c_str());
}
+ RTApplication app;
+ ret = app.run(app_argc, app_argv);
+ } else {
+ if (init_rt()) {
+ Gtk::Main m(&argc, &argv);
+ gdk_threads_enter();
+ const std::unique_ptr rtWindow(create_rt_window());
+ m.run(*rtWindow);
+ gdk_threads_leave();
- cssRT = Gtk::CssProvider::create();
-
- try {
- cssRT->load_from_path (filename);
- Gtk::StyleContext::add_provider_for_screen (screen, cssRT, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
- } catch (Glib::Error &err) {
- printf ("Error: Can't load css file \"%s\"\nMessage: %s\n", filename.c_str(), err.what().c_str());
- } catch (...) {
- printf ("Error: Can't load css file \"%s\"\n", filename.c_str());
- }
-
- // Set the font face and size
- if (options.fontFamily != "default") {
- try {
- cssForced = Gtk::CssProvider::create();
- //GTK318
-#if GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION < 20
- cssForced->load_from_data (Glib::ustring::compose ("* { font-family: %1; font-size: %2px }", options.fontFamily, options.fontSize));
-#else
- cssForced->load_from_data (Glib::ustring::compose ("* { font-family: %1; font-size: %2pt }", options.fontFamily, options.fontSize));
-#endif
- //GTK318
- Gtk::StyleContext::add_provider_for_screen (screen, cssForced, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
- } catch (Glib::Error &err) {
- printf ("Error: \"%s\"\n", err.what().c_str());
- } catch (...) {
- printf ("Error: Can't find the font named \"%s\"\n", options.fontFamily.c_str());
- }
- }
- }
-
-#ifndef NDEBUG
- else if (!screen) {
- printf ("ERROR: Can't get default screen!\n");
- }
-
-#endif
-
- // ------- end loading theme files
-
- gdk_threads_enter ();
- RTWindow *rtWindow = new class RTWindow();
-
- // alerting users if the default raw and image profiles are missing
- if (options.is_defProfRawMissing()) {
- Gtk::MessageDialog msgd (Glib::ustring::compose (M ("OPTIONS_DEFRAW_MISSING"), options.defProfRaw), true, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK, true);
- msgd.run ();
- }
-
- if (options.is_defProfImgMissing()) {
- Gtk::MessageDialog msgd (Glib::ustring::compose (M ("OPTIONS_DEFIMG_MISSING"), options.defProfImg), true, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK, true);
- msgd.run ();
- }
-
- // opening the main window
- m.run (*rtWindow);
-
- if (gimpPlugin && rtWindow->epanel && rtWindow->epanel->isRealized()) {
- SaveFormat sf;
- sf.format = "tif";
- sf.tiffBits = 16;
- sf.tiffUncompressed = true;
- sf.saveParams = true;
+ if (gimpPlugin &&
+ rtWindow->epanel && rtWindow->epanel->isRealized()) {
+ SaveFormat sf;
+ sf.format = "tif";
+ sf.tiffBits = 16;
+ sf.tiffUncompressed = true;
+ sf.saveParams = true;
- rtWindow->epanel->saveImmediately(argv2, sf);
- }
-
- gdk_threads_leave ();
-
- delete rtWindow;
- rtengine::cleanup();
+ if (!rtWindow->epanel->saveImmediately(argv2, sf)) {
+ ret = -2;
+ }
+ }
+ cleanup_rt();
+ } else {
+ Gtk::Main m(&argc, &argv);
+ Gtk::MessageDialog msgd ("Fatal error!\nThe RT_SETTINGS and/or RT_PATH environment variables are set, but use a relative path. The path must be absolute!", true, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK, true);
+ msgd.run ();
+ ret = -2;
+ }
+ }
#ifdef WIN32
@@ -426,95 +631,6 @@ int main (int argc, char **argv)
#endif
- return 0;
+ return ret;
}
-void deleteProcParams (std::vector &pparams)
-{
- for (unsigned int i = 0; i < pparams.size(); i++) {
- pparams[i]->deleteInstance();
- delete pparams[i];
- pparams[i] = NULL;
- }
-
- return;
-}
-
-int processLineParams ( int argc, char **argv )
-{
-
- for( int iArg = 1; iArg < argc; iArg++) {
- Glib::ustring currParam(argv[iArg]);
-#if ECLIPSE_ARGS
- currParam = currParam.substr(1, currParam.length()-2);
-#endif
- if( currParam.at(0) == '-' ) {
- switch( currParam.at(1) ) {
-#ifdef WIN32
-
- case 'w': // This case is handled outside this function
- break;
-#endif
- case 'g':
- if (currParam == "-gimp") {
- simpleEditor = true;
- gimpPlugin = true;
- break;
- }
- // no break here on purpose
-
- case 'v':
- return 0;
-
- case 'h':
- case '?':
- default: {
- Glib::ustring pparamsExt = paramFileExtension.substr(1);
- std::cout << " An advanced, cross-platform program for developing raw photos." << std::endl;
- std::cout << std::endl;
- std::cout << " Website: http://www.rawtherapee.com/" << std::endl;
- std::cout << " Documentation: http://rawpedia.rawtherapee.com/" << std::endl;
- std::cout << " Forum: https://discuss.pixls.us/c/software/rawtherapee" << std::endl;
- std::cout << " Code and bug reports: https://github.com/Beep6581/RawTherapee" << std::endl;
- std::cout << std::endl;
- std::cout << "Symbols:" << std::endl;
- std::cout << " indicate parameters you can change." << std::endl;
- //std::cout << " [Square brackets] mean the parameter is optional." << std::endl;
- //std::cout << " The pipe symbol | indicates a choice of one or the other." << std::endl;
- //std::cout << " The dash symbol - denotes a range of possible values from one to the other." << std::endl;
- std::cout << std::endl;
- std::cout << "Usage:" << std::endl;
- std::cout << " " << Glib::path_get_basename(argv[0]) << " Start File Browser inside folder." << std::endl;
- std::cout << " " << Glib::path_get_basename(argv[0]) << " Start Image Editor with file." << std::endl;
- std::cout << std::endl;
- std::cout << "Options:" << std::endl;
-#ifdef WIN32
- std::cout << " -w Do not open the Windows console" << std::endl;
-#endif
- std::cout << " -v Print RawTherapee version number and exit" << std::endl;
- std::cout << " -h -? Display this help message" << std::endl;
- return -1;
- }
- }
- } else {
- if (argv1.empty()) {
- argv1 = Glib::ustring(fname_to_utf8(argv[iArg]));
-#if ECLIPSE_ARGS
- argv1 = argv1.substr(1, argv1.length()-2);
-#endif
- } else if (gimpPlugin) {
- argv2 = Glib::ustring(fname_to_utf8(argv[iArg]));
- break;
- }
- if (!gimpPlugin) {
- break;
- }
- }
- }
-
- if ( !argv1.empty() ) {
- return 1;
- }
-
- return 0;
-}
diff --git a/rtgui/options.cc b/rtgui/options.cc
index 1602df358..2b1e5a033 100644
--- a/rtgui/options.cc
+++ b/rtgui/options.cc
@@ -2293,10 +2293,13 @@ int Options::saveToFile (Glib::ustring fname)
FILE *f = g_fopen (fname.c_str (), "wt");
if (f == nullptr) {
- if (options.rtSettings.verbose) {
- printf ("Options::saveToFile / Error: unable to open file \"%s\" with write access!\n", fname.c_str());
- }
-
+ std::cout << "Warning! Unable to save your preferences to: " << fname << std::endl;
+#ifndef RAWTHERAPEE_CLI
+ Glib::ustring msg_ = Glib::ustring::compose(M("MAIN_MSG_WRITEFAILED"), fname.c_str());
+ //writeFailed (getToplevelWindow (this), msg_);
+ Gtk::MessageDialog msgd (msg_, true, Gtk::MESSAGE_WARNING, Gtk::BUTTONS_CLOSE, true);
+ msgd.run ();
+#endif
return 1;
} else {
fprintf (f, "%s", keyData.c_str ());
diff --git a/rtgui/options.h b/rtgui/options.h
index ebec358d4..4b31b7c8b 100644
--- a/rtgui/options.h
+++ b/rtgui/options.h
@@ -372,6 +372,7 @@ extern Glib::ustring argv0;
extern Glib::ustring argv1;
extern bool simpleEditor;
extern bool gimpPlugin;
+extern bool remote;
extern Glib::ustring versionString;
extern Glib::ustring paramFileExtension;
diff --git a/rtgui/rtwindow.cc b/rtgui/rtwindow.cc
index f104d45bf..c51d1b7f0 100644
--- a/rtgui/rtwindow.cc
+++ b/rtgui/rtwindow.cc
@@ -271,7 +271,7 @@ RTWindow::RTWindow ()
bpanel->init (this);
- if (!argv1.empty()) {
+ if (!argv1.empty() && !remote) {
Thumbnail* thm = cacheMgr->getEntry(argv1);
if (thm) {
fpanel->fileCatalog->openRequested({thm});