diff --git a/Ample/Base.lproj/DiskImages.xib b/Ample/Base.lproj/DiskImages.xib
index b499c46..7956ea5 100644
--- a/Ample/Base.lproj/DiskImages.xib
+++ b/Ample/Base.lproj/DiskImages.xib
@@ -24,14 +24,14 @@
-
+
-
+
@@ -64,19 +64,19 @@
-
FilePathTransformer
+
-
+
@@ -103,6 +103,7 @@
+
@@ -129,5 +130,25 @@
+
diff --git a/Ample/DiskImagesWindowController.h b/Ample/DiskImagesWindowController.h
index 8d8bb76..b792240 100644
--- a/Ample/DiskImagesWindowController.h
+++ b/Ample/DiskImagesWindowController.h
@@ -18,5 +18,9 @@ NS_ASSUME_NONNULL_BEGIN
@end
+@interface DiskImagesWindowController (Menu)
+
+@end
+
NS_ASSUME_NONNULL_END
diff --git a/Ample/DiskImagesWindowController.m b/Ample/DiskImagesWindowController.m
index 80492ea..b9a44c1 100644
--- a/Ample/DiskImagesWindowController.m
+++ b/Ample/DiskImagesWindowController.m
@@ -156,6 +156,47 @@
return YES;
}
+
+-(NSMutableDictionary *)clickedItem {
+
+ NSInteger row = [_tableView clickedRow];
+ if (row < 0) return nil;
+
+ NSTableCellView *v = [_tableView viewAtColumn: 0 row: row makeIfNecessary: NO];
+ return [v objectValue];
+}
+#pragma mark - IBActions
+
+- (IBAction)showInFinder:(id)sender {
+
+ NSMutableDictionary *item = [self clickedItem];
+ if (!item) return;
+ NSString *path = [item objectForKey: @"path"];
+
+ NSURL *url = [NSURL fileURLWithPath: path];
+ if (!url) return;
+
+ NSWorkspace *ws = [NSWorkspace sharedWorkspace];
+ [ws activateFileViewerSelectingURLs: @[url]];
+}
+
+- (IBAction)eject:(id)sender {
+
+ NSMutableDictionary *item = [self clickedItem];
+ if (!item) return;
+
+ @synchronized (self) {
+
+ if (_arrayController) {
+ [_arrayController removeObject: item];
+ } else {
+ [_content removeObject: item];
+ }
+ _dirty = YES;
+ }
+
+}
+
@end
@implementation DiskImagesWindowController (TableView)