mirror of
https://github.com/kennethreitz-archive/gitx.git
synced 2026-06-05 15:30:18 +00:00
Add Add Remote
- Add Remote in the Repository menu
- an Add Remote Sheet
This commit is contained in:
@@ -666,6 +666,15 @@
|
||||
<reference key="NSOnImage" ref="889736156"/>
|
||||
<reference key="NSMixedImage" ref="37108609"/>
|
||||
</object>
|
||||
<object class="NSMenuItem" id="173376826">
|
||||
<reference key="NSMenu" ref="944982980"/>
|
||||
<string key="NSTitle">Add Remote</string>
|
||||
<string key="NSKeyEquiv">r</string>
|
||||
<int key="NSKeyEquivModMask">1572864</int>
|
||||
<int key="NSMnemonicLoc">2147483647</int>
|
||||
<reference key="NSOnImage" ref="889736156"/>
|
||||
<reference key="NSMixedImage" ref="37108609"/>
|
||||
</object>
|
||||
<object class="NSMenuItem" id="255856917">
|
||||
<reference key="NSMenu" ref="944982980"/>
|
||||
<bool key="NSIsDisabled">YES</bool>
|
||||
@@ -1315,6 +1324,14 @@
|
||||
</object>
|
||||
<int key="connectionID">950</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBActionConnection" key="connection">
|
||||
<string key="label">showAddRemoteSheet:</string>
|
||||
<reference key="source" ref="954860085"/>
|
||||
<reference key="destination" ref="173376826"/>
|
||||
</object>
|
||||
<int key="connectionID">953</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||
<object class="NSArray" key="orderedObjects">
|
||||
@@ -1978,6 +1995,7 @@
|
||||
<reference ref="255856917"/>
|
||||
<reference ref="950917510"/>
|
||||
<reference ref="416044880"/>
|
||||
<reference ref="173376826"/>
|
||||
</object>
|
||||
<reference key="parent" ref="571164270"/>
|
||||
</object>
|
||||
@@ -2006,6 +2024,11 @@
|
||||
<reference key="object" ref="416044880"/>
|
||||
<reference key="parent" ref="944982980"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">951</int>
|
||||
<reference key="object" ref="173376826"/>
|
||||
<reference key="parent" ref="944982980"/>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="flattenedProperties">
|
||||
@@ -2204,6 +2227,7 @@
|
||||
<string>943.IBPluginDependency</string>
|
||||
<string>947.IBPluginDependency</string>
|
||||
<string>949.IBPluginDependency</string>
|
||||
<string>951.IBPluginDependency</string>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
@@ -2392,7 +2416,8 @@
|
||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string>{{668, 643}, {192, 93}}</string>
|
||||
<string>{{668, 623}, {206, 113}}</string>
|
||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
@@ -2417,7 +2442,7 @@
|
||||
</object>
|
||||
</object>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">950</int>
|
||||
<int key="maxID">953</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
@@ -2650,13 +2675,13 @@
|
||||
<object class="NSArray" key="dict.sortedKeys">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>createBranch:</string>
|
||||
<string>createTag:</string>
|
||||
<string>openFilesAction:</string>
|
||||
<string>openSelectedFile:</string>
|
||||
<string>refresh:</string>
|
||||
<string>setDetailedView:</string>
|
||||
<string>setRawView:</string>
|
||||
<string>setTreeView:</string>
|
||||
<string>showAddRemoteSheet:</string>
|
||||
<string>showCommitsFromTree:</string>
|
||||
<string>showInFinderAction:</string>
|
||||
<string>toggleQuickView:</string>
|
||||
@@ -2835,10 +2860,20 @@
|
||||
<object class="NSArray" key="dict.sortedKeys">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>changeBranch:</string>
|
||||
<string>checkout:</string>
|
||||
<string>cherryPick:</string>
|
||||
<string>copyPatch:</string>
|
||||
<string>copySHA:</string>
|
||||
<string>createBranch:</string>
|
||||
<string>createTag:</string>
|
||||
<string>fetchRemote:</string>
|
||||
<string>merge:</string>
|
||||
<string>pullRemote:</string>
|
||||
<string>pushDefaultRemoteForRef:</string>
|
||||
<string>pushToRemote:</string>
|
||||
<string>pushUpdatesToRemote:</string>
|
||||
<string>rebaseActiveBranch:</string>
|
||||
<string>rebaseHeadBranch:</string>
|
||||
<string>showTagInfoSheet:</string>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
@@ -2849,6 +2884,16 @@
|
||||
<string>PBRefMenuItem</string>
|
||||
<string>PBRefMenuItem</string>
|
||||
<string>PBRefMenuItem</string>
|
||||
<string>PBRefMenuItem</string>
|
||||
<string>PBRefMenuItem</string>
|
||||
<string>PBRefMenuItem</string>
|
||||
<string>PBRefMenuItem</string>
|
||||
<string>PBRefMenuItem</string>
|
||||
<string>PBRefMenuItem</string>
|
||||
<string>PBRefMenuItem</string>
|
||||
<string>PBRefMenuItem</string>
|
||||
<string>PBRefMenuItem</string>
|
||||
<string>PBRefMenuItem</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="outlets">
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -45,6 +45,8 @@
|
||||
93F7857F0EA3ABF100C1F443 /* PBCommitMessageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 93F7857E0EA3ABF100C1F443 /* PBCommitMessageView.m */; };
|
||||
D26DC6450E782C9000C777B2 /* gitx.icns in Resources */ = {isa = PBXBuildFile; fileRef = D26DC6440E782C9000C777B2 /* gitx.icns */; };
|
||||
D8083A43111E045D00337480 /* PBRemoteProgressSheet.m in Sources */ = {isa = PBXBuildFile; fileRef = D8083A42111E045D00337480 /* PBRemoteProgressSheet.m */; };
|
||||
D8083C44111F106800337480 /* PBAddRemoteSheet.m in Sources */ = {isa = PBXBuildFile; fileRef = D8083C43111F106800337480 /* PBAddRemoteSheet.m */; };
|
||||
D8083C47111F136400337480 /* PBAddRemoteSheet.xib in Resources */ = {isa = PBXBuildFile; fileRef = D8083C45111F136400337480 /* PBAddRemoteSheet.xib */; };
|
||||
D8357535112640F100DE249D /* PBRemoteProgressSheet.xib in Resources */ = {isa = PBXBuildFile; fileRef = D8C1B77110E875CF009B7F8B /* PBRemoteProgressSheet.xib */; };
|
||||
D854948610D5C01B0083B917 /* PBCreateBranchSheet.m in Sources */ = {isa = PBXBuildFile; fileRef = D854948510D5C01B0083B917 /* PBCreateBranchSheet.m */; };
|
||||
D85B939310E3D8B4007F3C28 /* PBCreateBranchSheet.xib in Resources */ = {isa = PBXBuildFile; fileRef = D85B939210E3D8B4007F3C28 /* PBCreateBranchSheet.xib */; };
|
||||
@@ -217,6 +219,9 @@
|
||||
D26DC6440E782C9000C777B2 /* gitx.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = gitx.icns; sourceTree = "<group>"; };
|
||||
D8083A2D111E045300337480 /* PBRemoteProgressSheet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PBRemoteProgressSheet.h; sourceTree = "<group>"; };
|
||||
D8083A42111E045D00337480 /* PBRemoteProgressSheet.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PBRemoteProgressSheet.m; sourceTree = "<group>"; };
|
||||
D8083C42111F106800337480 /* PBAddRemoteSheet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PBAddRemoteSheet.h; sourceTree = "<group>"; };
|
||||
D8083C43111F106800337480 /* PBAddRemoteSheet.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PBAddRemoteSheet.m; sourceTree = "<group>"; };
|
||||
D8083C46111F136400337480 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/PBAddRemoteSheet.xib; sourceTree = "<group>"; };
|
||||
D823487410CB382C00944BDE /* Terminal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Terminal.h; sourceTree = "<group>"; };
|
||||
D854948410D5C01B0083B917 /* PBCreateBranchSheet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PBCreateBranchSheet.h; sourceTree = "<group>"; };
|
||||
D854948510D5C01B0083B917 /* PBCreateBranchSheet.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PBCreateBranchSheet.m; sourceTree = "<group>"; };
|
||||
@@ -468,6 +473,7 @@
|
||||
D85B939210E3D8B4007F3C28 /* PBCreateBranchSheet.xib */,
|
||||
D889EB3010E6BCBB00F08413 /* PBCreateTagSheet.xib */,
|
||||
D8C1B77110E875CF009B7F8B /* PBRemoteProgressSheet.xib */,
|
||||
D8083C45111F136400337480 /* PBAddRemoteSheet.xib */,
|
||||
47DBDB680E94EF6500671A1E /* Preferences.xib */,
|
||||
F569AE920F2CBD7C00C2FFA7 /* Credits.html */,
|
||||
);
|
||||
@@ -519,6 +525,8 @@
|
||||
D8E3B34C10DCA958001096A3 /* PBCreateTagSheet.m */,
|
||||
D8083A2D111E045300337480 /* PBRemoteProgressSheet.h */,
|
||||
D8083A42111E045D00337480 /* PBRemoteProgressSheet.m */,
|
||||
D8083C42111F106800337480 /* PBAddRemoteSheet.h */,
|
||||
D8083C43111F106800337480 /* PBAddRemoteSheet.m */,
|
||||
);
|
||||
name = Sheets;
|
||||
sourceTree = "<group>";
|
||||
@@ -862,6 +870,7 @@
|
||||
D85B939310E3D8B4007F3C28 /* PBCreateBranchSheet.xib in Resources */,
|
||||
D889EB3110E6BCBB00F08413 /* PBCreateTagSheet.xib in Resources */,
|
||||
D8357535112640F100DE249D /* PBRemoteProgressSheet.xib in Resources */,
|
||||
D8083C47111F136400337480 /* PBAddRemoteSheet.xib in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@@ -984,6 +993,7 @@
|
||||
D854948610D5C01B0083B917 /* PBCreateBranchSheet.m in Sources */,
|
||||
D8E3B34D10DCA958001096A3 /* PBCreateTagSheet.m in Sources */,
|
||||
D8083A43111E045D00337480 /* PBRemoteProgressSheet.m in Sources */,
|
||||
D8083C44111F106800337480 /* PBAddRemoteSheet.m in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@@ -1076,6 +1086,14 @@
|
||||
name = RepositoryWindow.xib;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D8083C45111F136400337480 /* PBAddRemoteSheet.xib */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
D8083C46111F136400337480 /* English */,
|
||||
);
|
||||
name = PBAddRemoteSheet.xib;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D85B939210E3D8B4007F3C28 /* PBCreateBranchSheet.xib */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
//
|
||||
// PBAddRemoteSheet.h
|
||||
// GitX
|
||||
//
|
||||
// Created by Nathan Kinsinger on 12/8/09.
|
||||
// Copyright 2009 Nathan Kinsinger. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
|
||||
|
||||
@class PBGitRepository;
|
||||
|
||||
@interface PBAddRemoteSheet : NSWindowController {
|
||||
PBGitRepository *repository;
|
||||
|
||||
NSTextField *remoteName;
|
||||
NSTextField *remoteURL;
|
||||
NSTextField *errorMessage;
|
||||
|
||||
NSOpenPanel *browseSheet;
|
||||
NSView *browseAccessoryView;
|
||||
}
|
||||
|
||||
+ (void) beginAddRemoteSheetForRepository:(PBGitRepository *)repo;
|
||||
|
||||
- (IBAction) browseFolders:(id)sender;
|
||||
- (IBAction) addRemote:(id)sender;
|
||||
- (IBAction) orderOutAddRemoteSheet:(id)sender;
|
||||
- (IBAction) showHideHiddenFiles:(id)sender;
|
||||
|
||||
|
||||
@property (readwrite) PBGitRepository *repository;
|
||||
|
||||
@property (readwrite) IBOutlet NSTextField *remoteName;
|
||||
@property (readwrite) IBOutlet NSTextField *remoteURL;
|
||||
@property (readwrite) IBOutlet NSTextField *errorMessage;
|
||||
|
||||
@property (readwrite) NSOpenPanel *browseSheet;
|
||||
@property (readwrite) IBOutlet NSView *browseAccessoryView;
|
||||
|
||||
@end
|
||||
@@ -0,0 +1,142 @@
|
||||
//
|
||||
// PBAddRemoteSheet.m
|
||||
// GitX
|
||||
//
|
||||
// Created by Nathan Kinsinger on 12/8/09.
|
||||
// Copyright 2009 Nathan Kinsinger. All rights reserved.
|
||||
//
|
||||
|
||||
#import "PBAddRemoteSheet.h"
|
||||
#import "PBGitWindowController.h"
|
||||
#import "PBGitRepository.h"
|
||||
|
||||
|
||||
|
||||
@interface PBAddRemoteSheet ()
|
||||
|
||||
- (void) beginAddRemoteSheetForRepository:(PBGitRepository *)repo;
|
||||
- (void) openAddRemoteSheet;
|
||||
|
||||
@end
|
||||
|
||||
|
||||
@implementation PBAddRemoteSheet
|
||||
|
||||
|
||||
@synthesize repository;
|
||||
|
||||
@synthesize remoteName;
|
||||
@synthesize remoteURL;
|
||||
@synthesize errorMessage;
|
||||
|
||||
@synthesize browseSheet;
|
||||
@synthesize browseAccessoryView;
|
||||
|
||||
|
||||
|
||||
#pragma mark -
|
||||
#pragma mark PBAddRemoteSheet
|
||||
|
||||
+ (void) beginAddRemoteSheetForRepository:(PBGitRepository *)repo
|
||||
{
|
||||
PBAddRemoteSheet *sheet = [[self alloc] initWithWindowNibName:@"PBAddRemoteSheet"];
|
||||
[sheet beginAddRemoteSheetForRepository:repo];
|
||||
}
|
||||
|
||||
|
||||
- (void) beginAddRemoteSheetForRepository:(PBGitRepository *)repo
|
||||
{
|
||||
self.repository = repo;
|
||||
|
||||
[self window];
|
||||
[self openAddRemoteSheet];
|
||||
}
|
||||
|
||||
|
||||
- (void) openAddRemoteSheet
|
||||
{
|
||||
[self.errorMessage setStringValue:@""];
|
||||
|
||||
[NSApp beginSheet:[self window] modalForWindow:[self.repository.windowController window] modalDelegate:self didEndSelector:nil contextInfo:NULL];
|
||||
}
|
||||
|
||||
|
||||
- (void) browseSheetDidEnd:(NSWindow *)sheet returnCode:(NSInteger)code contextInfo:(void *)info
|
||||
{
|
||||
[sheet orderOut:self];
|
||||
|
||||
if (code == NSOKButton)
|
||||
[self.remoteURL setStringValue:[(NSOpenPanel *)sheet filename]];
|
||||
|
||||
[self openAddRemoteSheet];
|
||||
}
|
||||
|
||||
|
||||
|
||||
#pragma mark IBActions
|
||||
|
||||
- (IBAction) browseFolders:(id)sender
|
||||
{
|
||||
[self orderOutAddRemoteSheet:nil];
|
||||
|
||||
self.browseSheet = [NSOpenPanel openPanel];
|
||||
|
||||
[browseSheet setTitle:@"Add remote"];
|
||||
[browseSheet setMessage:@"Select a folder with a git repository"];
|
||||
[browseSheet setCanChooseFiles:NO];
|
||||
[browseSheet setCanChooseDirectories:YES];
|
||||
[browseSheet setAllowsMultipleSelection:NO];
|
||||
[browseSheet setCanCreateDirectories:NO];
|
||||
[browseSheet setAccessoryView:browseAccessoryView];
|
||||
|
||||
[browseSheet beginSheetForDirectory:nil file:nil types:nil
|
||||
modalForWindow:[self.repository.windowController window]
|
||||
modalDelegate:self
|
||||
didEndSelector:@selector(browseSheetDidEnd:returnCode:contextInfo:)
|
||||
contextInfo:NULL];
|
||||
}
|
||||
|
||||
|
||||
- (IBAction) addRemote:(id)sender
|
||||
{
|
||||
[self.errorMessage setStringValue:@""];
|
||||
|
||||
NSString *name = [[self.remoteName stringValue] copy];
|
||||
|
||||
if ([name isEqualToString:@""]) {
|
||||
[self.errorMessage setStringValue:@"Remote name is required"];
|
||||
return;
|
||||
}
|
||||
|
||||
if (![self.repository checkRefFormat:[@"refs/remotes/" stringByAppendingString:name]]) {
|
||||
[self.errorMessage setStringValue:@"Invalid remote name"];
|
||||
return;
|
||||
}
|
||||
|
||||
NSString *url = [[self.remoteURL stringValue] copy];
|
||||
if ([url isEqualToString:@""]) {
|
||||
[self.errorMessage setStringValue:@"Remote URL is required"];
|
||||
return;
|
||||
}
|
||||
|
||||
[self orderOutAddRemoteSheet:self];
|
||||
[self.repository beginAddRemote:name forURL:url];
|
||||
}
|
||||
|
||||
|
||||
- (IBAction) orderOutAddRemoteSheet:(id)sender
|
||||
{
|
||||
[NSApp endSheet:[self window]];
|
||||
[[self window] orderOut:self];
|
||||
}
|
||||
|
||||
|
||||
- (IBAction) showHideHiddenFiles:(id)sender
|
||||
{
|
||||
// This uses undocumented OpenPanel features to show hidden files (required for 10.5 support)
|
||||
NSNumber *showHidden = [NSNumber numberWithBool:[sender state] == NSOnState];
|
||||
[[self.browseSheet valueForKey:@"_navView"] setValue:showHidden forKey:@"showsHiddenFiles"];
|
||||
}
|
||||
|
||||
|
||||
@end
|
||||
@@ -54,6 +54,7 @@
|
||||
// Repository Methods
|
||||
- (IBAction) createBranch:(id)sender;
|
||||
- (IBAction) createTag:(id)sender;
|
||||
- (IBAction) showAddRemoteSheet:(id)sender;
|
||||
|
||||
- (void) copyCommitInfo;
|
||||
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
#import "PBCommitList.h"
|
||||
#import "PBCreateBranchSheet.h"
|
||||
#import "PBCreateTagSheet.h"
|
||||
#import "PBAddRemoteSheet.h"
|
||||
#define QLPreviewPanel NSClassFromString(@"QLPreviewPanel")
|
||||
|
||||
|
||||
@@ -360,4 +361,9 @@
|
||||
[PBCreateTagSheet beginCreateTagSheetAtRefish:realCommit inRepository:repository];
|
||||
}
|
||||
|
||||
- (IBAction) showAddRemoteSheet:(id)sender
|
||||
{
|
||||
[PBAddRemoteSheet beginAddRemoteSheetForRepository:self.repository];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@@ -29,6 +29,7 @@ extern NSString* PBGitRepositoryErrorDomain;
|
||||
PBGitRevSpecifier *_headRef; // Caching
|
||||
}
|
||||
|
||||
- (void) beginAddRemote:(NSString *)remoteName forURL:(NSString *)remoteURL;
|
||||
- (void) beginFetchFromRemoteForRef:(PBGitRef *)ref;
|
||||
- (void) beginPullFromRemote:(PBGitRef *)remoteRef forRef:(PBGitRef *)ref;
|
||||
- (void) beginPushRef:(PBGitRef *)ref toRemote:(PBGitRef *)remoteRef;
|
||||
|
||||
@@ -483,6 +483,15 @@ NSString* PBGitRepositoryErrorDomain = @"GitXErrorDomain";
|
||||
|
||||
#pragma mark Repository commands
|
||||
|
||||
- (void) beginAddRemote:(NSString *)remoteName forURL:(NSString *)remoteURL
|
||||
{
|
||||
NSArray *arguments = [NSArray arrayWithObjects:@"remote", @"add", @"-f", remoteName, remoteURL, nil];
|
||||
|
||||
NSString *description = [NSString stringWithFormat:@"Adding the remote %@ and fetching tracking branches", remoteName];
|
||||
NSString *title = @"Adding a remote";
|
||||
[PBRemoteProgressSheet beginRemoteProgressSheetForArguments:arguments title:title description:description inRepository:self];
|
||||
}
|
||||
|
||||
- (void) beginFetchFromRemoteForRef:(PBGitRef *)ref
|
||||
{
|
||||
NSMutableArray *arguments = [NSMutableArray arrayWithObject:@"fetch"];
|
||||
|
||||
Reference in New Issue
Block a user