Updated dcraw.patch prior to attempting 9.05 upgrade

This commit is contained in:
Wyatt Olson
2010-11-10 22:21:03 -07:00
commit b84838da19
647 changed files with 136846 additions and 0 deletions

205
tools/CurveType.svg Normal file
View File

@@ -0,0 +1,205 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="24"
height="24"
id="svg2"
sodipodi:version="0.32"
inkscape:version="0.46"
version="1.0"
sodipodi:docname="CurveType.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
inkscape:export-filename="D:\Jean-Christophe\Developpement\WorkspaceCPP\rawtherapee-head\rtdata\images\curveType-unchanged.png"
inkscape:export-xdpi="67.5"
inkscape:export-ydpi="67.5">
<defs
id="defs4">
<linearGradient
id="linearGradient3205">
<stop
style="stop-color:#000000;stop-opacity:0.19512194;"
offset="0"
id="stop3207" />
<stop
style="stop-color:#ffffff;stop-opacity:0.19607843;"
offset="1"
id="stop3209" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective10" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3205"
id="linearGradient3211"
x1="12"
y1="24"
x2="12"
y2="0"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0434783,0,0,1.0434783,119.47826,-40.521739)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3205"
id="linearGradient3176"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0434783,0,0,1.0434783,79.47826,-40.521739)"
x1="12"
y1="24"
x2="12"
y2="0" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3205"
id="linearGradient3180"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0434783,0,0,1.0434783,39.47826,-40.521739)"
x1="12"
y1="24"
x2="12"
y2="0" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3205"
id="linearGradient3184"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0434783,0,0,1.0434783,159.47826,-40.521739)"
x1="12"
y1="24"
x2="12"
y2="0" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#212121"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="2.84"
inkscape:cx="104.59733"
inkscape:cy="31.731418"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1680"
inkscape:window-height="994"
inkscape:window-x="-4"
inkscape:window-y="-4" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Calque 1"
inkscape:groupmode="layer"
id="layer1">
<rect
y="-40"
x="160"
height="24"
width="24"
id="rect3182"
style="fill:url(#linearGradient3184);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
style="fill:url(#linearGradient3180);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect3178"
width="24"
height="24"
x="40"
y="-40" />
<rect
style="fill:url(#linearGradient3211);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect2383"
width="24"
height="24"
x="120"
y="-40" />
<rect
y="-40"
x="80"
height="24"
width="24"
id="rect3174"
style="fill:url(#linearGradient3176);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<path
style="fill:none;fill-rule:evenodd;stroke:#be0000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 79.92808,24.660312 C 82.91811,16.699566 92.18207,4.622125 104.45279,0.242516"
id="path3159"
sodipodi:nodetypes="cc" />
<path
style="opacity:0.7;fill:none;fill-rule:evenodd;stroke:#76a400;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="M 161.27126,22.542893 L 164.43049,6.364908 L 183.17098,0.797204"
id="path3167"
sodipodi:nodetypes="ccc" />
<path
sodipodi:nodetypes="cc"
id="path3181"
d="M 160.42808,24.472812 C 163.41811,16.512066 172.49457,4.372125 184.76529,-0.007484"
style="fill:none;fill-rule:evenodd;stroke:#be0000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
sodipodi:nodetypes="cc"
id="path3183"
d="M 40.02126,24.105393 L 64.29598,-0.265296"
style="opacity:1;fill:none;fill-rule:evenodd;stroke:#be0000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<path
sodipodi:nodetypes="cc"
id="path3195"
d="M 120.34597,24.205807 C 123.336,16.245061 132.01862,4.462353 144.28934,0.082744"
style="fill:none;fill-rule:evenodd;stroke:#be0000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
style="fill:none;fill-rule:evenodd;stroke:#76a400;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 132,20 L 140,20"
id="path3197"
sodipodi:nodetypes="cc" />
<path
sodipodi:nodetypes="cc"
id="path3199"
d="M 132,17 L 140,17"
style="fill:none;fill-rule:evenodd;stroke:#76a400;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
sodipodi:nodetypes="cc"
id="path3201"
d="M 132,14 L 140,14"
style="fill:none;fill-rule:evenodd;stroke:#76a400;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
transform="matrix(2.7600806,0,0,2.7600806,148.12887,-22.689217)"
d="M 7.0710679,10.497826 A 1.1711456,1.1711456 0 1 1 4.7287768,10.497826 A 1.1711456,1.1711456 0 1 1 7.0710679,10.497826 z"
sodipodi:ry="1.1711456"
sodipodi:rx="1.1711456"
sodipodi:cy="10.497826"
sodipodi:cx="5.8999224"
id="path3373"
style="fill:#76a400;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
sodipodi:type="arc" />
<path
sodipodi:type="arc"
style="fill:#76a400;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path3155"
sodipodi:cx="5.8999224"
sodipodi:cy="10.497826"
sodipodi:rx="1.1711456"
sodipodi:ry="1.1711456"
d="M 7.0710679,10.497826 A 1.1711456,1.1711456 0 1 1 4.7287768,10.497826 A 1.1711456,1.1711456 0 1 1 7.0710679,10.497826 z"
transform="matrix(2.7600806,0,0,2.7600806,69.37757,-14.600829)" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 8.4 KiB

View File

@@ -0,0 +1,212 @@
#region Usings
using System;
using System.Text;
using System.IO;
using System.Globalization;
using System.Diagnostics;
using System.Configuration;
using System.Collections;
using System.Collections.Specialized;
#endregion
// Raw Therapee sample Custom Profile builder (version 2010-11-08)
// WARNING: PP3 format may change in the future versions! If this happens there will probably be no automatic migration path, you'll have to adjust on your own.
//
// How to use:
// 1. Modify the GetCorrectedSettings function below according to your needs.
// 2. Download and install Microsoft .Net Runtime (latest version is 4.0 as of writing), if it's not already on your machine.
// You can get it for free via Windows Update or from microsoft.com. No need for Visual Studio etc.
// 3. Open a command line and compile this CS-File using the C# 32bit compiler. It is usually installed somewhere here:
// C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe
// Call csc.exe with your .CS file as parameter. CSC will compile it and emit an EXE.
// 4. Open your RT options files and find the entry [Profiles]/CustomProfileBuilder
// 5. Enter the path to your newly built exe here. On Windows, don't forget double slashes (e.g. "C:\\MyDir\\Mybuilder.exe")
// And you're done! The EXE is only called on opening the image editor and there is no PP3 already
//
// If you want to use EXIFTOOL to gather more details information to build queries:
// 1. Download exiftool.exe from http://www.sno.phy.queensu.ca/~phil/exiftool/
// 2. Rename it to exiftool.exe (NOT exiftool(-k).. or something!)
// 3. Copy the RTProfilerBuilder.exe.config next to your own EXE. If you renamed it, rename config to "(Yourname).exe.config"
// 4. Open the config with notepad (it's an XML file). Set ExifToolPath to your downloaded and renamed exe
//
// If you want to know what parameters are available, call "exiftool.exe <raw file name> -tab -short"
//
// This description is for Windows. The C# code does not use anything fancy, will probably work with MONO on Linux/OSX, too
namespace RTProfilerBuilder {
/// <summary>Main class. Mostly change GetCorrectedSettings.</summary>
class RTProfileBuilder {
/// <summary>This is your personalisation function</summary>
/// <param name="exif">Full EXIF from EXIFTOOL (if configured).</param>
/// <param name="sectionEntry">Entry, like "Sharpening/Radius"</param>
/// <param name="value">Current value (from default file)</param>
/// <param name="fNumber">FNumber</param><param name="exposureSecs">Exposure in seconds</param>
/// <param name="focalLength">Focal length in MM</param><param name="iso">ISO value</param>
/// <param name="lens">Lens from EXIF</param><param name="camera">Camera from EXIF</param>
/// <returns>The value to be written. Simply take the current value if you have nothing to touch.</returns>
static string GetCorrectedSetting(NameValueCollection exif, string sectionEntry, string value,
float fNumber, float exposureSecs, float focalLength, long iso, string lens, string camera) {
string s;
// We don't do anything to the value if it's not our camera
if (camera.EndsWith("NIKON D700", StringComparison.InvariantCultureIgnoreCase) && lens.Contains("24.0-120.0")) {
switch (sectionEntry) {
// Here is the place to adjust your settings
// Pretty simple: "SectionName/EntryName" in options file
case "Vignetting Correction/Amount":
value = (fNumber < 8 && focalLength < 30) ? "30" : "0";
break;
case "RAW/CA":
value = ToBool(fNumber < 11); // Means "Enabled if fnumber<11, otherwise disabled"
break;
case "Impulse Denoising/Enabled":
value = ToBool(iso >= 3200);
break;
case "HLRecovery/Enabled":
value = ToBool(iso >= 1600); // Dynamic range decreases, so we'll probably need it
break;
case "Color Boost/Amount":
if (iso >= 6400) value = "0"; // Colors will get poppy anyway...
break;
// Add other parameters here. Mention this is case sensitive!
default: break; // we don't touch values we don't care about
}
} // end if camera=xxx
// This is for camera independend settings
switch (sectionEntry) {
// These are parsed from EXIFTOOL and XMP in DNG (see http://en.wikipedia.org/wiki/Extensible_Metadata_Platform)
case "IPTC/City":
s = exif.Get("City");
if (!String.IsNullOrEmpty(s)) value = s;
break;
case "IPTC/Country":
s = exif.Get("Country");
if (!String.IsNullOrEmpty(s)) value = s;
break;
case "IPTC/Caption":
case "IPTC/Title":
s = exif.Get("Headline");
if (!String.IsNullOrEmpty(s)) value = s;
break;
// Add other parameters here. Mention this is case sensitive!
default: break; // we don't touch values we don't care about
}
return value;
}
#region * Main and Helpers
static string ToBool(bool condition) { return condition ? "true" : "false"; }
static string ToFloat(float f) { return f.ToString(CultureInfo.InvariantCulture); }
/// <summary>Reads default file and parses it. No need to touch it for your personal settings.</summary>
/// <param name="args">Command line args</param>
/// <return>0 on all OK.</return>
static int Main(string[] args) {
int exitCode = 0;
try {
#region Parse input parameters
int argNo = 0;
// Name of RAW/JPG to process
string sourceFile = args[argNo++];
// What the user selected as his base profile
string defaultProfileFilePath = args[argNo++];
// Note that old C++ has no automatic number globalization
float fNumber = float.Parse(args[argNo++], CultureInfo.InvariantCulture);
float exposureSecs = float.Parse(args[argNo++], CultureInfo.InvariantCulture);
float focalLength = float.Parse(args[argNo++], CultureInfo.InvariantCulture);
long iso = long.Parse(args[argNo++], CultureInfo.InvariantCulture);
string lens = args[argNo++];
string camera = args[argNo++];
#endregion
// Read default file as basis
string[] lines = File.ReadAllLines(defaultProfileFilePath);
NameValueCollection nvEXIF = ParseFullExifData(sourceFile);
// File should be Windows ANSI
using (TextWriter tw = new StreamWriter(sourceFile + ".pp3", false, Encoding.Default)) {
string section = "";
foreach (string line in lines) {
string l = line.Trim();
if (!String.IsNullOrEmpty(line)) {
if (l.StartsWith("["))
section = l.Trim(new char[] { '[', ']' });
else if (char.IsLetterOrDigit(l[0]) && l.Contains("=")) {
int valPos = l.IndexOf("=") + 1;
string newValue = GetCorrectedSetting(nvEXIF, section + "/" + l.Substring(0, valPos - 1), l.Substring(valPos).Trim(),
fNumber, exposureSecs, focalLength, iso, lens, camera);
// Merge in new value
l = l.Substring(0, valPos) + (newValue ?? "");
}
}
tw.WriteLine(l);
}
}
} catch (Exception ex) {
Console.WriteLine("Error: " + ex.ToString()); // can be seen in the RT console window
exitCode = 1;
}
return exitCode;
}
static NameValueCollection ParseFullExifData(string filePath) {
NameValueCollection nv = new NameValueCollection();
string exifToolPath = ConfigurationManager.AppSettings["ExifToolPath"];
if (!String.IsNullOrEmpty(exifToolPath)) {
ProcessStartInfo psi = new ProcessStartInfo(exifToolPath, "\"" + filePath + "\" -tab -short");
psi.CreateNoWindow = false;
psi.UseShellExecute = false;
psi.RedirectStandardOutput = true;
Process p = Process.Start(psi);
using (StreamReader sr = p.StandardOutput) {
while (!sr.EndOfStream) {
string line = sr.ReadLine();
if (line.Contains("\t")) {
string[] split = line.Split('\t');
nv.Add(split[0], split[1]);
}
}
}
p.WaitForExit();
}
return nv;
}
#endregion
}
}

View File

@@ -0,0 +1,8 @@
<?xml version="1.0"?>
<configuration>
<appSettings>
<!-- Set this full path to exiftool.exe. Rename exiftool(-k).exe to exiftool.exe before using it here!
If you leave the value empty, EXIFTOOL is simply not used. -->
<add key="ExifToolPath" value="C:\Program Files (x86)\exiftool.exe"/>
</appSettings>
</configuration>

BIN
tools/createicon.exe Normal file

Binary file not shown.

BIN
tools/edited.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 790 B

BIN
tools/editedb.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 732 B

BIN
tools/editedw.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 791 B

View File

@@ -0,0 +1,53 @@
#!/bin/bash
#
# Append translation differences on the end of all files. Developers should run this script
# after changing default, so that translators can easily see what items need to be translated.
#
# This script should be run from the project root, e.g:
# $ ./tools/generateTranslationDiffs.sh
#
#####################
TEMP=temp_file
cd "rtdata/languages"
if [[ $? != 0 ]]; then
echo "You must run this script from the root of the project."
exit
fi
#First thing, we want to strip default of any !s and duplicates.
cat "default" | grep -v '^!' | sort | uniq > "$TEMP"
mv "$TEMP" "default"
echo "Generating differences... this may take a few minutes."
find . |
grep -v 'default' |
grep -v 'README' |
grep -v 'LICENSE' |
grep -v 'generateDiffs.sh' |
grep -v "$TEMP" |
grep -v '^.$' |
while read X; do
echo "Working on differences for $X"
#Start by copying the existing file to a temporary one, after sorting and removing all
#previous differences
cat "$X" | grep -v '^!' | sort | uniq > "$TEMP"
echo -e "\n\n!!!!!!!!!!!!!!!!!!!!!!!!!\n! Untranslated keys follow; remove the ! prefix after an entry is translated.\n!!!!!!!!!!!!!!!!!!!!!!!!!\n\n" >> "$TEMP"
cat 'default' | grep -v '^#' | while read LINE; do
KEY=`echo "$LINE" | cut -f 1 -d ';'`
grep -q "^$KEY" "$X";
if [[ $? != 0 ]]; then
echo "!$LINE" >> "$TEMP"
fi
done
#Replace the old file with the new one, with a section at the end for differences.
mv "$TEMP" "$X"
done
echo "Finished generating differences."

BIN
tools/head.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 595 B

BIN
tools/headb.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 640 B

BIN
tools/headw.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 672 B

202
tools/horizontal.svg Normal file
View File

@@ -0,0 +1,202 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="744.09448819"
height="1052.3622047"
id="svg2"
sodipodi:version="0.32"
inkscape:version="0.46"
sodipodi:docname="horizontal.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
inkscape:export-filename="/home/gabor/RawTherapee/2.4/gui65_5/horizontal.png"
inkscape:export-xdpi="10.294841"
inkscape:export-ydpi="10.294841">
<defs
id="defs4">
<marker
inkscape:stockid="Arrow2Send"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow2Send"
style="overflow:visible;">
<path
id="path3244"
style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
transform="scale(0.3) rotate(180) translate(-2.3,0)" />
</marker>
<marker
inkscape:stockid="Arrow2Mend"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow2Mend"
style="overflow:visible;">
<path
id="path3238"
style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
transform="scale(0.6) rotate(180) translate(0,0)" />
</marker>
<marker
inkscape:stockid="Arrow2Lend"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow2Lend"
style="overflow:visible;">
<path
id="path3232"
style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
transform="scale(1.1) rotate(180) translate(1,0)" />
</marker>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective10" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
gridtolerance="10000"
guidetolerance="10"
objecttolerance="10"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.70710678"
inkscape:cx="-101.92157"
inkscape:cy="855.59942"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:window-width="1679"
inkscape:window-height="975"
inkscape:window-x="0"
inkscape:window-y="25">
<inkscape:grid
type="xygrid"
id="grid2383" />
</sodipodi:namedview>
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<path
sodipodi:type="arc"
style="opacity:1;fill:#f0ff02;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:4;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path2385"
sodipodi:cx="175"
sodipodi:cy="137.36218"
sodipodi:rx="25"
sodipodi:ry="25"
d="M 200,137.36218 A 25,25 0 1 1 150,137.36218 A 25,25 0 1 1 200,137.36218 z"
transform="translate(10,90)" />
<path
sodipodi:type="arc"
style="opacity:1;fill:#f0ff02;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:4;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path2387"
sodipodi:cx="175"
sodipodi:cy="137.36218"
sodipodi:rx="25"
sodipodi:ry="25"
d="M 200,137.36218 A 25,25 0 1 1 150,137.36218 A 25,25 0 1 1 200,137.36218 z"
transform="translate(90,90)" />
<path
sodipodi:type="arc"
style="opacity:1;fill:#f0ff02;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:4;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path2389"
sodipodi:cx="175"
sodipodi:cy="137.36218"
sodipodi:rx="25"
sodipodi:ry="25"
d="M 200,137.36218 A 25,25 0 1 1 150,137.36218 A 25,25 0 1 1 200,137.36218 z"
transform="translate(10,10)" />
<path
sodipodi:type="arc"
style="opacity:1;fill:#f0ff02;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:4;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path2391"
sodipodi:cx="175"
sodipodi:cy="137.36218"
sodipodi:rx="25"
sodipodi:ry="25"
d="M 200,137.36218 A 25,25 0 1 1 150,137.36218 A 25,25 0 1 1 200,137.36218 z"
transform="translate(90,10)" />
<g
id="g3201"
transform="matrix(0,1,1,0,37.6387,-35.983797)">
<path
transform="matrix(-1,0,0,-1,464.53846,379.72436)"
sodipodi:open="true"
sodipodi:end="7.8539816"
sodipodi:start="4.712389"
d="M 305,152.36218 A 20,20 0 0 1 305,192.36218"
sodipodi:ry="20"
sodipodi:rx="20"
sodipodi:cy="172.36218"
sodipodi:cx="305"
id="path3177"
style="opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:10;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
sodipodi:type="arc" />
<path
id="path3185"
d="M 158.34598,227.3613 L 313.34598,227.3613"
style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:10;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:url(#Arrow2Send);stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
sodipodi:nodetypes="cc" />
<path
id="path3187"
d="M 139.53846,147.36218 L 289.53846,147.36218"
style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:10;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
id="path3189"
d="M 160.08391,187.36218 L 290.08391,187.36218"
style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:10;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
transform="translate(-15.000001,-5)"
sodipodi:open="true"
sodipodi:end="7.8539816"
sodipodi:start="4.712389"
d="M 305,152.36218 A 20,20 0 0 1 305,192.36218"
sodipodi:ry="20"
sodipodi:rx="20"
sodipodi:cy="172.36218"
sodipodi:cx="305"
id="path5060"
style="opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:10;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
sodipodi:type="arc" />
</g>
<path
sodipodi:type="arc"
style="opacity:1;fill:#f0ff02;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path5062"
sodipodi:cx="190"
sodipodi:cy="212.36218"
sodipodi:rx="10"
sodipodi:ry="0"
d="M 200,212.36218 A 10,0 0 1 1 180,212.36218 A 10,0 0 1 1 200,212.36218 z" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 8.6 KiB

BIN
tools/osx/Icons.icns Normal file

Binary file not shown.

28
tools/osx/Info.plist Normal file
View File

@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>start</string>
<key>CFBundleIconFile</key>
<string>Icons.icns</string>
<key>CFBundleIdentifier</key>
<string>com.rawtherapee.rawtherapee</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>RawTherapee</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>3.0a</string>
<key>CFBundleSignature</key>
<string>APPL</string>
<key>CFBundleVersion</key>
<string>3.0 Alpha</string>
<key>NSAppleScriptEnabled</key>
<string>NO</string>
</dict>
</plist>

98
tools/osx/make-app-bundle Executable file
View File

@@ -0,0 +1,98 @@
#!/bin/bash
# Function checkLink:
# args: $1 - file
#
# Will loop through all dynamic links for $file, and update each to be relative.
function checkLink {
#echo "checkLink called with $1 $2"
local FILE=$1
otool -L $FILE | grep -v "${APP}" | grep -v '/usr/lib' | grep -v '/System/' | grep -v "@executable_path" | cut -f 1 -d ' ' | while read X
do
local NAME=${LIB}/`basename "$X"`
if [ ! -f "${NAME}" ]
then
cp $X "${NAME}"
#Recursively update the linkage of libraries
checkLink "${NAME}"
fi
done
}
APP=RawTherapee.app
CONTENTS=${APP}/Contents
RESOURCES=${CONTENTS}/Resources
MACOS=${CONTENTS}/MacOS
BIN=${MACOS}/bin
ETC=${MACOS}/etc
LIB=${MACOS}/lib
SHARE=${MACOS}/share
RELEASE=release
DMG=${RELEASE}/rawtherapee_osx105_`date +%F`_`hg parents --template '{latesttag}+{latesttagdistance}-{node|short}'`.dmg
EXECUTABLE=rt
#Find where MacPorts is installed. We take a known binary (cmake), which is in <MacPorts>/bin, and
# go up a level to get the main install folder.
MACPORTS_PREFIX=`which cmake`
MACPORTS_PREFIX=`dirname $MACPORTS_PREFIX`
MACPORTS_PREFIX=`dirname $MACPORTS_PREFIX`
if [ ! -d ${RELEASE} ]; then
echo "Please run this from the root of the project; i.e. './tools/osx/make-app-bundle'."
exit
fi
if [ -d "${APP}" ]; then
echo "Removing old application..."
rm -rf "${APP}"
fi
echo "Removing any old disk images..."
rm ${RELEASE}/rawtherapee*.dmg
echo "Making application directory structure..."
mkdir -p "${RESOURCES}"
mkdir -p "${ETC}"
mkdir -p "${LIB}"
mkdir -p "${SHARE}/mime"
#Copy over non-explicitly linked libraries
echo "Copying libraries from ${MACPORTS_PREFIX}..."
cp -R ${MACPORTS_PREFIX}/lib/pango ${LIB}
cp -R ${MACPORTS_PREFIX}/lib/gtk-2.0 ${LIB}
#Copy over mimes (if a mime is copied, and nobody hears, is it really copied?)
echo "Copying shared files from ${MACPORTS_PREFIX}..."
cp -R ${MACPORTS_PREFIX}/share/mime/* ${SHARE}/mime
#Copy over etc files, and modify as needed
echo "Copying configuration files from ${MACPORTS_PREFIX} and modifying for standalone app bundle..."
cp -R $MACPORTS_PREFIX/etc/gtk-2.0 ${ETC}
cp -R $MACPORTS_PREFIX/etc/pango ${ETC}
ESCAPED_MACPORTS_PREFIX=`echo ${MACPORTS_PREFIX} | sed -e 's/\\//\\\\\\//g'`
sed -i .bak -e "s/${ESCAPED_MACPORTS_PREFIX}/@executable_path/g" ${ETC}/gtk-2.0/gdk-pixbuf.loaders ${ETC}/pango/pango.modules
echo -e "[Pango]\nModuleFiles = /tmp/${EXECUTABLE}_pango.modules" > ${ETC}/pango/pangorc
#Copy over the release files
echo "Copying release files..."
cp -R release/* ${MACOS}
#Copy application-specific stuff like icons and startup script
echo "Creating required application bundle files..."
cp ./tools/osx/Info.plist ${CONTENTS}
cp tools/osx/Icons.icns ${RESOURCES}
cp tools/osx/start ${MACOS}
#Copy and relink the explicitly defined libraries
echo "Recursively copying libraries referenced by executable..."
checkLink "${MACOS}/${EXECUTABLE}"
#Make a .dmg for distribution and delete the .app
echo "Creating distribution .dmg..."
hdiutil create -srcdir ${APP} ${DMG}
echo "Cleaning up..."
rm -rf ${APP}
echo "All done!"

20
tools/osx/start Executable file
View File

@@ -0,0 +1,20 @@
#!/bin/bash
CWD=`dirname "$0"`
echo $CWD
export DYLD_LIBRARY_PATH="${CWD}/lib:$DYLD_LIBRARY_PATH"
export GTK_DATA_PREFIX="${CWD}"
export GTK_DATA_DIRS="${CWD}"
export GTK_EXE_PREFIX="${CWD}"
export GTK_PATH="${CWD}"
export GTK2_RC_FILES="${CWD}/etc/gtk-2.0/gtkrc"
export GTK_IM_MODULE_FILE="${CWD}/gtk-2.0/gtk.immodules"
export GDK_PIXBUF_MODULE_FILE="${CWD}/etc/gtk-2.0/gdk-pixbuf.loaders"
export PANGO_RC_FILE="${CWD}/etc/pango/pangorc"
cp "${CWD}/etc/pango/pango.modules" /tmp/rt_pango.modules
"${CWD}/rt"

BIN
tools/processing.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 865 B

BIN
tools/processingb.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 860 B

BIN
tools/processingw.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 856 B

BIN
tools/saved.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 587 B

BIN
tools/savedb.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 676 B

BIN
tools/savedw.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 687 B

BIN
tools/tail.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 608 B

BIN
tools/tailb.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 659 B

BIN
tools/tailw.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 689 B

BIN
tools/trash.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 810 B

BIN
tools/trashb.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 844 B

BIN
tools/trashw.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 902 B

BIN
tools/undelete.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 914 B

BIN
tools/undeleteb.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 935 B

BIN
tools/undeletew.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 975 B

201
tools/vertical.svg Normal file
View File

@@ -0,0 +1,201 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="744.09448819"
height="1052.3622047"
id="svg2"
sodipodi:version="0.32"
inkscape:version="0.46"
sodipodi:docname="vertical.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
inkscape:export-filename="/home/gabor/RawTherapee/2.4/gui65_5/vertical.png"
inkscape:export-xdpi="10.685388"
inkscape:export-ydpi="10.685388">
<defs
id="defs4">
<marker
inkscape:stockid="Arrow2Send"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow2Send"
style="overflow:visible;">
<path
id="path3244"
style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
transform="scale(0.3) rotate(180) translate(-2.3,0)" />
</marker>
<marker
inkscape:stockid="Arrow2Mend"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow2Mend"
style="overflow:visible;">
<path
id="path3238"
style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
transform="scale(0.6) rotate(180) translate(0,0)" />
</marker>
<marker
inkscape:stockid="Arrow2Lend"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow2Lend"
style="overflow:visible;">
<path
id="path3232"
style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
transform="scale(1.1) rotate(180) translate(1,0)" />
</marker>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective10" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
gridtolerance="10000"
guidetolerance="10"
objecttolerance="10"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.4142136"
inkscape:cx="353.61755"
inkscape:cy="734.99896"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:window-width="1679"
inkscape:window-height="975"
inkscape:window-x="0"
inkscape:window-y="25">
<inkscape:grid
type="xygrid"
id="grid2383" />
</sodipodi:namedview>
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<path
sodipodi:type="arc"
style="opacity:1;fill:#f0ff02;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:4;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path2385"
sodipodi:cx="175"
sodipodi:cy="137.36218"
sodipodi:rx="25"
sodipodi:ry="25"
d="M 200,137.36218 A 25,25 0 1 1 150,137.36218 A 25,25 0 1 1 200,137.36218 z"
transform="translate(10,90)" />
<path
sodipodi:type="arc"
style="opacity:1;fill:#f0ff02;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:4;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path2387"
sodipodi:cx="175"
sodipodi:cy="137.36218"
sodipodi:rx="25"
sodipodi:ry="25"
d="M 200,137.36218 A 25,25 0 1 1 150,137.36218 A 25,25 0 1 1 200,137.36218 z"
transform="translate(90,90)" />
<path
sodipodi:type="arc"
style="opacity:1;fill:#f0ff02;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:4;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path2389"
sodipodi:cx="175"
sodipodi:cy="137.36218"
sodipodi:rx="25"
sodipodi:ry="25"
d="M 200,137.36218 A 25,25 0 1 1 150,137.36218 A 25,25 0 1 1 200,137.36218 z"
transform="translate(10,10)" />
<path
sodipodi:type="arc"
style="opacity:1;fill:#f0ff02;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:4;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path2391"
sodipodi:cx="175"
sodipodi:cy="137.36218"
sodipodi:rx="25"
sodipodi:ry="25"
d="M 200,137.36218 A 25,25 0 1 1 150,137.36218 A 25,25 0 1 1 200,137.36218 z"
transform="translate(90,10)" />
<g
id="g3201"
transform="translate(0.46154,2.6171874e-6)">
<path
transform="matrix(-1,0,0,-1,464.53846,379.72436)"
sodipodi:open="true"
sodipodi:end="7.8539816"
sodipodi:start="4.712389"
d="M 305,152.36218 A 20,20 0 0 1 305,192.36218"
sodipodi:ry="20"
sodipodi:rx="20"
sodipodi:cy="172.36218"
sodipodi:cx="305"
id="path3177"
style="opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:10;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
sodipodi:type="arc" />
<path
id="path3185"
d="M 158.44857,227.3606 L 314.73908,227.3606"
style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:10;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:url(#Arrow2Send);stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
id="path3187"
d="M 139.53846,147.36218 L 289.53846,147.36218"
style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:10;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
id="path3189"
d="M 160.08391,187.36218 L 290.08391,187.36218"
style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:10;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
transform="translate(-15.000001,-5)"
sodipodi:open="true"
sodipodi:end="7.8539816"
sodipodi:start="4.712389"
d="M 305,152.36218 A 20,20 0 0 1 305,192.36218"
sodipodi:ry="20"
sodipodi:rx="20"
sodipodi:cy="172.36218"
sodipodi:cx="305"
id="path5060"
style="opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:10;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
sodipodi:type="arc" />
</g>
<path
sodipodi:type="arc"
style="opacity:1;fill:#f0ff02;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path5062"
sodipodi:cx="190"
sodipodi:cy="212.36218"
sodipodi:rx="10"
sodipodi:ry="0"
d="M 200,212.36218 A 10,0 0 1 1 180,212.36218 A 10,0 0 1 1 200,212.36218 z" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 8.6 KiB