Skip to content

Commit aae5e7c

Browse files
committed
Merge pull request #192 from jphalip/master
More UI improvements
2 parents f38201d + cd2e8de commit aae5e7c

File tree

12 files changed

+358
-197
lines changed

12 files changed

+358
-197
lines changed

English.lproj/Preferences.xib

Lines changed: 117 additions & 34 deletions
Large diffs are not rendered by default.

English.lproj/RepositoryWindow.xib

Lines changed: 85 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33
<data>
44
<int key="IBDocument.SystemTarget">1070</int>
55
<string key="IBDocument.SystemVersion">11D50</string>
6-
<string key="IBDocument.InterfaceBuilderVersion">2177</string>
6+
<string key="IBDocument.InterfaceBuilderVersion">2182</string>
77
<string key="IBDocument.AppKitVersion">1138.32</string>
88
<string key="IBDocument.HIToolboxVersion">568.00</string>
99
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
1010
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
11-
<string key="NS.object.0">2177</string>
11+
<string key="NS.object.0">2182</string>
1212
</object>
1313
<object class="NSArray" key="IBDocument.IntegratedClassDependencies">
1414
<bool key="EncodedWithXMLCoder">YES</bool>
@@ -109,10 +109,9 @@
109109
<string key="NSToolbarItemPaletteLabel">Clone Repository To</string>
110110
<nil key="NSToolbarItemToolTip"/>
111111
<object class="NSButton" key="NSToolbarItemView" id="703553818">
112-
<reference key="NSNextResponder"/>
112+
<nil key="NSNextResponder"/>
113113
<int key="NSvFlags">268</int>
114114
<string key="NSFrame">{{38, 14}, {40, 25}}</string>
115-
<reference key="NSSuperview"/>
116115
<bool key="NSEnabled">YES</bool>
117116
<object class="NSButtonCell" key="NSCell" id="64590231">
118117
<int key="NSCellFlags">-2080244224</int>
@@ -155,10 +154,9 @@
155154
<string key="NSToolbarItemPaletteLabel">Refresh</string>
156155
<nil key="NSToolbarItemToolTip"/>
157156
<object class="NSButton" key="NSToolbarItemView" id="438380428">
158-
<reference key="NSNextResponder"/>
157+
<nil key="NSNextResponder"/>
159158
<int key="NSvFlags">268</int>
160159
<string key="NSFrame">{{8, 14}, {32, 25}}</string>
161-
<reference key="NSSuperview"/>
162160
<bool key="NSEnabled">YES</bool>
163161
<object class="NSButtonCell" key="NSCell" id="604536609">
164162
<int key="NSCellFlags">-2080244224</int>
@@ -197,10 +195,9 @@
197195
<string key="NSToolbarItemPaletteLabel">View</string>
198196
<nil key="NSToolbarItemToolTip"/>
199197
<object class="NSSegmentedControl" key="NSToolbarItemView" id="371591001">
200-
<reference key="NSNextResponder"/>
198+
<nil key="NSNextResponder"/>
201199
<int key="NSvFlags">268</int>
202200
<string key="NSFrame">{{0, 14}, {90, 25}}</string>
203-
<reference key="NSSuperview"/>
204201
<bool key="NSEnabled">YES</bool>
205202
<object class="NSSegmentedCell" key="NSCell" id="399933706">
206203
<int key="NSCellFlags">67239424</int>
@@ -438,7 +435,7 @@
438435
<reference key="NSNextResponder" ref="44848571"/>
439436
<int key="NSvFlags">1292</int>
440437
<object class="NSPSMatrix" key="NSDrawMatrix"/>
441-
<string key="NSFrame">{{20, 7}, {16, 16}}</string>
438+
<string key="NSFrame">{{225, 8}, {16, 16}}</string>
442439
<reference key="NSSuperview" ref="44848571"/>
443440
<reference key="NSWindow"/>
444441
<reference key="NSNextKeyView" ref="508249619"/>
@@ -448,13 +445,14 @@
448445
<object class="NSTextField" id="508249619">
449446
<reference key="NSNextResponder" ref="44848571"/>
450447
<int key="NSvFlags">266</int>
451-
<string key="NSFrame">{{41, 8}, {188, 14}}</string>
448+
<string key="NSFrame">{{32, 8}, {188, 14}}</string>
452449
<reference key="NSSuperview" ref="44848571"/>
453450
<reference key="NSWindow"/>
451+
<reference key="NSNextKeyView"/>
454452
<bool key="NSEnabled">YES</bool>
455453
<object class="NSTextFieldCell" key="NSCell" id="708164574">
456454
<int key="NSCellFlags">67239488</int>
457-
<int key="NSCellFlags2">4327424</int>
455+
<int key="NSCellFlags2">71436288</int>
458456
<string key="NSContents">Label</string>
459457
<object class="NSFont" key="NSSupport">
460458
<string key="NSName">LucidaGrande</string>
@@ -483,7 +481,7 @@
483481
</object>
484482
</object>
485483
</object>
486-
<string key="NSFrame">{{552, 0}, {246, 31}}</string>
484+
<string key="NSFrame">{{644, 0}, {246, 31}}</string>
487485
<reference key="NSSuperview" ref="751230759"/>
488486
<reference key="NSWindow"/>
489487
<reference key="NSNextKeyView" ref="490597384"/>
@@ -495,7 +493,7 @@
495493
<reference key="NSWindow"/>
496494
<reference key="NSNextKeyView" ref="120427370"/>
497495
</object>
498-
<string key="NSScreenRect">{{0, 0}, {1280, 778}}</string>
496+
<string key="NSScreenRect">{{0, 0}, {1680, 1028}}</string>
499497
<string key="NSMinSize">{600, 528}</string>
500498
<string key="NSMaxSize">{10000000000000, 10000000000000}</string>
501499
<string key="NSFrameAutosaveName">GitX</string>
@@ -1010,6 +1008,80 @@
10101008
</object>
10111009
</object>
10121010
</object>
1011+
<object class="NSMutableDictionary" key="outlets">
1012+
<bool key="EncodedWithXMLCoder">YES</bool>
1013+
<object class="NSArray" key="dict.sortedKeys">
1014+
<bool key="EncodedWithXMLCoder">YES</bool>
1015+
<string>contentSplitView</string>
1016+
<string>finderItem</string>
1017+
<string>mainSplitView</string>
1018+
<string>progressIndicator</string>
1019+
<string>sourceListControlsView</string>
1020+
<string>sourceSplitView</string>
1021+
<string>statusField</string>
1022+
<string>terminalItem</string>
1023+
</object>
1024+
<object class="NSArray" key="dict.values">
1025+
<bool key="EncodedWithXMLCoder">YES</bool>
1026+
<string>NSView</string>
1027+
<string>NSToolbarItem</string>
1028+
<string>NSSplitView</string>
1029+
<string>NSProgressIndicator</string>
1030+
<string>NSView</string>
1031+
<string>NSView</string>
1032+
<string>NSTextField</string>
1033+
<string>NSToolbarItem</string>
1034+
</object>
1035+
</object>
1036+
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
1037+
<bool key="EncodedWithXMLCoder">YES</bool>
1038+
<object class="NSArray" key="dict.sortedKeys">
1039+
<bool key="EncodedWithXMLCoder">YES</bool>
1040+
<string>contentSplitView</string>
1041+
<string>finderItem</string>
1042+
<string>mainSplitView</string>
1043+
<string>progressIndicator</string>
1044+
<string>sourceListControlsView</string>
1045+
<string>sourceSplitView</string>
1046+
<string>statusField</string>
1047+
<string>terminalItem</string>
1048+
</object>
1049+
<object class="NSArray" key="dict.values">
1050+
<bool key="EncodedWithXMLCoder">YES</bool>
1051+
<object class="IBToOneOutletInfo">
1052+
<string key="name">contentSplitView</string>
1053+
<string key="candidateClassName">NSView</string>
1054+
</object>
1055+
<object class="IBToOneOutletInfo">
1056+
<string key="name">finderItem</string>
1057+
<string key="candidateClassName">NSToolbarItem</string>
1058+
</object>
1059+
<object class="IBToOneOutletInfo">
1060+
<string key="name">mainSplitView</string>
1061+
<string key="candidateClassName">NSSplitView</string>
1062+
</object>
1063+
<object class="IBToOneOutletInfo">
1064+
<string key="name">progressIndicator</string>
1065+
<string key="candidateClassName">NSProgressIndicator</string>
1066+
</object>
1067+
<object class="IBToOneOutletInfo">
1068+
<string key="name">sourceListControlsView</string>
1069+
<string key="candidateClassName">NSView</string>
1070+
</object>
1071+
<object class="IBToOneOutletInfo">
1072+
<string key="name">sourceSplitView</string>
1073+
<string key="candidateClassName">NSView</string>
1074+
</object>
1075+
<object class="IBToOneOutletInfo">
1076+
<string key="name">statusField</string>
1077+
<string key="candidateClassName">NSTextField</string>
1078+
</object>
1079+
<object class="IBToOneOutletInfo">
1080+
<string key="name">terminalItem</string>
1081+
<string key="candidateClassName">NSToolbarItem</string>
1082+
</object>
1083+
</object>
1084+
</object>
10131085
<object class="IBClassDescriptionSource" key="sourceIdentifier">
10141086
<string key="majorKey">IBProjectSource</string>
10151087
<string key="minorKey">./Classes/PBGitWindowController.h</string>

GLFileView.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -317,7 +317,7 @@ + (NSString *)parseDiff:(NSString *)txt
317317
[res appendString:[GLFileView parseDiffBlock:[NSString stringWithFormat:@"diff --%@",block]]];
318318
}
319319

320-
return res;
320+
return [NSString stringWithFormat:@"<div id='diffs'>%@</div>",res];
321321
}
322322

323323
+ (NSString *)parseDiffBlock:(NSString *)txt

PBDiffWindowController.m

Lines changed: 28 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
#import "PBGitCommit.h"
1212
#import "PBGitDefaults.h"
1313
#import "GLFileView.h"
14+
#import "PBWebCommitController.h"
1415

1516

1617
@implementation PBDiffWindowController
@@ -36,28 +37,45 @@ + (void) showDiffWindowWithFiles:(NSArray *)filePaths fromCommit:(PBGitCommit *)
3637
diffCommit = [startCommit.repository headCommit];
3738

3839
NSString *commitSelector = [NSString stringWithFormat:@"%@..%@", [startCommit realSha], [diffCommit realSha]];
39-
NSMutableArray *arguments = [NSMutableArray arrayWithObjects:@"diff", @"--no-ext-diff", commitSelector, nil];
40+
NSMutableArray *args = [NSMutableArray arrayWithObjects:@"diff", @"--no-ext-diff", commitSelector, nil];
4041

4142
if (![PBGitDefaults showWhitespaceDifferences])
42-
[arguments insertObject:@"-w" atIndex:1];
43+
[args insertObject:@"-w" atIndex:1];
4344

4445
if (filePaths) {
45-
[arguments addObject:@"--"];
46-
[arguments addObjectsFromArray:filePaths];
46+
[args addObject:@"--"];
47+
[args addObjectsFromArray:filePaths];
4748
}
4849

4950
int retValue;
50-
NSString *diff = [startCommit.repository outputInWorkdirForArguments:arguments retValue:&retValue];
51+
NSString *diff = [startCommit.repository outputInWorkdirForArguments:args retValue:&retValue];
5152
if (retValue) {
52-
DLog(@"diff failed with retValue: %d for command: '%@' output: '%@'", retValue, [arguments componentsJoinedByString:@" "], diff);
53+
DLog(@"diff failed with retValue: %d for command: '%@' output: '%@'", retValue, [args componentsJoinedByString:@" "], diff);
5354
return;
5455
}
5556

56-
diff=[GLFileView parseDiff:diff];
57-
diff=[diff stringByReplacingOccurrencesOfString:@"{SHA_PREV}" withString:[startCommit realSha]];
58-
diff=[diff stringByReplacingOccurrencesOfString:@"{SHA}" withString:[diffCommit realSha]];
57+
// File Stats
58+
args = [NSMutableArray arrayWithObjects:@"show", @"--numstat", @"--summary", @"--pretty=raw", [startCommit realSha], [diffCommit realSha], nil];
59+
if (![PBGitDefaults showWhitespaceDifferences])
60+
[args insertObject:@"-w" atIndex:1];
61+
NSString *details = [startCommit.repository outputInWorkdirForArguments:args];
62+
NSMutableDictionary *stats = [PBWebCommitController parseStats:details];
63+
64+
// File list
65+
args = [NSMutableArray arrayWithObjects:@"diff-tree", @"--root", @"-r", @"-C90%", @"-M90%", nil];
66+
[args addObject:[startCommit realSha]];
67+
[args addObject:[diffCommit realSha]];
68+
NSString *dt = [startCommit.repository outputInWorkdirForArguments:args];
69+
NSString *fileList = [GLFileView parseDiffTree:dt withStats:stats];
70+
71+
// Hunk list
72+
NSString *hunks = [GLFileView parseDiff:diff];
73+
hunks=[hunks stringByReplacingOccurrencesOfString:@"{SHA_PREV}" withString:[startCommit realSha]];
74+
hunks=[hunks stringByReplacingOccurrencesOfString:@"{SHA}" withString:[diffCommit realSha]];
5975

60-
PBDiffWindowController *diffController = [[PBDiffWindowController alloc] initWithDiff:diff];
76+
NSString *html = [NSString stringWithFormat:@"%@%@",fileList,hunks];
77+
78+
PBDiffWindowController *diffController = [[PBDiffWindowController alloc] initWithDiff:html];
6179
[diffController showWindow:nil];
6280
}
6381

0 commit comments

Comments
 (0)