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; +};