summaryrefslogtreecommitdiffstats
path: root/osdep
diff options
context:
space:
mode:
authorder richter <der.richter@gmx.de>2020-01-30 14:32:31 +0100
committerder richter <der.richter@gmx.de>2020-02-08 10:55:07 +0100
commit2607a2b892ce3c4f4da0b09c88ed1d6a4951020c (patch)
treeb7f700a26a4c0708c2a7539b71aed09ca648916d /osdep
parentb7b8a772f2a4c302f6bb1b75965e260c7944dad6 (diff)
downloadmpv-2607a2b892ce3c4f4da0b09c88ed1d6a4951020c.tar.bz2
mpv-2607a2b892ce3c4f4da0b09c88ed1d6a4951020c.tar.xz
mac: activate logging when started from the bundle
this creates a default log for the last mpv run when started from the bundle. that way one can get a log of what happened even after an issue occurred. also add a menu entry under Help to show the current log, but only when the bundle is used. Fixes #7396 Fixes #2547
Diffstat (limited to 'osdep')
-rw-r--r--osdep/macosx_menubar.m45
1 files changed, 41 insertions, 4 deletions
diff --git a/osdep/macosx_menubar.m b/osdep/macosx_menubar.m
index 349dd85aff..11fdda5e53 100644
--- a/osdep/macosx_menubar.m
+++ b/osdep/macosx_menubar.m
@@ -594,6 +594,15 @@
@"key" : @"",
@"target" : self,
@"url" : @"https://github.com/mpv-player/mpv/issues/new/choose"
+ }],
+ [NSMutableDictionary dictionaryWithDictionary:@{
+ @"name" : @"Show log File…",
+ @"action" : @"showFile:",
+ @"key" : @"",
+ @"target" : self,
+ @"file" : @"~/Library/Logs/mpv.log",
+ @"alertTitle" : @"No log File found.",
+ @"alertText" : @"You deactivated logging for the Bundle."
}]
]
}
@@ -609,6 +618,7 @@
{
NSMenu *mainMenu = [[NSMenu alloc] initWithTitle:@"MainMenu"];
[NSApp setServicesMenu:[[NSMenu alloc] init]];
+ NSString* bundle = [[[NSProcessInfo processInfo] environment] objectForKey:@"MPVBUNDLE"];
for(id mMenu in menuTree) {
NSMenu *menu = [[NSMenu alloc] initWithTitle:mMenu[@"name"]];
@@ -618,17 +628,25 @@
[mainMenu setSubmenu:menu forItem:mItem];
for(id subMenu in mMenu[@"menu"]) {
+ NSString *name = subMenu[@"name"];
+ NSString *action = subMenu[@"action"];
+
#if HAVE_MACOS_TOUCHBAR
- if ([subMenu[@"action"] isEqual:@"toggleTouchBarCustomizationPalette:"]) {
+ if ([action isEqual:@"toggleTouchBarCustomizationPalette:"]) {
if (![NSApp respondsToSelector:@selector(touchBar)])
continue;
}
#endif
- if ([subMenu[@"name"] isEqual:@"separator"]) {
+
+ if ([name isEqual:@"Show log File…"] && ![bundle isEqual:@"true"]) {
+ continue;
+ }
+
+ if ([name isEqual:@"separator"]) {
[menu addItem:[NSMenuItem separatorItem]];
} else {
- NSMenuItem *iItem = [menu addItemWithTitle:subMenu[@"name"]
- action:NSSelectorFromString(subMenu[@"action"])
+ NSMenuItem *iItem = [menu addItemWithTitle:name
+ action:NSSelectorFromString(action)
keyEquivalent:subMenu[@"key"]];
[iItem setTarget:subMenu[@"target"]];
[subMenu setObject:iItem forKey:@"menuItem"];
@@ -754,6 +772,25 @@
[[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:url]];
}
+- (void)showFile:(NSMenuItem *)menuItem
+{
+ NSWorkspace *workspace = [NSWorkspace sharedWorkspace];
+ NSFileManager *fileManager = [NSFileManager defaultManager];
+ NSMutableDictionary *mItemDict = [self getDictFromMenuItem:menuItem];
+ NSString *file = [mItemDict[@"file"] stringByExpandingTildeInPath];
+
+ if ([fileManager fileExistsAtPath:file]){
+ NSURL *url = [NSURL fileURLWithPath:file];
+ NSArray *urlArray = [NSArray arrayWithObjects:url, nil];
+
+ [workspace activateFileViewerSelectingURLs:urlArray];
+ return;
+ }
+
+ [self alertWithTitle:mItemDict[@"alertTitle"]
+ andText:mItemDict[@"alertText"]];
+}
+
- (void)alertWithTitle:(NSString *)title andText:(NSString *)text
{
NSAlert *alert = [[NSAlert alloc] init];