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