<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>DBPrefsWindowController.h</filename>
    </added>
    <added>
      <filename>DBPrefsWindowController.m</filename>
    </added>
    <added>
      <filename>English.lproj/Preferences.xib</filename>
    </added>
    <added>
      <filename>Images/Preferences/Updates.png</filename>
    </added>
    <added>
      <filename>PBNSURLPathUserDefaultsTransfomer.h</filename>
    </added>
    <added>
      <filename>PBNSURLPathUserDefaultsTransfomer.m</filename>
    </added>
    <added>
      <filename>PBPrefsWindowController.h</filename>
    </added>
    <added>
      <filename>PBPrefsWindowController.m</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -11,7 +11,7 @@
 
 @class PBCLIProxy;
 
-@interface ApplicationController : NSObject 
+@interface ApplicationController : NSObject
 {
 	IBOutlet NSWindow *window;
 	IBOutlet id firstResponder;
@@ -27,6 +27,8 @@
 - (NSManagedObjectModel *)managedObjectModel;
 - (NSManagedObjectContext *)managedObjectContext;
 
+- (IBAction)openPreferencesWindow:(id)sender;
+
 - (IBAction)installCliTool:(id)sender;
 
 - (IBAction)saveAction:sender;</diff>
      <filename>ApplicationController.h</filename>
    </modified>
    <modified>
      <diff>@@ -13,6 +13,8 @@
 #import &quot;PBCLIProxy.h&quot;
 #import &quot;PBServicesController.h&quot;
 #import &quot;PBGitXProtocol.h&quot;
+#import &quot;PBPrefsWindowController.h&quot;
+#import &quot;PBNSURLPathUserDefaultsTransfomer.h&quot;
 
 @implementation ApplicationController
 @synthesize cliProxy;
@@ -30,6 +32,10 @@
 		self.cliProxy = [PBCLIProxy new];
 	}
 
+	/* Value Transformers */
+	NSValueTransformer *transformer = [[PBNSURLPathUserDefaultsTransfomer alloc] init];
+	[NSValueTransformer setValueTransformer:transformer forName:@&quot;PBNSURLPathUserDefaultsTransfomer&quot;];
+	
 	return self;
 }
 
@@ -78,6 +84,11 @@
 	[firstResponder terminate: sender];
 }
 
+- (IBAction)openPreferencesWindow:(id)sender
+{
+	[[PBPrefsWindowController sharedPrefsWindowController] showWindow:nil];
+}
+
 - (IBAction)installCliTool:(id)sender;
 {
 	BOOL success               = NO;</diff>
      <filename>ApplicationController.m</filename>
    </modified>
    <modified>
      <diff>@@ -8,7 +8,7 @@
 		&lt;string key=&quot;IBDocument.HIToolboxVersion&quot;&gt;352.00&lt;/string&gt;
 		&lt;object class=&quot;NSMutableArray&quot; key=&quot;IBDocument.EditedObjectIDs&quot;&gt;
 			&lt;bool key=&quot;EncodedWithXMLCoder&quot;&gt;YES&lt;/bool&gt;
-			&lt;integer value=&quot;106&quot;/&gt;
+			&lt;integer value=&quot;57&quot;/&gt;
 		&lt;/object&gt;
 		&lt;object class=&quot;NSArray&quot; key=&quot;IBDocument.PluginDependencies&quot;&gt;
 			&lt;bool key=&quot;EncodedWithXMLCoder&quot;&gt;YES&lt;/bool&gt;
@@ -1193,6 +1193,14 @@
 					&lt;/object&gt;
 					&lt;int key=&quot;connectionID&quot;&gt;932&lt;/int&gt;
 				&lt;/object&gt;
+				&lt;object class=&quot;IBConnectionRecord&quot;&gt;
+					&lt;object class=&quot;IBActionConnection&quot; key=&quot;connection&quot;&gt;
+						&lt;string key=&quot;label&quot;&gt;openPreferencesWindow:&lt;/string&gt;
+						&lt;reference key=&quot;source&quot; ref=&quot;859235683&quot;/&gt;
+						&lt;reference key=&quot;destination&quot; ref=&quot;704355783&quot;/&gt;
+					&lt;/object&gt;
+					&lt;int key=&quot;connectionID&quot;&gt;933&lt;/int&gt;
+				&lt;/object&gt;
 			&lt;/object&gt;
 			&lt;object class=&quot;IBMutableOrderedSet&quot; key=&quot;objectRecords&quot;&gt;
 				&lt;object class=&quot;NSArray&quot; key=&quot;orderedObjects&quot;&gt;
@@ -2036,7 +2044,7 @@
 					&lt;integer value=&quot;1&quot; id=&quot;9&quot;/&gt;
 					&lt;string&gt;com.apple.InterfaceBuilder.CocoaPlugin&lt;/string&gt;
 					&lt;reference ref=&quot;9&quot;/&gt;
-					&lt;string&gt;{{789, 817}, {138, 23}}&lt;/string&gt;
+					&lt;string&gt;{{789, 713}, {138, 23}}&lt;/string&gt;
 					&lt;string&gt;com.apple.InterfaceBuilder.CocoaPlugin&lt;/string&gt;
 					&lt;reference ref=&quot;9&quot;/&gt;
 					&lt;string&gt;com.apple.InterfaceBuilder.CocoaPlugin&lt;/string&gt;
@@ -2154,7 +2162,7 @@
 					&lt;reference ref=&quot;9&quot;/&gt;
 					&lt;string&gt;com.apple.InterfaceBuilder.CocoaPlugin&lt;/string&gt;
 					&lt;reference ref=&quot;9&quot;/&gt;
-					&lt;string&gt;{{521, 840}, {329, 20}}&lt;/string&gt;
+					&lt;string&gt;{{521, 736}, {329, 20}}&lt;/string&gt;
 					&lt;string&gt;com.apple.InterfaceBuilder.CocoaPlugin&lt;/string&gt;
 					&lt;reference ref=&quot;9&quot;/&gt;
 					&lt;string&gt;{{297, 739}, {329, 20}}&lt;/string&gt;
@@ -2170,7 +2178,7 @@
 					&lt;reference ref=&quot;9&quot;/&gt;
 					&lt;string&gt;com.apple.InterfaceBuilder.CocoaPlugin&lt;/string&gt;
 					&lt;reference ref=&quot;9&quot;/&gt;
-					&lt;string&gt;{{279, 643}, {262, 223}}&lt;/string&gt;
+					&lt;string&gt;{{533, 513}, {262, 223}}&lt;/string&gt;
 					&lt;string&gt;com.apple.InterfaceBuilder.CocoaPlugin&lt;/string&gt;
 					&lt;reference ref=&quot;9&quot;/&gt;
 					&lt;string&gt;{{309, 536}, {262, 203}}&lt;/string&gt;
@@ -2192,7 +2200,7 @@
 					&lt;reference ref=&quot;9&quot;/&gt;
 					&lt;string&gt;com.apple.InterfaceBuilder.CocoaPlugin&lt;/string&gt;
 					&lt;reference ref=&quot;9&quot;/&gt;
-					&lt;string&gt;{{373, 680}, {199, 203}}&lt;/string&gt;
+					&lt;string&gt;{{582, 533}, {199, 203}}&lt;/string&gt;
 					&lt;string&gt;com.apple.InterfaceBuilder.CocoaPlugin&lt;/string&gt;
 					&lt;reference ref=&quot;9&quot;/&gt;
 					&lt;string&gt;{{358, 536}, {199, 203}}&lt;/string&gt;
@@ -2235,7 +2243,7 @@
 				&lt;/object&gt;
 			&lt;/object&gt;
 			&lt;nil key=&quot;sourceID&quot;/&gt;
-			&lt;int key=&quot;maxID&quot;&gt;932&lt;/int&gt;
+			&lt;int key=&quot;maxID&quot;&gt;933&lt;/int&gt;
 		&lt;/object&gt;
 		&lt;object class=&quot;IBClassDescriber&quot; key=&quot;IBDocument.Classes&quot;&gt;
 			&lt;object class=&quot;NSMutableArray&quot; key=&quot;referencedPartialClassDescriptions&quot;&gt;
@@ -2248,6 +2256,7 @@
 						&lt;object class=&quot;NSMutableArray&quot; key=&quot;dict.sortedKeys&quot;&gt;
 							&lt;bool key=&quot;EncodedWithXMLCoder&quot;&gt;YES&lt;/bool&gt;
 							&lt;string&gt;installCliTool:&lt;/string&gt;
+							&lt;string&gt;openPreferencesWindow:&lt;/string&gt;
 							&lt;string&gt;saveAction:&lt;/string&gt;
 							&lt;string&gt;showHelp:&lt;/string&gt;
 						&lt;/object&gt;
@@ -2256,6 +2265,7 @@
 							&lt;string&gt;id&lt;/string&gt;
 							&lt;string&gt;id&lt;/string&gt;
 							&lt;string&gt;id&lt;/string&gt;
+							&lt;string&gt;id&lt;/string&gt;
 						&lt;/object&gt;
 					&lt;/object&gt;
 					&lt;object class=&quot;NSMutableDictionary&quot; key=&quot;outlets&quot;&gt;</diff>
      <filename>English.lproj/MainMenu.xib</filename>
    </modified>
    <modified>
      <diff>@@ -10,6 +10,11 @@
 		056438B70ED0C40B00985397 /* DetailViewTemplate.png in Resources */ = {isa = PBXBuildFile; fileRef = 056438B60ED0C40B00985397 /* DetailViewTemplate.png */; };
 		3BC07F4C0ED5A5C5009A7768 /* HistoryViewTemplate.png in Resources */ = {isa = PBXBuildFile; fileRef = 3BC07F4A0ED5A5C5009A7768 /* HistoryViewTemplate.png */; };
 		3BC07F4D0ED5A5C5009A7768 /* CommitViewTemplate.png in Resources */ = {isa = PBXBuildFile; fileRef = 3BC07F4B0ED5A5C5009A7768 /* CommitViewTemplate.png */; };
+		47DBDB580E94EDE700671A1E /* DBPrefsWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 47DBDB570E94EDE700671A1E /* DBPrefsWindowController.m */; };
+		47DBDB670E94EE8B00671A1E /* PBPrefsWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 47DBDB660E94EE8B00671A1E /* PBPrefsWindowController.m */; };
+		47DBDB6A0E94EF6500671A1E /* Preferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = 47DBDB680E94EF6500671A1E /* Preferences.xib */; };
+		47DBDBB10E94F6CA00671A1E /* Updates.png in Resources */ = {isa = PBXBuildFile; fileRef = 47DBDBB00E94F6CA00671A1E /* Updates.png */; };
+		47DBDBCA0E95016F00671A1E /* PBNSURLPathUserDefaultsTransfomer.m in Sources */ = {isa = PBXBuildFile; fileRef = 47DBDBC90E95016F00671A1E /* PBNSURLPathUserDefaultsTransfomer.m */; };
 		770B37ED0679A11B001EADE2 /* GitTest_DataModel.xcdatamodel in Sources */ = {isa = PBXBuildFile; fileRef = 770B37EC0679A11B001EADE2 /* GitTest_DataModel.xcdatamodel */; };
 		77C8280E06725ACE000B614F /* ApplicationController.m in Sources */ = {isa = PBXBuildFile; fileRef = 77C8280C06725ACE000B614F /* ApplicationController.m */; };
 		8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; };
@@ -132,6 +137,14 @@
 		32CA4F630368D1EE00C91783 /* GitX_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GitX_Prefix.pch; sourceTree = &quot;&lt;group&gt;&quot;; };
 		3BC07F4A0ED5A5C5009A7768 /* HistoryViewTemplate.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = HistoryViewTemplate.png; path = Images/HistoryViewTemplate.png; sourceTree = &quot;&lt;group&gt;&quot;; };
 		3BC07F4B0ED5A5C5009A7768 /* CommitViewTemplate.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = CommitViewTemplate.png; path = Images/CommitViewTemplate.png; sourceTree = &quot;&lt;group&gt;&quot;; };
+		47DBDB560E94EDE700671A1E /* DBPrefsWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DBPrefsWindowController.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+		47DBDB570E94EDE700671A1E /* DBPrefsWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DBPrefsWindowController.m; sourceTree = &quot;&lt;group&gt;&quot;; };
+		47DBDB650E94EE8B00671A1E /* PBPrefsWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PBPrefsWindowController.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+		47DBDB660E94EE8B00671A1E /* PBPrefsWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PBPrefsWindowController.m; sourceTree = &quot;&lt;group&gt;&quot;; };
+		47DBDB690E94EF6500671A1E /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/Preferences.xib; sourceTree = &quot;&lt;group&gt;&quot;; };
+		47DBDBB00E94F6CA00671A1E /* Updates.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Updates.png; path = Images/Preferences/Updates.png; sourceTree = &quot;&lt;group&gt;&quot;; };
+		47DBDBC80E95016F00671A1E /* PBNSURLPathUserDefaultsTransfomer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PBNSURLPathUserDefaultsTransfomer.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+		47DBDBC90E95016F00671A1E /* PBNSURLPathUserDefaultsTransfomer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PBNSURLPathUserDefaultsTransfomer.m; sourceTree = &quot;&lt;group&gt;&quot;; };
 		770B37EC0679A11B001EADE2 /* GitTest_DataModel.xcdatamodel */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = wrapper.xcdatamodel; path = GitTest_DataModel.xcdatamodel; sourceTree = &quot;&lt;group&gt;&quot;; };
 		77C82804067257F0000B614F /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = &quot;&lt;absolute&gt;&quot;; };
 		77C8280B06725ACE000B614F /* ApplicationController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ApplicationController.h; sourceTree = &quot;&lt;group&gt;&quot;; };
@@ -362,6 +375,7 @@
 			isa = PBXGroup;
 			children = (
 				F50A41130EBB872D00208746 /* Widgets */,
+				47DBDB920E94F47200671A1E /* Preference Icons */,
 				D26DC6440E782C9000C777B2 /* gitx.icns */,
 				8D1107310486CEB800E47090 /* Info.plist */,
 				089C165CFE840E0CC02AAC07 /* InfoPlist.strings */,
@@ -370,6 +384,7 @@
 				F5E424100EA3E4D60046E362 /* PBDiffWindow.xib */,
 				F52BCE020E84208300AA3741 /* PBGitHistoryView.xib */,
 				F59116E50E843BB50072CCB1 /* PBGitCommitView.xib */,
+				47DBDB680E94EF6500671A1E /* Preferences.xib */,
 			);
 			name = Resources;
 			sourceTree = &quot;&lt;group&gt;&quot;;
@@ -384,6 +399,14 @@
 			name = Frameworks;
 			sourceTree = &quot;&lt;group&gt;&quot;;
 		};
+		47DBDB920E94F47200671A1E /* Preference Icons */ = {
+			isa = PBXGroup;
+			children = (
+				47DBDBB00E94F6CA00671A1E /* Updates.png */,
+			);
+			name = &quot;Preference Icons&quot;;
+			sourceTree = &quot;&lt;group&gt;&quot;;
+		};
 		7756732906782D8800D1FEB8 /* Models */ = {
 			isa = PBXGroup;
 			children = (
@@ -446,6 +469,10 @@
 				F5EF8C8D0E9D4A5D0050906B /* PBWebController.m */,
 				F5FE6C010EB13BC900F30D12 /* PBServicesController.h */,
 				F5FE6C020EB13BC900F30D12 /* PBServicesController.m */,
+				47DBDB560E94EDE700671A1E /* DBPrefsWindowController.h */,
+				47DBDB570E94EDE700671A1E /* DBPrefsWindowController.m */,
+				47DBDB650E94EE8B00671A1E /* PBPrefsWindowController.h */,
+				47DBDB660E94EE8B00671A1E /* PBPrefsWindowController.m */,
 			);
 			name = Controllers;
 			sourceTree = &quot;&lt;group&gt;&quot;;
@@ -453,6 +480,10 @@
 		F57CC43E0E05E472000472E2 /* Aux */ = {
 			isa = PBXGroup;
 			children = (
+				47DBDBC80E95016F00671A1E /* PBNSURLPathUserDefaultsTransfomer.h */,
+				47DBDBC90E95016F00671A1E /* PBNSURLPathUserDefaultsTransfomer.m */,
+				F5AD56770E79B78100EDAAFE /* PBCommitList.h */,
+				F5AD56780E79B78100EDAAFE /* PBCommitList.m */,
 				F56524B90E02D22D00F03B52 /* NSFileHandleExt.m */,
 				F56524BA0E02D22D00F03B52 /* NSFileHandleExt.h */,
 				F57CC38F0E05DDF2000472E2 /* PBEasyPipe.h */,
@@ -673,6 +704,8 @@
 				F56ADDDA0ED19F9E002AC78F /* AddLabelTemplate.png in Resources */,
 				3BC07F4C0ED5A5C5009A7768 /* HistoryViewTemplate.png in Resources */,
 				3BC07F4D0ED5A5C5009A7768 /* CommitViewTemplate.png in Resources */,
+				47DBDB6A0E94EF6500671A1E /* Preferences.xib in Resources */,
+				47DBDBB10E94F6CA00671A1E /* Updates.png in Resources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -766,6 +799,9 @@
 				F574A2850EAE2EAC003F2CB1 /* PBRefController.m in Sources */,
 				F5FC43FE0EBD08EE00191D80 /* PBRefMenuItem.m in Sources */,
 				F523CEB60ED3399200DDD714 /* PBGitIndexController.m in Sources */,
+				47DBDB580E94EDE700671A1E /* DBPrefsWindowController.m in Sources */,
+				47DBDB670E94EE8B00671A1E /* PBPrefsWindowController.m in Sources */,
+				47DBDBCA0E95016F00671A1E /* PBNSURLPathUserDefaultsTransfomer.m in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -821,6 +857,14 @@
 			name = InfoPlist.strings;
 			sourceTree = &quot;&lt;group&gt;&quot;;
 		};
+		47DBDB680E94EF6500671A1E /* Preferences.xib */ = {
+			isa = PBXVariantGroup;
+			children = (
+				47DBDB690E94EF6500671A1E /* English */,
+			);
+			name = Preferences.xib;
+			sourceTree = &quot;&lt;group&gt;&quot;;
+		};
 		911111E00E58BD5A00BF76B4 /* RepositoryWindow.xib */ = {
 			isa = PBXVariantGroup;
 			children = (</diff>
      <filename>GitX.xcodeproj/project.pbxproj</filename>
    </modified>
    <modified>
      <diff>@@ -49,6 +49,12 @@ static NSString* gitPath = nil;
 
 + (void) initialize
 {
+	// Check what we might have in user defaults
+	// NOTE: Currently this should NOT have a registered default, or the searching bits below won't work
+	gitPath = [[NSUserDefaults standardUserDefaults] stringForKey:@&quot;gitExecutable&quot;];
+	if (gitPath.length &gt; 0)
+		return;
+
 	// Try to find the path of the Git binary
 	char* path = getenv(&quot;GIT_PATH&quot;);
 	if (path &amp;&amp; [self acceptBinary:[NSString stringWithCString:path]])</diff>
      <filename>PBGitBinary.m</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>85fa5a1d8f2f111989401baa58f337e45a9fec4c</id>
    </parent>
  </parents>
  <author>
    <name>Christian Jacobsen</name>
    <email>christian@transterpreter.org</email>
  </author>
  <url>http://github.com/pieter/gitx/commit/0f09401aa6d1e428e71cc57a341cdcfce0bd8fc5</url>
  <id>0f09401aa6d1e428e71cc57a341cdcfce0bd8fc5</id>
  <committed-date>2009-01-19T08:38:02-08:00</committed-date>
  <authored-date>2008-10-02T08:46:30-07:00</authored-date>
  <message>Add a preferences window

This adds a preference window with default preferences to change the
sparkle options and to set a custom path to a git binary.</message>
  <tree>8b382e8b2499ed950e383ed7ea552dc6da1f057b</tree>
  <committer>
    <name>Pieter de Bie</name>
    <email>pdebie@ai.rug.nl</email>
  </committer>
</commit>
