mirror of
https://github.com/ksherlock/ample.git
synced 2024-06-08 02:29:37 +00:00
load bookmark...
This commit is contained in:
parent
0b248e6aad
commit
f628d99e4a
|
@ -44,6 +44,9 @@ extern NSString *kDefaultDownloadExtension;
|
|||
@protocol Bookmark <NSObject>
|
||||
-(BOOL)loadBookmark: (NSDictionary *)bookmark;
|
||||
-(BOOL)saveBookmark: (NSMutableDictionary *)bookmark;
|
||||
|
||||
-(void)willLoadBookmark: (NSDictionary *)bookmark;
|
||||
-(void)didLoadBookmark: (NSDictionary *)bookmark;
|
||||
@end
|
||||
|
||||
#endif /* Ample_h */
|
||||
|
|
|
@ -24,7 +24,9 @@ static NSString *kMyContext = @"kMyContext";
|
|||
static NSString *kContextMachine = @"kContextMachine";
|
||||
|
||||
|
||||
@interface LaunchWindowController ()
|
||||
@interface LaunchWindowController () {
|
||||
BOOL _loadingBookmark;
|
||||
}
|
||||
@property (strong) IBOutlet MediaViewController *mediaController;
|
||||
@property (strong) IBOutlet SlotViewController *slotController;
|
||||
@property (strong) IBOutlet MachineViewController *machineViewController;
|
||||
|
@ -128,7 +130,8 @@ static NSString *EffectsStrings[] = {
|
|||
|
||||
|
||||
NSArray *keys = @[
|
||||
@"mameMachine", @"mameSquarePixels", @"mameWindowMode",
|
||||
//@"mameMachine", // - handled
|
||||
@"mameSquarePixels", @"mameWindowMode",
|
||||
@"mameMouse", @"mameSamples",
|
||||
@"mameDebug",
|
||||
@"mameSpeed",
|
||||
|
@ -163,8 +166,11 @@ static NSString *EffectsStrings[] = {
|
|||
-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSKeyValueChangeKey,id> *)change context:(void *)context {
|
||||
|
||||
if (context == (__bridge void *)kMyContext) {
|
||||
if (_loadingBookmark) return;
|
||||
[self buildCommandLine];
|
||||
} else if (context == (__bridge void *)kContextMachine) {
|
||||
if (_loadingBookmark) return;
|
||||
|
||||
NSString *machine = [_machineViewController machine];
|
||||
[self setMameMachine: machine];
|
||||
[_slotController setMachine: machine];
|
||||
|
@ -619,25 +625,26 @@ static NSString *ShellQuote(NSString *s) {
|
|||
NSString *machine = [d objectForKey: @"machine"];
|
||||
if (!machine) return;
|
||||
|
||||
#if 0
|
||||
_bookmark = YES;
|
||||
[_machineViewController willLoadBookmark];
|
||||
[_slotController willLoadBookmark];
|
||||
[_mediaController willLoadBookmark];
|
||||
_loadingBookmark = YES;
|
||||
[_machineViewController willLoadBookmark: d];
|
||||
[_slotController willLoadBookmark: d];
|
||||
[_mediaController willLoadBookmark: d];
|
||||
|
||||
|
||||
[self setMameMachine: machine];
|
||||
[self updateSoftwareList];
|
||||
[_softwareListControl setStringValue: [d objectForKey: @"software"]];
|
||||
|
||||
[_machineViewController loadBookmark: d];
|
||||
[_slotController loadBookmark: d];
|
||||
[_mediaController loadBookmark: d];
|
||||
|
||||
_bookmark = NO;
|
||||
[_machineViewController didLoadBookmark];
|
||||
[_slotController didLoadBookmark];
|
||||
[_mediaController didLoadBookmark];
|
||||
[_machineViewController didLoadBookmark: d];
|
||||
[_slotController didLoadBookmark: d];
|
||||
[_mediaController didLoadBookmark: d];
|
||||
|
||||
_loadingBookmark = NO;
|
||||
|
||||
#endif
|
||||
[self buildCommandLine];
|
||||
}
|
||||
|
||||
|
|
|
@ -123,25 +123,38 @@
|
|||
NSUInteger ix[2] = {0, 0 };
|
||||
for (NSDictionary *d in _data) {
|
||||
|
||||
NSString *value = [d objectForKey: @"value"];
|
||||
NSArray *children = [d objectForKey: @"children"];
|
||||
if ([machine isEqualToString: value]) {
|
||||
path = [NSIndexPath indexPathWithIndexes: ix length: 1];
|
||||
[browser setSelectionIndexPath: path];
|
||||
return YES;
|
||||
}
|
||||
|
||||
for (NSDictionary *dd in children) {
|
||||
NSString *value = [dd objectForKey: @"value"];
|
||||
|
||||
if ([machine isEqualToString: value]) {
|
||||
path = [NSIndexPath indexPathWithIndexes: ix length: 2];
|
||||
[browser setSelectionIndexPath: path];
|
||||
[browser selectRow: ix[0] inColumn: 0];
|
||||
[browser selectRow: ix[1] inColumn: 1];
|
||||
|
||||
//[browser setSelectionIndexPath: path];
|
||||
return YES;
|
||||
}
|
||||
++ix[1];
|
||||
}
|
||||
ix[1] = 0;
|
||||
|
||||
|
||||
// check parent after.
|
||||
NSString *value = [d objectForKey: @"value"];
|
||||
if ([machine isEqualToString: value]) {
|
||||
path = [NSIndexPath indexPathWithIndexes: ix length: 1];
|
||||
[browser selectRow: ix[0] inColumn: 0];
|
||||
// "setSelectionIndexPath: is not supported for browsers with matrix delegates."
|
||||
//[browser setSelectionIndexPath: path];
|
||||
return YES;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
++ix[0];
|
||||
|
||||
}
|
||||
|
@ -154,4 +167,10 @@
|
|||
return YES;
|
||||
}
|
||||
|
||||
-(void)willLoadBookmark:(NSDictionary *)bookmark {
|
||||
}
|
||||
|
||||
-(void)didLoadBookmark:(NSDictionary *)bookmark {
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
@ -262,6 +262,8 @@
|
|||
MediaCategory *_data[CATEGORY_COUNT];
|
||||
NSArray *_root;
|
||||
Media _media;
|
||||
|
||||
BOOL _loadingBookmark;
|
||||
}
|
||||
|
||||
@end
|
||||
|
@ -744,4 +746,11 @@ static NSString *kDragType = @"private.ample.media";
|
|||
return YES;
|
||||
}
|
||||
|
||||
-(void)willLoadBookmark:(NSDictionary *)bookmark {
|
||||
_loadingBookmark = YES;
|
||||
}
|
||||
-(void)didLoadBookmark:(NSDictionary *)bookmark {
|
||||
_loadingBookmark = NO;
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
@ -49,6 +49,7 @@ static unsigned RootKey = 0;
|
|||
|
||||
IBOutlet NSPopover *_popover;
|
||||
|
||||
BOOL _loadingBookmark;
|
||||
}
|
||||
|
||||
- (void)viewDidLoad {
|
||||
|
@ -142,8 +143,10 @@ static unsigned RootKey = 0;
|
|||
|
||||
|
||||
[_outlineView reloadData];
|
||||
[self rebuildMedia];
|
||||
[self rebuildArgs];
|
||||
if (!_loadingBookmark) {
|
||||
[self rebuildMedia];
|
||||
[self rebuildArgs];
|
||||
}
|
||||
}
|
||||
|
||||
-(void)setMachine: (NSString *)machine {
|
||||
|
@ -281,8 +284,10 @@ static unsigned RootKey = 0;
|
|||
#ifdef SLOT_TREE
|
||||
[_outlineView reloadData];
|
||||
#endif
|
||||
[self rebuildMedia];
|
||||
[self rebuildArgs];
|
||||
if (!_loadingBookmark) {
|
||||
[self rebuildMedia];
|
||||
[self rebuildArgs];
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
||||
|
@ -383,4 +388,12 @@ static unsigned RootKey = 0;
|
|||
return YES;
|
||||
}
|
||||
|
||||
|
||||
-(void)willLoadBookmark:(NSDictionary *)bookmark {
|
||||
_loadingBookmark = YES;
|
||||
}
|
||||
-(void)didLoadBookmark:(NSDictionary *)bookmark {
|
||||
_loadingBookmark = NO;
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
Loading…
Reference in New Issue
Block a user