mirror of
https://github.com/kennethreitz-archive/gitx.git
synced 2026-06-05 23:40:18 +00:00
d3d700a138
Will clone an open repository to a folder. Opens a sheet with a custom accessory view that has a checkbox to allow creating a bare repo.
81 lines
2.0 KiB
Objective-C
81 lines
2.0 KiB
Objective-C
//
|
|
// PBCloneRepsitoryToSheet.m
|
|
// GitX
|
|
//
|
|
// Created by Nathan Kinsinger on 2/7/10.
|
|
// Copyright 2010 Nathan Kinsinger. All rights reserved.
|
|
//
|
|
|
|
#import "PBCloneRepsitoryToSheet.h"
|
|
#import "PBGitRepository.h"
|
|
|
|
|
|
|
|
@interface PBCloneRepsitoryToSheet ()
|
|
|
|
- (void) beginCloneRepsitoryToSheetForRepository:(PBGitRepository *)repo;
|
|
|
|
@end
|
|
|
|
|
|
@implementation PBCloneRepsitoryToSheet
|
|
|
|
@synthesize repository;
|
|
@synthesize isBare;
|
|
@synthesize message;
|
|
@synthesize cloneToAccessoryView;
|
|
|
|
|
|
#pragma mark -
|
|
#pragma mark PBCloneRepsitoryToSheet
|
|
|
|
+ (void) beginCloneRepsitoryToSheetForRepository:(PBGitRepository *)repo
|
|
{
|
|
PBCloneRepsitoryToSheet *sheet = [[self alloc] initWithWindowNibName:@"PBCloneRepsitoryToSheet"];
|
|
[sheet beginCloneRepsitoryToSheetForRepository:repo];
|
|
}
|
|
|
|
|
|
- (void) beginCloneRepsitoryToSheetForRepository:(PBGitRepository *)repo
|
|
{
|
|
self.repository = repo;
|
|
[self window];
|
|
}
|
|
|
|
|
|
- (void) awakeFromNib
|
|
{
|
|
NSOpenPanel *cloneToSheet = [NSOpenPanel openPanel];
|
|
|
|
[cloneToSheet setTitle:@"Clone Repository To"];
|
|
[cloneToSheet setPrompt:@"Clone"];
|
|
[self.message setStringValue:[NSString stringWithFormat:@"Select a folder to clone %@ into", [self.repository projectName]]];
|
|
[cloneToSheet setCanSelectHiddenExtension:NO];
|
|
[cloneToSheet setCanChooseFiles:NO];
|
|
[cloneToSheet setCanChooseDirectories:YES];
|
|
[cloneToSheet setAllowsMultipleSelection:NO];
|
|
[cloneToSheet setCanCreateDirectories:YES];
|
|
[cloneToSheet setAccessoryView:cloneToAccessoryView];
|
|
|
|
[cloneToSheet beginSheetForDirectory:nil file:nil types:nil
|
|
modalForWindow:[self.repository.windowController window]
|
|
modalDelegate:self
|
|
didEndSelector:@selector(cloneToSheetDidEnd:returnCode:contextInfo:)
|
|
contextInfo:NULL];
|
|
}
|
|
|
|
|
|
- (void) cloneToSheetDidEnd:(NSWindow *)sheet returnCode:(NSInteger)code contextInfo:(void *)info
|
|
{
|
|
[sheet orderOut:self];
|
|
|
|
if (code == NSOKButton) {
|
|
NSString *clonePath = [(NSOpenPanel *)sheet filename];
|
|
NSLog(@"clone path = %@", clonePath);
|
|
[self.repository cloneRepositoryToPath:clonePath bare:self.isBare];
|
|
}
|
|
}
|
|
|
|
|
|
@end
|