Merge pull request #4999 from Beep6581/lensprofcombo
Improvements to Profiled Lens Correction
This commit is contained in:
commit
a78d94b01f
@ -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: <b>-</b>
|
||||
!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: <b>Shift-F4</b>\n\nTo navigate to the next image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: <b>F4</b>
|
||||
|
@ -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快捷键: <b>-</b>
|
||||
!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: <b>Shift-F4</b>\n\nTo navigate to the next image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: <b>F4</b>
|
||||
|
@ -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
|
||||
|
@ -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: <b>Shift-F4</b>\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: <b>F4</b>
|
||||
@ -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
|
||||
|
@ -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
|
||||
|
@ -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: <b>F11</b>
|
||||
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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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: <b>-</b>
|
||||
!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.
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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: <b>-</b>
|
||||
!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
|
||||
|
@ -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;ローカルコントラスト
|
||||
|
@ -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
|
||||
|
@ -1361,9 +1361,6 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés <b>-</b>
|
||||
!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: <b>Shift-F4</b>\n\nTo navigate to the next image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: <b>F4</b>
|
||||
@ -1918,9 +1915,6 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés <b>-</b>
|
||||
!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
|
||||
|
@ -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: <b>-</b>
|
||||
!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.
|
||||
|
@ -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
|
||||
|
@ -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: <b>-</b>
|
||||
!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
|
||||
|
@ -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: <b>-</b>
|
||||
!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
|
||||
|
@ -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
|
||||
|
@ -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Горячая клавиша: <b>Shift+F4</b>\n\nПерейти к следущему изображению относительно выбранного в файловом браузере\nгорячая клавиша <b>F4</b>
|
||||
@ -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;Локальный контраст
|
||||
|
@ -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;Умањује приказ слике <b>-</b>
|
||||
!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.
|
||||
|
@ -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 <b>-</b>
|
||||
!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.
|
||||
|
@ -1151,9 +1151,6 @@ ZOOMPANEL_ZOOMOUT;Oddialiť <b>-</b>
|
||||
!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: <b>Shift-F4</b>\n\nTo navigate to the next image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: <b>F4</b>
|
||||
@ -1845,9 +1842,6 @@ ZOOMPANEL_ZOOMOUT;Oddialiť <b>-</b>
|
||||
!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
|
||||
|
@ -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
|
||||
|
@ -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: <b>-</b>
|
||||
!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.
|
||||
|
@ -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
|
||||
|
@ -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: <b>Shift-F4</b>\n\nTo navigate to the next image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: <b>F4</b>
|
||||
@ -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
|
||||
|
@ -29,168 +29,210 @@
|
||||
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);
|
||||
distGrid->get_style_context()->add_class("grid-spacing");
|
||||
setExpandAlignProperties(distGrid, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER);
|
||||
|
||||
corrLensfunAuto = Gtk::manage(new Gtk::RadioButton(corrGroup, M("LENSPROFILE_CORRECTION_AUTOMATCH")));
|
||||
pack_start(*corrLensfunAuto);
|
||||
// Mode choice widgets:
|
||||
|
||||
corrLensfunManual = Gtk::manage(new Gtk::RadioButton(corrGroup, M("LENSPROFILE_CORRECTION_MANUAL")));
|
||||
pack_start(*corrLensfunManual);
|
||||
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<Gtk::CellRendererText*>(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<Gtk::CellRendererText*>(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<Gtk::CellRendererText*>(lensfunLenses->get_first_cell());
|
||||
cellRenderer->property_ellipsize() = Pango::ELLIPSIZE_MIDDLE;
|
||||
cellRenderer->property_ellipsize_set() = true;
|
||||
lensfunLenses->setPreferredWidth(50, 120);
|
||||
setExpandAlignProperties(lensfunLenses, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER);
|
||||
|
||||
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);
|
||||
Gtk::CellRendererText* const lensesCellRenderer = static_cast<Gtk::CellRendererText*>(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<Gtk::FileFilter> filterLCP = Gtk::FileFilter::create();
|
||||
const Glib::RefPtr<Gtk::FileFilter> 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()) {
|
||||
@ -199,9 +241,10 @@ void LensProfilePanel::read(const rtengine::procparams::ProcParams* pp, const Pa
|
||||
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());
|
||||
}
|
||||
}
|
||||
@ -210,94 +253,44 @@ void LensProfilePanel::read(const rtengine::procparams::ProcParams* pp, const Pa
|
||||
useLensfunChanged = lensfunAutoChanged = lensfunCameraChanged = lensfunLensChanged = false;
|
||||
|
||||
if (!batchMode && !checkLensfunCanCorrect(true)) {
|
||||
if (corrLensfunAuto->get_active()) {
|
||||
corrOff->set_active(true);
|
||||
}
|
||||
corrLensfunAuto->set_sensitive(false);
|
||||
if (corrLensfunAutoRB->get_active()) {
|
||||
corrOffRB->set_active(true);
|
||||
}
|
||||
|
||||
if (corrLensfunManual->get_active() && !checkLensfunCanCorrect(false)) {
|
||||
corrOff->set_active(true);
|
||||
corrLensfunAutoRB->set_sensitive(false);
|
||||
}
|
||||
|
||||
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<LFModifier> 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();
|
||||
}
|
||||
}
|
||||
#ifdef _OPENMP
|
||||
#pragma omp section
|
||||
#endif
|
||||
{
|
||||
{
|
||||
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<Glib::ustring, std::set<Glib::ustring>> 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<Glib::ustring, std::set<Glib::ustring>> 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<LFModifier> mod(LFDatabase::findModifier(lpp.lensProf, metadata, 100, 100, lpp.coarse, -1));
|
||||
return static_cast<bool>(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);
|
||||
|
@ -16,52 +16,62 @@
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef _LENSPROFILE_H_
|
||||
#define _LENSPROFILE_H_
|
||||
#pragma once
|
||||
|
||||
#include <gtkmm.h>
|
||||
#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
|
||||
{
|
||||
public:
|
||||
LensProfilePanel();
|
||||
|
||||
protected:
|
||||
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);
|
||||
|
||||
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;
|
||||
void onLCPFileChanged();
|
||||
void onUseDistChanged();
|
||||
void onUseVignChanged();
|
||||
void onUseCAChanged();
|
||||
|
||||
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;
|
||||
void setBatchMode(bool yes);
|
||||
|
||||
class LFDbHelper {
|
||||
void onLensfunCameraChanged();
|
||||
void onLensfunLensChanged();
|
||||
void onCorrModeChanged(const Gtk::RadioButton* rbChanged);
|
||||
|
||||
private:
|
||||
class LFDbHelper final
|
||||
{
|
||||
public:
|
||||
class LFModelCam: public Gtk::TreeModel::ColumnRecord {
|
||||
class LFModelCam final :
|
||||
public Gtk::TreeModel::ColumnRecord
|
||||
{
|
||||
public:
|
||||
LFModelCam() { add(make); add(model); }
|
||||
LFModelCam()
|
||||
{
|
||||
add(make);
|
||||
add(model);
|
||||
}
|
||||
Gtk::TreeModelColumn<Glib::ustring> make;
|
||||
Gtk::TreeModelColumn<Glib::ustring> model;
|
||||
};
|
||||
|
||||
class LFModelLens: public Gtk::TreeModel::ColumnRecord {
|
||||
class LFModelLens final :
|
||||
public Gtk::TreeModel::ColumnRecord
|
||||
{
|
||||
public:
|
||||
LFModelLens() { add(lens); add(prettylens); }
|
||||
LFModelLens()
|
||||
{
|
||||
add(lens);
|
||||
add(prettylens);
|
||||
}
|
||||
Gtk::TreeModelColumn<Glib::ustring> lens;
|
||||
Gtk::TreeModelColumn<Glib::ustring> prettylens;
|
||||
};
|
||||
@ -73,39 +83,53 @@ protected:
|
||||
Glib::RefPtr<Gtk::TreeStore> lensfunLensModel;
|
||||
|
||||
LFDbHelper();
|
||||
|
||||
void fillLensfunCameras();
|
||||
void fillLensfunLenses();
|
||||
};
|
||||
static LFDbHelper *lf;
|
||||
|
||||
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;
|
||||
|
||||
bool setLensfunCamera(const Glib::ustring &make, const Glib::ustring &model);
|
||||
bool setLensfunLens(const Glib::ustring &lens);
|
||||
bool checkLensfunCanCorrect(bool automatch);
|
||||
void updateLensfunWarning();
|
||||
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;
|
||||
|
||||
public:
|
||||
|
||||
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 onLCPFileChanged ();
|
||||
void onUseDistChanged();
|
||||
void onUseVignChanged();
|
||||
void onUseCAChanged();
|
||||
|
||||
void setBatchMode(bool yes);
|
||||
|
||||
void onLensfunCameraChanged();
|
||||
void onLensfunLensChanged();
|
||||
void onCorrModeChanged(const Gtk::RadioButton *rbChanged);
|
||||
static LFDbHelper* lf;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user