summaryrefslogtreecommitdiffstats
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
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
-rw-r--r--.github/ISSUE_TEMPLATE/2_bug_report_macos.md8
-rw-r--r--DOCS/man/options.rst3
-rw-r--r--TOOLS/osxbundle/mpv.app/Contents/Resources/mpv.conf1
-rw-r--r--osdep/macosx_menubar.m45
4 files changed, 50 insertions, 7 deletions
diff --git a/.github/ISSUE_TEMPLATE/2_bug_report_macos.md b/.github/ISSUE_TEMPLATE/2_bug_report_macos.md
index d33c52bbba..a61972d1b0 100644
--- a/.github/ISSUE_TEMPLATE/2_bug_report_macos.md
+++ b/.github/ISSUE_TEMPLATE/2_bug_report_macos.md
@@ -31,9 +31,11 @@ differes from your own.
### Log file
-Make a log file made with -v -v or --log-file=output.txt, paste it to
-https://0x0.st/ or attach it to the github issue, and replace this text with a
-link to it.
+Make a log file made with -v -v or --log-file=output.txt. If you use the Bundle
+from a version later than 0.32 a default log is created for your last run at
+~/Library/Logs/mpv.log. You can jump to that file via the Help > Show log File…
+menu. Paste the log to https://0x0.st/ or attach it to the github issue, and
+replace this text with a link to it.
In the case of a crash please provide the macOS Crash Report (Backtrace).
diff --git a/DOCS/man/options.rst b/DOCS/man/options.rst
index bcdad2ed41..1d18638f2a 100644
--- a/DOCS/man/options.rst
+++ b/DOCS/man/options.rst
@@ -652,6 +652,9 @@ Program Behavior
can be raised via ``--msg-level`` (the option cannot lower it below the
forced minimum log level).
+ A special case is the macOS bundle, it will create a log file at
+ ``~/Library/Logs/mpv.log`` by default.
+
``--config-dir=<path>``
Force a different configuration directory. If this is set, the given
directory is used to load configuration files, and all other configuration
diff --git a/TOOLS/osxbundle/mpv.app/Contents/Resources/mpv.conf b/TOOLS/osxbundle/mpv.app/Contents/Resources/mpv.conf
index bdffa7a951..618f87e24b 100644
--- a/TOOLS/osxbundle/mpv.app/Contents/Resources/mpv.conf
+++ b/TOOLS/osxbundle/mpv.app/Contents/Resources/mpv.conf
@@ -1 +1,2 @@
player-operation-mode=pseudo-gui
+log-file=~/Library/Logs/mpv.log
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];