diff --git a/rtdata/languages/English (UK) b/rtdata/languages/English (UK)
index 490a93762..db41c25cd 100644
--- a/rtdata/languages/English (UK)
+++ b/rtdata/languages/English (UK)
@@ -363,14 +363,14 @@ PREFERENCES_DATEFORMAT;Date Format
PREFERENCES_DATEFORMATHINT;You can use the following formatting strings:\n%y : year\n%m : month\n%d : day\n\nFor example, the hungarian date format is:\n%y/%m/%d
PREFERENCES_DCBENHANCE;Apply DCB enhancment step
PREFERENCES_DCBITERATIONS;Number of DCB iterations
-#Emil's CA autocorrection
-PREFERENCES_CACORRECTION;Apply CA auto correction
+#Emil's CA autocorrection
+PREFERENCES_CACORRECTION;Apply CA auto correction
#Emil's hot/dead pixel filter
-PREFERENCES_HOTDEADPIXFILT;Apply hot/dead pixel filter
-#Emil's line noise filter
-PREFERENCES_LINEDENOISE;Line noise filter
-PREFERENCES_GREENEQUIL;Green equilibration
-
+PREFERENCES_HOTDEADPIXFILT;Apply hot/dead pixel filter
+#Emil's line noise filter
+PREFERENCES_LINEDENOISE;Line noise filter
+PREFERENCES_GREENEQUIL;Green equilibration
+
PREFERENCES_DEFAULTLANG;Default language
PREFERENCES_DEFAULTTHEME;Default theme
PREFERENCES_DEMOSAICINGALGO;Demosaicing Algorithm
@@ -525,6 +525,9 @@ TP_CROP_X;x
TP_CROP_Y;y
TP_DISTORTION_AMOUNT;Amount
TP_DISTORTION_LABEL;Distortion
+TP_EQUALIZER_LABEL;Wavelet equalizer
+TP_EQUALIZER_FINEST;finest
+TP_EQUALIZER_LARGEST;coarsest
TP_EXPOSURE_AUTOLEVELS;Auto Levels
TP_EXPOSURE_BLACKLEVEL;Black
TP_EXPOSURE_BRIGHTNESS;Brightness
@@ -643,62 +646,62 @@ TP_RESIZE_WIDTH;Width
TP_RESIZE_HEIGHT;Height
MAIN_TOGGLE_BEFORE_AFTER;B|A
-
-###
-
-###
-
-EXIFFILTER_METADATAFILTER;Enable Metadata Filters
-CURVEEDITOR_PARAMETRIC;Parametric
-CURVEEDITOR_CUSTOM;Custom
-CURVEEDITOR_TYPE;Type:
-CURVEEDITOR_HIGHLIGHTS;Highlights
-CURVEEDITOR_LIGHTS;Lights
-CURVEEDITOR_DARKS;Darks
-CURVEEDITOR_SHADOWS;Shadows
-BATCH_PROCESSING;batch processing
-PREFERENCES_BATCH_PROCESSING;batch processing
-PREFERENCES_BEHAVIOR;Behavior
-PREFERENCES_PROPERTY;Property
-PREFERENCES_ADD;ADD
-PREFERENCES_SET;SET
-PROGRESSDLG_PROFILECHANGEDINBROWSER;Profile changed in browser
-MAIN_MSG_ERRORDURINGIMAGESAVING;Error during image saving
-FILEBROWSER_CURRENT_NAME;Current name:
-FILEBROWSER_NEW_NAME;New name:
-FILEBROWSER_USETEMPLATE;Use template:
-FILEBROWSER_ADDDELTEMPLATE;Add/Del templates...
-ZOOMPANEL_ZOOMIN;Zoom In
-ZOOMPANEL_ZOOMOUT;Zoom Out
-ZOOMPANEL_ZOOM100;Zoom to 100%
-ZOOMPANEL_ZOOMFITSCREEN;Fit to screen
-ZOOMPANEL_NEWCROPWINDOW;Open (new) detail window
-ZOOMPANEL_100;(100%)
-
-###
-
-MAIN_BUTTON_FULLSCREEN;Fullscreen
-MAIN_BUTTON_UNFULLSCREEN;Exit fullscreen
-PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails
-
-NAVIGATOR_R_NA;R = n/a
-NAVIGATOR_G_NA;G = n/a
-NAVIGATOR_B_NA;B = n/a
-NAVIGATOR_H_NA;H = n/a
-NAVIGATOR_S_NA;S = n/a
-NAVIGATOR_V_NA;V = n/a
-NAVIGATOR_R_VALUE;R = %1
-NAVIGATOR_G_VALUE;G = %1
-NAVIGATOR_B_VALUE;B = %1
-NAVIGATOR_H_VALUE;H = %1
-NAVIGATOR_S_VALUE;S = %1
-NAVIGATOR_V_VALUE;V = %1
-NAVIGATOR_XY_NA;x = n/a, y = n/a
-FILEBROWSER_SHOWEXIFINFO;Show EXIF info
-TP_RESIZE_DOWNSCALEB;Downscale (Better)
-TP_RESIZE_DOWNSCALEF;Downscale (Faster)
-SAVEDLG_TIFFUNCOMPRESSED;Uncompressed TIFF
-HISTOGRAM_BUTTON_R;R
-HISTOGRAM_BUTTON_G;G
-HISTOGRAM_BUTTON_B;B
-HISTOGRAM_BUTTON_L;L
+
+###
+
+###
+
+EXIFFILTER_METADATAFILTER;Enable Metadata Filters
+CURVEEDITOR_PARAMETRIC;Parametric
+CURVEEDITOR_CUSTOM;Custom
+CURVEEDITOR_TYPE;Type:
+CURVEEDITOR_HIGHLIGHTS;Highlights
+CURVEEDITOR_LIGHTS;Lights
+CURVEEDITOR_DARKS;Darks
+CURVEEDITOR_SHADOWS;Shadows
+BATCH_PROCESSING;batch processing
+PREFERENCES_BATCH_PROCESSING;batch processing
+PREFERENCES_BEHAVIOR;Behavior
+PREFERENCES_PROPERTY;Property
+PREFERENCES_ADD;ADD
+PREFERENCES_SET;SET
+PROGRESSDLG_PROFILECHANGEDINBROWSER;Profile changed in browser
+MAIN_MSG_ERRORDURINGIMAGESAVING;Error during image saving
+FILEBROWSER_CURRENT_NAME;Current name:
+FILEBROWSER_NEW_NAME;New name:
+FILEBROWSER_USETEMPLATE;Use template:
+FILEBROWSER_ADDDELTEMPLATE;Add/Del templates...
+ZOOMPANEL_ZOOMIN;Zoom In
+ZOOMPANEL_ZOOMOUT;Zoom Out
+ZOOMPANEL_ZOOM100;Zoom to 100%
+ZOOMPANEL_ZOOMFITSCREEN;Fit to screen
+ZOOMPANEL_NEWCROPWINDOW;Open (new) detail window
+ZOOMPANEL_100;(100%)
+
+###
+
+MAIN_BUTTON_FULLSCREEN;Fullscreen
+MAIN_BUTTON_UNFULLSCREEN;Exit fullscreen
+PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails
+
+NAVIGATOR_R_NA;R = n/a
+NAVIGATOR_G_NA;G = n/a
+NAVIGATOR_B_NA;B = n/a
+NAVIGATOR_H_NA;H = n/a
+NAVIGATOR_S_NA;S = n/a
+NAVIGATOR_V_NA;V = n/a
+NAVIGATOR_R_VALUE;R = %1
+NAVIGATOR_G_VALUE;G = %1
+NAVIGATOR_B_VALUE;B = %1
+NAVIGATOR_H_VALUE;H = %1
+NAVIGATOR_S_VALUE;S = %1
+NAVIGATOR_V_VALUE;V = %1
+NAVIGATOR_XY_NA;x = n/a, y = n/a
+FILEBROWSER_SHOWEXIFINFO;Show EXIF info
+TP_RESIZE_DOWNSCALEB;Downscale (Better)
+TP_RESIZE_DOWNSCALEF;Downscale (Faster)
+SAVEDLG_TIFFUNCOMPRESSED;Uncompressed TIFF
+HISTOGRAM_BUTTON_R;R
+HISTOGRAM_BUTTON_G;G
+HISTOGRAM_BUTTON_B;B
+HISTOGRAM_BUTTON_L;L
diff --git a/rtdata/languages/English (US) b/rtdata/languages/English (US)
index c72716aab..497b132bf 100644
--- a/rtdata/languages/English (US)
+++ b/rtdata/languages/English (US)
@@ -16,637 +16,640 @@
# You should have received a copy of the GNU General Public License
# along with RawTherapee. If not, see .
#
-#
-#
-#
-ADJUSTER_RESET_TO_DEFAULT;Reset to default
-CURVEEDITOR_FILEDLGFILTERANY;Any files
-CURVEEDITOR_FILEDLGFILTERCURVE;Curve files
-CURVEEDITOR_LINEAR;Linear
-CURVEEDITOR_LOADDLGLABEL;Load Curve...
-CURVEEDITOR_SAVEDLGLABEL;Save Curve...
-CURVEEDITOR_TOOLTIPLINEAR;Reset curve to linear
-CURVEEDITOR_TOOLTIPLOAD;Load a curve from file
-CURVEEDITOR_TOOLTIPSAVE;Save current curve
-EXIFFILTER_APERTURE;Aperture
-EXIFFILTER_CAMERA;Camera
-EXIFFILTER_DIALOGLABEL;Exif Filter
-EXIFFILTER_FOCALLEN;Focal Length
-EXIFFILTER_ISO;ISO
-EXIFFILTER_LENS;Lens
-EXIFFILTER_SHUTTER;Shutter
-EXIFPANEL_ADDEDIT;Add/Edit
-EXIFPANEL_ADDEDITHINT;Add new tag or edit tag
-EXIFPANEL_ADDTAGDLG_ENTERVALUE;Enter value
-EXIFPANEL_ADDTAGDLG_SELECTTAG;Select tag
-EXIFPANEL_ADDTAGDLG_TITLE;Add/Edit Tag
-EXIFPANEL_KEEP;Keep
-EXIFPANEL_KEEPHINT;Keep the selected tags when writing output file
-EXIFPANEL_REMOVE;Remove
-EXIFPANEL_REMOVEHINT;Remove the selected tags when writing output file
-EXIFPANEL_RESET;Reset
-EXIFPANEL_RESETALL;Reset All
-EXIFPANEL_RESETALLHINT;Reset all tags to their original values
-EXIFPANEL_RESETHINT;Reset the selected tags to their original values
-EXIFPANEL_SUBDIRECTORY;Subdirectory
-FILEBROWSER_APPLYPROFILE;Apply profile
-FILEBROWSER_ARRANGEMENTHINT;Change between vertical/horizontal alignment of thumbnails
-FILEBROWSER_CLEARPROFILE;Clear profile
-FILEBROWSER_COPYPROFILE;Copy profile
-FILEBROWSER_DELETEDLGLABEL;File delete confirmation
-FILEBROWSER_DELETEDLGMSG;Are you sure you want to delete the selected %1 files?
-FILEBROWSER_EMPTYTRASH;Empty Trash
-FILEBROWSER_EMPTYTRASHHINT;Permanently delete the files of the trash
-FILEBROWSER_EXIFFILTERAPPLY;Apply
-FILEBROWSER_EXIFFILTERAPPLYHINT;Switch on/off exif filter of the file browser
-FILEBROWSER_EXIFFILTERLABEL;Exif Filter
-FILEBROWSER_EXIFFILTERSETTINGS;Setup
-FILEBROWSER_EXIFFILTERSETTINGSHINT;Change settings of the exif filter
-FILEBROWSER_PARTIALPASTEPROFILE;Partial paste
-FILEBROWSER_PASTEPROFILE;Paste profile
-FILEBROWSER_POPUPCANCELJOB;Cancel job
-FILEBROWSER_POPUPMOVEEND;Move to end of queue
-FILEBROWSER_POPUPMOVEHEAD;Move to head of queue
-FILEBROWSER_POPUPOPEN;Open
-FILEBROWSER_POPUPPROCESS;Put to processing queue
-FILEBROWSER_POPUPRANK1;Rank 1
-FILEBROWSER_POPUPRANK2;Rank 2
-FILEBROWSER_POPUPRANK3;Rank 3
-FILEBROWSER_POPUPRANK4;Rank 4
-FILEBROWSER_POPUPRANK5;Rank 5
-FILEBROWSER_POPUPREMOVE;Remove from filesystem
-FILEBROWSER_POPUPRENAME;Rename
-FILEBROWSER_POPUPSELECTALL;Select all
-FILEBROWSER_POPUPTRASH;Move to trash
-FILEBROWSER_POPUPUNRANK;Unrank
-FILEBROWSER_POPUPUNTRASH;Remove from trash
-FILEBROWSER_PROCESSINGSETTINGS;Settings
-FILEBROWSER_PROCESSINGSETTINGSHINT;Set the file format and output directory
-FILEBROWSER_RENAMEDLGLABEL;Rename file
-FILEBROWSER_RENAMEDLGMSG;Rename file "%1" to:
-FILEBROWSER_SHOWDIRHINT;Show all images of the directory
-FILEBROWSER_SHOWQUEUEHINT;Show content of the processing queue
-FILEBROWSER_SHOWRANK1HINT;Show images ranked as 1 star
-FILEBROWSER_SHOWRANK2HINT;Show images ranked as 2 star
-FILEBROWSER_SHOWRANK3HINT;Show images ranked as 3 star
-FILEBROWSER_SHOWRANK4HINT;Show images ranked as 4 star
-FILEBROWSER_SHOWRANK5HINT;Show images ranked as 5 star
-FILEBROWSER_SHOWTRASHHINT;Show content of the trash
-FILEBROWSER_SHOWUNRANKHINT;Show unranked images
-FILEBROWSER_STARTPROCESSING;Start processing
-FILEBROWSER_STARTPROCESSINGHINT;Start processing/saving of images in the queue
-FILEBROWSER_STOPPROCESSING;Stop processing
-FILEBROWSER_STOPPROCESSINGHINT;Stop processing of images
-FILEBROWSER_THUMBSIZE;Thumb. size
-FILEBROWSER_ZOOMINHINT;Increase thumbnail size
-FILEBROWSER_ZOOMOUTHINT;Decrease thumbnail size
-GENERAL_ABOUT;About
-GENERAL_CANCEL;Cancel
-GENERAL_DISABLE;Disable
-GENERAL_DISABLED;Disabled
-GENERAL_ENABLE;Enable
-GENERAL_ENABLED;Enabled
-GENERAL_LANDSCAPE;Landscape
-GENERAL_LOAD;Load
-GENERAL_NA;n/a
-GENERAL_NO;No
-GENERAL_OK;OK
-GENERAL_PORTRAIT;Portrait
-GENERAL_SAVE;Save
-GENERAL_YES;Yes
-HISTOGRAM_LABEL;Histogram
-HISTOGRAM_TOOLTIP_B;Show/Hide BLUE histogram
-HISTOGRAM_TOOLTIP_G;Show/Hide GREEN histogram
-HISTOGRAM_TOOLTIP_L;Show/Hide CIELAB Luminance histogram
-HISTOGRAM_TOOLTIP_R;Show/Hide RED histogram
-HISTORY_CHANGED;Changed
-HISTORY_CUSTOMCURVE;Custom Curve
-HISTORY_DELSNAPSHOT;Del
-HISTORY_FROMCLIPBOARD;From clipboard
-HISTORY_LABEL;History
-HISTORY_MSG_10;Shadow Compression
-HISTORY_MSG_11;Tone Curve
-HISTORY_MSG_12;Auto Exposure
-HISTORY_MSG_13;Exposure Clipping
-HISTORY_MSG_14;Luminance Brightness
-HISTORY_MSG_15;Luminance Contrast
-HISTORY_MSG_16;Luminance Black
-HISTORY_MSG_17;Luminance Highlight Compr.
-HISTORY_MSG_18;Luminance Shadow Compr.
-HISTORY_MSG_19;Luminance Curve
-HISTORY_MSG_1;Photo Loaded
-HISTORY_MSG_20;Sharpening
-HISTORY_MSG_21;Sharpening Radius
-HISTORY_MSG_22;Sharpening Amount
-HISTORY_MSG_23;Sharpening Threshold
-HISTORY_MSG_24;Sharpen Only Edges
-HISTORY_MSG_25;Sharpening Edge Detection Radius
-HISTORY_MSG_26;Sharpening Edge Tolerance
-HISTORY_MSG_27;Sharpening Halo Control
-HISTORY_MSG_28;Halo Control Amount
-HISTORY_MSG_29;Sharpening Method
-HISTORY_MSG_2;Profile Loaded
-HISTORY_MSG_30;Deconvolution Radius
-HISTORY_MSG_31;Deconvolution Amount
-HISTORY_MSG_32;Deconvolution Damping
-HISTORY_MSG_33;Deconvolution Iterations
-HISTORY_MSG_34;Avoid Color Clipping
-HISTORY_MSG_35;Saturation Limiter
-HISTORY_MSG_36;Saturation Limit
-HISTORY_MSG_37;Color Boost
-HISTORY_MSG_38;White Balance Method
-HISTORY_MSG_39;Color Temperature
-HISTORY_MSG_3;Profile Changed
-HISTORY_MSG_40;White Balance Tint
-HISTORY_MSG_41;Color Shift "A"
-HISTORY_MSG_42;Color Shift "B"
-HISTORY_MSG_43;Luminance Denoising
-HISTORY_MSG_44;Lum. Denoising Radius
-HISTORY_MSG_45;Lum. Denoising Edge Tolerance
-HISTORY_MSG_46;Color Denoising
-HISTORY_MSG_47;Color Denoising Radius
-HISTORY_MSG_48;Color Denoising Edge Tolerance
-HISTORY_MSG_49;Edge Sensitive Color Denoising
-HISTORY_MSG_4;History Browsing
-HISTORY_MSG_50;Shadow/Highlight tool
-HISTORY_MSG_51;Highlight boost
-HISTORY_MSG_52;Shadow Boost
-HISTORY_MSG_53;Highlight Tonal Width
-HISTORY_MSG_54;Shadow Tonal Width
-HISTORY_MSG_55;Local Contrast
-HISTORY_MSG_56;Shadow/Highlight Radius
-HISTORY_MSG_57;Coarse Rotation
-HISTORY_MSG_58;Horizontal Flipping
-HISTORY_MSG_59;Vertical Flipping
-HISTORY_MSG_5;Brightness
-HISTORY_MSG_60;Rotation
-HISTORY_MSG_61;Auto Fill
-HISTORY_MSG_62;Lens Distortion Correction
-HISTORY_MSG_63;Snapshot Selected
-HISTORY_MSG_64;Crop Photo
-HISTORY_MSG_65;C/A Correction
-HISTORY_MSG_66;Highlight Recovery
-HISTORY_MSG_67;Highlight Recovery Amount
-HISTORY_MSG_68;Highlight Recovery Method
-HISTORY_MSG_69;Working Color Space
-HISTORY_MSG_6;Contrast
-HISTORY_MSG_70;Output Color Space
-HISTORY_MSG_71;Input Color Space
-HISTORY_MSG_72;Vignetting Correction
-HISTORY_MSG_73;Channel Mixer
-HISTORY_MSG_74;Resize Scale
-HISTORY_MSG_75;Resize Method
-HISTORY_MSG_76;Exif Metadata
-HISTORY_MSG_77;IPTC Metadata
-HISTORY_MSG_78;Data specified for resize
-HISTORY_MSG_79;Resize width
-HISTORY_MSG_7;Black
-HISTORY_MSG_80;Resize height
-HISTORY_MSG_81;Resize enabled
-HISTORY_MSG_82;Profile Changed
-HISTORY_MSG_83;High quality shadows/highlights
-HISTORY_MSG_84;Perspective correction
-HISTORY_MSG_8;Exposure Compensation
-HISTORY_MSG_9;Highlight Compression
-HISTORY_NEWSNAPSHOT;Add
-HISTORY_NEWSNAPSHOTAS;As...
-HISTORY_NEWSSDIALOGLABEL;Label of the snapshot:
-HISTORY_NEWSSDIALOGTITLE;Add new snapshot
-HISTORY_SETTO;Set to
-HISTORY_SNAPSHOT;Snapshot
-HISTORY_SNAPSHOTS;Snapshots
-ICMPANEL_FILEDLGFILTERANY;Any files
-ICMPANEL_FILEDLGFILTERICM;ICC Profile Files
-ICMPANEL_GAMMABEFOREINPUT;Profile applies Gamma
-ICMPANEL_INPUTCAMERA;Camera default
-ICMPANEL_INPUTCUSTOM;Custom
-ICMPANEL_INPUTDLGLABEL;Select Input ICC Profile...
-ICMPANEL_INPUTEMBEDDED;Use Embedded, if possible
-ICMPANEL_INPUTPROFILE;Input Profile
-ICMPANEL_NOICM;No ICM: sRGB output
-ICMPANEL_OUTPUTDLGLABEL;Select Output ICC Profile...
-ICMPANEL_OUTPUTPROFILE;Output Profile
-ICMPANEL_SAVEREFERENCE;Save reference image for profiling
-ICMPANEL_WORKINGPROFILE;Working Profile
-IMAGEAREA_DETAILVIEW;Detail view
-IPTCPANEL_AUTHOR;Author
-IPTCPANEL_AUTHORHINT;Name of the creator of the object, e.g. writer, photographer or graphic artist (By-line).
-IPTCPANEL_AUTHORSPOSITION;Author's position
-IPTCPANEL_AUTHORSPOSITIONHINT;Title of the creator or creators of the object (By-line Title).
-IPTCPANEL_CAPTION;Caption
-IPTCPANEL_CAPTIONHINT;A textual description of the data (Caption - Abstract).
-IPTCPANEL_CAPTIONWRITER;Caption Writer
-IPTCPANEL_CAPTIONWRITERHINT;The name of the person involved in the writing, editing or correcting the image or caption/abstract (Writer - Editor).
-IPTCPANEL_CATEGORY;Category
-IPTCPANEL_CATEGORYHINT;Identifies the subject of the image in the opinion of the provider (Category).
-IPTCPANEL_CITY;City
-IPTCPANEL_CITYHINT;City of image origin (City).
-IPTCPANEL_COPYHINT;Copy IPTC settings to clipboard
-IPTCPANEL_COPYRIGHT;Copyright
-IPTCPANEL_COPYRIGHTHINT;Any necessary copyright notice (Copyright Notice).
-IPTCPANEL_COUNTRY;Country
-IPTCPANEL_COUNTRYHINT;The name of the country/primary location where the image was created (Country - Primary Location Name).
-IPTCPANEL_CREDIT;Credit
-IPTCPANEL_CREDITHINT;Identifies the provider of the image, not necessarily the owner/creator (Credit).
-IPTCPANEL_DATECREATED;Date Created
-IPTCPANEL_DATECREATEDHINT;The date the intellectual content of the image was created; Format: JJJJMMTT (Date Created).
-IPTCPANEL_EMBEDDED;Embedded
-IPTCPANEL_EMBEDDEDHINT;Reset to IPTC data embedded in the image file
-IPTCPANEL_HEADLINE;Headline
-IPTCPANEL_HEADLINEHINT;A publishable entry providing a synopsis of the contents of the image (Headline).
-IPTCPANEL_INSTRUCTIONS;Instructions
-IPTCPANEL_INSTRUCTIONSHINT;Other editorial instructions concerning the use of the image (Special Instructions).
-IPTCPANEL_KEYWORDS;Keywords
-IPTCPANEL_KEYWORDSHINT;Used to indicate specific information retrieval words (Keywords).
-IPTCPANEL_PASTEHINT;Paste IPTC settings from clipboard
-IPTCPANEL_PROVINCE;Province
-IPTCPANEL_PROVINCEHINT;The Province/State where the image originates (Province-State).
-IPTCPANEL_RESET;Reset
-IPTCPANEL_RESETHINT;Reset to profile default
-IPTCPANEL_SOURCE;Source
-IPTCPANEL_SOURCEHINT;The original owner of the intellectual content of the image (Source).
-IPTCPANEL_SUPPCATEGORIES;Suppl. Categories
-IPTCPANEL_SUPPCATEGORIESHINT;Further refines the subject of the image (Supplemental Categories).
-IPTCPANEL_TITLE;Title
-IPTCPANEL_TITLEHINT;A shorthand reference for the image (Object Name).
-IPTCPANEL_TRANSREFERENCE;Trans. Reference
-IPTCPANEL_TRANSREFERENCEHINT;A code representing the location of original transmission (Original Transmission Reference).
-MAIN_BUTTON_EXIT;Exit
-MAIN_BUTTON_PREFERENCES;Preferences
-MAIN_BUTTON_QUEUE;Put to queue
-MAIN_BUTTON_SAVE;Save Image
-MAIN_BUTTON_SAVEAS;As...
-MAIN_BUTTON_SENDTOEDITOR;Send to editor
+#
+#
+#
+ADJUSTER_RESET_TO_DEFAULT;Reset to default
+CURVEEDITOR_FILEDLGFILTERANY;Any files
+CURVEEDITOR_FILEDLGFILTERCURVE;Curve files
+CURVEEDITOR_LINEAR;Linear
+CURVEEDITOR_LOADDLGLABEL;Load Curve...
+CURVEEDITOR_SAVEDLGLABEL;Save Curve...
+CURVEEDITOR_TOOLTIPLINEAR;Reset curve to linear
+CURVEEDITOR_TOOLTIPLOAD;Load a curve from file
+CURVEEDITOR_TOOLTIPSAVE;Save current curve
+EXIFFILTER_APERTURE;Aperture
+EXIFFILTER_CAMERA;Camera
+EXIFFILTER_DIALOGLABEL;Exif Filter
+EXIFFILTER_FOCALLEN;Focal Length
+EXIFFILTER_ISO;ISO
+EXIFFILTER_LENS;Lens
+EXIFFILTER_SHUTTER;Shutter
+EXIFPANEL_ADDEDIT;Add/Edit
+EXIFPANEL_ADDEDITHINT;Add new tag or edit tag
+EXIFPANEL_ADDTAGDLG_ENTERVALUE;Enter value
+EXIFPANEL_ADDTAGDLG_SELECTTAG;Select tag
+EXIFPANEL_ADDTAGDLG_TITLE;Add/Edit Tag
+EXIFPANEL_KEEP;Keep
+EXIFPANEL_KEEPHINT;Keep the selected tags when writing output file
+EXIFPANEL_REMOVE;Remove
+EXIFPANEL_REMOVEHINT;Remove the selected tags when writing output file
+EXIFPANEL_RESET;Reset
+EXIFPANEL_RESETALL;Reset All
+EXIFPANEL_RESETALLHINT;Reset all tags to their original values
+EXIFPANEL_RESETHINT;Reset the selected tags to their original values
+EXIFPANEL_SUBDIRECTORY;Subdirectory
+FILEBROWSER_APPLYPROFILE;Apply profile
+FILEBROWSER_ARRANGEMENTHINT;Change between vertical/horizontal alignment of thumbnails
+FILEBROWSER_CLEARPROFILE;Clear profile
+FILEBROWSER_COPYPROFILE;Copy profile
+FILEBROWSER_DELETEDLGLABEL;File delete confirmation
+FILEBROWSER_DELETEDLGMSG;Are you sure you want to delete the selected %1 files?
+FILEBROWSER_EMPTYTRASH;Empty Trash
+FILEBROWSER_EMPTYTRASHHINT;Permanently delete the files of the trash
+FILEBROWSER_EXIFFILTERAPPLY;Apply
+FILEBROWSER_EXIFFILTERAPPLYHINT;Switch on/off exif filter of the file browser
+FILEBROWSER_EXIFFILTERLABEL;Exif Filter
+FILEBROWSER_EXIFFILTERSETTINGS;Setup
+FILEBROWSER_EXIFFILTERSETTINGSHINT;Change settings of the exif filter
+FILEBROWSER_PARTIALPASTEPROFILE;Partial paste
+FILEBROWSER_PASTEPROFILE;Paste profile
+FILEBROWSER_POPUPCANCELJOB;Cancel job
+FILEBROWSER_POPUPMOVEEND;Move to end of queue
+FILEBROWSER_POPUPMOVEHEAD;Move to head of queue
+FILEBROWSER_POPUPOPEN;Open
+FILEBROWSER_POPUPPROCESS;Put to processing queue
+FILEBROWSER_POPUPRANK1;Rank 1
+FILEBROWSER_POPUPRANK2;Rank 2
+FILEBROWSER_POPUPRANK3;Rank 3
+FILEBROWSER_POPUPRANK4;Rank 4
+FILEBROWSER_POPUPRANK5;Rank 5
+FILEBROWSER_POPUPREMOVE;Remove from filesystem
+FILEBROWSER_POPUPRENAME;Rename
+FILEBROWSER_POPUPSELECTALL;Select all
+FILEBROWSER_POPUPTRASH;Move to trash
+FILEBROWSER_POPUPUNRANK;Unrank
+FILEBROWSER_POPUPUNTRASH;Remove from trash
+FILEBROWSER_PROCESSINGSETTINGS;Settings
+FILEBROWSER_PROCESSINGSETTINGSHINT;Set the file format and output directory
+FILEBROWSER_RENAMEDLGLABEL;Rename file
+FILEBROWSER_RENAMEDLGMSG;Rename file "%1" to:
+FILEBROWSER_SHOWDIRHINT;Show all images of the directory
+FILEBROWSER_SHOWQUEUEHINT;Show content of the processing queue
+FILEBROWSER_SHOWRANK1HINT;Show images ranked as 1 star
+FILEBROWSER_SHOWRANK2HINT;Show images ranked as 2 star
+FILEBROWSER_SHOWRANK3HINT;Show images ranked as 3 star
+FILEBROWSER_SHOWRANK4HINT;Show images ranked as 4 star
+FILEBROWSER_SHOWRANK5HINT;Show images ranked as 5 star
+FILEBROWSER_SHOWTRASHHINT;Show content of the trash
+FILEBROWSER_SHOWUNRANKHINT;Show unranked images
+FILEBROWSER_STARTPROCESSING;Start processing
+FILEBROWSER_STARTPROCESSINGHINT;Start processing/saving of images in the queue
+FILEBROWSER_STOPPROCESSING;Stop processing
+FILEBROWSER_STOPPROCESSINGHINT;Stop processing of images
+FILEBROWSER_THUMBSIZE;Thumb. size
+FILEBROWSER_ZOOMINHINT;Increase thumbnail size
+FILEBROWSER_ZOOMOUTHINT;Decrease thumbnail size
+GENERAL_ABOUT;About
+GENERAL_CANCEL;Cancel
+GENERAL_DISABLE;Disable
+GENERAL_DISABLED;Disabled
+GENERAL_ENABLE;Enable
+GENERAL_ENABLED;Enabled
+GENERAL_LANDSCAPE;Landscape
+GENERAL_LOAD;Load
+GENERAL_NA;n/a
+GENERAL_NO;No
+GENERAL_OK;OK
+GENERAL_PORTRAIT;Portrait
+GENERAL_SAVE;Save
+GENERAL_YES;Yes
+HISTOGRAM_LABEL;Histogram
+HISTOGRAM_TOOLTIP_B;Show/Hide BLUE histogram
+HISTOGRAM_TOOLTIP_G;Show/Hide GREEN histogram
+HISTOGRAM_TOOLTIP_L;Show/Hide CIELAB Luminance histogram
+HISTOGRAM_TOOLTIP_R;Show/Hide RED histogram
+HISTORY_CHANGED;Changed
+HISTORY_CUSTOMCURVE;Custom Curve
+HISTORY_DELSNAPSHOT;Del
+HISTORY_FROMCLIPBOARD;From clipboard
+HISTORY_LABEL;History
+HISTORY_MSG_10;Shadow Compression
+HISTORY_MSG_11;Tone Curve
+HISTORY_MSG_12;Auto Exposure
+HISTORY_MSG_13;Exposure Clipping
+HISTORY_MSG_14;Luminance Brightness
+HISTORY_MSG_15;Luminance Contrast
+HISTORY_MSG_16;Luminance Black
+HISTORY_MSG_17;Luminance Highlight Compr.
+HISTORY_MSG_18;Luminance Shadow Compr.
+HISTORY_MSG_19;Luminance Curve
+HISTORY_MSG_1;Photo Loaded
+HISTORY_MSG_20;Sharpening
+HISTORY_MSG_21;Sharpening Radius
+HISTORY_MSG_22;Sharpening Amount
+HISTORY_MSG_23;Sharpening Threshold
+HISTORY_MSG_24;Sharpen Only Edges
+HISTORY_MSG_25;Sharpening Edge Detection Radius
+HISTORY_MSG_26;Sharpening Edge Tolerance
+HISTORY_MSG_27;Sharpening Halo Control
+HISTORY_MSG_28;Halo Control Amount
+HISTORY_MSG_29;Sharpening Method
+HISTORY_MSG_2;Profile Loaded
+HISTORY_MSG_30;Deconvolution Radius
+HISTORY_MSG_31;Deconvolution Amount
+HISTORY_MSG_32;Deconvolution Damping
+HISTORY_MSG_33;Deconvolution Iterations
+HISTORY_MSG_34;Avoid Color Clipping
+HISTORY_MSG_35;Saturation Limiter
+HISTORY_MSG_36;Saturation Limit
+HISTORY_MSG_37;Color Boost
+HISTORY_MSG_38;White Balance Method
+HISTORY_MSG_39;Color Temperature
+HISTORY_MSG_3;Profile Changed
+HISTORY_MSG_40;White Balance Tint
+HISTORY_MSG_41;Color Shift "A"
+HISTORY_MSG_42;Color Shift "B"
+HISTORY_MSG_43;Luminance Denoising
+HISTORY_MSG_44;Lum. Denoising Radius
+HISTORY_MSG_45;Lum. Denoising Edge Tolerance
+HISTORY_MSG_46;Color Denoising
+HISTORY_MSG_47;Color Denoising Radius
+HISTORY_MSG_48;Color Denoising Edge Tolerance
+HISTORY_MSG_49;Edge Sensitive Color Denoising
+HISTORY_MSG_4;History Browsing
+HISTORY_MSG_50;Shadow/Highlight tool
+HISTORY_MSG_51;Highlight boost
+HISTORY_MSG_52;Shadow Boost
+HISTORY_MSG_53;Highlight Tonal Width
+HISTORY_MSG_54;Shadow Tonal Width
+HISTORY_MSG_55;Local Contrast
+HISTORY_MSG_56;Shadow/Highlight Radius
+HISTORY_MSG_57;Coarse Rotation
+HISTORY_MSG_58;Horizontal Flipping
+HISTORY_MSG_59;Vertical Flipping
+HISTORY_MSG_5;Brightness
+HISTORY_MSG_60;Rotation
+HISTORY_MSG_61;Auto Fill
+HISTORY_MSG_62;Lens Distortion Correction
+HISTORY_MSG_63;Snapshot Selected
+HISTORY_MSG_64;Crop Photo
+HISTORY_MSG_65;C/A Correction
+HISTORY_MSG_66;Highlight Recovery
+HISTORY_MSG_67;Highlight Recovery Amount
+HISTORY_MSG_68;Highlight Recovery Method
+HISTORY_MSG_69;Working Color Space
+HISTORY_MSG_6;Contrast
+HISTORY_MSG_70;Output Color Space
+HISTORY_MSG_71;Input Color Space
+HISTORY_MSG_72;Vignetting Correction
+HISTORY_MSG_73;Channel Mixer
+HISTORY_MSG_74;Resize Scale
+HISTORY_MSG_75;Resize Method
+HISTORY_MSG_76;Exif Metadata
+HISTORY_MSG_77;IPTC Metadata
+HISTORY_MSG_78;Data specified for resize
+HISTORY_MSG_79;Resize width
+HISTORY_MSG_7;Black
+HISTORY_MSG_80;Resize height
+HISTORY_MSG_81;Resize enabled
+HISTORY_MSG_82;Profile Changed
+HISTORY_MSG_83;High quality shadows/highlights
+HISTORY_MSG_84;Perspective correction
+HISTORY_MSG_8;Exposure Compensation
+HISTORY_MSG_9;Highlight Compression
+HISTORY_NEWSNAPSHOT;Add
+HISTORY_NEWSNAPSHOTAS;As...
+HISTORY_NEWSSDIALOGLABEL;Label of the snapshot:
+HISTORY_NEWSSDIALOGTITLE;Add new snapshot
+HISTORY_SETTO;Set to
+HISTORY_SNAPSHOT;Snapshot
+HISTORY_SNAPSHOTS;Snapshots
+ICMPANEL_FILEDLGFILTERANY;Any files
+ICMPANEL_FILEDLGFILTERICM;ICC Profile Files
+ICMPANEL_GAMMABEFOREINPUT;Profile applies Gamma
+ICMPANEL_INPUTCAMERA;Camera default
+ICMPANEL_INPUTCUSTOM;Custom
+ICMPANEL_INPUTDLGLABEL;Select Input ICC Profile...
+ICMPANEL_INPUTEMBEDDED;Use Embedded, if possible
+ICMPANEL_INPUTPROFILE;Input Profile
+ICMPANEL_NOICM;No ICM: sRGB output
+ICMPANEL_OUTPUTDLGLABEL;Select Output ICC Profile...
+ICMPANEL_OUTPUTPROFILE;Output Profile
+ICMPANEL_SAVEREFERENCE;Save reference image for profiling
+ICMPANEL_WORKINGPROFILE;Working Profile
+IMAGEAREA_DETAILVIEW;Detail view
+IPTCPANEL_AUTHOR;Author
+IPTCPANEL_AUTHORHINT;Name of the creator of the object, e.g. writer, photographer or graphic artist (By-line).
+IPTCPANEL_AUTHORSPOSITION;Author's position
+IPTCPANEL_AUTHORSPOSITIONHINT;Title of the creator or creators of the object (By-line Title).
+IPTCPANEL_CAPTION;Caption
+IPTCPANEL_CAPTIONHINT;A textual description of the data (Caption - Abstract).
+IPTCPANEL_CAPTIONWRITER;Caption Writer
+IPTCPANEL_CAPTIONWRITERHINT;The name of the person involved in the writing, editing or correcting the image or caption/abstract (Writer - Editor).
+IPTCPANEL_CATEGORY;Category
+IPTCPANEL_CATEGORYHINT;Identifies the subject of the image in the opinion of the provider (Category).
+IPTCPANEL_CITY;City
+IPTCPANEL_CITYHINT;City of image origin (City).
+IPTCPANEL_COPYHINT;Copy IPTC settings to clipboard
+IPTCPANEL_COPYRIGHT;Copyright
+IPTCPANEL_COPYRIGHTHINT;Any necessary copyright notice (Copyright Notice).
+IPTCPANEL_COUNTRY;Country
+IPTCPANEL_COUNTRYHINT;The name of the country/primary location where the image was created (Country - Primary Location Name).
+IPTCPANEL_CREDIT;Credit
+IPTCPANEL_CREDITHINT;Identifies the provider of the image, not necessarily the owner/creator (Credit).
+IPTCPANEL_DATECREATED;Date Created
+IPTCPANEL_DATECREATEDHINT;The date the intellectual content of the image was created; Format: JJJJMMTT (Date Created).
+IPTCPANEL_EMBEDDED;Embedded
+IPTCPANEL_EMBEDDEDHINT;Reset to IPTC data embedded in the image file
+IPTCPANEL_HEADLINE;Headline
+IPTCPANEL_HEADLINEHINT;A publishable entry providing a synopsis of the contents of the image (Headline).
+IPTCPANEL_INSTRUCTIONS;Instructions
+IPTCPANEL_INSTRUCTIONSHINT;Other editorial instructions concerning the use of the image (Special Instructions).
+IPTCPANEL_KEYWORDS;Keywords
+IPTCPANEL_KEYWORDSHINT;Used to indicate specific information retrieval words (Keywords).
+IPTCPANEL_PASTEHINT;Paste IPTC settings from clipboard
+IPTCPANEL_PROVINCE;Province
+IPTCPANEL_PROVINCEHINT;The Province/State where the image originates (Province-State).
+IPTCPANEL_RESET;Reset
+IPTCPANEL_RESETHINT;Reset to profile default
+IPTCPANEL_SOURCE;Source
+IPTCPANEL_SOURCEHINT;The original owner of the intellectual content of the image (Source).
+IPTCPANEL_SUPPCATEGORIES;Suppl. Categories
+IPTCPANEL_SUPPCATEGORIESHINT;Further refines the subject of the image (Supplemental Categories).
+IPTCPANEL_TITLE;Title
+IPTCPANEL_TITLEHINT;A shorthand reference for the image (Object Name).
+IPTCPANEL_TRANSREFERENCE;Trans. Reference
+IPTCPANEL_TRANSREFERENCEHINT;A code representing the location of original transmission (Original Transmission Reference).
+MAIN_BUTTON_EXIT;Exit
+MAIN_BUTTON_PREFERENCES;Preferences
+MAIN_BUTTON_QUEUE;Put to queue
+MAIN_BUTTON_SAVE;Save Image
+MAIN_BUTTON_SAVEAS;As...
+MAIN_BUTTON_SENDTOEDITOR;Send to editor
MAIN_BUTTON_FULLSCREEN;Fullscreen
MAIN_BUTTON_UNFULLSCREEN;Exit fullscreen
-MAIN_FRAME_BATCHQUEUE;Batch Queue
-MAIN_FRAME_FILEBROWSER;File Browser
-MAIN_FRAME_PLACES;Places
-MAIN_FRAME_PLACES_ADD;Add
-MAIN_FRAME_PLACES_DEL;Del
-MAIN_FRAME_RECENT;Recent Folders
-MAIN_MSG_ALREADYEXISTS;File already exists.
-MAIN_MSG_CANNOTLOAD;Cannot load image
-MAIN_MSG_CANNOTSAVE;File saving error
-MAIN_MSG_CANNOTSTARTEDITOR;Can not start editor.
-MAIN_MSG_CANNOTSTARTEDITOR_SECONDARY;Please set the correct path in the "Preferences" dialog.
-MAIN_MSG_EXITJOBSINQUEUEINFO;Unprocessed images in the queue will be lost on exit.
-MAIN_MSG_EXITJOBSINQUEUEQUEST;Are you sure you want to exit? There are unprocessed images waiting in the queue.
-MAIN_MSG_JOBSINQUEUE;job(s) in the queue
-MAIN_MSG_QOVERWRITE;Do you want to overwrite it?
-MAIN_TAB_BASIC;Basic
-MAIN_TAB_COLOR;Color
-MAIN_TAB_DETAIL;Detail
-MAIN_TAB_DEVELOP;Develop
-MAIN_TAB_EXIF;Exif
-MAIN_TAB_EXPOSURE;Exposure
-MAIN_TAB_FILTER;Filter
-MAIN_TAB_ICM;ICM
-MAIN_TAB_IPTC;IPTC
-MAIN_TAB_METADATA;Metadata
-MAIN_TAB_TAGGING;Tagging
-MAIN_TAB_TRANSFORM;Transform
-MAIN_TOOLTIP_HIDEFP;Show/hide the bottom panel (directory and file browser, shortcut key: F)
-MAIN_TOOLTIP_HIDEHP;Show/hide the left panel (including the history, shortcut key: H)
-MAIN_TOOLTIP_INDCLIPPEDH;Clipped highlight indication
-MAIN_TOOLTIP_INDCLIPPEDS;Clipped shadow indication
-MAIN_TOOLTIP_PREFERENCES;Set preferences
-MAIN_TOOLTIP_QINFO;Quick info on the image
-MAIN_TOOLTIP_SAVE;Save image to the default folder
-MAIN_TOOLTIP_SAVEAS;Save image to a selected folder
-PARTIALPASTE_BASICGROUP;Basic settings
-PARTIALPASTE_CACORRECTION;C/A correction
-PARTIALPASTE_COARSETRANS;90 deg rotation / flipping
-PARTIALPASTE_COLORBOOST;Color boost
-PARTIALPASTE_COLORDENOISE;Color denoise
-PARTIALPASTE_COLORGROUP;Color related settings
-PARTIALPASTE_COLORMIXER;Color mixer
-PARTIALPASTE_COLORSHIFT;Color shift
-PARTIALPASTE_COMPOSITIONGROUP;Composition settings
-PARTIALPASTE_CROP;Crop
-PARTIALPASTE_DIALOGLABEL;Partial paste processing profile
-PARTIALPASTE_DISTORTION;Distortion correction
-PARTIALPASTE_EXIFCHANGES;Changes to exif data
-PARTIALPASTE_EXPOSURE;Exposure
-PARTIALPASTE_HLRECOVERY;Highlight recovery
-PARTIALPASTE_ICMSETTINGS;ICM settings
-PARTIALPASTE_IPTCINFO;IPTC info
-PARTIALPASTE_LENSGROUP;Lens related settings
-PARTIALPASTE_LUMACURVE;Luminance curve
-PARTIALPASTE_LUMADENOISE;Luminance noise reduction
-PARTIALPASTE_LUMINANCEGROUP;Luminance related settings
-PARTIALPASTE_METAICMGROUP;Metadata/ICM settings
-PARTIALPASTE_RESIZE;Resize
-PARTIALPASTE_ROTATION;Rotation
-PARTIALPASTE_SHADOWSHIGHLIGHTS;Shadows/Highlights
-PARTIALPASTE_SHARPENING;Sharpening
-PARTIALPASTE_VIGNETTING;Vignetting correction
-PARTIALPASTE_WHITEBALANCE;White balance
-PREFERENCES_APPLNEXTSTARTUP;applied at next startup
-PREFERENCES_BLINKCLIPPED;Blink clipped areas
-PREFERENCES_CACHECLEARALL;Clear All
-PREFERENCES_CACHECLEARPROFILES;Clear Profiles
-PREFERENCES_CACHECLEARTHUMBS;Clear Thumbnails
-PREFERENCES_CACHEFORMAT1;Proprietary (faster and better quality)
-PREFERENCES_CACHEFORMAT2;JPEG (smaller disk footprint)
-PREFERENCES_CACHEMAXENTRIES;Maximal Number of Cache Entries
-PREFERENCES_CACHEOPTS;Cache Options
-PREFERENCES_CACHESTRAT1;Prefer Speed to Low Memory Consumption
-PREFERENCES_CACHESTRAT2;Prefer Low Memory Consumption to Speed
-PREFERENCES_CACHESTRAT;Cache Strategy
-PREFERENCES_CACHETHUMBFORM;Cache Thumbnail Format
-PREFERENCES_CACHETHUMBHEIGHT;Maximal Thumbnail Height
-PREFERENCES_CLEARDLG_LINE1;Clearing cache
-PREFERENCES_CLEARDLG_LINE2;This may take a few seconds.
-PREFERENCES_CLEARDLG_TITLE;Please wait
-PREFERENCES_CLIPPINGIND;Clipping indication
-PREFERENCES_CMETRICINTENT;Colorimetric Intent
-PREFERENCES_DATEFORMAT;Date Format
-PREFERENCES_DATEFORMATHINT;You can use the following formatting strings:\n%y : year\n%m : month\n%d : day\n\nFor example, the hungarian date format is:\n%y/%m/%d
-PREFERENCES_DCBENHANCE;Apply DCB enhancement step
-PREFERENCES_DCBITERATIONS;Number of DCB iterations
+MAIN_FRAME_BATCHQUEUE;Batch Queue
+MAIN_FRAME_FILEBROWSER;File Browser
+MAIN_FRAME_PLACES;Places
+MAIN_FRAME_PLACES_ADD;Add
+MAIN_FRAME_PLACES_DEL;Del
+MAIN_FRAME_RECENT;Recent Folders
+MAIN_MSG_ALREADYEXISTS;File already exists.
+MAIN_MSG_CANNOTLOAD;Cannot load image
+MAIN_MSG_CANNOTSAVE;File saving error
+MAIN_MSG_CANNOTSTARTEDITOR;Can not start editor.
+MAIN_MSG_CANNOTSTARTEDITOR_SECONDARY;Please set the correct path in the "Preferences" dialog.
+MAIN_MSG_EXITJOBSINQUEUEINFO;Unprocessed images in the queue will be lost on exit.
+MAIN_MSG_EXITJOBSINQUEUEQUEST;Are you sure you want to exit? There are unprocessed images waiting in the queue.
+MAIN_MSG_JOBSINQUEUE;job(s) in the queue
+MAIN_MSG_QOVERWRITE;Do you want to overwrite it?
+MAIN_TAB_BASIC;Basic
+MAIN_TAB_COLOR;Color
+MAIN_TAB_DETAIL;Detail
+MAIN_TAB_DEVELOP;Develop
+MAIN_TAB_EXIF;Exif
+MAIN_TAB_EXPOSURE;Exposure
+MAIN_TAB_FILTER;Filter
+MAIN_TAB_ICM;ICM
+MAIN_TAB_IPTC;IPTC
+MAIN_TAB_METADATA;Metadata
+MAIN_TAB_TAGGING;Tagging
+MAIN_TAB_TRANSFORM;Transform
+MAIN_TOOLTIP_HIDEFP;Show/hide the bottom panel (directory and file browser, shortcut key: F)
+MAIN_TOOLTIP_HIDEHP;Show/hide the left panel (including the history, shortcut key: H)
+MAIN_TOOLTIP_INDCLIPPEDH;Clipped highlight indication
+MAIN_TOOLTIP_INDCLIPPEDS;Clipped shadow indication
+MAIN_TOOLTIP_PREFERENCES;Set preferences
+MAIN_TOOLTIP_QINFO;Quick info on the image
+MAIN_TOOLTIP_SAVE;Save image to the default folder
+MAIN_TOOLTIP_SAVEAS;Save image to a selected folder
+PARTIALPASTE_BASICGROUP;Basic settings
+PARTIALPASTE_CACORRECTION;C/A correction
+PARTIALPASTE_COARSETRANS;90 deg rotation / flipping
+PARTIALPASTE_COLORBOOST;Color boost
+PARTIALPASTE_COLORDENOISE;Color denoise
+PARTIALPASTE_COLORGROUP;Color related settings
+PARTIALPASTE_COLORMIXER;Color mixer
+PARTIALPASTE_COLORSHIFT;Color shift
+PARTIALPASTE_COMPOSITIONGROUP;Composition settings
+PARTIALPASTE_CROP;Crop
+PARTIALPASTE_DIALOGLABEL;Partial paste processing profile
+PARTIALPASTE_DISTORTION;Distortion correction
+PARTIALPASTE_EXIFCHANGES;Changes to exif data
+PARTIALPASTE_EXPOSURE;Exposure
+PARTIALPASTE_HLRECOVERY;Highlight recovery
+PARTIALPASTE_ICMSETTINGS;ICM settings
+PARTIALPASTE_IPTCINFO;IPTC info
+PARTIALPASTE_LENSGROUP;Lens related settings
+PARTIALPASTE_LUMACURVE;Luminance curve
+PARTIALPASTE_LUMADENOISE;Luminance noise reduction
+PARTIALPASTE_LUMINANCEGROUP;Luminance related settings
+PARTIALPASTE_METAICMGROUP;Metadata/ICM settings
+PARTIALPASTE_RESIZE;Resize
+PARTIALPASTE_ROTATION;Rotation
+PARTIALPASTE_SHADOWSHIGHLIGHTS;Shadows/Highlights
+PARTIALPASTE_SHARPENING;Sharpening
+PARTIALPASTE_VIGNETTING;Vignetting correction
+PARTIALPASTE_WHITEBALANCE;White balance
+PREFERENCES_APPLNEXTSTARTUP;applied at next startup
+PREFERENCES_BLINKCLIPPED;Blink clipped areas
+PREFERENCES_CACHECLEARALL;Clear All
+PREFERENCES_CACHECLEARPROFILES;Clear Profiles
+PREFERENCES_CACHECLEARTHUMBS;Clear Thumbnails
+PREFERENCES_CACHEFORMAT1;Proprietary (faster and better quality)
+PREFERENCES_CACHEFORMAT2;JPEG (smaller disk footprint)
+PREFERENCES_CACHEMAXENTRIES;Maximal Number of Cache Entries
+PREFERENCES_CACHEOPTS;Cache Options
+PREFERENCES_CACHESTRAT1;Prefer Speed to Low Memory Consumption
+PREFERENCES_CACHESTRAT2;Prefer Low Memory Consumption to Speed
+PREFERENCES_CACHESTRAT;Cache Strategy
+PREFERENCES_CACHETHUMBFORM;Cache Thumbnail Format
+PREFERENCES_CACHETHUMBHEIGHT;Maximal Thumbnail Height
+PREFERENCES_CLEARDLG_LINE1;Clearing cache
+PREFERENCES_CLEARDLG_LINE2;This may take a few seconds.
+PREFERENCES_CLEARDLG_TITLE;Please wait
+PREFERENCES_CLIPPINGIND;Clipping indication
+PREFERENCES_CMETRICINTENT;Colorimetric Intent
+PREFERENCES_DATEFORMAT;Date Format
+PREFERENCES_DATEFORMATHINT;You can use the following formatting strings:\n%y : year\n%m : month\n%d : day\n\nFor example, the hungarian date format is:\n%y/%m/%d
+PREFERENCES_DCBENHANCE;Apply DCB enhancement step
+PREFERENCES_DCBITERATIONS;Number of DCB iterations
#Emil's CA autocorrection
PREFERENCES_CACORRECTION;Apply CA auto correction
-#Emil's hot/dead pixel filter
+#Emil's hot/dead pixel filter
PREFERENCES_HOTDEADPIXFILT;Apply hot/dead pixel filter
#Emil's line noise filter
PREFERENCES_LINEDENOISE;Line noise filter
PREFERENCES_GREENEQUIL;Green equilibration
-PREFERENCES_DEFAULTLANG;Default language
-PREFERENCES_DEFAULTTHEME;Default theme
-PREFERENCES_DEMOSAICINGALGO;Demosaicing Algorithm
-PREFERENCES_DIRHOME;Home directory
-PREFERENCES_DIRLAST;Last visited directory
-PREFERENCES_DIROTHER;Other
-PREFERENCES_DIRSELECTDLG;Select Image Directory at Startup...
-PREFERENCES_DIRSOFTWARE;Installation directory
-PREFERENCES_DMETHOD;Method
-PREFERENCES_EDITORCMDLINE;Other command line
-PREFERENCES_EXTERNALEDITOR;External editor
-PREFERENCES_FALSECOLOR;False color suppression steps
-PREFERENCES_FBROWSEROPTS;File Browser Options
-PREFERENCES_FILEFORMAT;File format
-PREFERENCES_FORIMAGE;For image files
-PREFERENCES_FORRAW;For RAW files
-PREFERENCES_GIMPPATH;GIMP installation directory
-PREFERENCES_GTKTHEME;GTK default
-PREFERENCES_HINT;Hint
-PREFERENCES_HLTHRESHOLD;Threshold for clipped highlights
-PREFERENCES_ICCDIR;Directory of ICC profiles
-PREFERENCES_IMPROCPARAMS;Default image processing parameters
-PREFERENCES_INTENT_ABSOLUTE;Absolute Colorimetric
-PREFERENCES_INTENT_PERCEPTUAL;Perceptual
-PREFERENCES_INTENT_RELATIVE;Relative Colorimetric
-PREFERENCES_INTENT_SATURATION;Saturation
-PREFERENCES_LIVETHUMBNAILS;Live Thumbnails (slower)
-PREFERENCES_MONITORICC;Monitor Profile
-PREFERENCES_OUTDIR;Output Directory
-PREFERENCES_OUTDIRFOLDER;Save to folder
-PREFERENCES_OUTDIRFOLDERHINT;Put the saved images to the selected folder
-PREFERENCES_OUTDIRHINT;You can use the following formatting strings:\n%f, %d1, %d2, ..., %p1, %p2, ...\n\nThese formatting strings refer to the directories and sub-paths of the path of the raw file.\n\nFor example, if /home/tom/image/02-09-2006/dsc0012.nefhas been opened, the meaning of the formatting strings are:\n%f=dsc0012, %d1=02-09-2006, %d2=image, ...\n%p1=/home/tom/image/02-09-2006, %p2=/home/tom/image, %p3=/home/tom, ...\n\nIf you want to save the output image where the original is, write:\n%p1/%f\n\nIf you want to save the output image in a directory 'converted' located the directory of the original, write:\n%p1/converted/%f\n\nIf you want to save the output image in directory '/home/tom/converted' with keeping the same subdirectory of dates, write:\n%p2/converted/%d1/%f
-PREFERENCES_OUTDIRTEMPLATE;Use Template
-PREFERENCES_OUTDIRTEMPLATEHINT;You can use the following formatting strings:\n%f, %d1, %d2, ..., %p1, %p2, ...\n\nThese formatting strings refer to the directories and sub-paths of the path of the raw file.\n\nFor example, if /home/tom/image/02-09-2006/dsc0012.nefhas been opened, the meaning of the formatting strings are:\n%f=dsc0012, %d1=02-09-2006, %d2=image, ...\n%p1=/home/tom/image/02-09-2006, %p2=/home/tom/image, %p3=/home/tom, ...\n\nIf you want to save the output image where the original is, write:\n%p1/%f\n\nIf you want to save the output image in a directory 'converted' located the directory of the original, write:\n%p1/converted/%f\n\nIf you want to save the output image in directory '/home/tom/converted' with keeping the same subdirectory of dates, write:\n%p2/converted/%d1/%f
-PREFERENCES_PARSEDEXT;Parsed Extensions
-PREFERENCES_PARSEDEXTADD;Add Extension
-PREFERENCES_PARSEDEXTADDHINT;Type an extension and press this button to append list
-PREFERENCES_PARSEDEXTDELHINT;Delete selected extension from the list
-PREFERENCES_PROFILEHANDLING;Processing Profile Handling
-PREFERENCES_PROFILELOADPR;Profile Loading Priority
-PREFERENCES_PROFILEPRCACHE;Profile in Cache
-PREFERENCES_PROFILEPRFILE;Profile Next to the Input File
-PREFERENCES_PROFILESAVECACHE;Save Processing Parameters to the Cache
-PREFERENCES_PROFILESAVEINPUT;Save Processing Parameters Next to the Input File
-PREFERENCES_PSPATH;Adobe Photoshop installation directory
-PREFERENCES_SELECTICCDIRDLG;Select ICC Profile Directory...
-PREFERENCES_SELECTLANG;Select language
-PREFERENCES_SELECTMONITORPROFDLG;Select ICC Profile of the Display...
-PREFERENCES_SELECTTHEME;Select theme
-PREFERENCES_SHOWBASICEXIF;Show basic Exif info
-PREFERENCES_SHOWDATETIME;Show date and time
-PREFERENCES_SHOWONLYRAW;Show only RAW files
-PREFERENCES_SHTHRESHOLD;Threshold for clipped shadows
-PREFERENCES_STARTUPIMDIR;Image directory at startup
-PREFERENCES_TAB_BROWSER;File Browser
-PREFERENCES_TAB_COLORMGR;Color Management
-PREFERENCES_TAB_GENERAL;General
-PREFERENCES_TAB_IMPROC;Image Processing
-PREFERENCES_TAB_OUTPUT;Output Options
-PREFERENCES_THUMBSIZE;Thumbnail Size
-PROFILEPANEL_FILEDLGFILTERANY;Any files
-PROFILEPANEL_FILEDLGFILTERPP;Postprocessing profiles
-PROFILEPANEL_LABEL;Postprocessing Profiles
-PROFILEPANEL_LOADDLGLABEL;Load Postprocessing Parameters...
-PROFILEPANEL_PCUSTOM;Custom
-PROFILEPANEL_PFILE;From file
-PROFILEPANEL_PLASTPHOTO;Last Photo
-PROFILEPANEL_PLASTSAVED;Last Saved
-PROFILEPANEL_PROFILE;Profile
-PROFILEPANEL_SAVEDLGLABEL;Save Postprocessing Parameters...
-PROFILEPANEL_TOOLTIPCOPY;Copy current profile to clipboard
-PROFILEPANEL_TOOLTIPLOAD;Load a profile from file
-PROFILEPANEL_TOOLTIPPASTE; Paste profile from clipboard
-PROFILEPANEL_TOOLTIPSAVE;Save current profile
-PROGRESSBAR_DECODING;Decoding raw file...
-PROGRESSBAR_DEMOSAICING;Demosaicing...
-PROGRESSBAR_LOADING;Loading Image...
-PROGRESSBAR_LOADJPEG;Loading JPEG file...
-PROGRESSBAR_LOADPNG;Loading PNG file...
-PROGRESSBAR_LOADTIFF;Loading TIFF file...
-PROGRESSBAR_PROCESSING;Processing Image...
-PROGRESSBAR_READY;Ready.
-PROGRESSBAR_SAVEJPEG;Saving JPEG file...
-PROGRESSBAR_SAVEPNG;Saving PNG file...
-PROGRESSBAR_SAVETIFF;Saving TIFF file...
-PROGRESSDLG_LOADING;Loading file...
-PROGRESSDLG_PROCESSING;Processing image...
-PROGRESSDLG_SAVING;Saving file...
-QINFO_FOCALLENGTH;Focal length
-QINFO_ISO;ISO
-QINFO_LENS;Lens
-QINFO_NOEXIF;Exif data not available.
-SAVEDLG_FILEFORMAT;File format
-SAVEDLG_JPEGQUAL;JPEG Quality
-SAVEDLG_JPGFILTER;JPEG files
-SAVEDLG_PNGCOMPR;PNG Compression
-SAVEDLG_PNGFILTER;PNG files
-SAVEDLG_PUTTOQUEUE;Put into processing queue
-SAVEDLG_PUTTOQUEUEHEAD;Put to the head of the processing queue
-SAVEDLG_PUTTOQUEUETAIL;Put to the end of the processing queue
-SAVEDLG_SAVEIMMEDIATELY;Save immediately
-SAVEDLG_SAVESPP;Save processing parameters with image
-SAVEDLG_TIFFFILTER;TIFF files
-TOOLBAR_TOOLTIP_CROP;Crop selection (Shortcut key: C)
-TOOLBAR_TOOLTIP_HAND;Hand tool (Shortcut key: N)
-TOOLBAR_TOOLTIP_STRAIGHTEN;Straight line selection (Shortcut key: S)
-TOOLBAR_TOOLTIP_WB;Spot white balance (Shortcut key: W)
-TP_CACORRECTION_BLUE;Blue
-TP_CACORRECTION_LABEL;C/A Correction
-TP_CACORRECTION_RED;Red
-TP_CHMIXER_BLUE;Blue
-TP_CHMIXER_GREEN;Green
-TP_CHMIXER_LABEL;Channel Mixer
-TP_CHMIXER_RED;Red
-TP_COARSETRAF_DEGREE;degree:
-TP_COARSETRAF_TOOLTIP_HFLIP;Flip horizontally
-TP_COARSETRAF_TOOLTIP_ROTLEFT;Rotate left
-TP_COARSETRAF_TOOLTIP_ROTRIGHT;Rotate right
-TP_COARSETRAF_TOOLTIP_VFLIP;Flip vertically
-TP_COLORBOOST_ACHANNEL;Channel "a"
-TP_COLORBOOST_AMOUNT;Amount
-TP_COLORBOOST_AVOIDCOLORCLIP;Avoid color clipping
-TP_COLORBOOST_BCHANNEL;Channel "b"
-TP_COLORBOOST_CHAB;a & b
-TP_COLORBOOST_CHANNEL;Channel
-TP_COLORBOOST_CHSEPARATE;separate
-TP_COLORBOOST_ENABLESATLIMITER;Enable saturation limiter
-TP_COLORBOOST_LABEL;Color Boost
-TP_COLORBOOST_SATLIMIT;Saturation limit
-TP_COLORDENOISE_EDGESENSITIVE;Edge Sensitive
-TP_COLORDENOISE_EDGETOLERANCE;Edge Tolerance
-TP_COLORDENOISE_LABEL;Color Noise Reduction
-TP_COLORDENOISE_RADIUS;Radius
-TP_COLORSHIFT_BLUEYELLOW;Blue-Yellow
-TP_COLORSHIFT_GREENMAGENTA;Green-Magenta
-TP_COLORSHIFT_LABEL;Color Shift
-TP_CROP_DPI;DPI=
-TP_CROP_FIXRATIO;Fix Ratio:
-TP_CROP_GTDIAGONALS;Rule of diagonals
-TP_CROP_GTHARMMEANS1;Harmonic means 1
-TP_CROP_GTHARMMEANS2;Harmonic means 2
-TP_CROP_GTHARMMEANS3;Harmonic means 3
-TP_CROP_GTHARMMEANS4;Harmonic means 4
-TP_CROP_GTNONE;None
-TP_CROP_GTRULETHIRDS;Rule of thirds
-TP_CROP_GUIDETYPE;Guide Type:
-TP_CROP_H;H
-TP_CROP_LABEL;Crop
-TP_CROP_SELECTCROP; Select Crop
-TP_CROP_W;W
-TP_CROP_X;x
-TP_CROP_Y;y
-TP_DISTORTION_AMOUNT;Amount
-TP_DISTORTION_LABEL;Distortion
-TP_EXPOSURE_AUTOLEVELS;Auto Levels
-TP_EXPOSURE_BLACKLEVEL;Black
-TP_EXPOSURE_BRIGHTNESS;Brightness
-TP_EXPOSURE_CLIP;Clip
-TP_EXPOSURE_COMPRHIGHLIGHTS;Highlight compression
-TP_EXPOSURE_COMPRSHADOWS;Shadow compression
-TP_EXPOSURE_CONTRAST;Contrast
-TP_EXPOSURE_CURVEEDITOR;Tone Curve
-TP_EXPOSURE_EXPCOMP;Exp. Comp.
-TP_EXPOSURE_LABEL;Exposure
-TP_HLREC_CIELAB;CIELab Blending
-TP_HLREC_COLOR;Color Propagation
-TP_HLREC_LABEL;Highlight Recovery
-TP_HLREC_LUMINANCE;Luminance Recovery
-TP_HLREC_METHOD;Method:
-TP_ICM_FILEDLGFILTERANY;Any files
-TP_ICM_FILEDLGFILTERICM;ICC Profile Files
-TP_ICM_GAMMABEFOREINPUT;Profile applies Gamma
-TP_ICM_INPUTCAMERA;Camera default
-TP_ICM_INPUTCUSTOM;Custom
-TP_ICM_INPUTDLGLABEL;Select Input ICC Profile...
-TP_ICM_INPUTEMBEDDED;Use Embedded, if possible
-TP_ICM_INPUTPROFILE;Input Profile
-TP_ICM_LABEL;ICM
-TP_ICM_NOICM;No ICM: sRGB output
-TP_ICM_OUTPUTDLGLABEL;Select Output ICC Profile...
-TP_ICM_OUTPUTPROFILE;Output Profile
-TP_ICM_SAVEREFERENCE;Save reference image for profiling
+PREFERENCES_DEFAULTLANG;Default language
+PREFERENCES_DEFAULTTHEME;Default theme
+PREFERENCES_DEMOSAICINGALGO;Demosaicing Algorithm
+PREFERENCES_DIRHOME;Home directory
+PREFERENCES_DIRLAST;Last visited directory
+PREFERENCES_DIROTHER;Other
+PREFERENCES_DIRSELECTDLG;Select Image Directory at Startup...
+PREFERENCES_DIRSOFTWARE;Installation directory
+PREFERENCES_DMETHOD;Method
+PREFERENCES_EDITORCMDLINE;Other command line
+PREFERENCES_EXTERNALEDITOR;External editor
+PREFERENCES_FALSECOLOR;False color suppression steps
+PREFERENCES_FBROWSEROPTS;File Browser Options
+PREFERENCES_FILEFORMAT;File format
+PREFERENCES_FORIMAGE;For image files
+PREFERENCES_FORRAW;For RAW files
+PREFERENCES_GIMPPATH;GIMP installation directory
+PREFERENCES_GTKTHEME;GTK default
+PREFERENCES_HINT;Hint
+PREFERENCES_HLTHRESHOLD;Threshold for clipped highlights
+PREFERENCES_ICCDIR;Directory of ICC profiles
+PREFERENCES_IMPROCPARAMS;Default image processing parameters
+PREFERENCES_INTENT_ABSOLUTE;Absolute Colorimetric
+PREFERENCES_INTENT_PERCEPTUAL;Perceptual
+PREFERENCES_INTENT_RELATIVE;Relative Colorimetric
+PREFERENCES_INTENT_SATURATION;Saturation
+PREFERENCES_LIVETHUMBNAILS;Live Thumbnails (slower)
+PREFERENCES_MONITORICC;Monitor Profile
+PREFERENCES_OUTDIR;Output Directory
+PREFERENCES_OUTDIRFOLDER;Save to folder
+PREFERENCES_OUTDIRFOLDERHINT;Put the saved images to the selected folder
+PREFERENCES_OUTDIRHINT;You can use the following formatting strings:\n%f, %d1, %d2, ..., %p1, %p2, ...\n\nThese formatting strings refer to the directories and sub-paths of the path of the raw file.\n\nFor example, if /home/tom/image/02-09-2006/dsc0012.nefhas been opened, the meaning of the formatting strings are:\n%f=dsc0012, %d1=02-09-2006, %d2=image, ...\n%p1=/home/tom/image/02-09-2006, %p2=/home/tom/image, %p3=/home/tom, ...\n\nIf you want to save the output image where the original is, write:\n%p1/%f\n\nIf you want to save the output image in a directory 'converted' located the directory of the original, write:\n%p1/converted/%f\n\nIf you want to save the output image in directory '/home/tom/converted' with keeping the same subdirectory of dates, write:\n%p2/converted/%d1/%f
+PREFERENCES_OUTDIRTEMPLATE;Use Template
+PREFERENCES_OUTDIRTEMPLATEHINT;You can use the following formatting strings:\n%f, %d1, %d2, ..., %p1, %p2, ...\n\nThese formatting strings refer to the directories and sub-paths of the path of the raw file.\n\nFor example, if /home/tom/image/02-09-2006/dsc0012.nefhas been opened, the meaning of the formatting strings are:\n%f=dsc0012, %d1=02-09-2006, %d2=image, ...\n%p1=/home/tom/image/02-09-2006, %p2=/home/tom/image, %p3=/home/tom, ...\n\nIf you want to save the output image where the original is, write:\n%p1/%f\n\nIf you want to save the output image in a directory 'converted' located the directory of the original, write:\n%p1/converted/%f\n\nIf you want to save the output image in directory '/home/tom/converted' with keeping the same subdirectory of dates, write:\n%p2/converted/%d1/%f
+PREFERENCES_PARSEDEXT;Parsed Extensions
+PREFERENCES_PARSEDEXTADD;Add Extension
+PREFERENCES_PARSEDEXTADDHINT;Type an extension and press this button to append list
+PREFERENCES_PARSEDEXTDELHINT;Delete selected extension from the list
+PREFERENCES_PROFILEHANDLING;Processing Profile Handling
+PREFERENCES_PROFILELOADPR;Profile Loading Priority
+PREFERENCES_PROFILEPRCACHE;Profile in Cache
+PREFERENCES_PROFILEPRFILE;Profile Next to the Input File
+PREFERENCES_PROFILESAVECACHE;Save Processing Parameters to the Cache
+PREFERENCES_PROFILESAVEINPUT;Save Processing Parameters Next to the Input File
+PREFERENCES_PSPATH;Adobe Photoshop installation directory
+PREFERENCES_SELECTICCDIRDLG;Select ICC Profile Directory...
+PREFERENCES_SELECTLANG;Select language
+PREFERENCES_SELECTMONITORPROFDLG;Select ICC Profile of the Display...
+PREFERENCES_SELECTTHEME;Select theme
+PREFERENCES_SHOWBASICEXIF;Show basic Exif info
+PREFERENCES_SHOWDATETIME;Show date and time
+PREFERENCES_SHOWONLYRAW;Show only RAW files
+PREFERENCES_SHTHRESHOLD;Threshold for clipped shadows
+PREFERENCES_STARTUPIMDIR;Image directory at startup
+PREFERENCES_TAB_BROWSER;File Browser
+PREFERENCES_TAB_COLORMGR;Color Management
+PREFERENCES_TAB_GENERAL;General
+PREFERENCES_TAB_IMPROC;Image Processing
+PREFERENCES_TAB_OUTPUT;Output Options
+PREFERENCES_THUMBSIZE;Thumbnail Size
+PROFILEPANEL_FILEDLGFILTERANY;Any files
+PROFILEPANEL_FILEDLGFILTERPP;Postprocessing profiles
+PROFILEPANEL_LABEL;Postprocessing Profiles
+PROFILEPANEL_LOADDLGLABEL;Load Postprocessing Parameters...
+PROFILEPANEL_PCUSTOM;Custom
+PROFILEPANEL_PFILE;From file
+PROFILEPANEL_PLASTPHOTO;Last Photo
+PROFILEPANEL_PLASTSAVED;Last Saved
+PROFILEPANEL_PROFILE;Profile
+PROFILEPANEL_SAVEDLGLABEL;Save Postprocessing Parameters...
+PROFILEPANEL_TOOLTIPCOPY;Copy current profile to clipboard
+PROFILEPANEL_TOOLTIPLOAD;Load a profile from file
+PROFILEPANEL_TOOLTIPPASTE; Paste profile from clipboard
+PROFILEPANEL_TOOLTIPSAVE;Save current profile
+PROGRESSBAR_DECODING;Decoding raw file...
+PROGRESSBAR_DEMOSAICING;Demosaicing...
+PROGRESSBAR_LOADING;Loading Image...
+PROGRESSBAR_LOADJPEG;Loading JPEG file...
+PROGRESSBAR_LOADPNG;Loading PNG file...
+PROGRESSBAR_LOADTIFF;Loading TIFF file...
+PROGRESSBAR_PROCESSING;Processing Image...
+PROGRESSBAR_READY;Ready.
+PROGRESSBAR_SAVEJPEG;Saving JPEG file...
+PROGRESSBAR_SAVEPNG;Saving PNG file...
+PROGRESSBAR_SAVETIFF;Saving TIFF file...
+PROGRESSDLG_LOADING;Loading file...
+PROGRESSDLG_PROCESSING;Processing image...
+PROGRESSDLG_SAVING;Saving file...
+QINFO_FOCALLENGTH;Focal length
+QINFO_ISO;ISO
+QINFO_LENS;Lens
+QINFO_NOEXIF;Exif data not available.
+SAVEDLG_FILEFORMAT;File format
+SAVEDLG_JPEGQUAL;JPEG Quality
+SAVEDLG_JPGFILTER;JPEG files
+SAVEDLG_PNGCOMPR;PNG Compression
+SAVEDLG_PNGFILTER;PNG files
+SAVEDLG_PUTTOQUEUE;Put into processing queue
+SAVEDLG_PUTTOQUEUEHEAD;Put to the head of the processing queue
+SAVEDLG_PUTTOQUEUETAIL;Put to the end of the processing queue
+SAVEDLG_SAVEIMMEDIATELY;Save immediately
+SAVEDLG_SAVESPP;Save processing parameters with image
+SAVEDLG_TIFFFILTER;TIFF files
+TOOLBAR_TOOLTIP_CROP;Crop selection (Shortcut key: C)
+TOOLBAR_TOOLTIP_HAND;Hand tool (Shortcut key: N)
+TOOLBAR_TOOLTIP_STRAIGHTEN;Straight line selection (Shortcut key: S)
+TOOLBAR_TOOLTIP_WB;Spot white balance (Shortcut key: W)
+TP_CACORRECTION_BLUE;Blue
+TP_CACORRECTION_LABEL;C/A Correction
+TP_CACORRECTION_RED;Red
+TP_CHMIXER_BLUE;Blue
+TP_CHMIXER_GREEN;Green
+TP_CHMIXER_LABEL;Channel Mixer
+TP_CHMIXER_RED;Red
+TP_COARSETRAF_DEGREE;degree:
+TP_COARSETRAF_TOOLTIP_HFLIP;Flip horizontally
+TP_COARSETRAF_TOOLTIP_ROTLEFT;Rotate left
+TP_COARSETRAF_TOOLTIP_ROTRIGHT;Rotate right
+TP_COARSETRAF_TOOLTIP_VFLIP;Flip vertically
+TP_COLORBOOST_ACHANNEL;Channel "a"
+TP_COLORBOOST_AMOUNT;Amount
+TP_COLORBOOST_AVOIDCOLORCLIP;Avoid color clipping
+TP_COLORBOOST_BCHANNEL;Channel "b"
+TP_COLORBOOST_CHAB;a & b
+TP_COLORBOOST_CHANNEL;Channel
+TP_COLORBOOST_CHSEPARATE;separate
+TP_COLORBOOST_ENABLESATLIMITER;Enable saturation limiter
+TP_COLORBOOST_LABEL;Color Boost
+TP_COLORBOOST_SATLIMIT;Saturation limit
+TP_COLORDENOISE_EDGESENSITIVE;Edge Sensitive
+TP_COLORDENOISE_EDGETOLERANCE;Edge Tolerance
+TP_COLORDENOISE_LABEL;Color Noise Reduction
+TP_COLORDENOISE_RADIUS;Radius
+TP_COLORSHIFT_BLUEYELLOW;Blue-Yellow
+TP_COLORSHIFT_GREENMAGENTA;Green-Magenta
+TP_COLORSHIFT_LABEL;Color Shift
+TP_CROP_DPI;DPI=
+TP_CROP_FIXRATIO;Fix Ratio:
+TP_CROP_GTDIAGONALS;Rule of diagonals
+TP_CROP_GTHARMMEANS1;Harmonic means 1
+TP_CROP_GTHARMMEANS2;Harmonic means 2
+TP_CROP_GTHARMMEANS3;Harmonic means 3
+TP_CROP_GTHARMMEANS4;Harmonic means 4
+TP_CROP_GTNONE;None
+TP_CROP_GTRULETHIRDS;Rule of thirds
+TP_CROP_GUIDETYPE;Guide Type:
+TP_CROP_H;H
+TP_CROP_LABEL;Crop
+TP_CROP_SELECTCROP; Select Crop
+TP_CROP_W;W
+TP_CROP_X;x
+TP_CROP_Y;y
+TP_DISTORTION_AMOUNT;Amount
+TP_DISTORTION_LABEL;Distortion
+TP_EQUALIZER_LABEL;Wavelet equalizer
+TP_EQUALIZER_FINEST;finest
+TP_EQUALIZER_LARGEST;coarsest
+TP_EXPOSURE_AUTOLEVELS;Auto Levels
+TP_EXPOSURE_BLACKLEVEL;Black
+TP_EXPOSURE_BRIGHTNESS;Brightness
+TP_EXPOSURE_CLIP;Clip
+TP_EXPOSURE_COMPRHIGHLIGHTS;Highlight compression
+TP_EXPOSURE_COMPRSHADOWS;Shadow compression
+TP_EXPOSURE_CONTRAST;Contrast
+TP_EXPOSURE_CURVEEDITOR;Tone Curve
+TP_EXPOSURE_EXPCOMP;Exp. Comp.
+TP_EXPOSURE_LABEL;Exposure
+TP_HLREC_CIELAB;CIELab Blending
+TP_HLREC_COLOR;Color Propagation
+TP_HLREC_LABEL;Highlight Recovery
+TP_HLREC_LUMINANCE;Luminance Recovery
+TP_HLREC_METHOD;Method:
+TP_ICM_FILEDLGFILTERANY;Any files
+TP_ICM_FILEDLGFILTERICM;ICC Profile Files
+TP_ICM_GAMMABEFOREINPUT;Profile applies Gamma
+TP_ICM_INPUTCAMERA;Camera default
+TP_ICM_INPUTCUSTOM;Custom
+TP_ICM_INPUTDLGLABEL;Select Input ICC Profile...
+TP_ICM_INPUTEMBEDDED;Use Embedded, if possible
+TP_ICM_INPUTPROFILE;Input Profile
+TP_ICM_LABEL;ICM
+TP_ICM_NOICM;No ICM: sRGB output
+TP_ICM_OUTPUTDLGLABEL;Select Output ICC Profile...
+TP_ICM_OUTPUTPROFILE;Output Profile
+TP_ICM_SAVEREFERENCE;Save reference image for profiling
TP_ICM_WORKINGPROFILE;Working Profile
TP_LENSGEOM_AUTOCROP;Auto Crop
TP_LENSGEOM_FILL;Auto Fill
TP_LENSGEOM_LABEL;Lens / Geometry
-TP_LUMACURVE_BLACKLEVEL;Black
-TP_LUMACURVE_BRIGHTNESS;Brightness
-TP_LUMACURVE_COMPRHIGHLIGHTS;Highlight compression
-TP_LUMACURVE_COMPRSHADOWS;Shadow compression
-TP_LUMACURVE_CONTRAST;Contrast
-TP_LUMACURVE_CURVEEDITOR;Luminance Curve
-TP_LUMACURVE_LABEL;Luminance Curve
-TP_LUMADENOISE_EDGETOLERANCE;Edge Tolerance
-TP_LUMADENOISE_LABEL;Luminance Noise Reduction
-TP_LUMADENOISE_RADIUS;Radius
-TP_PERSPECTIVE_LABEL;Perspective
-TP_PERSPECTIVE_HORIZONTAL;Horizontal
-TP_PERSPECTIVE_VERTICAL;Vertical
-TP_RESIZE_BICUBIC;Bicubic
-TP_RESIZE_BICUBICSF;Bicubic (Softer)
-TP_RESIZE_BICUBICSH;Bicubic (Sharper)
-TP_RESIZE_BILINEAR;Bilinear
-TP_RESIZE_DOWNSCALEB;Downscale (Better)
-TP_RESIZE_DOWNSCALEF;Downscale (Faster)
-TP_RESIZE_FULLSIZE;Full Image Size:
-TP_RESIZE_H;H:
-TP_RESIZE_LABEL;Resize
-TP_RESIZE_METHOD;Method:
-TP_RESIZE_NEAREST;Nearest
-TP_RESIZE_SCALE;Scale
-TP_RESIZE_W;W:
-TP_ROTATE_DEGREE;Degree
-TP_ROTATE_LABEL;Rotate
-TP_ROTATE_SELECTLINE; Select Straight Line
-TP_SHADOWSHLIGHTS_HIGHLIGHTS;Highlights
-TP_SHADOWSHLIGHTS_HLTONALW;Tonal Width
-TP_SHADOWSHLIGHTS_LABEL;Shadows/Highlights
-TP_SHADOWSHLIGHTS_LOCALCONTR;Local Contrast
-TP_SHADOWSHLIGHTS_RADIUS;Radius
-TP_SHADOWSHLIGHTS_SHADOWS;Shadows
-TP_SHADOWSHLIGHTS_SHTONALW;Tonal Width
-TP_SHARPENING_AMOUNT;Amount
-TP_SHARPENING_EDRADIUS;Radius
-TP_SHARPENING_EDTOLERANCE;Edge tolerance
-TP_SHARPENING_HALOCONTROL;Halo control
-TP_SHARPENING_HCAMOUNT;Amount
-TP_SHARPENING_LABEL;Sharpening
-TP_SHARPENING_METHOD;Method
-TP_SHARPENING_ONLYEDGES;Sharpen only edges
-TP_SHARPENING_RADIUS;Radius
-TP_SHARPENING_RLD;RL Deconvolution
-TP_SHARPENING_RLD_AMOUNT;Amount
-TP_SHARPENING_RLD_DAMPING;Damping
-TP_SHARPENING_RLD_ITERATIONS;Iterations
-TP_SHARPENING_THRESHOLD;Threshold
-TP_SHARPENING_USM;Unsharp Mask
-TP_VIGNETTING_AMOUNT;Amount
-TP_VIGNETTING_LABEL;Vignetting Correction
-TP_VIGNETTING_RADIUS;Radius
-TP_WBALANCE_AUTO;Auto
-TP_WBALANCE_CAMERA;Camera
-TP_WBALANCE_CUSTOM;Custom
-TP_WBALANCE_GREEN;Tint
-TP_WBALANCE_LABEL;White Balance
-TP_WBALANCE_METHOD;Method
-TP_WBALANCE_SIZE;Size:
-TP_WBALANCE_SPOTWB;Spot WB
-TP_WBALANCE_TEMPERATURE;Temperature
-ZOOMBAR_DETAIL;Detail
-ZOOMBAR_HUGE;Huge
-ZOOMBAR_LARGE;Large
-ZOOMBAR_NORMAL;Normal
-ZOOMBAR_PREVIEW;Preview
-ZOOMBAR_SCALE;Scale
-ZOOMBAR_SMALL;Small
-
-GENERAL_HIGH_QUALITY;High Quality
-GENERAL_UNCHANGED;(Unchanged)
-MAIN_MSG_PLACES;Places
-GENERAL_BEFORE;Before
-GENERAL_AFTER;After
-MAIN_TOOLTIP_TOGGLE;Toggle before/after view
-MAIN_BUTTON_PUTTOQUEUE;Put to queue
-MAIN_MSG_NAVIGATOR;Navigator
-FILEBROWSER_TOOLTIP_STOPPROCESSING;Start processing automatically when a new job arrives
-BATCHQUEUE_AUTOSTART;Auto start
-TP_DETAIL_AMOUNT;Amount
-TP_RESIZE_SPECIFY;Specify:
-TP_RESIZE_SCALE;Scale
-TP_RESIZE_WIDTH;Width
-TP_RESIZE_HEIGHT;Height
-MAIN_TOGGLE_BEFORE_AFTER;B|A
-
+TP_LUMACURVE_BLACKLEVEL;Black
+TP_LUMACURVE_BRIGHTNESS;Brightness
+TP_LUMACURVE_COMPRHIGHLIGHTS;Highlight compression
+TP_LUMACURVE_COMPRSHADOWS;Shadow compression
+TP_LUMACURVE_CONTRAST;Contrast
+TP_LUMACURVE_CURVEEDITOR;Luminance Curve
+TP_LUMACURVE_LABEL;Luminance Curve
+TP_LUMADENOISE_EDGETOLERANCE;Edge Tolerance
+TP_LUMADENOISE_LABEL;Luminance Noise Reduction
+TP_LUMADENOISE_RADIUS;Radius
+TP_PERSPECTIVE_LABEL;Perspective
+TP_PERSPECTIVE_HORIZONTAL;Horizontal
+TP_PERSPECTIVE_VERTICAL;Vertical
+TP_RESIZE_BICUBIC;Bicubic
+TP_RESIZE_BICUBICSF;Bicubic (Softer)
+TP_RESIZE_BICUBICSH;Bicubic (Sharper)
+TP_RESIZE_BILINEAR;Bilinear
+TP_RESIZE_DOWNSCALEB;Downscale (Better)
+TP_RESIZE_DOWNSCALEF;Downscale (Faster)
+TP_RESIZE_FULLSIZE;Full Image Size:
+TP_RESIZE_H;H:
+TP_RESIZE_LABEL;Resize
+TP_RESIZE_METHOD;Method:
+TP_RESIZE_NEAREST;Nearest
+TP_RESIZE_SCALE;Scale
+TP_RESIZE_W;W:
+TP_ROTATE_DEGREE;Degree
+TP_ROTATE_LABEL;Rotate
+TP_ROTATE_SELECTLINE; Select Straight Line
+TP_SHADOWSHLIGHTS_HIGHLIGHTS;Highlights
+TP_SHADOWSHLIGHTS_HLTONALW;Tonal Width
+TP_SHADOWSHLIGHTS_LABEL;Shadows/Highlights
+TP_SHADOWSHLIGHTS_LOCALCONTR;Local Contrast
+TP_SHADOWSHLIGHTS_RADIUS;Radius
+TP_SHADOWSHLIGHTS_SHADOWS;Shadows
+TP_SHADOWSHLIGHTS_SHTONALW;Tonal Width
+TP_SHARPENING_AMOUNT;Amount
+TP_SHARPENING_EDRADIUS;Radius
+TP_SHARPENING_EDTOLERANCE;Edge tolerance
+TP_SHARPENING_HALOCONTROL;Halo control
+TP_SHARPENING_HCAMOUNT;Amount
+TP_SHARPENING_LABEL;Sharpening
+TP_SHARPENING_METHOD;Method
+TP_SHARPENING_ONLYEDGES;Sharpen only edges
+TP_SHARPENING_RADIUS;Radius
+TP_SHARPENING_RLD;RL Deconvolution
+TP_SHARPENING_RLD_AMOUNT;Amount
+TP_SHARPENING_RLD_DAMPING;Damping
+TP_SHARPENING_RLD_ITERATIONS;Iterations
+TP_SHARPENING_THRESHOLD;Threshold
+TP_SHARPENING_USM;Unsharp Mask
+TP_VIGNETTING_AMOUNT;Amount
+TP_VIGNETTING_LABEL;Vignetting Correction
+TP_VIGNETTING_RADIUS;Radius
+TP_WBALANCE_AUTO;Auto
+TP_WBALANCE_CAMERA;Camera
+TP_WBALANCE_CUSTOM;Custom
+TP_WBALANCE_GREEN;Tint
+TP_WBALANCE_LABEL;White Balance
+TP_WBALANCE_METHOD;Method
+TP_WBALANCE_SIZE;Size:
+TP_WBALANCE_SPOTWB;Spot WB
+TP_WBALANCE_TEMPERATURE;Temperature
+ZOOMBAR_DETAIL;Detail
+ZOOMBAR_HUGE;Huge
+ZOOMBAR_LARGE;Large
+ZOOMBAR_NORMAL;Normal
+ZOOMBAR_PREVIEW;Preview
+ZOOMBAR_SCALE;Scale
+ZOOMBAR_SMALL;Small
+
+GENERAL_HIGH_QUALITY;High Quality
+GENERAL_UNCHANGED;(Unchanged)
+MAIN_MSG_PLACES;Places
+GENERAL_BEFORE;Before
+GENERAL_AFTER;After
+MAIN_TOOLTIP_TOGGLE;Toggle before/after view
+MAIN_BUTTON_PUTTOQUEUE;Put to queue
+MAIN_MSG_NAVIGATOR;Navigator
+FILEBROWSER_TOOLTIP_STOPPROCESSING;Start processing automatically when a new job arrives
+BATCHQUEUE_AUTOSTART;Auto start
+TP_DETAIL_AMOUNT;Amount
+TP_RESIZE_SPECIFY;Specify:
+TP_RESIZE_SCALE;Scale
+TP_RESIZE_WIDTH;Width
+TP_RESIZE_HEIGHT;Height
+MAIN_TOGGLE_BEFORE_AFTER;B|A
+
###
diff --git a/rtengine/CMakeLists.txt b/rtengine/CMakeLists.txt
index d8f51a125..2e9d1e4df 100644
--- a/rtengine/CMakeLists.txt
+++ b/rtengine/CMakeLists.txt
@@ -11,7 +11,8 @@ set (RTENGINESOURCEFILES colortemp.cc curves.cc dcraw.cc iccstore.cc
loadinitial.cc procparams.cc rawimagesource.cc shmap.cc simpleprocess.cc refreshmap.cc
stdimagesource.cc myfile.cc iccjpeg.c hlmultipliers.cc improccoordinator.cc
processingjob.cc rtthumbnail.cc utils.cc labimage.cc
- iplab2rgb.cc ipsharpen.cc iptransform.cc ipresize.cc)
+ iplab2rgb.cc ipsharpen.cc iptransform.cc ipresize.cc
+ wavelet_dec.cc ipequalizer.cc)
add_library (rtengine ${RTENGINESOURCEFILES})
#It may be nice to store library version too
diff --git a/rtengine/improcfun.h b/rtengine/improcfun.h
index 1edb5d204..c81e4dec8 100644
--- a/rtengine/improcfun.h
+++ b/rtengine/improcfun.h
@@ -89,6 +89,7 @@ class ImProcFunctions {
void lab2rgb (LabImage* lab, Image8* image);
void resize (Image16* src, Image16* dst);
void deconvsharpening(LabImage* lab, unsigned short** buffer);
+ void waveletEqualizer(Image16 * image, int fw, int fh, const EqualizerParams & params);
Image8* lab2rgb (LabImage* lab, int cx, int cy, int cw, int ch, Glib::ustring profile);
Image16* lab2rgb16 (LabImage* lab, int cx, int cy, int cw, int ch, Glib::ustring profile);
diff --git a/rtengine/ipequalizer.cc b/rtengine/ipequalizer.cc
new file mode 100644
index 000000000..298c82b3e
--- /dev/null
+++ b/rtengine/ipequalizer.cc
@@ -0,0 +1,40 @@
+/*
+ * This file is part of RawTherapee.
+ *
+ * RawTherapee is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * RawTherapee is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with RawTherapee. If not, see .
+ *
+ * 2010 Ilya Popov
+ */
+
+#include
+#include
+
+#include
+
+namespace rtengine {
+
+void ImProcFunctions :: waveletEqualizer(Image16 * image, int fw, int fh, const EqualizerParams & params) {
+
+ wavelet_decomposition r(image->r, fw, fh);
+ r.reconstruct(image->r, params.c);
+
+ wavelet_decomposition g(image->g, fw, fh);
+ g.reconstruct(image->g, params.c);
+
+ wavelet_decomposition b(image->b, fw, fh);
+ b.reconstruct(image->b, params.c);
+
+}
+
+}
diff --git a/rtengine/procevents.h b/rtengine/procevents.h
index 5c398f0f2..185835498 100644
--- a/rtengine/procevents.h
+++ b/rtengine/procevents.h
@@ -21,7 +21,7 @@
#include
-#define NUMOFEVENTS 84
+#define NUMOFEVENTS 86
namespace rtengine {
@@ -109,7 +109,9 @@ enum ProcEvent {
EvResizeEnabled=80,
EvProfileChangeNotification=81,
EvSHHighQuality=82,
- EvPerspCorr=83
+ EvPerspCorr=83,
+ EvEqualizer=84,
+ EvEqlEnabled=85
};
}
#endif
diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc
index 08e3db481..d8c1715a2 100644
--- a/rtengine/procparams.cc
+++ b/rtengine/procparams.cc
@@ -158,6 +158,12 @@ void ProcParams::setDefaults () {
icm.working = "sRGB";
icm.output = "sRGB";
+ equalizer.enabled = false;
+ for(int i = 0; i < 8; i ++)
+ {
+ equalizer.c[i] = 0;
+ }
+
exif.clear ();
iptc.clear ();
@@ -303,6 +309,15 @@ int ProcParams::save (Glib::ustring fname) const {
keyFile.set_boolean ("Color Management", "ApplyGammaBeforeInputProfile", icm.gammaOnInput);
keyFile.set_string ("Color Management", "WorkingProfile", icm.working);
keyFile.set_string ("Color Management", "OutputProfile", icm.output);
+
+ // save wavelet equalizer parameters
+ keyFile.set_boolean ("Equalizer", "Enabled", equalizer.enabled);
+ for(int i = 0; i < 8; i++)
+ {
+ std::stringstream ss;
+ ss << "C" << i;
+ keyFile.set_integer("Equalizer", ss.str(), equalizer.c[i]);
+ }
// save exif change list
for (int i=0; i keys = keyFile.get_keys ("Exif");
@@ -562,6 +588,17 @@ if (keyFile.has_group ("IPTC")) {
}
}
+bool operator==(const EqualizerParams & a, const EqualizerParams & b) {
+ if(a.enabled != b.enabled)
+ return false;
+
+ for(int i = 0; i < 8; i++) {
+ if(a.c[i] != b.c[i])
+ return false;
+ }
+ return true;
+}
+
bool operator==(const ExifPair& a, const ExifPair& b) {
return a.field == b.field && a.value == b.value;
@@ -660,6 +697,7 @@ bool ProcParams::operator== (const ProcParams& other) {
&& icm.gammaOnInput == other.icm.gammaOnInput
&& icm.working == other.icm.working
&& icm.output == other.icm.output
+ && equalizer == other.equalizer
&& exif==other.exif
&& iptc==other.iptc;
}
diff --git a/rtengine/procparams.h b/rtengine/procparams.h
index ae4bd0257..9d6909f3d 100644
--- a/rtengine/procparams.h
+++ b/rtengine/procparams.h
@@ -204,16 +204,16 @@ class DistortionParams {
bool uselensfun;
double amount;
};
-
-/**
- * Parameters of the perspective correction
- */
-class PerspectiveParams {
-
- public:
- int horizontal;
- int vertical;
-};
+
+/**
+ * Parameters of the perspective correction
+ */
+class PerspectiveParams {
+
+ public:
+ int horizontal;
+ int vertical;
+};
/**
* Parameters of the vignetting correction
@@ -302,6 +302,16 @@ class IPTCPair {
std::vector values;
};
+/**
+ * Wavelet equalizer params
+ */
+class EqualizerParams {
+
+ public:
+ bool enabled;
+ int c[8];
+};
+
/**
* This class holds all the processing parameters applied on the images
*/
@@ -321,14 +331,15 @@ class ProcParams {
CoarseTransformParams coarse; ///< Coarse transformation (90, 180, 270 deg rotation, h/v flipping) parameters
CommonTransformParams commonTrans; ///< Common transformation parameters (autofill)
RotateParams rotate; ///< Rotation parameters
- DistortionParams distortion; ///< Lens distortion correction parameters
- PerspectiveParams perspective; ///< Perspective correction parameters
+ DistortionParams distortion; ///< Lens distortion correction parameters
+ PerspectiveParams perspective; ///< Perspective correction parameters
CACorrParams cacorrection; ///< Lens c/a correction parameters
VignettingParams vignetting; ///< Lens vignetting correction parameters
ChannelMixerParams chmixer; ///< Channel mixer parameters
HRecParams hlrecovery; ///< Highlight recovery parameters
ResizeParams resize; ///< Resize parameters
ColorManagementParams icm; ///< profiles/color spaces used during the image processing
+ EqualizerParams equalizer; ///< wavelet equalizer parameters
std::vector exif; ///< List of modifications appplied on the exif tags of the input image
std::vector iptc; ///< The IPTC tags and values to be saved to the output image
int version; ///< Version of the file from which the parameters have been read
diff --git a/rtengine/refreshmap.cc b/rtengine/refreshmap.cc
index 962a89a83..b13674b45 100644
--- a/rtengine/refreshmap.cc
+++ b/rtengine/refreshmap.cc
@@ -19,89 +19,90 @@
#include
int refreshmap[] = {
-ALL, // EvPhotoLoaded,
-ALL, // EvProfileLoaded,
-ALL, // EvProfileChanged,
-ALL, // EvHistoryBrowsed,
-RGBCURVE, // EvBrightness,
-RGBCURVE, // EvContrast,
-RGBCURVE, // EvBlack,
-RGBCURVE, // EvExpComp,
-RGBCURVE, // EvHLCompr,
-RGBCURVE, // EvSHCompr,
-RGBCURVE, // EvToneCurve,
-AUTOEXP, // EvAutoExp,
-AUTOEXP, // EvClip,
-LUMINANCECURVE, // EvLBrightness,
-LUMINANCECURVE, // EvLContrast,
-LUMINANCECURVE, // EvLBlack,
-LUMINANCECURVE, // EvLHLCompr,
-LUMINANCECURVE, // EvLSHCompr,
-LUMINANCECURVE, // EvLCurve,
-SHARPENING, // EvShrEnabled,
-SHARPENING, // EvShrRadius,
-SHARPENING, // EvShrAmount,
-SHARPENING, // EvShrThresh,
-SHARPENING, // EvShrEdgeOnly,
-SHARPENING, // EvShrEdgeRadius,
-SHARPENING, // EvShrEdgeTolerance,
-SHARPENING, // EvShrHaloControl,
-SHARPENING, // EvShrHaloAmount,
-SHARPENING, // EvShrMethod,
-SHARPENING, // EvShrDRadius,
-SHARPENING, // EvShrDAmount,
-SHARPENING, // EvShrDDamping,
-SHARPENING, // EvShrDIterations,
-COLORBOOST, // EvCBAvoidClip,
-COLORBOOST, // EvCBSatLimiter,
-COLORBOOST, // EvCBSatLimit,
-COLORBOOST, // EvCBBoost,
-WHITEBALANCE, // EvWBMethod,
-WHITEBALANCE, // EvWBTemp,
-WHITEBALANCE, // EvWBGreen,
-COLORBOOST, // EvCShiftA,
-COLORBOOST, // EvCShiftB,
-LUMADENOISE, // EvLDNEnabled,
-LUMADENOISE, // EvLDNRadius,
-LUMADENOISE, // EvLDNEdgeTolerance,
-COLORDENOISE, // EvCDNEnabled,
-COLORDENOISE, // EvCDNRadius,
-COLORDENOISE, // EvCDNEdgeTolerance,
-COLORDENOISE, // EvCDNEdgeSensitive,
-RETINEX, // EvSHEnabled,
-RGBCURVE, // EvSHHighlights,
-RGBCURVE, // EvSHShadows,
-RGBCURVE, // EvSHHLTonalW,
-RGBCURVE, // EvSHSHTonalW,
-RGBCURVE, // EvSHLContrast,
-RETINEX, // EvSHRadius,
-ALL, // EvCTRotate,
-ALL, // EvCTHFlip,
-ALL, // EvCTVFlip,
-TRANSFORM, // EvROTDegree,
-TRANSFORM, // EvTransAutoFill,
-TRANSFORM, // EvDISTAmount,
-ALL, // EvBookmarkSelected,
-CROP, // EvCrop,
-TRANSFORM, // EvCACorr,
-ALL, // EvHREnabled,
-ALL, // EvHRAmount,
-ALL, // EvHRMethod,
-ALL, // EvWProfile,
-ALL, // EvOProfile,
-ALL, // EvIProfile,
-TRANSFORM, // EvVignetting,
-RGBCURVE, // EvChMixer,
-ALL, // EvResizeScale,
-ALL, // EvResizeMethod,
-EXIF, // EvExif,
-IPTC, // EvIPTC
-ALL, // EvResizeSpec,
-ALL, // EvResizeWidth
-ALL, // EvResizeHeight
-ALL, // EvResizeEnabled
-ALL, // EvProfileChangeNotification
+ALL, // EvPhotoLoaded,
+ALL, // EvProfileLoaded,
+ALL, // EvProfileChanged,
+ALL, // EvHistoryBrowsed,
+RGBCURVE, // EvBrightness,
+RGBCURVE, // EvContrast,
+RGBCURVE, // EvBlack,
+RGBCURVE, // EvExpComp,
+RGBCURVE, // EvHLCompr,
+RGBCURVE, // EvSHCompr,
+RGBCURVE, // EvToneCurve,
+AUTOEXP, // EvAutoExp,
+AUTOEXP, // EvClip,
+LUMINANCECURVE, // EvLBrightness,
+LUMINANCECURVE, // EvLContrast,
+LUMINANCECURVE, // EvLBlack,
+LUMINANCECURVE, // EvLHLCompr,
+LUMINANCECURVE, // EvLSHCompr,
+LUMINANCECURVE, // EvLCurve,
+SHARPENING, // EvShrEnabled,
+SHARPENING, // EvShrRadius,
+SHARPENING, // EvShrAmount,
+SHARPENING, // EvShrThresh,
+SHARPENING, // EvShrEdgeOnly,
+SHARPENING, // EvShrEdgeRadius,
+SHARPENING, // EvShrEdgeTolerance,
+SHARPENING, // EvShrHaloControl,
+SHARPENING, // EvShrHaloAmount,
+SHARPENING, // EvShrMethod,
+SHARPENING, // EvShrDRadius,
+SHARPENING, // EvShrDAmount,
+SHARPENING, // EvShrDDamping,
+SHARPENING, // EvShrDIterations,
+COLORBOOST, // EvCBAvoidClip,
+COLORBOOST, // EvCBSatLimiter,
+COLORBOOST, // EvCBSatLimit,
+COLORBOOST, // EvCBBoost,
+WHITEBALANCE, // EvWBMethod,
+WHITEBALANCE, // EvWBTemp,
+WHITEBALANCE, // EvWBGreen,
+COLORBOOST, // EvCShiftA,
+COLORBOOST, // EvCShiftB,
+LUMADENOISE, // EvLDNEnabled,
+LUMADENOISE, // EvLDNRadius,
+LUMADENOISE, // EvLDNEdgeTolerance,
+COLORDENOISE, // EvCDNEnabled,
+COLORDENOISE, // EvCDNRadius,
+COLORDENOISE, // EvCDNEdgeTolerance,
+COLORDENOISE, // EvCDNEdgeSensitive,
+RETINEX, // EvSHEnabled,
+RGBCURVE, // EvSHHighlights,
+RGBCURVE, // EvSHShadows,
+RGBCURVE, // EvSHHLTonalW,
+RGBCURVE, // EvSHSHTonalW,
+RGBCURVE, // EvSHLContrast,
+RETINEX, // EvSHRadius,
+ALL, // EvCTRotate,
+ALL, // EvCTHFlip,
+ALL, // EvCTVFlip,
+TRANSFORM, // EvROTDegree,
+TRANSFORM, // EvTransAutoFill,
+TRANSFORM, // EvDISTAmount,
+ALL, // EvBookmarkSelected,
+CROP, // EvCrop,
+TRANSFORM, // EvCACorr,
+ALL, // EvHREnabled,
+ALL, // EvHRAmount,
+ALL, // EvHRMethod,
+ALL, // EvWProfile,
+ALL, // EvOProfile,
+ALL, // EvIProfile,
+TRANSFORM, // EvVignetting,
+RGBCURVE, // EvChMixer,
+ALL, // EvResizeScale,
+ALL, // EvResizeMethod,
+EXIF, // EvExif,
+IPTC, // EvIPTC
+ALL, // EvResizeSpec,
+ALL, // EvResizeWidth
+ALL, // EvResizeHeight
+ALL, // EvResizeEnabled
+ALL, // EvProfileChangeNotification
RETINEX, // EvShrHighQuality
-TRANSFORM // EvPerspCorr
-};
+TRANSFORM, // EvPerspCorr
+ALL // ????? EvEqualizer
+};
diff --git a/rtengine/simpleprocess.cc b/rtengine/simpleprocess.cc
index 7913f925c..57ebd889a 100644
--- a/rtengine/simpleprocess.cc
+++ b/rtengine/simpleprocess.cc
@@ -25,6 +25,8 @@
#include
#include
+#include
+
#undef THREAD_PRIORITY_NORMAL
namespace rtengine {
@@ -100,6 +102,10 @@ IImage16* processImage (ProcessingJob* pjob, int& errorCode, ProgressListener* p
delete baseImg;
baseImg = trImg;
}
+
+ if (params.equalizer.enabled) {
+ ipf.waveletEqualizer (baseImg, fw, fh, params.equalizer);
+ }
// update blurmap
int** buffer = new int*[fh];
diff --git a/rtengine/wavelet.h b/rtengine/wavelet.h
new file mode 100644
index 000000000..c49ff7739
--- /dev/null
+++ b/rtengine/wavelet.h
@@ -0,0 +1,170 @@
+/*
+ * This file is part of RawTherapee.
+ *
+ * RawTherapee is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * RawTherapee is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with RawTherapee. If not, see .
+ *
+ * 2010 Ilya Popov
+ */
+
+
+#ifndef WAVELET_H_INCLUDED
+#define WAVELET_H_INCLUDED
+
+template
+void dwt_haar(T * data, size_t pitch, T * buffer, size_t n)
+{
+ size_t n2a = (n + 1) / 2;
+ size_t n2 = n/2;
+
+ for(size_t i = 0, j = 0; i < n2; i++, j += 2 * pitch)
+ {
+ T a = data[j];
+ T b = data[j + pitch];
+ buffer[i] = (a + b) / 2;
+ buffer[n2a + i] = (a - b);
+ }
+
+ if(n2 < n2a)
+ {
+ buffer[n2] = data[pitch * (n-1)];
+ }
+
+ for(size_t k = 0, q = 0; k < n; k++, q += pitch)
+ {
+ data[q] = buffer[k];
+ }
+}
+
+template
+void idwt_haar(T * data, size_t pitch, T * buffer, size_t n, int alpha)
+{
+ size_t n2a = (n + 1) / 2;
+ size_t n2 = n/2;
+
+ for(size_t i = 0, j = 0; i < n2; i++, j += 2)
+ {
+ T p = data[i * pitch];
+ T q = (alpha * data[(n2a + i)*pitch]) / 1024;
+ buffer[j] = p + q / 2;
+ buffer[j + 1] = p - q / 2;
+ }
+
+ if(n2 < n2a)
+ {
+ buffer[n-1] = data[pitch * n2];
+ }
+
+ for(size_t k = 0, q = 0; k < n; k++, q += pitch)
+ {
+ data[q] = buffer[k];
+ }
+}
+
+
+// buffer must be of length (n + 4)
+template
+void dwt_53(T * data, size_t pitch, T * buffer, size_t n)
+{
+ size_t n2 = n/2;
+ size_t n2a = (n + 1) / 2;
+ T * tmp = buffer + 2;
+
+ // copy data
+
+ for(size_t i = 0, j = 0; i < n; i++, j += pitch)
+ {
+ tmp[i] = data[j];
+ }
+
+ // extend mirror-like
+
+ tmp[-1] = tmp[1];
+ tmp[-2] = tmp[2];
+
+ tmp[n] = tmp[n-2];
+ tmp[n+1] = tmp[n-3];
+
+ // calculate coefficients
+
+ for(int j = -1; j < (int)n + 1; j += 2)
+ {
+ tmp[j] = tmp[j] - (tmp[j-1] + tmp[j+1]) / 2;
+ }
+
+ for(int i = 0; i < (int)n; i += 2)
+ {
+ tmp[i] = tmp[i] + (tmp[i-1] + tmp[i+1] + 2) / 4;
+ }
+
+ // copy with reordering
+
+ for(size_t i = 0, j = 0; i < n; i+=2, j += pitch)
+ {
+ data[j] = tmp[i];
+ }
+
+ for(size_t i = 1, j = n2a*pitch; i < n; i+=2, j += pitch)
+ {
+ data[j] = tmp[i];
+ }
+}
+
+template
+void idwt_53(T * data, size_t pitch, T * buffer, size_t n, int alpha)
+{
+ size_t n2 = n/2;
+ size_t n2a = (n + 1) / 2;
+ T * tmp = buffer + 2;
+
+ // copy with reordering
+
+ for(size_t i = 0, j = 0; i < n; i+=2, j += pitch)
+ {
+ tmp[i] = data[j];
+ }
+
+ for(size_t i = 1, j = n2a*pitch; i < n; i+=2, j += pitch)
+ {
+ tmp[i] = (alpha * data[j]) / 1024;
+ }
+
+ // extend mirror-like
+
+ tmp[-1] = tmp[1];
+ tmp[-2] = tmp[2];
+
+ tmp[n] = tmp[n-2];
+ tmp[n+1] = tmp[n-3];
+
+ // calculate coefficients
+
+ for(int i = 0; i < (int)n + 1; i += 2)
+ {
+ tmp[i] = tmp[i] - (tmp[i-1] + tmp[i+1] + 2) / 4;
+ }
+
+ for(int j = 1; j < (int)n; j += 2)
+ {
+ tmp[j] = tmp[j] + (tmp[j-1] + tmp[j+1]) / 2;
+ }
+
+ // copy data
+
+ for(size_t i = 0, j = 0; i < n; i++, j += pitch)
+ {
+ data[j] = tmp[i];
+ }
+}
+
+#endif
diff --git a/rtengine/wavelet_dec.cc b/rtengine/wavelet_dec.cc
new file mode 100644
index 000000000..a972d7c7c
--- /dev/null
+++ b/rtengine/wavelet_dec.cc
@@ -0,0 +1,62 @@
+/*
+ * This file is part of RawTherapee.
+ *
+ * RawTherapee is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * RawTherapee is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with RawTherapee. If not, see .
+ *
+ * 2010 Ilya Popov
+ */
+
+#include "wavelet_dec.h"
+
+namespace rtengine
+{
+
+wavelet_decomposition::wavelet_decomposition(unsigned short ** src, size_t w, size_t h)
+: nlevels(0), m_w(w), m_h(h), m_w1(0), m_h1(0)
+{
+ m_w1 = w;
+ m_h1 = h;
+
+ m_c[0] = new wavelet_level(src, m_w1, m_h1);
+ nlevels = 1;
+
+ while(nlevels < maxlevels)
+ {
+ m_c[nlevels] = new wavelet_level(m_c[nlevels - 1]->lowfreq(), m_c[nlevels-1]->lfw(), m_c[nlevels-1]->lfh());
+ nlevels ++;
+ }
+}
+
+wavelet_decomposition::~wavelet_decomposition()
+{
+ for(int i = 0; i < nlevels; i++)
+ {
+ delete m_c[i];
+ }
+}
+
+void wavelet_decomposition::reconstruct(unsigned short ** dst, const int * c)
+{
+ for(int level = nlevels - 1; level > 0; level--)
+ {
+ int alpha = 1024 + 10 * c[level];
+ m_c[level]->reconstruct(m_c[level-1]->lowfreq(), alpha);
+ }
+
+ int alpha = 1024 + 10 * c[0];
+ m_c[0]->reconstruct(dst, alpha, wavelet_level::CLIP);
+}
+
+};
+
diff --git a/rtengine/wavelet_dec.h b/rtengine/wavelet_dec.h
new file mode 100644
index 000000000..372849fec
--- /dev/null
+++ b/rtengine/wavelet_dec.h
@@ -0,0 +1,53 @@
+/*
+ * This file is part of RawTherapee.
+ *
+ * RawTherapee is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * RawTherapee is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with RawTherapee. If not, see .
+ *
+ * 2010 Ilya Popov
+ */
+
+#ifndef WAVELET_DEC_H_INCLUDED
+#define WAVELET_DEC_H_INCLUDED
+
+#include
+
+#include "wavelet_level.h"
+
+namespace rtengine {
+
+class wavelet_decomposition
+{
+ typedef int internal_type;
+
+ static const int maxlevels = 8;
+
+ int nlevels;
+ size_t m_w, m_h;
+ size_t m_w1, m_h1;
+
+ wavelet_level * m_c[maxlevels];
+
+public:
+ wavelet_decomposition(unsigned short ** src, size_t w, size_t h);
+
+ ~wavelet_decomposition();
+
+ void reconstruct(unsigned short ** dst, const int * c);
+};
+
+//////////////////////////////////////////////////////////////////////////////
+
+};
+
+#endif
diff --git a/rtengine/wavelet_level.h b/rtengine/wavelet_level.h
new file mode 100644
index 000000000..ec950d85e
--- /dev/null
+++ b/rtengine/wavelet_level.h
@@ -0,0 +1,208 @@
+/*
+ * This file is part of RawTherapee.
+ *
+ * RawTherapee is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * RawTherapee is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with RawTherapee. If not, see .
+ *
+ * 2010 Ilya Popov
+ */
+
+#ifndef WAVELET_LEVEL_H_INCLUDED
+#define WAVELET_LEVEL_H_INCLUDED
+
+#include
+#include
+
+#include "wavelet.h"
+
+namespace rtengine
+{
+
+template
+inline T clip(T x, T min_value, T max_value)
+{
+ if(x < min_value)
+ return min_value;
+ if(x > max_value)
+ return max_value;
+ return x;
+}
+
+template
+void plane_copy(A ** a, B ** b, size_t w, size_t h)
+{
+ for(size_t j = 0; j < h; j++)
+ for(size_t i = 0; i < w; i++)
+ b[j][i] = static_cast(a[j][i]);
+}
+
+//////////////////////////////////////////////////////////////////////////////
+
+template
+class wavelet_level
+{
+ // full size
+ size_t m_w, m_h;
+
+ // size of low frequency part
+ size_t m_w2, m_h2;
+
+ // distance between lines in the array of coeffs
+ size_t m_pitch;
+
+ // array of pointers to lines of coeffs
+ // actually is a single contiguous data array pointed by m_coeffs[0]
+ T ** m_coeffs;
+
+ // allocation and destruction of data storage
+ void create();
+ void destroy();
+
+ void dwt_2d(size_t w, size_t h);
+ void idwt_2d(size_t w, size_t h, int alpha);
+
+public:
+
+ static const bool CLIP = true;
+
+ template
+ wavelet_level(E ** src, size_t w, size_t h)
+ : m_w(w), m_h(h), m_w2((w+1)/2), m_h2((h+1)/2), m_pitch(0), m_coeffs(NULL)
+ {
+ create();
+
+ decompose(src);
+ }
+
+ ~wavelet_level()
+ {
+ destroy();
+ }
+
+ T ** lowfreq() const
+ {
+ return m_coeffs;
+ }
+
+ size_t lfw() const
+ {
+ return m_w2;
+ }
+
+ size_t lfh() const
+ {
+ return m_h2;
+ }
+
+ template
+ void decompose(E ** src);
+
+ template
+ void reconstruct(E ** dst, int alpha, bool do_clip = false);
+};
+
+//////////////////////////////////////////////////////////////////////////////
+
+template
+void wavelet_level::dwt_2d(size_t w, size_t h)
+{
+ T * buffer = new T[std::max(w, h) + 4];
+
+ for(size_t j = 0; j < h; j++)
+ {
+ //dwt_haar(m_coeffs[j], 1, buffer, w);
+ dwt_53(m_coeffs[j], 1, buffer, w);
+ }
+
+ for(size_t i = 0; i < w; i++)
+ {
+ //dwt_haar(&m_coeffs[0][i], m_pitch, buffer, h);
+ dwt_53(&m_coeffs[0][i], m_pitch, buffer, h);
+ }
+
+ delete buffer;
+}
+
+template
+void wavelet_level::idwt_2d(size_t w, size_t h, int alpha)
+{
+ T * buffer = new T[std::max(w, h) + 4];
+
+ for(size_t j = 0; j < h; j++)
+ {
+ //idwt_haar(m_coeffs[j], 1, buffer, w, alpha);
+ idwt_53(m_coeffs[j], 1, buffer, w, alpha);
+ }
+
+ for(size_t i = 0; i < w; i++)
+ {
+ //idwt_haar(&m_coeffs[0][i], m_pitch, buffer, h, alpha);
+ idwt_53(&m_coeffs[0][i], m_pitch, buffer, h, alpha);
+ }
+
+ delete buffer;
+
+}
+
+template
+void wavelet_level::create()
+{
+ // 16-byte alignment: no effect
+ //m_pitch = (((m_w*sizeof(T) + 15) / 16) * 16) / sizeof(T);
+ m_pitch = m_w;
+ T * data = new T[m_pitch * m_h];
+ m_coeffs = new T*[m_h];
+ for(size_t j = 0; j < m_h; j++)
+ {
+ m_coeffs[j] = data + m_pitch * j;
+ }
+}
+
+template
+void wavelet_level::destroy()
+{
+ if(m_coeffs)
+ {
+ delete[] m_coeffs[0];
+
+ delete[] m_coeffs;
+ }
+}
+
+template template
+void wavelet_level::decompose(E ** src)
+{
+ plane_copy(src, m_coeffs, m_w, m_h);
+
+ dwt_2d(m_w, m_h);
+}
+
+template template
+void wavelet_level::reconstruct(E ** dst, int alpha, bool do_clip)
+{
+ idwt_2d(m_w, m_h, alpha);
+
+ if(do_clip)
+ {
+ for(size_t j = 0; j < m_h; j++)
+ for(size_t i = 0; i < m_w; i++)
+ m_coeffs[j][i] = clip(m_coeffs[j][i], 0, 65535);
+ }
+
+ plane_copy(m_coeffs, dst, m_w, m_h);
+
+}
+
+};
+
+#endif
diff --git a/rtgui/CMakeLists.txt b/rtgui/CMakeLists.txt
index 49fa71e50..5a96dfceb 100644
--- a/rtgui/CMakeLists.txt
+++ b/rtgui/CMakeLists.txt
@@ -23,7 +23,8 @@ set (BASESOURCEFILES
thumbbrowserentrybase.cc batchqueueentry.cc
batchqueue.cc lwbutton.cc lwbuttonset.cc
batchqueuebuttonset.cc browserfilter.cc exiffiltersettings.cc
- profilestore.cc partialpastedlg.cc)
+ profilestore.cc partialpastedlg.cc
+ equalizer.cc)
if (WIN32)
set (EXTRA_SRC windirmonitor.cc myicon.o)
diff --git a/rtgui/colorboost.h b/rtgui/colorboost.h
index d7efc4ad6..12fd7903c 100644
--- a/rtgui/colorboost.h
+++ b/rtgui/colorboost.h
@@ -20,8 +20,8 @@
#define _COLORBOOST_H_
#include
-#include
-#include
+#include "adjuster.h"
+#include "toolpanel.h"
class ColorBoost : public Gtk::VBox, public AdjusterListener, public ToolPanel {
diff --git a/rtgui/equalizer.cc b/rtgui/equalizer.cc
new file mode 100644
index 000000000..74bf84a61
--- /dev/null
+++ b/rtgui/equalizer.cc
@@ -0,0 +1,167 @@
+/*
+ * This file is part of RawTherapee.
+ *
+ * RawTherapee is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * RawTherapee is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with RawTherapee. If not, see .
+ *
+ * 2010 Ilya Popov
+ */
+
+#include
+
+using namespace rtengine;
+using namespace rtengine::procparams;
+
+Equalizer::Equalizer () : ToolPanel() {
+
+ enabled = Gtk::manage (new Gtk::CheckButton (M("GENERAL_ENABLED")));
+ enabled->set_active (true);
+ pack_start(*enabled);
+ enabled->show();
+ enaConn = enabled->signal_toggled().connect( sigc::mem_fun(*this, &Equalizer::enabled_toggled) );
+
+ Gtk::HSeparator *separator = Gtk::manage (new Gtk::HSeparator());
+ pack_start(*separator, Gtk::PACK_SHRINK, 2);
+
+ for(int i = 0; i < 8; i++)
+ {
+ std::stringstream ss;
+ ss << i;
+ if(i == 0)
+ ss << " (" << M("TP_EQUALIZER_FINEST") << ")";
+ if(i == 7)
+ ss << " (" << M("TP_EQUALIZER_LARGEST") << ")";
+
+ correction[i] = new Adjuster (ss.str(), -100, 100, 1, 0);
+ correction[i]->setAdjusterListener(this);
+ pack_start(*correction[i]);
+ }
+
+ show_all_children ();
+}
+
+Equalizer::~Equalizer () {
+
+}
+
+void Equalizer::read (const ProcParams* pp, const ParamsEdited* pedited) {
+
+ disableListener ();
+
+ if (pedited) {
+
+ enabled->set_inconsistent (!pedited->equalizer.enabled);
+
+ for(int i = 0; i < 8; i++) {
+ correction[i]->setEditedState (pedited->equalizer.c[i] ? Edited : UnEdited);
+ }
+ }
+
+ enaConn.block (true);
+ enabled->set_active (pp->equalizer.enabled);
+ enaConn.block (false);
+ lastEnabled = pp->equalizer.enabled;
+
+ for (int i = 0; i < 8; i++) {
+ correction[i]->setValue(pp->equalizer.c[i]);
+ }
+
+ enableListener ();
+}
+
+void Equalizer::write (ProcParams* pp, ParamsEdited* pedited) {
+
+ pp->equalizer.enabled = enabled->get_active ();
+
+ for (int i = 0; i < 8; i++) {
+ pp->equalizer.c[i] = (int) correction[i]->getValue();
+ }
+
+ if (pedited) {
+
+ pedited->equalizer.enabled = !enabled->get_inconsistent();
+
+ for(int i = 0; i < 8; i++) {
+ pedited->equalizer.c[i] = correction[i]->getEditedState();
+ }
+ }
+}
+
+void Equalizer::setDefaults (const ProcParams* defParams, const ParamsEdited* pedited) {
+
+ for (int i = 0; i < 8; i++) {
+ correction[i]->setDefault(defParams->equalizer.c[i]);
+ }
+
+ if (pedited) {
+ for (int i = 0; i < 8; i++) {
+ correction[i]->setDefaultEditedState(pedited->equalizer.c[i] ? Edited : UnEdited);
+ }
+ }
+ else {
+ for (int i = 0; i < 8; i++) {
+ correction[i]->setDefaultEditedState(Irrelevant);
+ }
+ }
+}
+
+void Equalizer::setBatchMode (bool batchMode) {
+
+ ToolPanel::setBatchMode (batchMode);
+
+ for (int i = 0; i < 8; i++) {
+ correction[i]->showEditedCB();
+ }
+}
+
+void Equalizer::adjusterChanged (Adjuster* a, double newval) {
+
+ if (listener && enabled->get_active()) {
+ std::stringstream ss;
+ ss << "(";
+ int i;
+ for (i = 0; i < 8; i++) {
+ if (i > 0) {
+ ss << ", ";
+ }
+ ss << static_cast(correction[i]->getValue());
+ }
+ ss << ")";
+ listener->panelChanged (EvEqualizer, ss.str());
+ }
+}
+
+void Equalizer::enabled_toggled () {
+
+ if (batchMode) {
+ if (enabled->get_inconsistent()) {
+ enabled->set_inconsistent (false);
+ enaConn.block (true);
+ enabled->set_active (false);
+ enaConn.block (false);
+ }
+ else if (lastEnabled)
+ enabled->set_inconsistent (true);
+
+ lastEnabled = enabled->get_active ();
+ }
+
+ if (listener) {
+ if (enabled->get_active ())
+ listener->panelChanged (EvEqlEnabled, M("GENERAL_ENABLED"));
+ else
+ listener->panelChanged (EvEqlEnabled, M("GENERAL_DISABLED"));
+ }
+}
+
+
diff --git a/rtgui/equalizer.h b/rtgui/equalizer.h
new file mode 100644
index 000000000..3d663f4e3
--- /dev/null
+++ b/rtgui/equalizer.h
@@ -0,0 +1,53 @@
+/*
+ * This file is part of RawTherapee.
+ *
+ * RawTherapee is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * RawTherapee is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with RawTherapee. If not, see .
+ *
+ * 2010 Ilya Popov
+ */
+
+#ifndef EQUALIZE_H_INCLUDED
+#define EQUALIZE_H_INCLUDED
+
+#include
+#include
+#include
+
+class Equalizer : public Gtk::VBox, public AdjusterListener, public ToolPanel
+{
+
+protected:
+
+ Gtk::CheckButton * enabled;
+ Adjuster* correction[8];
+
+ sigc::connection enaConn;
+
+ bool lastEnabled;
+
+public:
+
+ Equalizer ();
+ virtual ~Equalizer ();
+
+ void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited=NULL);
+ void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited=NULL);
+ void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited=NULL);
+ void setBatchMode (bool batchMode);
+
+ void adjusterChanged (Adjuster* a, double newval);
+ void enabled_toggled ();
+};
+
+#endif
diff --git a/rtgui/paramsedited.cc b/rtgui/paramsedited.cc
index 918d537ce..a0ca51c38 100644
--- a/rtgui/paramsedited.cc
+++ b/rtgui/paramsedited.cc
@@ -119,6 +119,11 @@ void ParamsEdited::set (bool v) {
icm.gammaOnInput = v;
icm.working = v;
icm.output = v;
+ equalizer.enabled = v;
+ for(int i = 0; i < 8; i++)
+ {
+ equalizer.c[i] = v;
+ }
exif.clear ();
iptc.clear ();
}
@@ -226,6 +231,10 @@ void ParamsEdited::initFrom (const std::vector
icm.gammaOnInput = icm.gammaOnInput && p.icm.gammaOnInput == other.icm.gammaOnInput;
icm.working = icm.working && p.icm.working == other.icm.working;
icm.output = icm.output && p.icm.output == other.icm.output;
+ equalizer.enabled = equalizer.enabled && p.equalizer.enabled == other.equalizer.enabled;
+ for(int i = 0; i < 8; i++) {
+ equalizer.c[i] = equalizer.c[i] && p.equalizer.c[i] == other.equalizer.c[i];
+ }
// exif = exif && p.exif==other.exif
// iptc = other.iptc;
}
@@ -324,6 +333,10 @@ void ParamsEdited::combine (rtengine::procparams::ProcParams& toEdit, const rten
if (icm.gammaOnInput) toEdit.icm.gammaOnInput = mods.icm.gammaOnInput;
if (icm.working) toEdit.icm.working = mods.icm.working;
if (icm.output) toEdit.icm.output = mods.icm.output;
+ if (equalizer.enabled) toEdit.equalizer.enabled = mods.equalizer.enabled;
+ for(int i = 0; i < 8; i++) {
+ if(equalizer.c[i]) toEdit.equalizer.c[i] = mods.equalizer.c[i];
+ }
// if (exif) toEdit.exif==mo.exif = mods.exif==other.exif;
// if (iptc;) toEdit.iptc==other.iptc; = mods.iptc==other.iptc;;
}
diff --git a/rtgui/paramsedited.h b/rtgui/paramsedited.h
index a38b96fc6..c8dd43085 100644
--- a/rtgui/paramsedited.h
+++ b/rtgui/paramsedited.h
@@ -215,6 +215,13 @@ class ColorManagementParamsEdited {
bool output;
};
+class EqualizerParamsEdited {
+
+ public:
+ bool enabled;
+ bool c[8];
+};
+
class ExifPairEdited {
public:
@@ -253,6 +260,7 @@ class ParamsEdited {
HRecParamsEdited hlrecovery;
ResizeParamsEdited resize;
ColorManagementParamsEdited icm;
+ EqualizerParamsEdited equalizer;
std::vector exif;
std::vector iptc;
diff --git a/rtgui/toolpanelcoord.cc b/rtgui/toolpanelcoord.cc
index df8c7cc13..f01cc2105 100644
--- a/rtgui/toolpanelcoord.cc
+++ b/rtgui/toolpanelcoord.cc
@@ -53,6 +53,7 @@ ToolPanelCoordinator::ToolPanelCoordinator () : ipc(NULL) {
icm = Gtk::manage (new ICMPanel ());
exifpanel = Gtk::manage (new ExifPanel ());
iptcpanel = Gtk::manage (new IPTCPanel ());
+ equalizer = Gtk::manage (new Equalizer ());
addPanel (colorPanel, whitebalance, M("TP_WBALANCE_LABEL")); toolPanels.push_back (whitebalance);
addPanel (exposurePanel, curve, M("TP_EXPOSURE_LABEL")); toolPanels.push_back (curve);
@@ -65,10 +66,11 @@ ToolPanelCoordinator::ToolPanelCoordinator () : ipc(NULL) {
addPanel (exposurePanel, lcurve, M("TP_LUMACURVE_LABEL")); toolPanels.push_back (lcurve);
addPanel (detailsPanel, lumadenoise, M("TP_LUMADENOISE_LABEL")); toolPanels.push_back (lumadenoise);
addPanel (detailsPanel, colordenoise, M("TP_COLORDENOISE_LABEL")); toolPanels.push_back (colordenoise);
+ addPanel (detailsPanel, equalizer, M("TP_EQUALIZER_LABEL")); toolPanels.push_back (equalizer);
addPanel (transformPanel, crop, M("TP_CROP_LABEL")); toolPanels.push_back (crop);
addPanel (transformPanel, resize, M("TP_RESIZE_LABEL")); toolPanels.push_back (resize);
addPanel (transformPanel, lensgeom, M("TP_LENSGEOM_LABEL")); toolPanels.push_back (lensgeom);
- addPanel (lensgeom->getPackBox(), rotate, M("TP_ROTATE_LABEL")); toolPanels.push_back (rotate);
+ addPanel (lensgeom->getPackBox(), rotate, M("TP_ROTATE_LABEL")); toolPanels.push_back (rotate);
addPanel (lensgeom->getPackBox(), perspective, M("TP_PERSPECTIVE_LABEL")); toolPanels.push_back (perspective);
addPanel (lensgeom->getPackBox(), distortion, M("TP_DISTORTION_LABEL")); toolPanels.push_back (distortion);
addPanel (lensgeom->getPackBox(), cacorrection, M("TP_CACORRECTION_LABEL")); toolPanels.push_back (cacorrection);
diff --git a/rtgui/toolpanelcoord.h b/rtgui/toolpanelcoord.h
index f3215b287..6407b4a47 100644
--- a/rtgui/toolpanelcoord.h
+++ b/rtgui/toolpanelcoord.h
@@ -51,6 +51,7 @@
#include
#include
#include
+#include
class ImageEditorCoordinator;
@@ -86,6 +87,7 @@ class ToolPanelCoordinator : public ToolPanelListener,
ColorDenoise* colordenoise;
Sharpening* sharpening;
LCurve* lcurve;
+ Equalizer * equalizer;
std::vector paramcListeners;