Skip to content

Commit ca479c7

Browse files
committed
Sidebar: display a custom icon
These are based on a contribution by Vincent Esche, but we'll probably have to change them a bit.
1 parent bff9363 commit ca479c7

8 files changed

+40
-6
lines changed

GitX.xcodeproj/project.pbxproj

+16
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,10 @@
9696
F58DB55910566D3500CFDF4A /* PBGitSidebarController.m in Sources */ = {isa = PBXBuildFile; fileRef = F58DB55810566D3500CFDF4A /* PBGitSidebarController.m */; };
9797
F58DB56010566E3900CFDF4A /* PBGitSidebarView.xib in Resources */ = {isa = PBXBuildFile; fileRef = F58DB55F10566E3900CFDF4A /* PBGitSidebarView.xib */; };
9898
F58DB5E8105671B600CFDF4A /* PBSourceViewItem.m in Sources */ = {isa = PBXBuildFile; fileRef = F58DB5E7105671B600CFDF4A /* PBSourceViewItem.m */; };
99+
F58DB7711056860900CFDF4A /* branch.tiff in Resources */ = {isa = PBXBuildFile; fileRef = F58DB76D1056860900CFDF4A /* branch.tiff */; };
100+
F58DB7721056860900CFDF4A /* remote.tiff in Resources */ = {isa = PBXBuildFile; fileRef = F58DB76E1056860900CFDF4A /* remote.tiff */; };
101+
F58DB7731056860900CFDF4A /* folder.tiff in Resources */ = {isa = PBXBuildFile; fileRef = F58DB76F1056860900CFDF4A /* folder.tiff */; };
102+
F58DB7741056860900CFDF4A /* tag.tiff in Resources */ = {isa = PBXBuildFile; fileRef = F58DB7701056860900CFDF4A /* tag.tiff */; };
99103
F59116E60E843BB50072CCB1 /* PBGitCommitView.xib in Resources */ = {isa = PBXBuildFile; fileRef = F59116E50E843BB50072CCB1 /* PBGitCommitView.xib */; };
100104
F59116E90E843BCB0072CCB1 /* PBGitCommitController.m in Sources */ = {isa = PBXBuildFile; fileRef = F59116E80E843BCB0072CCB1 /* PBGitCommitController.m */; };
101105
F593DF780E9E636C003A8559 /* PBFileChangesTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = F593DF770E9E636C003A8559 /* PBFileChangesTableView.m */; };
@@ -251,6 +255,10 @@
251255
F58DB55F10566E3900CFDF4A /* PBGitSidebarView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = PBGitSidebarView.xib; sourceTree = "<group>"; };
252256
F58DB5E6105671B600CFDF4A /* PBSourceViewItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PBSourceViewItem.h; sourceTree = "<group>"; };
253257
F58DB5E7105671B600CFDF4A /* PBSourceViewItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PBSourceViewItem.m; sourceTree = "<group>"; };
258+
F58DB76D1056860900CFDF4A /* branch.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = branch.tiff; path = Images/branch.tiff; sourceTree = "<group>"; };
259+
F58DB76E1056860900CFDF4A /* remote.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = remote.tiff; path = Images/remote.tiff; sourceTree = "<group>"; };
260+
F58DB76F1056860900CFDF4A /* folder.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = folder.tiff; path = Images/folder.tiff; sourceTree = "<group>"; };
261+
F58DB7701056860900CFDF4A /* tag.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = tag.tiff; path = Images/tag.tiff; sourceTree = "<group>"; };
254262
F59116E50E843BB50072CCB1 /* PBGitCommitView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = PBGitCommitView.xib; sourceTree = "<group>"; };
255263
F59116E70E843BCB0072CCB1 /* PBGitCommitController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PBGitCommitController.h; sourceTree = "<group>"; };
256264
F59116E80E843BCB0072CCB1 /* PBGitCommitController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PBGitCommitController.m; sourceTree = "<group>"; };
@@ -394,6 +402,10 @@
394402
29B97315FDCFA39411CA2CEA /* Other Sources */ = {
395403
isa = PBXGroup;
396404
children = (
405+
F58DB76D1056860900CFDF4A /* branch.tiff */,
406+
F58DB76E1056860900CFDF4A /* remote.tiff */,
407+
F58DB76F1056860900CFDF4A /* folder.tiff */,
408+
F58DB7701056860900CFDF4A /* tag.tiff */,
397409
3BC07F4A0ED5A5C5009A7768 /* HistoryViewTemplate.png */,
398410
3BC07F4B0ED5A5C5009A7768 /* CommitViewTemplate.png */,
399411
F56ADDD70ED19F9E002AC78F /* AddBranchTemplate.png */,
@@ -765,6 +777,10 @@
765777
47DBDBB10E94F6CA00671A1E /* Updates.png in Resources */,
766778
F569AE930F2CBD7C00C2FFA7 /* Credits.html in Resources */,
767779
F58DB56010566E3900CFDF4A /* PBGitSidebarView.xib in Resources */,
780+
F58DB7711056860900CFDF4A /* branch.tiff in Resources */,
781+
F58DB7721056860900CFDF4A /* remote.tiff in Resources */,
782+
F58DB7731056860900CFDF4A /* folder.tiff in Resources */,
783+
F58DB7741056860900CFDF4A /* tag.tiff in Resources */,
768784
);
769785
runOnlyForDeploymentPostprocessing = 0;
770786
};

Images/branch.tiff

4.31 KB
Binary file not shown.

Images/folder.tiff

4.31 KB
Binary file not shown.

Images/remote.tiff

4.31 KB
Binary file not shown.

Images/tag.tiff

4.31 KB
Binary file not shown.

PBGitSidebarController.m

+1-4
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,7 @@ - (BOOL)outlineView:(NSOutlineView *)outlineView isGroupItem:(id)item
4242

4343
- (void)outlineView:(NSOutlineView *)outlineView willDisplayCell:(id)cell forTableColumn:(NSTableColumn *)tableColumn item:(id)item
4444
{
45-
if ([item isGroupItem])
46-
[cell setImage:nil];
47-
else
48-
[cell setImage:[NSImage imageNamed:@"new_file"]];
45+
[cell setImage:[item icon]];
4946
}
5047

5148
- (BOOL)outlineView:(NSOutlineView *)outlineView shouldSelectItem:(id)item

PBSourceViewItem.h

+4-1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
NSString *title;
1717
PBGitRevSpecifier *revSpecifier;
18+
PBSourceViewItem *parent;
1819

1920
BOOL isGroupItem;
2021
}
@@ -30,9 +31,11 @@
3031
// to the 'local' branch thing
3132
- (void)addRev:(PBGitRevSpecifier *)revSpecifier toPath:(NSArray *)path;
3233

34+
- (NSImage *)icon;
35+
3336
@property(retain) NSString *title;
3437
@property(readonly) NSMutableArray *children;
3538
@property(assign) BOOL isGroupItem;
3639
@property(retain) PBGitRevSpecifier *revSpecifier;
37-
40+
@property(retain) PBSourceViewItem *parent;
3841
@end

PBSourceViewItem.m

+19-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
#import "PBGitRevSpecifier.h"
1111

1212
@implementation PBSourceViewItem
13-
@synthesize title, isGroupItem, children, revSpecifier;
13+
@synthesize parent, title, isGroupItem, children, revSpecifier;
1414

1515
- (id)init
1616
{
@@ -47,6 +47,7 @@ + (PBSourceViewItem *)itemWithTitle:(NSString *)title;
4747
- (void)addChild:(PBSourceViewItem *)child
4848
{
4949
[self.children addObject:child];
50+
child.parent = self;
5051
}
5152

5253
- (void)addRev:(PBGitRevSpecifier *)theRevSpecifier toPath:(NSArray *)path
@@ -79,4 +80,21 @@ - (NSString *)title
7980
return [[revSpecifier description] lastPathComponent];
8081
}
8182

83+
- (NSImage *)icon
84+
{
85+
if ([self isGroupItem])
86+
return nil;
87+
88+
if (self.parent && !self.parent.parent && [self.parent.title isEqualToString:@"Remotes"])
89+
return [NSImage imageNamed:@"remote"];
90+
91+
if (self.parent && !self.parent.parent && [self.parent.title isEqualToString:@"Tags"])
92+
return [NSImage imageNamed:@"tag"];
93+
94+
if ([[self children] count])
95+
return [NSImage imageNamed:@"folder"];
96+
97+
return [NSImage imageNamed:@"branch"];
98+
}
99+
82100
@end

0 commit comments

Comments
 (0)