[Path Config] Remove exact items by token id
Should use the exact token object to remove them, rather than doing a path comparison. Signed-off-by: Christopher Snowhill <kode54@gmail.com>xcode15
parent
1fb636ffd2
commit
aa7eb52231
|
@ -36,9 +36,9 @@
|
||||||
- (IBAction)deleteSelectedPaths:(id)sender {
|
- (IBAction)deleteSelectedPaths:(id)sender {
|
||||||
NSArray *selectedObjects = [sandboxPathBehaviorController selectedObjects];
|
NSArray *selectedObjects = [sandboxPathBehaviorController selectedObjects];
|
||||||
if(selectedObjects && [selectedObjects count]) {
|
if(selectedObjects && [selectedObjects count]) {
|
||||||
NSArray *paths = [selectedObjects valueForKey:@"path"];
|
NSArray *tokens = [selectedObjects valueForKey:@"token"];
|
||||||
for(NSString *path in paths) {
|
for(id token in tokens) {
|
||||||
[sandboxPathBehaviorController removePath:path];
|
[sandboxPathBehaviorController removeToken:token];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,7 +12,7 @@ NS_ASSUME_NONNULL_BEGIN
|
||||||
@interface SandboxPathBehaviorController : NSArrayController
|
@interface SandboxPathBehaviorController : NSArrayController
|
||||||
|
|
||||||
- (void)addUrl:(NSURL *)url;
|
- (void)addUrl:(NSURL *)url;
|
||||||
- (void)removePath:(NSString *)path;
|
- (void)removeToken:(id)token;
|
||||||
- (void)removeStaleEntries;
|
- (void)removeStaleEntries;
|
||||||
|
|
||||||
- (BOOL)matchesPath:(NSURL *)url;
|
- (BOOL)matchesPath:(NSURL *)url;
|
||||||
|
|
|
@ -73,36 +73,29 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)removePath:(NSString *)path {
|
- (void)removeToken:(id)token {
|
||||||
|
NSPersistentContainer *pc = [NSClassFromString(@"PlaylistController") sharedPersistentContainer];
|
||||||
|
|
||||||
NSArray *objects = [[self arrangedObjects] copy];
|
NSArray *objects = [[self arrangedObjects] copy];
|
||||||
|
|
||||||
|
BOOL updated = NO;
|
||||||
|
|
||||||
for(NSDictionary *obj in objects) {
|
for(NSDictionary *obj in objects) {
|
||||||
if([[obj objectForKey:@"path"] isEqualToString:path]) {
|
if([[obj objectForKey:@"token"] isEqualTo:token]) {
|
||||||
[self removeObject:obj];
|
[self removeObject:obj];
|
||||||
|
[pc.viewContext deleteObject:token];
|
||||||
|
updated = YES;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
NSPersistentContainer *pc = [NSClassFromString(@"PlaylistController") sharedPersistentContainer];
|
if(updated) {
|
||||||
|
NSError *error;
|
||||||
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"path == %@", path];
|
[pc.viewContext save:&error];
|
||||||
|
if(error) {
|
||||||
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"SandboxToken"];
|
ALog(@"Error deleting bookmark: %@", [error localizedDescription]);
|
||||||
request.predicate = predicate;
|
|
||||||
|
|
||||||
NSError *error = nil;
|
|
||||||
NSArray *results = [pc.viewContext executeFetchRequest:request error:&error];
|
|
||||||
|
|
||||||
if(results && [results count] > 0) {
|
|
||||||
for(SandboxToken *token in results) {
|
|
||||||
[pc.viewContext deleteObject:token];
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[pc.viewContext save:&error];
|
|
||||||
if(error) {
|
|
||||||
ALog(@"Error deleting bookmark: %@", [error localizedDescription]);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)removeStaleEntries {
|
- (void)removeStaleEntries {
|
||||||
|
|
Loading…
Reference in New Issue