Skip to content

Commit 8532272

Browse files
Stonewall Ballardpieter
authored andcommitted
Add preferences for opening things at launch.
Heavily-Edited-By: Pieter de Bie <[email protected]>
1 parent ed4bb78 commit 8532272

File tree

4 files changed

+107
-20
lines changed

4 files changed

+107
-20
lines changed

ApplicationController.m

Lines changed: 23 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -68,18 +68,30 @@ - (void)applicationDidFinishLaunching:(NSNotification*)notification
6868
// Only try to open a default document if there are no documents open already.
6969
// For example, the application might have been launched by double-clicking a .git repository,
7070
// or by dragging a folder to the app icon
71-
if ([[[PBRepositoryDocumentController sharedDocumentController] documents] count] == 0 && [[NSApplication sharedApplication] isActive]) {
72-
// Try to open the current directory as a git repository
73-
NSURL *url = nil;
74-
if([[[NSProcessInfo processInfo] environment] objectForKey:@"PWD"])
75-
url = [NSURL fileURLWithPath:[[[NSProcessInfo processInfo] environment] objectForKey:@"PWD"]];
76-
NSError *error = nil;
77-
if (!url || [[PBRepositoryDocumentController sharedDocumentController] openDocumentWithContentsOfURL:url display:YES error:&error] == NO) {
78-
// The current directory could not be opened (most likely it’s not a git repository)
79-
// so show an open panel for the user to select a repository to view
80-
[[PBRepositoryDocumentController sharedDocumentController] openDocument:self];
81-
}
71+
if ([[[PBRepositoryDocumentController sharedDocumentController] documents] count])
72+
return;
73+
74+
if (![[NSApplication sharedApplication] isActive])
75+
return;
76+
77+
NSURL *url = nil;
78+
79+
// Try to find the current directory, to open that as a repository
80+
if ([PBGitDefaults openCurDirOnLaunch]) {
81+
NSString *curPath = [[[NSProcessInfo processInfo] environment] objectForKey:@"PWD"];
82+
if (curPath)
83+
url = [NSURL fileURLWithPath:curPath];
8284
}
85+
86+
// Try to open the found URL
87+
NSError *error = nil;
88+
if (url && [[PBRepositoryDocumentController sharedDocumentController] openDocumentWithContentsOfURL:url display:YES error:&error])
89+
return;
90+
91+
// The current directory was not enabled or could not be opened (most likely it’s not a git repository).
92+
// show an open panel for the user to select a repository to view
93+
if ([PBGitDefaults showOpenPanelOnLaunch])
94+
[[PBRepositoryDocumentController sharedDocumentController] openDocument:self];
8395
}
8496

8597
- (void) windowWillClose: sender

English.lproj/Preferences.xib

Lines changed: 65 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
<object class="NSTextField" id="441589300">
4747
<reference key="NSNextResponder" ref="1005"/>
4848
<int key="NSvFlags">268</int>
49-
<string key="NSFrame">{{17, 74}, {99, 17}}</string>
49+
<string key="NSFrame">{{17, 54}, {99, 17}}</string>
5050
<reference key="NSSuperview" ref="1005"/>
5151
<bool key="NSEnabled">YES</bool>
5252
<object class="NSTextFieldCell" key="NSCell" id="31526941">
@@ -90,7 +90,7 @@
9090
<string>NSFilenamesPboardType</string>
9191
</object>
9292
</object>
93-
<string key="NSFrame">{{121, 70}, {179, 22}}</string>
93+
<string key="NSFrame">{{121, 50}, {179, 22}}</string>
9494
<reference key="NSSuperview" ref="1005"/>
9595
<bool key="NSEnabled">YES</bool>
9696
<object class="NSPathCell" key="NSCell" id="331807888">
@@ -112,7 +112,7 @@
112112
<object class="NSTextField" id="617839596">
113113
<reference key="NSNextResponder" ref="1005"/>
114114
<int key="NSvFlags">268</int>
115-
<string key="NSFrame">{{118, 20}, {192, 42}}</string>
115+
<string key="NSFrame">{{118, 0}, {192, 42}}</string>
116116
<reference key="NSSuperview" ref="1005"/>
117117
<bool key="NSEnabled">YES</bool>
118118
<object class="NSTextFieldCell" key="NSCell" id="453728129">
@@ -128,7 +128,7 @@
128128
<object class="NSButton" id="1032928366">
129129
<reference key="NSNextResponder" ref="1005"/>
130130
<int key="NSvFlags">268</int>
131-
<string key="NSFrame">{{306, 74}, {54, 14}}</string>
131+
<string key="NSFrame">{{306, 54}, {54, 14}}</string>
132132
<reference key="NSSuperview" ref="1005"/>
133133
<bool key="NSEnabled">YES</bool>
134134
<object class="NSButtonCell" key="NSCell" id="806993456">
@@ -177,6 +177,28 @@
177177
<int key="NSPeriodicInterval">25</int>
178178
</object>
179179
</object>
180+
<object class="NSButton" id="68472633">
181+
<reference key="NSNextResponder" ref="1005"/>
182+
<int key="NSvFlags">268</int>
183+
<string key="NSFrame">{{18, 78}, {207, 18}}</string>
184+
<reference key="NSSuperview" ref="1005"/>
185+
<bool key="NSEnabled">YES</bool>
186+
<object class="NSButtonCell" key="NSCell" id="456188813">
187+
<int key="NSCellFlags">-2080244224</int>
188+
<int key="NSCellFlags2">0</int>
189+
<string type="base64-UTF8" key="NSContents">U2hvdyAiT3BlbiIgcGFuZWwgb24gbGF1bmNoA</string>
190+
<reference key="NSSupport" ref="734450335"/>
191+
<reference key="NSControlView" ref="68472633"/>
192+
<int key="NSButtonFlags">1211912703</int>
193+
<int key="NSButtonFlags2">2</int>
194+
<reference key="NSNormalImage" ref="495198475"/>
195+
<reference key="NSAlternateImage" ref="690089052"/>
196+
<string key="NSAlternateContents"/>
197+
<string key="NSKeyEquivalent"/>
198+
<int key="NSPeriodicDelay">200</int>
199+
<int key="NSPeriodicInterval">25</int>
200+
</object>
201+
</object>
180202
</object>
181203
<string key="NSFrameSize">{400, 139}</string>
182204
<reference key="NSSuperview"/>
@@ -428,7 +450,7 @@
428450
<object class="NSUserDefaultsController" id="557723770">
429451
<object class="NSMutableArray" key="NSDeclaredKeys">
430452
<bool key="EncodedWithXMLCoder">YES</bool>
431-
<string>PBShowWhitespaceDifferences</string>
453+
<string>PBShowOpenPanelOnLaunch</string>
432454
</object>
433455
<bool key="NSSharedInstance">YES</bool>
434456
</object>
@@ -865,6 +887,22 @@
865887
</object>
866888
<int key="connectionID">117</int>
867889
</object>
890+
<object class="IBConnectionRecord">
891+
<object class="IBBindingConnection" key="connection">
892+
<string key="label">value: values.PBShowOpenPanelOnLaunch</string>
893+
<reference key="source" ref="68472633"/>
894+
<reference key="destination" ref="557723770"/>
895+
<object class="NSNibBindingConnector" key="connector">
896+
<reference key="NSSource" ref="68472633"/>
897+
<reference key="NSDestination" ref="557723770"/>
898+
<string key="NSLabel">value: values.PBShowOpenPanelOnLaunch</string>
899+
<string key="NSBinding">value</string>
900+
<string key="NSKeyPath">values.PBShowOpenPanelOnLaunch</string>
901+
<int key="NSNibBindingConnectorVersion">2</int>
902+
</object>
903+
</object>
904+
<int key="connectionID">121</int>
905+
</object>
868906
</object>
869907
<object class="IBMutableOrderedSet" key="objectRecords">
870908
<object class="NSArray" key="orderedObjects">
@@ -900,11 +938,12 @@
900938
<reference key="object" ref="1005"/>
901939
<object class="NSMutableArray" key="children">
902940
<bool key="EncodedWithXMLCoder">YES</bool>
941+
<reference ref="910887184"/>
903942
<reference ref="441589300"/>
904943
<reference ref="525163949"/>
905944
<reference ref="617839596"/>
906945
<reference ref="1032928366"/>
907-
<reference ref="910887184"/>
946+
<reference ref="68472633"/>
908947
</object>
909948
<reference key="parent" ref="1002"/>
910949
<string key="objectName">General</string>
@@ -1226,6 +1265,20 @@
12261265
<reference key="object" ref="709654045"/>
12271266
<reference key="parent" ref="910887184"/>
12281267
</object>
1268+
<object class="IBObjectRecord">
1269+
<int key="objectID">118</int>
1270+
<reference key="object" ref="68472633"/>
1271+
<object class="NSMutableArray" key="children">
1272+
<bool key="EncodedWithXMLCoder">YES</bool>
1273+
<reference ref="456188813"/>
1274+
</object>
1275+
<reference key="parent" ref="1005"/>
1276+
</object>
1277+
<object class="IBObjectRecord">
1278+
<int key="objectID">119</int>
1279+
<reference key="object" ref="456188813"/>
1280+
<reference key="parent" ref="68472633"/>
1281+
</object>
12291282
</object>
12301283
</object>
12311284
<object class="NSMutableDictionary" key="flattenedProperties">
@@ -1246,6 +1299,8 @@
12461299
<string>11.IBPluginDependency</string>
12471300
<string>114.IBPluginDependency</string>
12481301
<string>115.IBPluginDependency</string>
1302+
<string>118.IBPluginDependency</string>
1303+
<string>119.IBPluginDependency</string>
12491304
<string>12.IBPluginDependency</string>
12501305
<string>13.IBPluginDependency</string>
12511306
<string>14.IBPluginDependency</string>
@@ -1314,6 +1369,8 @@
13141369
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
13151370
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
13161371
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
1372+
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
1373+
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
13171374
<string>{{514, 459}, {106, 71}}</string>
13181375
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
13191376
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
@@ -1327,7 +1384,7 @@
13271384
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
13281385
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
13291386
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
1330-
<string>{{297, 436}, {400, 139}}</string>
1387+
<string>{{324, 683}, {400, 139}}</string>
13311388
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
13321389
<object class="NSMutableArray">
13331390
<bool key="EncodedWithXMLCoder">YES</bool>
@@ -1381,7 +1438,7 @@
13811438
</object>
13821439
</object>
13831440
<nil key="sourceID"/>
1384-
<int key="maxID">117</int>
1441+
<int key="maxID">121</int>
13851442
</object>
13861443
<object class="IBClassDescriber" key="IBDocument.Classes">
13871444
<object class="NSMutableArray" key="referencedPartialClassDescriptions">

PBGitDefaults.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,7 @@
1717
+ (BOOL) confirmPublicGists;
1818
+ (BOOL) isGistPublic;
1919
+ (BOOL)showWhitespaceDifferences;
20+
+ (BOOL)openCurDirOnLaunch;
21+
+ (BOOL)showOpenPanelOnLaunch;
2022

2123
@end

PBGitDefaults.m

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
#define kConfirmPublicGists @"PBConfirmPublicGists"
1616
#define kPublicGist @"PBGistPublic"
1717
#define kShowWhitespaceDifferences @"PBShowWhitespaceDifferences"
18+
#define kOpenCurDirOnLaunch @"PBOpenCurDirOnLaunch"
19+
#define kShowOpenPanelOnLaunch @"PBShowOpenPanelOnLaunch"
1820

1921
@implementation PBGitDefaults
2022

@@ -33,6 +35,10 @@ + (void)initialize
3335
forKey:kPublicGist];
3436
[defaultValues setObject:[NSNumber numberWithBool:YES]
3537
forKey:kShowWhitespaceDifferences];
38+
[defaultValues setObject:[NSNumber numberWithBool:YES]
39+
forKey:kOpenCurDirOnLaunch];
40+
[defaultValues setObject:[NSNumber numberWithBool:YES]
41+
forKey:kShowOpenPanelOnLaunch];
3642
[[NSUserDefaults standardUserDefaults] registerDefaults:defaultValues];
3743
}
3844

@@ -61,9 +67,19 @@ + (BOOL) isGistPublic
6167
return [[NSUserDefaults standardUserDefaults] boolForKey:kPublicGist];
6268
}
6369

64-
6570
+ (BOOL)showWhitespaceDifferences
6671
{
6772
return [[NSUserDefaults standardUserDefaults] boolForKey:kShowWhitespaceDifferences];
6873
}
74+
75+
+ (BOOL)openCurDirOnLaunch
76+
{
77+
return [[NSUserDefaults standardUserDefaults] boolForKey:kOpenCurDirOnLaunch];
78+
}
79+
80+
+ (BOOL)showOpenPanelOnLaunch
81+
{
82+
return [[NSUserDefaults standardUserDefaults] boolForKey:kShowOpenPanelOnLaunch];
83+
}
84+
6985
@end

0 commit comments

Comments
 (0)