73 lines
1.3 KiB
Objective-C
73 lines
1.3 KiB
Objective-C
//
|
|
// EntriesController.m
|
|
// Cog
|
|
//
|
|
// Created by Vincent Spader on 2/10/08.
|
|
// Copyright 2008 __MyCompanyName__. All rights reserved.
|
|
//
|
|
|
|
#import "EntriesController.h"
|
|
|
|
#define UNDO_STACK_LIMIT 0
|
|
|
|
@implementation EntriesController
|
|
|
|
- (id)init
|
|
{
|
|
self = [super init];
|
|
|
|
if (self)
|
|
{
|
|
playlistEntries = [[NSMutableArray alloc] init];
|
|
undoManager = [[NSUndoManager alloc] init];
|
|
|
|
[undoManager setLevelsOfUndo:UNDO_STACK_LIMIT];
|
|
}
|
|
|
|
return self;
|
|
}
|
|
|
|
- (void)dealloc
|
|
{
|
|
[playlistEntries release];
|
|
[undoManager release];
|
|
|
|
[super dealloc];
|
|
}
|
|
|
|
- (NSUndoManager *)undoManager
|
|
{
|
|
return undoManager;
|
|
}
|
|
|
|
- (NSMutableArray *)entries
|
|
{
|
|
return playlistEntries;
|
|
}
|
|
|
|
- (void)setEntries:(NSMutableArray *)array
|
|
{
|
|
if (array == playlistEntries)
|
|
return;
|
|
|
|
[array retain];
|
|
[playlistEntries release];
|
|
playlistEntries = array;
|
|
}
|
|
|
|
- (void)insertObject:(PlaylistEntry *)pe inEntriesAtIndex:(int)index
|
|
{
|
|
[[[self undoManager] prepareWithInvocationTarget:self] removeObjectFromEntriesAtIndex:index];
|
|
[playlistEntries insertObject:pe atIndex:index];
|
|
}
|
|
|
|
- (void)removeObjectFromEntriesAtIndex:(int)index
|
|
{
|
|
[[[self undoManager] prepareWithInvocationTarget:self] insertObject:[playlistEntries objectAtIndex:index] inEntriesAtIndex:index];
|
|
|
|
[playlistEntries removeObjectAtIndex:index];
|
|
}
|
|
|
|
|
|
@end
|