diff --git a/rtdata/languages/Catala b/rtdata/languages/Catala
index bd9cb8359..8e2cbc611 100644
--- a/rtdata/languages/Catala
+++ b/rtdata/languages/Catala
@@ -790,9 +790,6 @@ TP_LENSGEOM_AUTOCROP;Auto cropa
TP_LENSGEOM_FILL;Auto omple
TP_LENSGEOM_LABEL;Lent / Geometria
TP_LENSPROFILE_LABEL;Perfil de correcció de lent
-TP_LENSPROFILE_USECA;Usa correcció AC
-TP_LENSPROFILE_USEDIST;Correcció de distorsió
-TP_LENSPROFILE_USEVIGN;Correcció de vores fosques
TP_NEUTRAL_TIP;Torna els controls d'exposició a valors neutrals
TP_PERSPECTIVE_HORIZONTAL;Horitzontal
TP_PERSPECTIVE_LABEL;Perspectiva
@@ -1431,9 +1428,6 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: -
!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.
-!LENSPROFILE_CORRECTION_AUTOMATCH;Auto-matched correction parameters
-!LENSPROFILE_CORRECTION_LCPFILE;LCP File
-!LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters
!LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong.
!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator
!MAIN_BUTTON_NAVNEXT_TOOLTIP;Navigate to the next image relative to image opened in the Editor.\nShortcut: Shift-F4\n\nTo navigate to the next image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F4
diff --git a/rtdata/languages/Chinese (Simplified) b/rtdata/languages/Chinese (Simplified)
index 5478d820a..ef507b9f3 100644
--- a/rtdata/languages/Chinese (Simplified)
+++ b/rtdata/languages/Chinese (Simplified)
@@ -878,9 +878,6 @@ TP_LENSGEOM_AUTOCROP;自动剪切
TP_LENSGEOM_FILL;自动填充
TP_LENSGEOM_LABEL;镜头 / 几何
TP_LENSPROFILE_LABEL;镜头矫正档案
-TP_LENSPROFILE_USECA;色散矫正
-TP_LENSPROFILE_USEDIST;畸变矫正
-TP_LENSPROFILE_USEVIGN;暗角矫正
TP_PCVIGNETTE_FEATHER;羽化
TP_PCVIGNETTE_LABEL;暗角滤镜
TP_PCVIGNETTE_ROUNDNESS;圆度
@@ -1507,9 +1504,6 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: -
!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.
-!LENSPROFILE_CORRECTION_AUTOMATCH;Auto-matched correction parameters
-!LENSPROFILE_CORRECTION_LCPFILE;LCP File
-!LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters
!LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong.
!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator
!MAIN_BUTTON_NAVNEXT_TOOLTIP;Navigate to the next image relative to image opened in the Editor.\nShortcut: Shift-F4\n\nTo navigate to the next image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F4
diff --git a/rtdata/languages/Chinese (Traditional) b/rtdata/languages/Chinese (Traditional)
index 9404a8a6b..5d8cc106a 100644
--- a/rtdata/languages/Chinese (Traditional)
+++ b/rtdata/languages/Chinese (Traditional)
@@ -1093,9 +1093,6 @@ TP_WBALANCE_TEMPERATURE;色溫
!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.
-!LENSPROFILE_CORRECTION_AUTOMATCH;Auto-matched correction parameters
-!LENSPROFILE_CORRECTION_LCPFILE;LCP File
-!LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters
!LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong.
!MAIN_BUTTON_FULLSCREEN;Fullscreen
!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator
@@ -1827,9 +1824,6 @@ TP_WBALANCE_TEMPERATURE;色溫
!TP_LENSGEOM_FILL;Auto-fill
!TP_LENSGEOM_LABEL;Lens / Geometry
!TP_LENSPROFILE_LABEL;Profiled Lens Correction
-!TP_LENSPROFILE_USECA;Chromatic aberration correction
-!TP_LENSPROFILE_USEDIST;Distortion correction
-!TP_LENSPROFILE_USEVIGN;Vignetting correction
!TP_LOCALCONTRAST_AMOUNT;Amount
!TP_LOCALCONTRAST_DARKNESS;Darkness level
!TP_LOCALCONTRAST_LABEL;Local Contrast
diff --git a/rtdata/languages/Czech b/rtdata/languages/Czech
index caaba31bb..2b2c257ce 100644
--- a/rtdata/languages/Czech
+++ b/rtdata/languages/Czech
@@ -811,9 +811,6 @@ IPTCPANEL_TITLE;Titulek
IPTCPANEL_TITLEHINT;Vložte krátké, popisné a lidsky čitelné jméno obrázku. Například název souboru.
IPTCPANEL_TRANSREFERENCE;Číslo úlohy
IPTCPANEL_TRANSREFERENCEHINT;Zadejte číslo nebo identifikátor potřebný v pracovním postupu nebo pro sledování.
-LENSPROFILE_CORRECTION_AUTOMATCH;Automatický dohledané korekční parametry
-LENSPROFILE_CORRECTION_LCPFILE;LCP Soubor
-LENSPROFILE_CORRECTION_MANUAL;Ruční korekční parametry
LENSPROFILE_LENS_WARNING;Varování: crop factor použitý pro profilování objektivu je větší než crop factor fotoaparátu. Výsledek může být nesprávný.
MAIN_BUTTON_FULLSCREEN;Celá obrazovka
MAIN_BUTTON_NAVNEXT_TOOLTIP;Přejít k dalšímu obrázku relativnímu k obrázku otevřenému v editoru.\nZkratka: Shift-F4\n\nPřejít k dalšímu obrázku relativnímu k vybranému náhledu v prohlížeči souborů nebo na filmovém pásu:\nZkratka: F4
@@ -1687,9 +1684,6 @@ TP_LENSGEOM_AUTOCROP;Automatický ořez
TP_LENSGEOM_FILL;Automatické vyplnění
TP_LENSGEOM_LABEL;Objektiv / Geometrie
TP_LENSPROFILE_LABEL;Korekční profily objektivů
-TP_LENSPROFILE_USECA;Korekce chromatické aberace
-TP_LENSPROFILE_USEDIST;Korekce zkreslení
-TP_LENSPROFILE_USEVIGN;Korekce vinětace
TP_LOCALCONTRAST_AMOUNT;Míra
TP_LOCALCONTRAST_DARKNESS;Úroveň tmavé
TP_LOCALCONTRAST_LABEL;Místní kontrast
diff --git a/rtdata/languages/Dansk b/rtdata/languages/Dansk
index aaa58fce2..8dc73105b 100644
--- a/rtdata/languages/Dansk
+++ b/rtdata/languages/Dansk
@@ -1088,9 +1088,6 @@ TP_WBALANCE_TEMPERATURE;Temperatur
!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.
-!LENSPROFILE_CORRECTION_AUTOMATCH;Auto-matched correction parameters
-!LENSPROFILE_CORRECTION_LCPFILE;LCP File
-!LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters
!LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong.
!MAIN_BUTTON_FULLSCREEN;Fullscreen
!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator
@@ -1824,9 +1821,6 @@ TP_WBALANCE_TEMPERATURE;Temperatur
!TP_LENSGEOM_FILL;Auto-fill
!TP_LENSGEOM_LABEL;Lens / Geometry
!TP_LENSPROFILE_LABEL;Profiled Lens Correction
-!TP_LENSPROFILE_USECA;Chromatic aberration correction
-!TP_LENSPROFILE_USEDIST;Distortion correction
-!TP_LENSPROFILE_USEVIGN;Vignetting correction
!TP_LOCALCONTRAST_AMOUNT;Amount
!TP_LOCALCONTRAST_DARKNESS;Darkness level
!TP_LOCALCONTRAST_LABEL;Local Contrast
diff --git a/rtdata/languages/Deutsch b/rtdata/languages/Deutsch
index 14debc30f..f354c45e9 100644
--- a/rtdata/languages/Deutsch
+++ b/rtdata/languages/Deutsch
@@ -910,9 +910,6 @@ IPTCPANEL_TITLE;Titel
IPTCPANEL_TITLEHINT;Geben Sie einen kurzen lesbaren Namen\nfür das Bild ein, z.B. den Dateinamen.
IPTCPANEL_TRANSREFERENCE;Verarbeitungs-ID
IPTCPANEL_TRANSREFERENCEHINT;Geben Sie eine Kennung zur Kontrolle oder\nVerfolgung des Arbeitsablaufes ein.
-LENSPROFILE_CORRECTION_AUTOMATCH;Automatisch (Lensfun)
-LENSPROFILE_CORRECTION_LCPFILE;LCP-Datei
-LENSPROFILE_CORRECTION_MANUAL;Benutzerdefiniert (Lensfun)
LENSPROFILE_LENS_WARNING;Warnung: Der Cropfaktor des Profils entspricht nicht dem des Objektivs.\nDies kann zu einem fehlerhaften Ergebnis führen.
MAIN_BUTTON_FULLSCREEN;Vollbild\nTaste: F11
MAIN_BUTTON_ICCPROFCREATOR;ICC-Profil erstellen.
@@ -1816,9 +1813,6 @@ TP_LENSGEOM_AUTOCROP;Auto-Schneiden
TP_LENSGEOM_FILL;Auto-Füllen
TP_LENSGEOM_LABEL;Objektivkorrekturen
TP_LENSPROFILE_LABEL;Objektivkorrekturprofil
-TP_LENSPROFILE_USECA;CA korrigieren
-TP_LENSPROFILE_USEDIST;Verzeichnung korrigieren
-TP_LENSPROFILE_USEVIGN;Vignettierung korrigieren
TP_LOCALCONTRAST_AMOUNT;Intensität
TP_LOCALCONTRAST_DARKNESS;Dunkle Bereiche
TP_LOCALCONTRAST_LABEL;Lokaler Kontrast
diff --git a/rtdata/languages/English (UK) b/rtdata/languages/English (UK)
index 791a913ee..c53038f87 100644
--- a/rtdata/languages/English (UK)
+++ b/rtdata/languages/English (UK)
@@ -949,9 +949,6 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh
!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.
-!LENSPROFILE_CORRECTION_AUTOMATCH;Auto-matched correction parameters
-!LENSPROFILE_CORRECTION_LCPFILE;LCP File
-!LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters
!LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong.
!MAIN_BUTTON_FULLSCREEN;Fullscreen
!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator
@@ -1790,9 +1787,6 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh
!TP_LENSGEOM_FILL;Auto-fill
!TP_LENSGEOM_LABEL;Lens / Geometry
!TP_LENSPROFILE_LABEL;Profiled Lens Correction
-!TP_LENSPROFILE_USECA;Chromatic aberration correction
-!TP_LENSPROFILE_USEDIST;Distortion correction
-!TP_LENSPROFILE_USEVIGN;Vignetting correction
!TP_LOCALCONTRAST_AMOUNT;Amount
!TP_LOCALCONTRAST_DARKNESS;Darkness level
!TP_LOCALCONTRAST_LABEL;Local Contrast
diff --git a/rtdata/languages/English (US) b/rtdata/languages/English (US)
index fe7565d28..67c025236 100644
--- a/rtdata/languages/English (US)
+++ b/rtdata/languages/English (US)
@@ -861,9 +861,6 @@
!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.
-!LENSPROFILE_CORRECTION_AUTOMATCH;Auto-matched correction parameters
-!LENSPROFILE_CORRECTION_LCPFILE;LCP File
-!LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters
!LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong.
!MAIN_BUTTON_FULLSCREEN;Fullscreen
!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator
@@ -1774,9 +1771,6 @@
!TP_LENSGEOM_FILL;Auto-fill
!TP_LENSGEOM_LABEL;Lens / Geometry
!TP_LENSPROFILE_LABEL;Profiled Lens Correction
-!TP_LENSPROFILE_USECA;Chromatic aberration correction
-!TP_LENSPROFILE_USEDIST;Distortion correction
-!TP_LENSPROFILE_USEVIGN;Vignetting correction
!TP_LOCALCONTRAST_AMOUNT;Amount
!TP_LOCALCONTRAST_DARKNESS;Darkness level
!TP_LOCALCONTRAST_LABEL;Local Contrast
diff --git a/rtdata/languages/Espanol b/rtdata/languages/Espanol
index b70f2b3a7..84d268726 100644
--- a/rtdata/languages/Espanol
+++ b/rtdata/languages/Espanol
@@ -1279,9 +1279,6 @@ TP_LENSGEOM_AUTOCROP;Auto recorte
TP_LENSGEOM_FILL;Auto relleno
TP_LENSGEOM_LABEL;Lente / Geometría
TP_LENSPROFILE_LABEL;Perfil de corrección de lente
-TP_LENSPROFILE_USECA;Corrección de AC
-TP_LENSPROFILE_USEDIST;Corrección de distorsión
-TP_LENSPROFILE_USEVIGN;Corrección de viñeteo
TP_NEUTRAL_TIP;Restablecer controles de exposición a valores neutros\nAplica a los mismos controles que son afectados por Niveles Automáticos, sin importar si usa o no Niveles Automáticos
TP_PCVIGNETTE_FEATHER;Difuminado
TP_PCVIGNETTE_FEATHER_TOOLTIP;Difuminación: \n0=Solo Esquinas\n50=Hasta medio camino al centro\n100=Hasta el Centro
@@ -1814,9 +1811,6 @@ 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.
-!LENSPROFILE_CORRECTION_AUTOMATCH;Auto-matched correction parameters
-!LENSPROFILE_CORRECTION_LCPFILE;LCP File
-!LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters
!LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong.
!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator
!MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue.
diff --git a/rtdata/languages/Euskara b/rtdata/languages/Euskara
index 19ec9ba7d..1cd513ef4 100644
--- a/rtdata/languages/Euskara
+++ b/rtdata/languages/Euskara
@@ -1089,9 +1089,6 @@ TP_WBALANCE_TEMPERATURE;Tenperatura
!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.
-!LENSPROFILE_CORRECTION_AUTOMATCH;Auto-matched correction parameters
-!LENSPROFILE_CORRECTION_LCPFILE;LCP File
-!LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters
!LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong.
!MAIN_BUTTON_FULLSCREEN;Fullscreen
!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator
@@ -1825,9 +1822,6 @@ TP_WBALANCE_TEMPERATURE;Tenperatura
!TP_LENSGEOM_FILL;Auto-fill
!TP_LENSGEOM_LABEL;Lens / Geometry
!TP_LENSPROFILE_LABEL;Profiled Lens Correction
-!TP_LENSPROFILE_USECA;Chromatic aberration correction
-!TP_LENSPROFILE_USEDIST;Distortion correction
-!TP_LENSPROFILE_USEVIGN;Vignetting correction
!TP_LOCALCONTRAST_AMOUNT;Amount
!TP_LOCALCONTRAST_DARKNESS;Darkness level
!TP_LOCALCONTRAST_LABEL;Local Contrast
diff --git a/rtdata/languages/Francais b/rtdata/languages/Francais
index 34c74ea67..cfbb04dc3 100644
--- a/rtdata/languages/Francais
+++ b/rtdata/languages/Francais
@@ -860,9 +860,6 @@ IPTCPANEL_TITLE;Titre
IPTCPANEL_TITLEHINT;Enterez un nom court et humainement lisible pour l'image, cela peut être le nom du fichier.
IPTCPANEL_TRANSREFERENCE;ID du travail
IPTCPANEL_TRANSREFERENCEHINT;Enterez un nombre ou identifiant servant au contrôle du flux de travail ou au suivi.
-LENSPROFILE_CORRECTION_AUTOMATCH;Paramètres de correction trouvés automatiquement
-LENSPROFILE_CORRECTION_LCPFILE;Fichier LCP
-LENSPROFILE_CORRECTION_MANUAL;Paramètres de correction manuel
LENSPROFILE_LENS_WARNING;Attention: la taille du capteur utilisé pour le profilage de l'objectif est plus grand que celui de l'appareil sélectionné, le résultat peut être faux.
MAIN_BUTTON_FULLSCREEN;Plein écran
MAIN_BUTTON_ICCPROFCREATOR;Créateur de Profil ICC
@@ -1787,9 +1784,6 @@ TP_LENSGEOM_AUTOCROP;Recadrage auto
TP_LENSGEOM_FILL;Remplir
TP_LENSGEOM_LABEL;Objectif / Géométrie
TP_LENSPROFILE_LABEL;Profil de correction d'objectif
-TP_LENSPROFILE_USECA;Corr. de l'aber. chromatique
-TP_LENSPROFILE_USEDIST;Corr. de la distortion
-TP_LENSPROFILE_USEVIGN;Corr. du vignettage
TP_LOCALCONTRAST_AMOUNT;Quantité
TP_LOCALCONTRAST_DARKNESS;Niveau des ombres
TP_LOCALCONTRAST_LABEL;Contraste Local
diff --git a/rtdata/languages/Greek b/rtdata/languages/Greek
index 761d0ea77..d2d7335ac 100644
--- a/rtdata/languages/Greek
+++ b/rtdata/languages/Greek
@@ -1088,9 +1088,6 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία
!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.
-!LENSPROFILE_CORRECTION_AUTOMATCH;Auto-matched correction parameters
-!LENSPROFILE_CORRECTION_LCPFILE;LCP File
-!LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters
!LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong.
!MAIN_BUTTON_FULLSCREEN;Fullscreen
!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator
@@ -1824,9 +1821,6 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία
!TP_LENSGEOM_FILL;Auto-fill
!TP_LENSGEOM_LABEL;Lens / Geometry
!TP_LENSPROFILE_LABEL;Profiled Lens Correction
-!TP_LENSPROFILE_USECA;Chromatic aberration correction
-!TP_LENSPROFILE_USEDIST;Distortion correction
-!TP_LENSPROFILE_USEVIGN;Vignetting correction
!TP_LOCALCONTRAST_AMOUNT;Amount
!TP_LOCALCONTRAST_DARKNESS;Darkness level
!TP_LOCALCONTRAST_LABEL;Local Contrast
diff --git a/rtdata/languages/Hebrew b/rtdata/languages/Hebrew
index d909f15c4..73b2752bf 100644
--- a/rtdata/languages/Hebrew
+++ b/rtdata/languages/Hebrew
@@ -1089,9 +1089,6 @@ TP_WBALANCE_TEMPERATURE;מידת חום
!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.
-!LENSPROFILE_CORRECTION_AUTOMATCH;Auto-matched correction parameters
-!LENSPROFILE_CORRECTION_LCPFILE;LCP File
-!LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters
!LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong.
!MAIN_BUTTON_FULLSCREEN;Fullscreen
!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator
@@ -1825,9 +1822,6 @@ TP_WBALANCE_TEMPERATURE;מידת חום
!TP_LENSGEOM_FILL;Auto-fill
!TP_LENSGEOM_LABEL;Lens / Geometry
!TP_LENSPROFILE_LABEL;Profiled Lens Correction
-!TP_LENSPROFILE_USECA;Chromatic aberration correction
-!TP_LENSPROFILE_USEDIST;Distortion correction
-!TP_LENSPROFILE_USEVIGN;Vignetting correction
!TP_LOCALCONTRAST_AMOUNT;Amount
!TP_LOCALCONTRAST_DARKNESS;Darkness level
!TP_LOCALCONTRAST_LABEL;Local Contrast
diff --git a/rtdata/languages/Italiano b/rtdata/languages/Italiano
index 173fb2a23..a3fcd92dc 100644
--- a/rtdata/languages/Italiano
+++ b/rtdata/languages/Italiano
@@ -1130,9 +1130,6 @@ TP_LENSGEOM_AUTOCROP; Ritaglio automatico
TP_LENSGEOM_FILL;Adattamento automatico
TP_LENSGEOM_LABEL;Obiettivo/Geometria
TP_LENSPROFILE_LABEL;Profilo di Correzione dell'Obiettivo
-TP_LENSPROFILE_USECA;Correzione dell'Aberrazione Cromatica (AC)
-TP_LENSPROFILE_USEDIST;Correzione della Distorsione
-TP_LENSPROFILE_USEVIGN;Correzione della Vignettatura
TP_NEUTRAL_TIP;Riporta i controlli dell'esposizione ai valori neutrali.\nVale per gli stessi controlli cui è applicato Livelli Automatici, indipendentemente dal fatto che Livelli Automatici sia abilitato.
TP_PCVIGNETTE_FEATHER;Scia
TP_PCVIGNETTE_FEATHER_TOOLTIP;Scia:\n0 = solo i bordi,\n50 = a metà strada con il centro,\n100 = al centro.
@@ -1689,9 +1686,6 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: -
!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.
-!LENSPROFILE_CORRECTION_AUTOMATCH;Auto-matched correction parameters
-!LENSPROFILE_CORRECTION_LCPFILE;LCP File
-!LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters
!LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong.
!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator
!MAIN_BUTTON_SENDTOEDITOR;Edit image in external editor
diff --git a/rtdata/languages/Japanese b/rtdata/languages/Japanese
index e36e77efb..0ebb061a1 100644
--- a/rtdata/languages/Japanese
+++ b/rtdata/languages/Japanese
@@ -892,9 +892,6 @@ IPTCPANEL_TITLE;タイトル
IPTCPANEL_TITLEHINT;画像を短く表す言葉や撮影者名、或いは画像のタイトルでもよい
IPTCPANEL_TRANSREFERENCE;作業のID
IPTCPANEL_TRANSREFERENCEHINT;作業工程の管理やトラッキングのための画像の数字或いは識別
-LENSPROFILE_CORRECTION_AUTOMATCH;自動でパラメータを補正する
-LENSPROFILE_CORRECTION_LCPFILE;LCPファイル
-LENSPROFILE_CORRECTION_MANUAL;手動でパラメータを補正する
LENSPROFILE_LENS_WARNING;注意:レンズプロファイルに関する切り抜きの因数がカメラの因数より大きいと、誤った結果になるかもしれません
MAIN_BUTTON_FULLSCREEN;フルスクリーン
MAIN_BUTTON_ICCPROFCREATOR;ICCプロファイルクリエーター
@@ -1805,9 +1802,6 @@ TP_LENSGEOM_AUTOCROP;自動的に切り抜き選択
TP_LENSGEOM_FILL;オートフィル
TP_LENSGEOM_LABEL;レンズ / ジオメトリ
TP_LENSPROFILE_LABEL;レンズ補正 プロファイル
-TP_LENSPROFILE_USECA;色収差補正
-TP_LENSPROFILE_USEDIST;歪曲収差補正
-TP_LENSPROFILE_USEVIGN;周辺光量補正
TP_LOCALCONTRAST_AMOUNT;量
TP_LOCALCONTRAST_DARKNESS;暗い部分のレベル
TP_LOCALCONTRAST_LABEL;ローカルコントラスト
diff --git a/rtdata/languages/Latvian b/rtdata/languages/Latvian
index 22847390d..47006479f 100644
--- a/rtdata/languages/Latvian
+++ b/rtdata/languages/Latvian
@@ -1089,9 +1089,6 @@ TP_WBALANCE_TEMPERATURE;Temperatūra
!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.
-!LENSPROFILE_CORRECTION_AUTOMATCH;Auto-matched correction parameters
-!LENSPROFILE_CORRECTION_LCPFILE;LCP File
-!LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters
!LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong.
!MAIN_BUTTON_FULLSCREEN;Fullscreen
!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator
@@ -1825,9 +1822,6 @@ TP_WBALANCE_TEMPERATURE;Temperatūra
!TP_LENSGEOM_FILL;Auto-fill
!TP_LENSGEOM_LABEL;Lens / Geometry
!TP_LENSPROFILE_LABEL;Profiled Lens Correction
-!TP_LENSPROFILE_USECA;Chromatic aberration correction
-!TP_LENSPROFILE_USEDIST;Distortion correction
-!TP_LENSPROFILE_USEVIGN;Vignetting correction
!TP_LOCALCONTRAST_AMOUNT;Amount
!TP_LOCALCONTRAST_DARKNESS;Darkness level
!TP_LOCALCONTRAST_LABEL;Local Contrast
diff --git a/rtdata/languages/Magyar b/rtdata/languages/Magyar
index 600877671..b64b83f16 100644
--- a/rtdata/languages/Magyar
+++ b/rtdata/languages/Magyar
@@ -1361,9 +1361,6 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés -
!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.
-!LENSPROFILE_CORRECTION_AUTOMATCH;Auto-matched correction parameters
-!LENSPROFILE_CORRECTION_LCPFILE;LCP File
-!LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters
!LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong.
!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator
!MAIN_BUTTON_NAVNEXT_TOOLTIP;Navigate to the next image relative to image opened in the Editor.\nShortcut: Shift-F4\n\nTo navigate to the next image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F4
@@ -1918,9 +1915,6 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés -
!TP_LABCURVE_RSTPROTECTION;Red and skin-tones protection
!TP_LABCURVE_RSTPRO_TOOLTIP;Works on the Chromaticity slider and the CC curve.
!TP_LENSPROFILE_LABEL;Profiled Lens Correction
-!TP_LENSPROFILE_USECA;Chromatic aberration correction
-!TP_LENSPROFILE_USEDIST;Distortion correction
-!TP_LENSPROFILE_USEVIGN;Vignetting correction
!TP_LOCALCONTRAST_AMOUNT;Amount
!TP_LOCALCONTRAST_DARKNESS;Darkness level
!TP_LOCALCONTRAST_LABEL;Local Contrast
diff --git a/rtdata/languages/Nederlands b/rtdata/languages/Nederlands
index 315868150..ba0873377 100644
--- a/rtdata/languages/Nederlands
+++ b/rtdata/languages/Nederlands
@@ -1575,9 +1575,6 @@ TP_LENSGEOM_AUTOCROP;Automatisch bijsnijden
TP_LENSGEOM_FILL;Automatisch uitvullen
TP_LENSGEOM_LABEL;Objectief / Geometrie
TP_LENSPROFILE_LABEL;Lenscorrectie Profielen
-TP_LENSPROFILE_USECA;CA correctie
-TP_LENSPROFILE_USEDIST;Lensvervorming correctie
-TP_LENSPROFILE_USEVIGN;Vignettering correctie
TP_NEUTRAL;Terugzetten
TP_NEUTRAL_TIP;Alle belichtingsinstellingen naar 0
TP_PCVIGNETTE_FEATHER;Straal
@@ -2198,9 +2195,6 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: -
!ICCPROFCREATOR_SAVEDIALOG_TITLE;Save ICC profile as...
!ICCPROFCREATOR_SLOPE;Slope
!ICCPROFCREATOR_TRC_PRESET;Tone response curve:
-!LENSPROFILE_CORRECTION_AUTOMATCH;Auto-matched correction parameters
-!LENSPROFILE_CORRECTION_LCPFILE;LCP File
-!LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters
!LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong.
!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator
!MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue.
diff --git a/rtdata/languages/Norsk BM b/rtdata/languages/Norsk BM
index 9ec4fc6e2..00c8532f8 100644
--- a/rtdata/languages/Norsk BM
+++ b/rtdata/languages/Norsk BM
@@ -1088,9 +1088,6 @@ TP_WBALANCE_TEMPERATURE;Temperatur
!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.
-!LENSPROFILE_CORRECTION_AUTOMATCH;Auto-matched correction parameters
-!LENSPROFILE_CORRECTION_LCPFILE;LCP File
-!LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters
!LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong.
!MAIN_BUTTON_FULLSCREEN;Fullscreen
!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator
@@ -1824,9 +1821,6 @@ TP_WBALANCE_TEMPERATURE;Temperatur
!TP_LENSGEOM_FILL;Auto-fill
!TP_LENSGEOM_LABEL;Lens / Geometry
!TP_LENSPROFILE_LABEL;Profiled Lens Correction
-!TP_LENSPROFILE_USECA;Chromatic aberration correction
-!TP_LENSPROFILE_USEDIST;Distortion correction
-!TP_LENSPROFILE_USEVIGN;Vignetting correction
!TP_LOCALCONTRAST_AMOUNT;Amount
!TP_LOCALCONTRAST_DARKNESS;Darkness level
!TP_LOCALCONTRAST_LABEL;Local Contrast
diff --git a/rtdata/languages/Polish b/rtdata/languages/Polish
index ec60c307f..67f37623f 100644
--- a/rtdata/languages/Polish
+++ b/rtdata/languages/Polish
@@ -1236,9 +1236,6 @@ TP_LENSGEOM_AUTOCROP;Auto-kadrowanie
TP_LENSGEOM_FILL;Auto-wypełnienie
TP_LENSGEOM_LABEL;Obiektyw / Geometria
TP_LENSPROFILE_LABEL;Profil korekcji obiektywu LCP
-TP_LENSPROFILE_USECA;Korekja aberacji chromatycznej
-TP_LENSPROFILE_USEDIST;Korekcja dystorsji
-TP_LENSPROFILE_USEVIGN;Korekcja winietowania
TP_NEUTRAL_TIP;Zresetuj ustawienia do wartości neutralnych.\nDziała na tych samych suwakach na których funkcja "Wyrównaj poziomy" działa, niezależnie od tego czy funkcja ta była użyta czy nie.
TP_PCVIGNETTE_FEATHER;Wtapianie
TP_PCVIGNETTE_FEATHER_TOOLTIP;Wtapianie:\n0 = tylko brzegi,\n50 = w pół drogi do środka,\n100 = aż do środka.
@@ -1771,9 +1768,6 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: -
!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.
-!LENSPROFILE_CORRECTION_AUTOMATCH;Auto-matched correction parameters
-!LENSPROFILE_CORRECTION_LCPFILE;LCP File
-!LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters
!LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong.
!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator
!MAIN_BUTTON_SENDTOEDITOR;Edit image in external editor
diff --git a/rtdata/languages/Polish (Latin Characters) b/rtdata/languages/Polish (Latin Characters)
index a75a3c475..3a3c360b4 100644
--- a/rtdata/languages/Polish (Latin Characters)
+++ b/rtdata/languages/Polish (Latin Characters)
@@ -1236,9 +1236,6 @@ TP_LENSGEOM_AUTOCROP;Auto-kadrowanie
TP_LENSGEOM_FILL;Auto-wypelnienie
TP_LENSGEOM_LABEL;Obiektyw / Geometria
TP_LENSPROFILE_LABEL;Profil korekcji obiektywu LCP
-TP_LENSPROFILE_USECA;Korekja aberacji chromatycznej
-TP_LENSPROFILE_USEDIST;Korekcja dystorsji
-TP_LENSPROFILE_USEVIGN;Korekcja winietowania
TP_NEUTRAL_TIP;Zresetuj ustawienia do wartosci neutralnych.\nDziala na tych samych suwakach na ktorych funkcja "Wyrownaj poziomy" dziala, niezaleznie od tego czy funkcja ta byla uzyta czy nie.
TP_PCVIGNETTE_FEATHER;Wtapianie
TP_PCVIGNETTE_FEATHER_TOOLTIP;Wtapianie:\n0 = tylko brzegi,\n50 = w pol drogi do srodka,\n100 = az do srodka.
@@ -1771,9 +1768,6 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: -
!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.
-!LENSPROFILE_CORRECTION_AUTOMATCH;Auto-matched correction parameters
-!LENSPROFILE_CORRECTION_LCPFILE;LCP File
-!LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters
!LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong.
!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator
!MAIN_BUTTON_SENDTOEDITOR;Edit image in external editor
diff --git a/rtdata/languages/Portugues (Brasil) b/rtdata/languages/Portugues (Brasil)
index cb2c20e1a..d2c5077f2 100644
--- a/rtdata/languages/Portugues (Brasil)
+++ b/rtdata/languages/Portugues (Brasil)
@@ -835,9 +835,6 @@ IPTCPANEL_TITLE;Título
IPTCPANEL_TITLEHINT;Digite um nome curto e legível para a imagem, pode ser o nome do arquivo.
IPTCPANEL_TRANSREFERENCE;Job ID
IPTCPANEL_TRANSREFERENCEHINT;Digite um número ou identificador necessário para controle ou rastreamento do fluxo de trabalho.
-LENSPROFILE_CORRECTION_AUTOMATCH;Parâmetros de correção de correspondência automática
-LENSPROFILE_CORRECTION_LCPFILE;Arquivo LCP
-LENSPROFILE_CORRECTION_MANUAL;Parâmetros de correção manual
LENSPROFILE_LENS_WARNING;Aviso: o fator de corte usado para o perfil da lente é maior que o fator de corte da câmera, os resultados podem estar errados.
MAIN_BUTTON_FULLSCREEN;Tela cheia
MAIN_BUTTON_ICCPROFCREATOR;Criador de Perfil ICC
@@ -1729,9 +1726,6 @@ TP_LENSGEOM_AUTOCROP;Corte automático
TP_LENSGEOM_FILL;Preenchimento automático
TP_LENSGEOM_LABEL;Lente / Geometria
TP_LENSPROFILE_LABEL;Correção de lente perfilada
-TP_LENSPROFILE_USECA;Correção da aberração cromática
-TP_LENSPROFILE_USEDIST;Correção de distorção
-TP_LENSPROFILE_USEVIGN;Correção de vinheta
TP_LOCALCONTRAST_AMOUNT;Montante
TP_LOCALCONTRAST_DARKNESS;Nível de escuridão
TP_LOCALCONTRAST_LABEL;Contraste Local
diff --git a/rtdata/languages/Russian b/rtdata/languages/Russian
index 6769dd724..a0d3d1e85 100644
--- a/rtdata/languages/Russian
+++ b/rtdata/languages/Russian
@@ -538,9 +538,6 @@ IPTCPANEL_RESET;Сбросить
IPTCPANEL_RESETHINT;Сбросить профиль на значения по умолчанию
IPTCPANEL_SOURCE;Источник
IPTCPANEL_TITLE;Название
-LENSPROFILE_CORRECTION_AUTOMATCH;Автоподбор параметров коррекции
-LENSPROFILE_CORRECTION_LCPFILE;Файл LCP
-LENSPROFILE_CORRECTION_MANUAL;Ручные параметры коррекции
LENSPROFILE_LENS_WARNING;Внимание: кроп-фактор используемый для анализа объектива больше чем кроп-фактор камеры, результаты могут быть не верны.
MAIN_BUTTON_FULLSCREEN;Полный экран
MAIN_BUTTON_NAVNEXT_TOOLTIP;Перейти к следующему изображению относительно открытого в редакторе\nГорячая клавиша: Shift+F4\n\nПерейти к следущему изображению относительно выбранного в файловом браузере\nгорячая клавиша F4
@@ -1222,9 +1219,6 @@ TP_LENSGEOM_AUTOCROP;Автокадрирование
TP_LENSGEOM_FILL;Автозаполнение
TP_LENSGEOM_LABEL;Геометрия
TP_LENSPROFILE_LABEL;Профиль коррекции объектива
-TP_LENSPROFILE_USECA;Корректировать ХА
-TP_LENSPROFILE_USEDIST;Корректировать дисторсию
-TP_LENSPROFILE_USEVIGN;Корректировать виньетирование
TP_LOCALCONTRAST_AMOUNT;Величина
TP_LOCALCONTRAST_DARKNESS;Тёмные тона
TP_LOCALCONTRAST_LABEL;Локальный контраст
diff --git a/rtdata/languages/Serbian (Cyrilic Characters) b/rtdata/languages/Serbian (Cyrilic Characters)
index 080824fed..2f5de7b52 100644
--- a/rtdata/languages/Serbian (Cyrilic Characters)
+++ b/rtdata/languages/Serbian (Cyrilic Characters)
@@ -1086,9 +1086,6 @@ TP_LENSGEOM_AUTOCROP;Сам исеци
TP_LENSGEOM_FILL;Сам попуни
TP_LENSGEOM_LABEL;Објектив и геометрија
TP_LENSPROFILE_LABEL;Профили за исправљање изобличења објектива
-TP_LENSPROFILE_USECA;Исправљање хром. аберација
-TP_LENSPROFILE_USEDIST;Исправљање изобличења
-TP_LENSPROFILE_USEVIGN;Исправљање вињетарења
TP_NEUTRAL;Неутрално
TP_NEUTRAL_TIP;Враћа клизаче експозиције на неутралне вредности.\nПримењује се на исте контроле као у Ауто нивои, без обзира на то да ли сте користили Ауто нивое или не.
TP_PCVIGNETTE_FEATHER;Умекшавање
@@ -1665,9 +1662,6 @@ 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.
-!LENSPROFILE_CORRECTION_AUTOMATCH;Auto-matched correction parameters
-!LENSPROFILE_CORRECTION_LCPFILE;LCP File
-!LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters
!LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong.
!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator
!MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue.
diff --git a/rtdata/languages/Serbian (Latin Characters) b/rtdata/languages/Serbian (Latin Characters)
index b0d929858..061b90fba 100644
--- a/rtdata/languages/Serbian (Latin Characters)
+++ b/rtdata/languages/Serbian (Latin Characters)
@@ -1086,9 +1086,6 @@ TP_LENSGEOM_AUTOCROP;Sam iseci
TP_LENSGEOM_FILL;Sam popuni
TP_LENSGEOM_LABEL;Objektiv i geometrija
TP_LENSPROFILE_LABEL;Profili za ispravljanje izobličenja objektiva
-TP_LENSPROFILE_USECA;Ispravljanje hrom. aberacija
-TP_LENSPROFILE_USEDIST;Ispravljanje izobličenja
-TP_LENSPROFILE_USEVIGN;Ispravljanje vinjetarenja
TP_NEUTRAL;Neutralno
TP_NEUTRAL_TIP;Vraća klizače ekspozicije na neutralne vrednosti.\nPrimenjuje se na iste kontrole kao u Auto nivoi, bez obzira na to da li ste koristili Auto nivoe ili ne.
TP_PCVIGNETTE_FEATHER;Umekšavanje
@@ -1665,9 +1662,6 @@ 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.
-!LENSPROFILE_CORRECTION_AUTOMATCH;Auto-matched correction parameters
-!LENSPROFILE_CORRECTION_LCPFILE;LCP File
-!LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters
!LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong.
!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator
!MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue.
diff --git a/rtdata/languages/Slovak b/rtdata/languages/Slovak
index 3f8854ae8..fdad901a6 100644
--- a/rtdata/languages/Slovak
+++ b/rtdata/languages/Slovak
@@ -1151,9 +1151,6 @@ ZOOMPANEL_ZOOMOUT;Oddialiť -
!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.
-!LENSPROFILE_CORRECTION_AUTOMATCH;Auto-matched correction parameters
-!LENSPROFILE_CORRECTION_LCPFILE;LCP File
-!LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters
!LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong.
!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator
!MAIN_BUTTON_NAVNEXT_TOOLTIP;Navigate to the next image relative to image opened in the Editor.\nShortcut: Shift-F4\n\nTo navigate to the next image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F4
@@ -1845,9 +1842,6 @@ ZOOMPANEL_ZOOMOUT;Oddialiť -
!TP_LABCURVE_RSTPROTECTION;Red and skin-tones protection
!TP_LABCURVE_RSTPRO_TOOLTIP;Works on the Chromaticity slider and the CC curve.
!TP_LENSPROFILE_LABEL;Profiled Lens Correction
-!TP_LENSPROFILE_USECA;Chromatic aberration correction
-!TP_LENSPROFILE_USEDIST;Distortion correction
-!TP_LENSPROFILE_USEVIGN;Vignetting correction
!TP_LOCALCONTRAST_AMOUNT;Amount
!TP_LOCALCONTRAST_DARKNESS;Darkness level
!TP_LOCALCONTRAST_LABEL;Local Contrast
diff --git a/rtdata/languages/Suomi b/rtdata/languages/Suomi
index e304366b7..2875e4a0b 100644
--- a/rtdata/languages/Suomi
+++ b/rtdata/languages/Suomi
@@ -1090,9 +1090,6 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K]
!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.
-!LENSPROFILE_CORRECTION_AUTOMATCH;Auto-matched correction parameters
-!LENSPROFILE_CORRECTION_LCPFILE;LCP File
-!LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters
!LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong.
!MAIN_BUTTON_FULLSCREEN;Fullscreen
!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator
@@ -1825,9 +1822,6 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K]
!TP_LENSGEOM_FILL;Auto-fill
!TP_LENSGEOM_LABEL;Lens / Geometry
!TP_LENSPROFILE_LABEL;Profiled Lens Correction
-!TP_LENSPROFILE_USECA;Chromatic aberration correction
-!TP_LENSPROFILE_USEDIST;Distortion correction
-!TP_LENSPROFILE_USEVIGN;Vignetting correction
!TP_LOCALCONTRAST_AMOUNT;Amount
!TP_LOCALCONTRAST_DARKNESS;Darkness level
!TP_LOCALCONTRAST_LABEL;Local Contrast
diff --git a/rtdata/languages/Swedish b/rtdata/languages/Swedish
index 3c56bbcd1..ee2af3156 100644
--- a/rtdata/languages/Swedish
+++ b/rtdata/languages/Swedish
@@ -1440,9 +1440,6 @@ TP_LENSGEOM_AUTOCROP;Autobeskärning
TP_LENSGEOM_FILL;Fyll automatiskt
TP_LENSGEOM_LABEL;Geometrisk- och distorsionskorrigering
TP_LENSPROFILE_LABEL;Objektivkorrigeringsprofil
-TP_LENSPROFILE_USECA;Korrigera för kromatiska abberationer
-TP_LENSPROFILE_USEDIST;Korrigera distorsion
-TP_LENSPROFILE_USEVIGN;Korrigera vinjettering
TP_NEUTRAL;Återställ
TP_NEUTRAL_TIP;Återställ exponeringsreglagen till neutrala värden.\nGäller för samma reglage som autonivåer, oavsett om du använder autonivåer eller ej
TP_PCVIGNETTE_FEATHER;Fjäder
@@ -2026,9 +2023,6 @@ 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.
-!LENSPROFILE_CORRECTION_AUTOMATCH;Auto-matched correction parameters
-!LENSPROFILE_CORRECTION_LCPFILE;LCP File
-!LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters
!LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong.
!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator
!MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue.
diff --git a/rtdata/languages/Turkish b/rtdata/languages/Turkish
index 812f70f4b..d63d13825 100644
--- a/rtdata/languages/Turkish
+++ b/rtdata/languages/Turkish
@@ -1089,9 +1089,6 @@ TP_WBALANCE_TEMPERATURE;Isı
!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.
-!LENSPROFILE_CORRECTION_AUTOMATCH;Auto-matched correction parameters
-!LENSPROFILE_CORRECTION_LCPFILE;LCP File
-!LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters
!LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong.
!MAIN_BUTTON_FULLSCREEN;Fullscreen
!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator
@@ -1824,9 +1821,6 @@ TP_WBALANCE_TEMPERATURE;Isı
!TP_LENSGEOM_FILL;Auto-fill
!TP_LENSGEOM_LABEL;Lens / Geometry
!TP_LENSPROFILE_LABEL;Profiled Lens Correction
-!TP_LENSPROFILE_USECA;Chromatic aberration correction
-!TP_LENSPROFILE_USEDIST;Distortion correction
-!TP_LENSPROFILE_USEVIGN;Vignetting correction
!TP_LOCALCONTRAST_AMOUNT;Amount
!TP_LOCALCONTRAST_DARKNESS;Darkness level
!TP_LOCALCONTRAST_LABEL;Local Contrast
diff --git a/rtdata/languages/default b/rtdata/languages/default
index 02ded5378..7fadbaa72 100644
--- a/rtdata/languages/default
+++ b/rtdata/languages/default
@@ -860,10 +860,6 @@ IPTCPANEL_TITLE;Title
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.
-LENSPROFILE_CORRECTION_AUTOMATCH;Auto-matched correction parameters
-LENSPROFILE_CORRECTION_LCPFILE;LCP File
-LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters
-LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong.
MAIN_BUTTON_FULLSCREEN;Fullscreen
MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator
MAIN_BUTTON_NAVNEXT_TOOLTIP;Navigate to the next image relative to image opened in the Editor.\nShortcut: Shift-F4\n\nTo navigate to the next image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F4
@@ -1772,10 +1768,16 @@ TP_LABCURVE_RSTPRO_TOOLTIP;Works on the Chromaticity slider and the CC curve.
TP_LENSGEOM_AUTOCROP;Auto-Crop
TP_LENSGEOM_FILL;Auto-fill
TP_LENSGEOM_LABEL;Lens / Geometry
+TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically
+TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file
+TP_LENSPROFILE_CORRECTION_MANUAL;Manually
TP_LENSPROFILE_LABEL;Profiled Lens Correction
-TP_LENSPROFILE_USECA;Chromatic aberration correction
-TP_LENSPROFILE_USEDIST;Distortion correction
-TP_LENSPROFILE_USEVIGN;Vignetting correction
+TP_LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong.
+TP_LENSPROFILE_MODE_HEADER;Select the lens profile:
+TP_LENSPROFILE_USE_HEADER;Select distortions to correct:
+TP_LENSPROFILE_USE_CA;Chromatic aberration
+TP_LENSPROFILE_USE_GEOMETRIC;Geometric
+TP_LENSPROFILE_USE_VIGNETTING;Vignetting
TP_LOCALCONTRAST_AMOUNT;Amount
TP_LOCALCONTRAST_DARKNESS;Darkness level
TP_LOCALCONTRAST_LABEL;Local Contrast
diff --git a/rtgui/lensprofile.cc b/rtgui/lensprofile.cc
index a725ae9f8..0d5d9a0c3 100644
--- a/rtgui/lensprofile.cc
+++ b/rtgui/lensprofile.cc
@@ -29,275 +29,268 @@
using namespace rtengine;
using namespace rtengine::procparams;
-LensProfilePanel::LFDbHelper *LensProfilePanel::lf(nullptr);
-
-LensProfilePanel::LensProfilePanel () :
+LensProfilePanel::LensProfilePanel() :
FoldableToolPanel(this, "lensprof", M("TP_LENSPROFILE_LABEL")),
lcModeChanged(false),
lcpFileChanged(false),
useDistChanged(false),
useVignChanged(false),
useCAChanged(false),
- isRaw(true),
- metadata(nullptr),
useLensfunChanged(false),
lensfunAutoChanged(false),
lensfunCameraChanged(false),
- lensfunLensChanged(false)
+ lensfunLensChanged(false),
+ allowFocusDep(true),
+ isRaw(true),
+ metadata(nullptr),
+ modesGrid(Gtk::manage(new Gtk::Grid())),
+ distGrid(Gtk::manage((new Gtk::Grid()))),
+ corrUnchangedRB(Gtk::manage((new Gtk::RadioButton(M("GENERAL_UNCHANGED"))))),
+ corrOffRB(Gtk::manage((new Gtk::RadioButton(corrGroup, M("GENERAL_NONE"))))),
+ corrLensfunAutoRB(Gtk::manage((new Gtk::RadioButton(corrGroup, M("TP_LENSPROFILE_CORRECTION_AUTOMATCH"))))),
+ corrLensfunManualRB(Gtk::manage((new Gtk::RadioButton(corrGroup, M("TP_LENSPROFILE_CORRECTION_MANUAL"))))),
+ corrLcpFileRB(Gtk::manage((new Gtk::RadioButton(corrGroup, M("TP_LENSPROFILE_CORRECTION_LCPFILE"))))),
+ corrLcpFileChooser(Gtk::manage((new MyFileChooserButton(M("TP_LENSPROFILE_LABEL"), Gtk::FILE_CHOOSER_ACTION_OPEN)))),
+ lensfunCamerasLbl(Gtk::manage((new Gtk::Label(M("EXIFFILTER_CAMERA"))))),
+ lensfunCameras(Gtk::manage((new MyComboBox()))),
+ lensfunLensesLbl(Gtk::manage((new Gtk::Label(M("EXIFFILTER_LENS"))))),
+ lensfunLenses(Gtk::manage((new MyComboBox()))),
+ warning(Gtk::manage((new Gtk::Image()))),
+ ckbUseDist(Gtk::manage((new Gtk::CheckButton(M("TP_LENSPROFILE_USE_GEOMETRIC"))))),
+ ckbUseVign(Gtk::manage((new Gtk::CheckButton(M("TP_LENSPROFILE_USE_VIGNETTING"))))),
+ ckbUseCA(Gtk::manage((new Gtk::CheckButton(M("TP_LENSPROFILE_USE_CA")))))
{
if (!lf) {
lf = new LFDbHelper();
}
- corrUnchanged = Gtk::manage(new Gtk::RadioButton(M("GENERAL_UNCHANGED")));
- pack_start(*corrUnchanged);
+ // Main containers:
- corrGroup = corrUnchanged->get_group();
+ modesGrid->get_style_context()->add_class("grid-spacing");
+ setExpandAlignProperties(modesGrid, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER);
- corrOff = Gtk::manage(new Gtk::RadioButton(corrGroup, M("GENERAL_NONE")));
- pack_start(*corrOff);
-
- corrLensfunAuto = Gtk::manage(new Gtk::RadioButton(corrGroup, M("LENSPROFILE_CORRECTION_AUTOMATCH")));
- pack_start(*corrLensfunAuto);
-
- corrLensfunManual = Gtk::manage(new Gtk::RadioButton(corrGroup, M("LENSPROFILE_CORRECTION_MANUAL")));
- pack_start(*corrLensfunManual);
+ distGrid->get_style_context()->add_class("grid-spacing");
+ setExpandAlignProperties(distGrid, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER);
+
+ // Mode choice widgets:
+
+ Gtk::Label* const corrHeaderLbl = Gtk::manage(new Gtk::Label(M("TP_LENSPROFILE_MODE_HEADER")));
+ setExpandAlignProperties(corrHeaderLbl, true, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER);
+
+ corrUnchangedRB->hide();
+ corrGroup = corrUnchangedRB->get_group();
+
+ setExpandAlignProperties(corrLcpFileChooser, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER);
+
+ // Manually-selected profile widgets:
+
+ setExpandAlignProperties(lensfunCamerasLbl, false, false, Gtk::ALIGN_END, Gtk::ALIGN_CENTER);
- lensfunCameras = Gtk::manage(new MyComboBox());
lensfunCameras->set_model(lf->lensfunCameraModel);
lensfunCameras->pack_start(lf->lensfunModelCam.model);
- Gtk::CellRendererText* cellRenderer = dynamic_cast(lensfunCameras->get_first_cell());
- cellRenderer->property_ellipsize() = Pango::ELLIPSIZE_MIDDLE;
- cellRenderer->property_ellipsize_set() = true;
lensfunCameras->setPreferredWidth(50, 120);
+ setExpandAlignProperties(lensfunCameras, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER);
+
+ Gtk::CellRendererText* const camerasCellRenderer = static_cast(lensfunCameras->get_first_cell());
+ camerasCellRenderer->property_ellipsize() = Pango::ELLIPSIZE_MIDDLE;
+ camerasCellRenderer->property_ellipsize_set() = true;
+
+ setExpandAlignProperties(lensfunLensesLbl, false, false, Gtk::ALIGN_END, Gtk::ALIGN_CENTER);
- lensfunLenses = Gtk::manage(new MyComboBox());
lensfunLenses->set_model(lf->lensfunLensModel);
lensfunLenses->pack_start(lf->lensfunModelLens.prettylens);
- cellRenderer = dynamic_cast(lensfunLenses->get_first_cell());
- cellRenderer->property_ellipsize() = Pango::ELLIPSIZE_MIDDLE;
- cellRenderer->property_ellipsize_set() = true;
lensfunLenses->setPreferredWidth(50, 120);
-
- Gtk::HBox *hb = Gtk::manage(new Gtk::HBox());
- hb->pack_start(*Gtk::manage(new Gtk::Label(M("EXIFFILTER_CAMERA"))), Gtk::PACK_SHRINK, 4);
- hb->pack_start(*lensfunCameras);
- pack_start(*hb);
+ setExpandAlignProperties(lensfunLenses, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER);
+
+ Gtk::CellRendererText* const lensesCellRenderer = static_cast(lensfunLenses->get_first_cell());
+ lensesCellRenderer->property_ellipsize() = Pango::ELLIPSIZE_MIDDLE;
+ lensesCellRenderer->property_ellipsize_set() = true;
- hb = Gtk::manage(new Gtk::HBox());
- hb->pack_start(*Gtk::manage(new Gtk::Label(M("EXIFFILTER_LENS"))), Gtk::PACK_SHRINK, 4);
- hb->pack_start(*lensfunLenses);
- warning = Gtk::manage(new Gtk::Image());
warning->set_from_icon_name("dialog-warning", Gtk::ICON_SIZE_LARGE_TOOLBAR);
- warning->set_tooltip_text(M("LENSPROFILE_LENS_WARNING"));
+ warning->set_tooltip_text(M("TP_LENSPROFILE_LENS_WARNING"));
warning->hide();
- hb->pack_start(*warning, Gtk::PACK_SHRINK, 4);
- pack_start(*hb);
- corrLcpFile = Gtk::manage(new Gtk::RadioButton(corrGroup));
- hbLCPFile = Gtk::manage(new Gtk::HBox());
- hbLCPFile->pack_start(*corrLcpFile, Gtk::PACK_SHRINK);
+ // LCP file filter config:
- lLCPFileHead = Gtk::manage(new Gtk::Label(M("LENSPROFILE_CORRECTION_LCPFILE")));
- hbLCPFile->pack_start(*lLCPFileHead, Gtk::PACK_SHRINK, 4);
-
- fcbLCPFile = Gtk::manage(new MyFileChooserButton(M("TP_LENSPROFILE_LABEL"), Gtk::FILE_CHOOSER_ACTION_OPEN));
-
- Glib::RefPtr filterLCP = Gtk::FileFilter::create();
+ const Glib::RefPtr filterLCP = Gtk::FileFilter::create();
filterLCP->set_name(M("FILECHOOSER_FILTER_LCP"));
filterLCP->add_pattern("*.lcp");
filterLCP->add_pattern("*.LCP");
- fcbLCPFile->add_filter(filterLCP);
+ corrLcpFileChooser->add_filter(filterLCP);
- Glib::ustring defDir = LCPStore::getInstance()->getDefaultCommonDirectory();
+ const Glib::ustring defDir = LCPStore::getInstance()->getDefaultCommonDirectory();
if (!defDir.empty()) {
#ifdef WIN32
- fcbLCPFile->set_show_hidden(true); // ProgramData is hidden on Windows
+ corrLcpFileChooser->set_show_hidden(true); // ProgramData is hidden on Windows
#endif
- fcbLCPFile->set_current_folder(defDir);
+ corrLcpFileChooser->set_current_folder(defDir);
} else if (!options.lastLensProfileDir.empty()) {
- fcbLCPFile->set_current_folder(options.lastLensProfileDir);
+ corrLcpFileChooser->set_current_folder(options.lastLensProfileDir);
}
- bindCurrentFolder(*fcbLCPFile, options.lastLensProfileDir);
- hbLCPFile->pack_start(*fcbLCPFile);
+ bindCurrentFolder(*corrLcpFileChooser, options.lastLensProfileDir);
- pack_start(*hbLCPFile, Gtk::PACK_SHRINK, 4);
+ // Choice of properties to correct, applicable to all modes:
- ckbUseDist = Gtk::manage (new Gtk::CheckButton (M("TP_LENSPROFILE_USEDIST")));
- pack_start (*ckbUseDist, Gtk::PACK_SHRINK, 4);
- ckbUseVign = Gtk::manage (new Gtk::CheckButton (M("TP_LENSPROFILE_USEVIGN")));
- pack_start (*ckbUseVign, Gtk::PACK_SHRINK, 4);
- ckbUseCA = Gtk::manage (new Gtk::CheckButton (M("TP_LENSPROFILE_USECA")));
- pack_start (*ckbUseCA, Gtk::PACK_SHRINK, 4);
+ Gtk::Label* const useHeaderLbl = Gtk::manage(new Gtk::Label(M("TP_LENSPROFILE_USE_HEADER")));
+ setExpandAlignProperties(useHeaderLbl, true, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER);
- conLCPFile = fcbLCPFile->signal_file_set().connect( sigc::mem_fun(*this, &LensProfilePanel::onLCPFileChanged)); //, true);
- conUseDist = ckbUseDist->signal_toggled().connect( sigc::mem_fun(*this, &LensProfilePanel::onUseDistChanged) );
- ckbUseVign->signal_toggled().connect( sigc::mem_fun(*this, &LensProfilePanel::onUseVignChanged) );
- ckbUseCA->signal_toggled().connect( sigc::mem_fun(*this, &LensProfilePanel::onUseCAChanged) );
+ // Populate modes grid:
+
+ modesGrid->attach(*corrHeaderLbl, 0, 0, 2, 1);
+ modesGrid->attach(*corrUnchangedRB, 0, 1, 2, 1);
+ modesGrid->attach(*corrOffRB, 0, 2, 2, 1);
+ modesGrid->attach(*corrLensfunAutoRB, 0, 3, 2, 1);
+ modesGrid->attach(*corrLensfunManualRB, 0, 4, 2, 1);
+
+ modesGrid->attach(*lensfunCamerasLbl, 0, 5, 1, 1);
+ modesGrid->attach(*lensfunCameras, 1, 5, 1, 1);
+ modesGrid->attach(*lensfunLensesLbl, 0, 6, 1, 1);
+ modesGrid->attach(*lensfunLenses, 1, 6, 1, 1);
+ modesGrid->attach(*warning, 2, 6, 1, 1);
+
+ modesGrid->attach(*corrLcpFileRB, 0, 7, 1, 1);
+ modesGrid->attach(*corrLcpFileChooser, 1, 7, 1, 1);
+
+ // Populate distortions grid:
+
+ distGrid->attach(*useHeaderLbl, 0, 0, 1, 1);
+ distGrid->attach(*ckbUseDist, 0, 1, 1, 1);
+ distGrid->attach(*ckbUseVign, 0, 2, 1, 1);
+ distGrid->attach(*ckbUseCA, 0, 3, 1, 1);
+
+ // Attach grids:
+
+ pack_start(*modesGrid);
+ pack_start(*distGrid);
+
+ // Signals:
+
+ conLCPFile = corrLcpFileChooser->signal_file_set().connect(sigc::mem_fun(*this, &LensProfilePanel::onLCPFileChanged));
+ conUseDist = ckbUseDist->signal_toggled().connect(sigc::mem_fun(*this, &LensProfilePanel::onUseDistChanged));
+ ckbUseVign->signal_toggled().connect(sigc::mem_fun(*this, &LensProfilePanel::onUseVignChanged));
+ ckbUseCA->signal_toggled().connect(sigc::mem_fun(*this, &LensProfilePanel::onUseCAChanged));
lensfunCameras->signal_changed().connect(sigc::mem_fun(*this, &LensProfilePanel::onLensfunCameraChanged));
lensfunLenses->signal_changed().connect(sigc::mem_fun(*this, &LensProfilePanel::onLensfunLensChanged));
- corrOff->signal_toggled().connect(sigc::bind(sigc::mem_fun(*this, &LensProfilePanel::onCorrModeChanged), corrOff));
- corrLensfunAuto->signal_toggled().connect(sigc::bind(sigc::mem_fun(*this, &LensProfilePanel::onCorrModeChanged), corrLensfunAuto));
- corrLensfunManual->signal_toggled().connect(sigc::bind(sigc::mem_fun(*this, &LensProfilePanel::onCorrModeChanged), corrLensfunManual));
- corrLcpFile->signal_toggled().connect(sigc::bind(sigc::mem_fun(*this, &LensProfilePanel::onCorrModeChanged), corrLcpFile));
-
- corrUnchanged->hide();
-
- allowFocusDep = true;
+ corrOffRB->signal_toggled().connect(sigc::bind(sigc::mem_fun(*this, &LensProfilePanel::onCorrModeChanged), corrOffRB));
+ corrLensfunAutoRB->signal_toggled().connect(sigc::bind(sigc::mem_fun(*this, &LensProfilePanel::onCorrModeChanged), corrLensfunAutoRB));
+ corrLensfunManualRB->signal_toggled().connect(sigc::bind(sigc::mem_fun(*this, &LensProfilePanel::onCorrModeChanged), corrLensfunManualRB));
+ corrLcpFileRB->signal_toggled().connect(sigc::bind(sigc::mem_fun(*this, &LensProfilePanel::onCorrModeChanged), corrLcpFileRB));
}
void LensProfilePanel::read(const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited)
{
- disableListener ();
+ disableListener();
conUseDist.block(true);
if (!batchMode) {
- corrUnchanged->hide();
+ corrUnchangedRB->hide();
}
- corrLensfunAuto->set_sensitive(true);
+ corrLensfunAutoRB->set_sensitive(true);
- switch(pp->lensProf.lcMode) {
- case procparams::LensProfParams::LcMode::LCP :
- corrLcpFile->set_active(true);
+ switch (pp->lensProf.lcMode) {
+ case procparams::LensProfParams::LcMode::LCP: {
+ corrLcpFileRB->set_active(true);
break;
- case procparams::LensProfParams::LcMode::LENSFUNAUTOMATCH :
- corrLensfunAuto->set_active(true);
+ }
+
+ case procparams::LensProfParams::LcMode::LENSFUNAUTOMATCH: {
+ corrLensfunAutoRB->set_active(true);
break;
- case procparams::LensProfParams::LcMode::LENSFUNMANUAL :
- corrLensfunManual->set_active(true);
+ }
+
+ case procparams::LensProfParams::LcMode::LENSFUNMANUAL: {
+ corrLensfunManualRB->set_active(true);
break;
- case procparams::LensProfParams::LcMode::NONE :
- corrOff->set_active(true);
+ }
+
+ case procparams::LensProfParams::LcMode::NONE: {
+ corrOffRB->set_active(true);
+ break;
+ }
}
if (pp->lensProf.lcpFile.empty()) {
- Glib::ustring lastFolder = fcbLCPFile->get_current_folder();
- fcbLCPFile->set_current_folder(lastFolder);
- fcbLCPFile->unselect_all();
- bindCurrentFolder(*fcbLCPFile, options.lastLensProfileDir);
+ const Glib::ustring lastFolder = corrLcpFileChooser->get_current_folder();
+ corrLcpFileChooser->set_current_folder(lastFolder);
+ corrLcpFileChooser->unselect_all();
+ bindCurrentFolder(*corrLcpFileChooser, options.lastLensProfileDir);
updateDisabled(false);
- } else if (LCPStore::getInstance()->isValidLCPFileName(pp->lensProf.lcpFile)) {
- fcbLCPFile->set_filename (pp->lensProf.lcpFile);
- if(corrLcpFile->get_active()) {
+ }
+ else if (LCPStore::getInstance()->isValidLCPFileName(pp->lensProf.lcpFile)) {
+ corrLcpFileChooser->set_filename(pp->lensProf.lcpFile);
+
+ if (corrLcpFileRB->get_active()) {
updateDisabled(true);
}
- } else {
- fcbLCPFile->unselect_filename(fcbLCPFile->get_filename());
+ }
+ else {
+ corrLcpFileChooser->unselect_filename(corrLcpFileChooser->get_filename());
updateDisabled(false);
}
- const LFDatabase *db = LFDatabase::getInstance();
+ const LFDatabase* const db = LFDatabase::getInstance();
LFCamera c;
-
+
if (!setLensfunCamera(pp->lensProf.lfCameraMake, pp->lensProf.lfCameraModel) && !pp->lensProf.lfManual()) {
if (metadata) {
c = db->findCamera(metadata->getMake(), metadata->getModel());
setLensfunCamera(c.getMake(), c.getModel());
}
}
+
if (!setLensfunLens(pp->lensProf.lfLens) && !pp->lensProf.lfManual()) {
if (metadata) {
- LFLens l = db->findLens(c, metadata->getLens());
+ const LFLens l = db->findLens(c, metadata->getLens());
setLensfunLens(l.getLens());
}
}
-
+
lcModeChanged = lcpFileChanged = useDistChanged = useVignChanged = useCAChanged = false;
useLensfunChanged = lensfunAutoChanged = lensfunCameraChanged = lensfunLensChanged = false;
if (!batchMode && !checkLensfunCanCorrect(true)) {
- if (corrLensfunAuto->get_active()) {
- corrOff->set_active(true);
+ if (corrLensfunAutoRB->get_active()) {
+ corrOffRB->set_active(true);
}
- corrLensfunAuto->set_sensitive(false);
+
+ corrLensfunAutoRB->set_sensitive(false);
}
- if (corrLensfunManual->get_active() && !checkLensfunCanCorrect(false)) {
- corrOff->set_active(true);
+ if (corrLensfunManualRB->get_active() && !checkLensfunCanCorrect(false)) {
+ corrOffRB->set_active(true);
}
updateLensfunWarning();
- ckbUseDist->set_active (pp->lensProf.useDist);
- ckbUseVign->set_active (pp->lensProf.useVign && isRaw);
+ ckbUseDist->set_active(pp->lensProf.useDist);
+ ckbUseVign->set_active(pp->lensProf.useVign && isRaw);
ckbUseCA->set_active(pp->lensProf.useCA && isRaw && ckbUseCA->get_sensitive());
-
- enableListener ();
+
+ enableListener();
conUseDist.block(false);
}
-
-void LensProfilePanel::updateLensfunWarning()
+void LensProfilePanel::write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited)
{
- warning->hide();
- if (corrLensfunManual->get_active() || corrLensfunAuto->get_active()) {
- const LFDatabase *db = LFDatabase::getInstance();
-
- auto itc = lensfunCameras->get_active();
- if (!itc) {
- return;
- }
- LFCamera c = db->findCamera((*itc)[lf->lensfunModelCam.make], (*itc)[lf->lensfunModelCam.model]);
- auto itl = lensfunLenses->get_active();
- if (!itl) {
- return;
- }
- LFLens l = db->findLens(LFCamera(), (*itl)[lf->lensfunModelLens.lens]);
- float lenscrop = l.getCropFactor();
- float camcrop = c.getCropFactor();
- if (lenscrop <= 0 || camcrop <= 0 || lenscrop / camcrop >= 1.01f) {
- warning->show();
- }
- ckbUseVign->set_sensitive(l.hasVignettingCorrection());
- ckbUseDist->set_sensitive(l.hasDistortionCorrection());
- ckbUseCA->set_sensitive(l.hasCACorrection());
- if (!isRaw || !l.hasVignettingCorrection()) {
- ckbUseVign->set_active(false);
- }
- if (!l.hasDistortionCorrection()) {
- ckbUseDist->set_active(false);
- }
- if (!l.hasCACorrection()) {
- ckbUseCA->set_active(false);
- }
- }
-}
-
-void LensProfilePanel::setRawMeta(bool raw, const rtengine::FramesMetaData* pMeta)
-{
- if (!raw || pMeta->getFocusDist() <= 0) {
- disableListener();
-
- // CA is very focus layer dependent, otherwise it might even worsen things
- allowFocusDep = false;
- ckbUseCA->set_active(false);
- ckbUseCA->set_sensitive(false);
-
- enableListener();
- }
-
- isRaw = raw;
- metadata = pMeta;
-}
-
-void LensProfilePanel::write( rtengine::procparams::ProcParams* pp, ParamsEdited* pedited)
-{
- if (corrLcpFile->get_active()) {
+ if (corrLcpFileRB->get_active()) {
pp->lensProf.lcMode = procparams::LensProfParams::LcMode::LCP;
- } else if(corrLensfunManual->get_active()) {
+ }
+ else if (corrLensfunManualRB->get_active()) {
pp->lensProf.lcMode = procparams::LensProfParams::LcMode::LENSFUNMANUAL;
- } else if(corrLensfunAuto->get_active()) {
+ }
+ else if (corrLensfunAutoRB->get_active()) {
pp->lensProf.lcMode = procparams::LensProfParams::LcMode::LENSFUNAUTOMATCH;
- } else if(corrOff->get_active()) {
+ }
+ else if (corrOffRB->get_active()) {
pp->lensProf.lcMode = procparams::LensProfParams::LcMode::NONE;
}
- if (LCPStore::getInstance()->isValidLCPFileName(fcbLCPFile->get_filename())) {
- pp->lensProf.lcpFile = fcbLCPFile->get_filename();
+ if (LCPStore::getInstance()->isValidLCPFileName(corrLcpFileChooser->get_filename())) {
+ pp->lensProf.lcpFile = corrLcpFileChooser->get_filename();
} else {
pp->lensProf.lcpFile = "";
}
@@ -306,7 +299,8 @@ void LensProfilePanel::write( rtengine::procparams::ProcParams* pp, ParamsEdited
pp->lensProf.useVign = ckbUseVign->get_active();
pp->lensProf.useCA = ckbUseCA->get_active();
- auto itc = lensfunCameras->get_active();
+ const auto itc = lensfunCameras->get_active();
+
if (itc) {
pp->lensProf.lfCameraMake = (*itc)[lf->lensfunModelCam.make];
pp->lensProf.lfCameraModel = (*itc)[lf->lensfunModelCam.model];
@@ -314,7 +308,9 @@ void LensProfilePanel::write( rtengine::procparams::ProcParams* pp, ParamsEdited
pp->lensProf.lfCameraMake = "";
pp->lensProf.lfCameraModel = "";
}
- auto itl = lensfunLenses->get_active();
+
+ const auto itl = lensfunLenses->get_active();
+
if (itl) {
pp->lensProf.lfLens = (*itl)[lf->lensfunModelLens.lens];
} else {
@@ -335,19 +331,37 @@ void LensProfilePanel::write( rtengine::procparams::ProcParams* pp, ParamsEdited
}
}
+void LensProfilePanel::setRawMeta(bool raw, const rtengine::FramesMetaData* pMeta)
+{
+ if (!raw || pMeta->getFocusDist() <= 0) {
+ disableListener();
+
+ // CA is very focus layer dependent, otherwise it might even worsen things
+ allowFocusDep = false;
+ ckbUseCA->set_active(false);
+ ckbUseCA->set_sensitive(false);
+
+ enableListener();
+ }
+
+ isRaw = raw;
+ metadata = pMeta;
+}
+
void LensProfilePanel::onLCPFileChanged()
{
lcpFileChanged = true;
- bool valid = LCPStore::getInstance()->isValidLCPFileName(fcbLCPFile->get_filename());
+ const bool valid = LCPStore::getInstance()->isValidLCPFileName(corrLcpFileChooser->get_filename());
updateDisabled(valid);
if (listener) {
if (valid) {
disableListener();
- corrLcpFile->set_active(true);
+ corrLcpFileRB->set_active(true);
enableListener();
}
- listener->panelChanged (EvLCPFile, Glib::path_get_basename(fcbLCPFile->get_filename()));
+
+ listener->panelChanged(EvLCPFile, Glib::path_get_basename(corrLcpFileChooser->get_filename()));
}
}
@@ -356,120 +370,53 @@ void LensProfilePanel::onUseDistChanged()
useDistChanged = true;
if (listener) {
- listener->panelChanged (EvLCPUseDist, ckbUseDist->get_active() ? M("GENERAL_ENABLED") : M("GENERAL_DISABLED"));
+ listener->panelChanged(EvLCPUseDist, ckbUseDist->get_active() ? M("GENERAL_ENABLED") : M("GENERAL_DISABLED"));
}
}
+
void LensProfilePanel::onUseVignChanged()
{
useVignChanged = true;
if (listener) {
- listener->panelChanged (EvLCPUseVign, ckbUseVign->get_active() ? M("GENERAL_ENABLED") : M("GENERAL_DISABLED"));
+ listener->panelChanged(EvLCPUseVign, ckbUseVign->get_active() ? M("GENERAL_ENABLED") : M("GENERAL_DISABLED"));
}
}
+
void LensProfilePanel::onUseCAChanged()
{
useCAChanged = true;
if (listener) {
- listener->panelChanged (EvLCPUseCA, ckbUseCA->get_active() ? M("GENERAL_ENABLED") : M("GENERAL_DISABLED"));
+ listener->panelChanged(EvLCPUseCA, ckbUseCA->get_active() ? M("GENERAL_ENABLED") : M("GENERAL_DISABLED"));
}
}
-void LensProfilePanel::updateDisabled(bool enable)
-{
- ckbUseDist->set_sensitive(enable);
- ckbUseVign->set_sensitive(enable && isRaw);
- ckbUseCA->set_sensitive(enable && allowFocusDep);
-}
-
void LensProfilePanel::setBatchMode(bool yes)
{
FoldableToolPanel::setBatchMode(yes);
+
if (yes) {
- corrUnchanged->show();
- corrUnchanged->set_active(true);
+ corrUnchangedRB->show();
+ corrUnchangedRB->set_active(true);
} else {
- corrUnchanged->hide();
+ corrUnchangedRB->hide();
}
}
-
-bool LensProfilePanel::setLensfunCamera(const Glib::ustring &make, const Glib::ustring &model)
-{
- if (!make.empty() && !model.empty()) {
- auto it = lensfunCameras->get_active();
- if (it && (*it)[lf->lensfunModelCam.make] == make && (*it)[lf->lensfunModelCam.model] == model) {
- return true;
- }
-
- // search for the active row
- for (auto row : lf->lensfunCameraModel->children()) {
- if (row[lf->lensfunModelCam.make] == make) {
- auto &c = row.children();
- for (auto it = c.begin(), end = c.end(); it != end; ++it) {
- auto &childrow = *it;
- if (childrow[lf->lensfunModelCam.model] == model) {
- lensfunCameras->set_active(it);
- return true;
- }
- }
- break;
- }
- }
- }
- lensfunCameras->set_active(-1);
- return false;
-}
-
-
-bool LensProfilePanel::setLensfunLens(const Glib::ustring &lens)
-{
- if (!lens.empty()) {
- auto it = lensfunLenses->get_active();
- if (it && (*it)[lf->lensfunModelLens.lens] == lens) {
- return true;
- }
-
- bool first_maker_found = false;
- for (auto row : lf->lensfunLensModel->children()) {
- if (lens.find(row[lf->lensfunModelLens.lens]) == 0) {
- auto &c = row.children();
- for (auto it = c.begin(), end = c.end(); it != end; ++it) {
- auto &childrow = *it;
- if (childrow[lf->lensfunModelLens.lens] == lens) {
- lensfunLenses->set_active(it);
- return true;
- }
- }
- // we do not break immediately here, because there might be multiple makers
- // sharing the same prefix (e.g. "Leica" and "Leica Camera AG").
- // therefore, we break below when the lens doesn't match any of them
- first_maker_found = true;
- } else if (first_maker_found) {
- break;
- }
- }
- }
- lensfunLenses->set_active(-1);
- return false;
-}
-
-
-
void LensProfilePanel::onLensfunCameraChanged()
{
- auto iter = lensfunCameras->get_active();
+ const auto iter = lensfunCameras->get_active();
if (iter) {
lensfunCameraChanged = true;
if (listener) {
disableListener();
- corrLensfunManual->set_active(true);
+ corrLensfunManualRB->set_active(true);
enableListener();
-
- Glib::ustring name = (*iter)[lf->lensfunModelCam.model];
+
+ const Glib::ustring name = (*iter)[lf->lensfunModelCam.model];
listener->panelChanged(EvLensCorrLensfunCamera, name);
}
}
@@ -477,20 +424,19 @@ void LensProfilePanel::onLensfunCameraChanged()
updateLensfunWarning();
}
-
void LensProfilePanel::onLensfunLensChanged()
{
- auto iter = lensfunLenses->get_active();
+ const auto iter = lensfunLenses->get_active();
if (iter) {
lensfunLensChanged = true;
if (listener) {
disableListener();
- corrLensfunManual->set_active(true);
+ corrLensfunManualRB->set_active(true);
enableListener();
-
- Glib::ustring name = (*iter)[lf->lensfunModelLens.prettylens];
+
+ const Glib::ustring name = (*iter)[lf->lensfunModelLens.prettylens];
listener->panelChanged(EvLensCorrLensfunLens, name);
}
}
@@ -498,14 +444,13 @@ void LensProfilePanel::onLensfunLensChanged()
updateLensfunWarning();
}
-
-void LensProfilePanel::onCorrModeChanged(const Gtk::RadioButton *rbChanged)
+void LensProfilePanel::onCorrModeChanged(const Gtk::RadioButton* rbChanged)
{
if (rbChanged->get_active()) {
// because the method gets called for the enabled AND the disabled RadioButton, we do the processing only for the enabled one
Glib::ustring mode;
- if (rbChanged == corrOff) {
+ if (rbChanged == corrOffRB) {
useLensfunChanged = true;
lensfunAutoChanged = true;
lcpFileChanged = true;
@@ -515,7 +460,7 @@ void LensProfilePanel::onCorrModeChanged(const Gtk::RadioButton *rbChanged)
ckbUseCA->set_sensitive(false);
mode = M("GENERAL_NONE");
- } else if (rbChanged == corrLensfunAuto) {
+ } else if (rbChanged == corrLensfunAutoRB) {
useLensfunChanged = true;
lensfunAutoChanged = true;
lcpFileChanged = true;
@@ -527,19 +472,20 @@ void LensProfilePanel::onCorrModeChanged(const Gtk::RadioButton *rbChanged)
ckbUseCA->set_sensitive(false);
if (metadata) {
- bool b = disableListener();
- const LFDatabase *db = LFDatabase::getInstance();
- LFCamera c = db->findCamera(metadata->getMake(), metadata->getModel());
- LFLens l = db->findLens(c, metadata->getLens());
+ const bool disabled = disableListener();
+ const LFDatabase* const db = LFDatabase::getInstance();
+ const LFCamera c = db->findCamera(metadata->getMake(), metadata->getModel());
+ const LFLens l = db->findLens(c, metadata->getLens());
setLensfunCamera(c.getMake(), c.getModel());
setLensfunLens(l.getLens());
- if (b) {
+
+ if (disabled) {
enableListener();
}
}
- mode = M("LENSPROFILE_CORRECTION_AUTOMATCH");
- } else if (rbChanged == corrLensfunManual) {
+ mode = M("TP_LENSPROFILE_CORRECTION_AUTOMATCH");
+ } else if (rbChanged == corrLensfunManualRB) {
useLensfunChanged = true;
lensfunAutoChanged = true;
lcpFileChanged = true;
@@ -550,8 +496,8 @@ void LensProfilePanel::onCorrModeChanged(const Gtk::RadioButton *rbChanged)
ckbUseVign->set_sensitive(true);
ckbUseCA->set_sensitive(false);
- mode = M("LENSPROFILE_CORRECTION_MANUAL");
- } else if (rbChanged == corrLcpFile) {
+ mode = M("TP_LENSPROFILE_CORRECTION_MANUAL");
+ } else if (rbChanged == corrLcpFileRB) {
useLensfunChanged = true;
lensfunAutoChanged = true;
lcpFileChanged = true;
@@ -560,8 +506,8 @@ void LensProfilePanel::onCorrModeChanged(const Gtk::RadioButton *rbChanged)
updateDisabled(true);
- mode = M("LENSPROFILE_CORRECTION_LCPFILE");
- } else if (rbChanged == corrUnchanged) {
+ mode = M("TP_LENSPROFILE_CORRECTION_LCPFILE");
+ } else if (rbChanged == corrUnchangedRB) {
useLensfunChanged = false;
lensfunAutoChanged = false;
lcpFileChanged = false;
@@ -578,25 +524,18 @@ void LensProfilePanel::onCorrModeChanged(const Gtk::RadioButton *rbChanged)
lcModeChanged = true;
updateLensfunWarning();
+ if (rbChanged == corrLensfunManualRB || rbChanged == corrLensfunAutoRB) {
+ setManualParamsVisibility(true);
+ } else {
+ setManualParamsVisibility(false);
+ }
+
if (listener) {
listener->panelChanged(EvLensCorrMode, mode);
}
}
}
-
-bool LensProfilePanel::checkLensfunCanCorrect(bool automatch)
-{
- if (!metadata) {
- return false;
- }
- rtengine::procparams::ProcParams lpp;
- write(&lpp);
- std::unique_ptr mod(LFDatabase::findModifier(lpp.lensProf, metadata, 100, 100, lpp.coarse, -1));
- return mod.get() != nullptr;
-}
-
-
//-----------------------------------------------------------------------------
// LFDbHelper
//-----------------------------------------------------------------------------
@@ -606,22 +545,22 @@ LensProfilePanel::LFDbHelper::LFDbHelper()
#ifdef _OPENMP
#pragma omp parallel sections if (!options.rtSettings.verbose)
#endif
-{
+ {
#ifdef _OPENMP
#pragma omp section
#endif
-{
- lensfunCameraModel = Gtk::TreeStore::create(lensfunModelCam);
- fillLensfunCameras();
-}
+ {
+ lensfunCameraModel = Gtk::TreeStore::create(lensfunModelCam);
+ fillLensfunCameras();
+ }
#ifdef _OPENMP
#pragma omp section
#endif
-{
- lensfunLensModel = Gtk::TreeStore::create(lensfunModelLens);
- fillLensfunLenses();
-}
-}
+ {
+ lensfunLensModel = Gtk::TreeStore::create(lensfunModelLens);
+ fillLensfunLenses();
+ }
+ }
}
void LensProfilePanel::LFDbHelper::fillLensfunCameras()
@@ -629,20 +568,24 @@ void LensProfilePanel::LFDbHelper::fillLensfunCameras()
if (options.rtSettings.verbose) {
std::cout << "LENSFUN, scanning cameras:" << std::endl;
}
+
std::map> camnames;
- auto camlist = LFDatabase::getInstance()->getCameras();
- for (auto &c : camlist) {
+ const auto camlist = LFDatabase::getInstance()->getCameras();
+
+ for (const auto& c : camlist) {
camnames[c.getMake()].insert(c.getModel());
if (options.rtSettings.verbose) {
std::cout << " found: " << c.getDisplayString().c_str() << std::endl;
- }
+ }
}
- for (auto &p : camnames) {
+
+ for (const auto& p : camnames) {
Gtk::TreeModel::Row row = *(lensfunCameraModel->append());
row[lensfunModelCam.make] = p.first;
row[lensfunModelCam.model] = p.first;
- for (auto &c : p.second) {
+
+ for (const auto& c : p.second) {
Gtk::TreeModel::Row child = *(lensfunCameraModel->append(row.children()));
child[lensfunModelCam.make] = p.first;
child[lensfunModelCam.model] = c;
@@ -650,35 +593,193 @@ void LensProfilePanel::LFDbHelper::fillLensfunCameras()
}
}
-
void LensProfilePanel::LFDbHelper::fillLensfunLenses()
{
if (options.rtSettings.verbose) {
std::cout << "LENSFUN, scanning lenses:" << std::endl;
}
+
std::map> lenses;
- auto lenslist = LFDatabase::getInstance()->getLenses();
- for (auto &l : lenslist) {
- auto name = l.getLens();
- auto make = l.getMake();
+ const auto lenslist = LFDatabase::getInstance()->getLenses();
+
+ for (const auto& l : lenslist) {
+ const auto& name = l.getLens();
+ const auto& make = l.getMake();
lenses[make].insert(name);
if (options.rtSettings.verbose) {
std::cout << " found: " << l.getDisplayString().c_str() << std::endl;
}
}
- for (auto &p : lenses) {
+
+ for (const auto& p : lenses) {
Gtk::TreeModel::Row row = *(lensfunLensModel->append());
row[lensfunModelLens.lens] = p.first;
row[lensfunModelLens.prettylens] = p.first;
+
for (auto &c : p.second) {
Gtk::TreeModel::Row child = *(lensfunLensModel->append(row.children()));
child[lensfunModelLens.lens] = c;
- if (c.find(p.first, p.first.size()+1) == p.first.size()+1) {
- child[lensfunModelLens.prettylens] = c.substr(p.first.size()+1);
+
+ if (c.find(p.first, p.first.size() + 1) == p.first.size() + 1) {
+ child[lensfunModelLens.prettylens] = c.substr(p.first.size() + 1);
} else {
child[lensfunModelLens.prettylens] = c;
}
}
}
}
+
+void LensProfilePanel::updateDisabled(bool enable)
+{
+ ckbUseDist->set_sensitive(enable);
+ ckbUseVign->set_sensitive(enable && isRaw);
+ ckbUseCA->set_sensitive(enable && allowFocusDep);
+}
+
+bool LensProfilePanel::setLensfunCamera(const Glib::ustring& make, const Glib::ustring& model)
+{
+ if (!make.empty() && !model.empty()) {
+ const auto camera_it = lensfunCameras->get_active();
+
+ if (camera_it && (*camera_it)[lf->lensfunModelCam.make] == make && (*camera_it)[lf->lensfunModelCam.model] == model) {
+ return true;
+ }
+
+ // search for the active row
+ for (const auto& row : lf->lensfunCameraModel->children()) {
+ if (row[lf->lensfunModelCam.make] == make) {
+ const auto& c = row.children();
+
+ for (auto model_it = c.begin(), end = c.end(); model_it != end; ++model_it) {
+ const auto& childrow = *model_it;
+
+ if (childrow[lf->lensfunModelCam.model] == model) {
+ lensfunCameras->set_active(model_it);
+ return true;
+ }
+ }
+
+ break;
+ }
+ }
+ }
+
+ lensfunCameras->set_active(-1);
+ return false;
+}
+
+bool LensProfilePanel::setLensfunLens(const Glib::ustring& lens)
+{
+ if (!lens.empty()) {
+ const auto lens_it = lensfunLenses->get_active();
+
+ if (lens_it && (*lens_it)[lf->lensfunModelLens.lens] == lens) {
+ return true;
+ }
+
+ bool first_maker_found = false;
+
+ for (const auto& row : lf->lensfunLensModel->children()) {
+ if (lens.find(row[lf->lensfunModelLens.lens]) == 0) {
+ const auto& c = row.children();
+
+ for (auto model_it = c.begin(), end = c.end(); model_it != end; ++model_it) {
+ const auto& childrow = *model_it;
+
+ if (childrow[lf->lensfunModelLens.lens] == lens) {
+ lensfunLenses->set_active(model_it);
+ return true;
+ }
+ }
+
+ // we do not break immediately here, because there might be multiple makers
+ // sharing the same prefix (e.g. "Leica" and "Leica Camera AG").
+ // therefore, we break below when the lens doesn't match any of them
+ first_maker_found = true;
+ } else if (first_maker_found) {
+ break;
+ }
+ }
+ }
+
+ lensfunLenses->set_active(-1);
+ return false;
+}
+
+bool LensProfilePanel::checkLensfunCanCorrect(bool automatch)
+{
+ if (!metadata) {
+ return false;
+ }
+
+ rtengine::procparams::ProcParams lpp;
+ write(&lpp);
+ const std::unique_ptr mod(LFDatabase::findModifier(lpp.lensProf, metadata, 100, 100, lpp.coarse, -1));
+ return static_cast(mod);
+}
+
+void LensProfilePanel::setManualParamsVisibility(bool setVisible)
+{
+ if (setVisible) {
+ lensfunCamerasLbl->show();
+ lensfunCameras->show();
+ lensfunLensesLbl->show();
+ lensfunLenses->show();
+ updateLensfunWarning();
+ } else {
+ lensfunCamerasLbl->hide();
+ lensfunCameras->hide();
+ lensfunLensesLbl->hide();
+ lensfunLenses->hide();
+ warning->hide();
+ }
+}
+
+void LensProfilePanel::updateLensfunWarning()
+{
+ warning->hide();
+
+ if (corrLensfunManualRB->get_active() || corrLensfunAutoRB->get_active()) {
+ const LFDatabase* const db = LFDatabase::getInstance();
+
+ const auto itc = lensfunCameras->get_active();
+
+ if (!itc) {
+ return;
+ }
+
+ const LFCamera c = db->findCamera((*itc)[lf->lensfunModelCam.make], (*itc)[lf->lensfunModelCam.model]);
+ const auto itl = lensfunLenses->get_active();
+
+ if (!itl) {
+ return;
+ }
+
+ const LFLens l = db->findLens(LFCamera(), (*itl)[lf->lensfunModelLens.lens]);
+ const float lenscrop = l.getCropFactor();
+ const float camcrop = c.getCropFactor();
+
+ if (lenscrop <= 0 || camcrop <= 0 || lenscrop / camcrop >= 1.01f) {
+ warning->show();
+ }
+
+ ckbUseVign->set_sensitive(l.hasVignettingCorrection());
+ ckbUseDist->set_sensitive(l.hasDistortionCorrection());
+ ckbUseCA->set_sensitive(l.hasCACorrection());
+
+ if (!isRaw || !l.hasVignettingCorrection()) {
+ ckbUseVign->set_active(false);
+ }
+
+ if (!l.hasDistortionCorrection()) {
+ ckbUseDist->set_active(false);
+ }
+
+ if (!l.hasCACorrection()) {
+ ckbUseCA->set_active(false);
+ }
+ }
+}
+
+LensProfilePanel::LFDbHelper* LensProfilePanel::lf(nullptr);
diff --git a/rtgui/lensprofile.h b/rtgui/lensprofile.h
index 8c814e6fc..42b60a414 100644
--- a/rtgui/lensprofile.h
+++ b/rtgui/lensprofile.h
@@ -16,87 +16,26 @@
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see .
*/
-#ifndef _LENSPROFILE_H_
-#define _LENSPROFILE_H_
+#pragma once
#include
-#include "toolpanel.h"
+
#include "guiutils.h"
#include "lensgeom.h"
+#include "toolpanel.h"
-class LensProfilePanel : public ToolParamBlock, public FoldableToolPanel
+class LensProfilePanel final :
+ public ToolParamBlock,
+ public FoldableToolPanel
{
-
-protected:
-
- MyFileChooserButton *fcbLCPFile;
- Gtk::CheckButton *ckbUseDist, *ckbUseVign, *ckbUseCA;
- Gtk::HBox *hbLCPFile;
- Gtk::Label *lLCPFileHead;
- bool lcModeChanged, lcpFileChanged, useDistChanged, useVignChanged, useCAChanged;
- sigc::connection conLCPFile, conUseDist, conUseVign, conUseCA;
- void updateDisabled(bool enable);
- bool allowFocusDep;
- bool isRaw;
- const rtengine::FramesMetaData* metadata;
-
- Gtk::RadioButton::Group corrGroup;
- Gtk::RadioButton *corrOff;
- Gtk::RadioButton *corrLensfunAuto;
- Gtk::RadioButton *corrLensfunManual;
- Gtk::RadioButton *corrLcpFile;
- Gtk::RadioButton *corrUnchanged;
- MyComboBox *lensfunCameras;
- MyComboBox *lensfunLenses;
- Gtk::Image *warning;
-
- class LFDbHelper {
- public:
- class LFModelCam: public Gtk::TreeModel::ColumnRecord {
- public:
- LFModelCam() { add(make); add(model); }
- Gtk::TreeModelColumn make;
- Gtk::TreeModelColumn model;
- };
-
- class LFModelLens: public Gtk::TreeModel::ColumnRecord {
- public:
- LFModelLens() { add(lens); add(prettylens); }
- Gtk::TreeModelColumn lens;
- Gtk::TreeModelColumn prettylens;
- };
-
- LFModelCam lensfunModelCam;
- LFModelLens lensfunModelLens;
-
- Glib::RefPtr lensfunCameraModel;
- Glib::RefPtr lensfunLensModel;
-
- LFDbHelper();
- void fillLensfunCameras();
- void fillLensfunLenses();
- };
- static LFDbHelper *lf;
-
- bool useLensfunChanged;
- bool lensfunAutoChanged;
- bool lensfunCameraChanged;
- bool lensfunLensChanged;
-
- bool setLensfunCamera(const Glib::ustring &make, const Glib::ustring &model);
- bool setLensfunLens(const Glib::ustring &lens);
- bool checkLensfunCanCorrect(bool automatch);
- void updateLensfunWarning();
-
public:
+ LensProfilePanel();
- LensProfilePanel ();
+ void read(const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr);
+ void write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr);
+ void setRawMeta(bool raw, const rtengine::FramesMetaData* pMeta);
- void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr);
- void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr);
- void setRawMeta (bool raw, const rtengine::FramesMetaData* pMeta);
-
- void onLCPFileChanged ();
+ void onLCPFileChanged();
void onUseDistChanged();
void onUseVignChanged();
void onUseCAChanged();
@@ -105,7 +44,92 @@ public:
void onLensfunCameraChanged();
void onLensfunLensChanged();
- void onCorrModeChanged(const Gtk::RadioButton *rbChanged);
-};
+ void onCorrModeChanged(const Gtk::RadioButton* rbChanged);
-#endif
+private:
+ class LFDbHelper final
+ {
+ public:
+ class LFModelCam final :
+ public Gtk::TreeModel::ColumnRecord
+ {
+ public:
+ LFModelCam()
+ {
+ add(make);
+ add(model);
+ }
+ Gtk::TreeModelColumn make;
+ Gtk::TreeModelColumn model;
+ };
+
+ class LFModelLens final :
+ public Gtk::TreeModel::ColumnRecord
+ {
+ public:
+ LFModelLens()
+ {
+ add(lens);
+ add(prettylens);
+ }
+ Gtk::TreeModelColumn lens;
+ Gtk::TreeModelColumn prettylens;
+ };
+
+ LFModelCam lensfunModelCam;
+ LFModelLens lensfunModelLens;
+
+ Glib::RefPtr lensfunCameraModel;
+ Glib::RefPtr lensfunLensModel;
+
+ LFDbHelper();
+
+ void fillLensfunCameras();
+ void fillLensfunLenses();
+ };
+
+ void updateDisabled(bool enable);
+
+ bool setLensfunCamera(const Glib::ustring& make, const Glib::ustring& model);
+ bool setLensfunLens(const Glib::ustring& lens);
+ bool checkLensfunCanCorrect(bool automatch);
+ void setManualParamsVisibility(bool setVisible);
+ void updateLensfunWarning();
+
+ bool lcModeChanged;
+ bool lcpFileChanged;
+ bool useDistChanged;
+ bool useVignChanged;
+ bool useCAChanged;
+ bool useLensfunChanged;
+ bool lensfunAutoChanged;
+ bool lensfunCameraChanged;
+ bool lensfunLensChanged;
+ sigc::connection conLCPFile;
+ sigc::connection conUseDist;
+ sigc::connection conUseVign;
+ sigc::connection conUseCA;
+ bool allowFocusDep;
+ bool isRaw;
+ const rtengine::FramesMetaData* metadata;
+
+ Gtk::Grid* const modesGrid;
+ Gtk::Grid* const distGrid;
+ Gtk::RadioButton* const corrUnchangedRB;
+ Gtk::RadioButton::Group corrGroup;
+ Gtk::RadioButton* const corrOffRB;
+ Gtk::RadioButton* const corrLensfunAutoRB;
+ Gtk::RadioButton* const corrLensfunManualRB;
+ Gtk::RadioButton* const corrLcpFileRB;
+ MyFileChooserButton* const corrLcpFileChooser;
+ Gtk::Label* const lensfunCamerasLbl;
+ MyComboBox* const lensfunCameras;
+ Gtk::Label* const lensfunLensesLbl;
+ MyComboBox* const lensfunLenses;
+ Gtk::Image* const warning;
+ Gtk::CheckButton* const ckbUseDist;
+ Gtk::CheckButton* const ckbUseVign;
+ Gtk::CheckButton* const ckbUseCA;
+
+ static LFDbHelper* lf;
+};