diff --git a/Ample/Base.lproj/LaunchWindow.xib b/Ample/Base.lproj/LaunchWindow.xib index 2f134bb..81cb9e6 100644 --- a/Ample/Base.lproj/LaunchWindow.xib +++ b/Ample/Base.lproj/LaunchWindow.xib @@ -30,44 +30,6 @@ - - @@ -231,11 +193,11 @@ DQ - + - + @@ -255,7 +217,7 @@ DQ - + @@ -280,11 +242,11 @@ DQ - + - + @@ -323,7 +285,7 @@ DQ - + @@ -348,7 +310,7 @@ DQ - + @@ -365,7 +327,7 @@ DQ - + @@ -530,7 +512,10 @@ DQ - + + + + @@ -607,8 +592,45 @@ Gw + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Ample/LaunchWindowController.m b/Ample/LaunchWindowController.m index f9e1d94..2c39eff 100644 --- a/Ample/LaunchWindowController.m +++ b/Ample/LaunchWindowController.m @@ -137,7 +137,8 @@ static int EffectsIndex(NSString *str) { } -(void)reset { - [self setMachine: nil]; + // handled elsewhere. + //[self setMachine: nil]; [self setMameSpeed: 1]; [self setMameBGFX: YES]; @@ -145,6 +146,7 @@ static int EffectsIndex(NSString *str) { [self setMameSamples: NO]; [self setMameSquarePixels: NO]; [self setMameDebug: NO]; + [self setMameWindowMode: 0]; [self setMameBackend: 0]; [self setMameEffects: 0]; @@ -161,8 +163,16 @@ static int EffectsIndex(NSString *str) { [self setMameBitBanger: NO]; [self setMameShareDirectory: NO]; +#if 0 [self setSoftware: nil]; - _softwareSet = nil; + //_softwareSet = nil; + [_softwareListControl setObjectValue: nil]; +#endif +} + +-(void)resetSoftware { + [self setSoftware: nil]; + //_softwareSet = nil; [_softwareListControl setObjectValue: nil]; } @@ -243,7 +253,6 @@ static void AddSubview(NSView *parent, NSView *child) { NSString *machine = [_machineViewController machine]; [self setMachine: machine]; [_slotController setMachine: machine]; - [self updateSoftwareList]; [self buildCommandLine]; } else { [super observeValueForKeyPath: keyPath ofObject: object change: change context: context]; @@ -270,6 +279,16 @@ static void AddSubview(NSView *parent, NSView *child) { [[self window] setTitle: title]; #endif + + // enable/disable the right-click menu + NSWindow *window = [self window]; + NSView *view = [window contentView]; + if (_machine) [view setMenu: [window menu]]; + else [view setMenu: nil]; + + + // software list. + [self updateSoftwareList]; } static NSString * JoinArguments(NSArray *argv, NSString *argv0) { @@ -627,13 +646,25 @@ static NSString *ShellQuote(NSString *s) { } --(IBAction)reset:(id)sender { - +-(IBAction)resetMachine:(id)sender { [self reset]; - [_slotController resetSlots: sender]; - [_mediaController reset: sender]; } +-(IBAction)resetAll:(id)sender { + + [self reset]; + [self resetSoftware]; + [_slotController resetSlots: sender]; + [_mediaController resetMedia: sender]; +} + +-(IBAction)resetMedia:(id)sender { + [_mediaController resetMedia: sender]; + [_softwareListControl setObjectValue: nil]; + [self setSoftware: nil]; +} + + @end @@ -682,7 +713,8 @@ static NSString *ShellQuote(NSString *s) { NSDictionary *d = [bm loadDefault]; if (!d) { - [self reset: sender]; + [self resetAll: sender]; + [self setMachine: nil]; [_slotController setMachine: nil]; return; } diff --git a/Ample/MediaViewController.h b/Ample/MediaViewController.h index d7571dc..04174b0 100644 --- a/Ample/MediaViewController.h +++ b/Ample/MediaViewController.h @@ -21,7 +21,7 @@ NS_ASSUME_NONNULL_BEGIN - (IBAction)ejectAction:(id)sender; - (IBAction)pathAction:(id)sender; --(IBAction)reset:(id)sender; +-(IBAction)resetMedia:(id)sender; @end diff --git a/Ample/MediaViewController.m b/Ample/MediaViewController.m index 73f8cb3..0e436e6 100644 --- a/Ample/MediaViewController.m +++ b/Ample/MediaViewController.m @@ -395,6 +395,7 @@ x = media.name; cat = _data[index]; delta |= [cat setItemCount: x] [item setUrl: nil]; delta = YES; } + if ([cat pruneChildrenWithOutlineView: _outlineView]) delta = YES; } if (delta) { [self rebuildRoot]; @@ -668,7 +669,7 @@ static NSString *kDragType = @"private.ample.media"; [self rebuildArgs]; } --(IBAction)reset:(id)sender { +-(IBAction)resetMedia:(id)sender { [self resetDiskImages]; }