From 04cb7d2add12bc8795b9a168f9fda0973a6e5f42 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Felix=20Paul=20K=C3=BChne?= Date: Sun, 10 Nov 2013 21:53:17 +0100 Subject: [PATCH] macosx: split crash log handling both from VLCMain and the Main Menu nib file --- .../Resources/English.lproj/CrashReporter.xib | 959 ++++ .../Resources/English.lproj/MainMenu.xib | 5077 +---------------- .../macosx/vlc.xcodeproj/project.pbxproj | 16 + modules/gui/macosx/CrashReporter.h | 56 + modules/gui/macosx/CrashReporter.m | 222 + modules/gui/macosx/Modules.am | 2 + modules/gui/macosx/intf.h | 15 - modules/gui/macosx/intf.m | 166 +- 8 files changed, 1391 insertions(+), 5122 deletions(-) create mode 100644 extras/package/macosx/Resources/English.lproj/CrashReporter.xib create mode 100644 modules/gui/macosx/CrashReporter.h create mode 100644 modules/gui/macosx/CrashReporter.m diff --git a/extras/package/macosx/Resources/English.lproj/CrashReporter.xib b/extras/package/macosx/Resources/English.lproj/CrashReporter.xib new file mode 100644 index 0000000000..826d94b7de --- /dev/null +++ b/extras/package/macosx/Resources/English.lproj/CrashReporter.xib @@ -0,0 +1,959 @@ + + + + 1060 + 12F45 + 851 + 1187.40 + 626.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 851 + + + YES + + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + + PluginDependencyRecalculationVersion + + + + YES + + VLCCrashReporter + + + FirstResponder + + + NSApplication + + + 9 + 2 + {{265, 356}, {612, 323}} + 1886912512 + VLC crashed previously + NSWindow + + View + + + {1.7976931348623157e+308, 1.7976931348623157e+308} + + + 256 + + YES + + + 266 + {{89, 286}, {506, 17}} + + YES + + 69206017 + 272629760 + VLC crashed previously + + LucidaGrande-Bold + 13 + 2064 + + + + 6 + System + controlColor + + 3 + MC42NjY2NjY2NjY3AA + + + + 6 + System + controlTextColor + + 3 + MAA + + + + NO + + + + 266 + {{89, 207}, {506, 71}} + + YES + + 69206017 + 272629760 + RG8geW91IHdhbnQgdG8gc2VuZCBkZXRhaWxzIG9uIHRoZSBjcmFzaCB0byBWTEMncyBkZXZlbG9wbWVu +dCB0ZWFtPwoKSWYgeW91IHdhbnQsIHlvdSBjYW4gZW50ZXIgYSBmZXcgbGluZXMgb24gd2hhdCB5b3Ug +ZGlkIGJlZm9yZSBWTEMgY3Jhc2hlZCBhbG9uZyB3aXRoIG90aGVyIGhlbHBmdWwgaW5mb3JtYXRpb246 +IGEgbGluayB0byBkb3dubG9hZCBhIHNhbXBsZSBmaWxlLCBhIFVSTCBvZiBhIG5ldHdvcmsgc3RyZWFt +LCAuLi4 + + LucidaGrande + 11 + 3088 + + + + + + NO + + + + 268 + + YES + + YES + Apple PDF pasteboard type + Apple PICT pasteboard type + Apple PNG pasteboard type + NSFilenamesPboardType + NeXT Encapsulated PostScript v1.2 pasteboard type + NeXT TIFF v4.0 pasteboard type + + + {{20, 239}, {64, 64}} + + YES + + 0 + 33554432 + + NSImage + NSApplicationIcon + + 0 + 0 + 0 + NO + + NO + YES + + + + 274 + + YES + + + 2304 + + YES + + + 2322 + + YES + + YES + Apple HTML pasteboard type + Apple PDF pasteboard type + Apple PICT pasteboard type + Apple PNG pasteboard type + Apple URL pasteboard type + CorePasteboardFlavorType 0x6D6F6F76 + NSColor pasteboard type + NSFilenamesPboardType + NSStringPboardType + NeXT Encapsulated PostScript v1.2 pasteboard type + NeXT RTFD pasteboard type + NeXT Rich Text Format v1.0 pasteboard type + NeXT TIFF v4.0 pasteboard type + NeXT font pasteboard type + NeXT ruler pasteboard type + WebURLsWithTitlesPboardType + public.url + + + {498, 102} + + + + + + + + + + + YES + + + 6 + + + + 498 + 1 + + + 100675555 + 0 + + + 3 + MQA + + + YES + + YES + NSBackgroundColor + NSColor + + + YES + + 6 + System + selectedTextBackgroundColor + + + + 6 + System + selectedTextColor + + + + + + + YES + + YES + NSColor + NSUnderline + + + YES + + 1 + MCAwIDEAA + + + + + + + 1 + + 6 + {998, 10000000} + + + + {{1, 1}, {498, 102}} + + + + + + {4, -5} + 1 + + 4 + + + + -2147483392 + {{484, 1}, {15, 102}} + + NO + + _doScroller: + 0.97142859999999998 + + + + -2147483392 + {{-100, -100}, {87, 18}} + + NO + 1 + + _doScroller: + 1 + 0.94565220000000005 + + + {{92, 95}, {500, 104}} + + + 133650 + + + + 0.25 + 4 + 1 + + + + 257 + {{475, 9}, {123, 32}} + + YES + + 67108864 + 134217728 + Send + + LucidaGrande + 13 + 1040 + + + -2038284288 + 1 + + + DQ + 200 + 25 + + NO + + + + 257 + {{352, 9}, {123, 32}} + + YES + + 67108864 + 134217728 + Don't Send + + + -2038284288 + 1 + + + Gw + 200 + 25 + + NO + + + + 290 + {{89, 71}, {505, 18}} + + YES + + 67108864 + 131072 + I agree to be possibly contacted about this bugreport. + + + 1211912448 + 2 + + NSSwitch + + + + 200 + 25 + + NO + + + + 290 + {{18, 18}, {244, 18}} + + YES + + 67108864 + 0 + Don't ask again + + + 1211912448 + 2 + + + + 200 + 25 + + NO + + + + 290 + {{107, 45}, {488, 28}} + + YES + + 67108864 + 272629760 + Only your default E-Mail address will be submitted, including no further information. + + + + + + NO + + + {612, 323} + + + {{0, 0}, {1280, 778}} + {1.7976931348623157e+308, 1.7976931348623157e+308} + YES + + + + + YES + + + _crashrep_title_txt + + + + 33 + + + + _crashrep_desc_txt + + + + 34 + + + + _crashrep_includeEmail_txt + + + + 35 + + + + _crashrep_includeEmail_ckb + + + + 36 + + + + _crashrep_dontSend_btn + + + + 37 + + + + _crashrep_send_btn + + + + 38 + + + + _crashrep_dontaskagain_ckb + + + + 39 + + + + _crashrep_win + + + + 40 + + + + _crashrep_fld + + + + 41 + + + + buttonAction: + + + + 43 + + + + buttonAction: + + + + 44 + + + + + YES + + 0 + + YES + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 1 + + + YES + + + + Crash Reporter + + + 2 + + + YES + + + + + + + + + + + + + + 3 + + + YES + + + + + + 4 + + + YES + + + + + + 5 + + + YES + + + + + + 6 + + + YES + + + + + + 7 + + + YES + + + + + + 8 + + + YES + + + + + + 9 + + + YES + + + + + + + + 10 + + + YES + + + + + + 11 + + + YES + + + + + + 12 + + + + + 13 + + + + + 14 + + + + + 15 + + + + + 16 + + + + + 17 + + + + + 18 + + + + + 19 + + + + + 20 + + + + + 21 + + + + + 22 + + + + + + + YES + + YES + -3.IBPluginDependency + 1.IBEditorWindowLastContentRect + 1.IBPluginDependency + 1.IBWindowTemplateEditedContentRect + 1.ImportedFromIB2 + 10.IBPluginDependency + 10.ImportedFromIB2 + 11.IBPluginDependency + 11.ImportedFromIB2 + 12.IBPluginDependency + 13.IBPluginDependency + 14.IBPluginDependency + 14.IBShouldRemoveOnLegacySave + 15.IBPluginDependency + 15.IBShouldRemoveOnLegacySave + 16.IBPluginDependency + 16.ImportedFromIB2 + 17.IBPluginDependency + 18.IBPluginDependency + 19.IBPluginDependency + 2.IBPluginDependency + 2.ImportedFromIB2 + 20.IBPluginDependency + 21.IBPluginDependency + 22.IBPluginDependency + 3.IBPluginDependency + 3.IBViewBoundsToFrameTransform + 3.ImportedFromIB2 + 4.IBPluginDependency + 4.IBViewBoundsToFrameTransform + 4.ImportedFromIB2 + 5.IBPluginDependency + 5.IBViewBoundsToFrameTransform + 5.ImportedFromIB2 + 6.IBPluginDependency + 6.IBViewBoundsToFrameTransform + 6.ImportedFromIB2 + 7.IBPluginDependency + 7.IBViewBoundsToFrameTransform + 7.ImportedFromIB2 + 8.IBPluginDependency + 8.ImportedFromIB2 + 9.IBPluginDependency + 9.ImportedFromIB2 + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + {{488, 325}, {612, 323}} + com.apple.InterfaceBuilder.CocoaPlugin + {{488, 325}, {612, 323}} + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCsgAAwpQAAA + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDsAAAwp4AAA + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABD7YAAwp4AAA + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABC1gAAwtoAAA + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCsgAAwvoAAA + + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + + + YES + + + YES + + + + + YES + + + YES + + + + 44 + + + + YES + + VLCCrashReporter + NSObject + + buttonAction: + id + + + buttonAction: + + buttonAction: + id + + + + YES + + YES + _crashrep_desc_txt + _crashrep_dontSend_btn + _crashrep_dontaskagain_ckb + _crashrep_fld + _crashrep_includeEmail_ckb + _crashrep_includeEmail_txt + _crashrep_send_btn + _crashrep_title_txt + _crashrep_win + + + YES + NSTextField + NSButton + NSButton + NSTextView + NSButton + NSTextField + NSButton + NSTextField + NSWindow + + + + YES + + YES + _crashrep_desc_txt + _crashrep_dontSend_btn + _crashrep_dontaskagain_ckb + _crashrep_fld + _crashrep_includeEmail_ckb + _crashrep_includeEmail_txt + _crashrep_send_btn + _crashrep_title_txt + _crashrep_win + + + YES + + _crashrep_desc_txt + NSTextField + + + _crashrep_dontSend_btn + NSButton + + + _crashrep_dontaskagain_ckb + NSButton + + + _crashrep_fld + NSTextView + + + _crashrep_includeEmail_ckb + NSButton + + + _crashrep_includeEmail_txt + NSTextField + + + _crashrep_send_btn + NSButton + + + _crashrep_title_txt + NSTextField + + + _crashrep_win + NSWindow + + + + + IBDocumentRelativeSource + ../../../../../modules/gui/macosx/CrashReporter.h + + + + + 0 + IBCocoaFramework + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + + YES + + 3 + + NSApplicationIcon + {128, 128} + + + diff --git a/extras/package/macosx/Resources/English.lproj/MainMenu.xib b/extras/package/macosx/Resources/English.lproj/MainMenu.xib index 899115392c..858dffeac7 100644 --- a/extras/package/macosx/Resources/English.lproj/MainMenu.xib +++ b/extras/package/macosx/Resources/English.lproj/MainMenu.xib @@ -21,12 +21,13 @@ YES + - - - + + + YES @@ -166,7 +167,7 @@ 6 System alternateSelectedControlColor - + 1 MCAwIDEAA @@ -2852,42 +2853,14 @@ {1.7976931348623157e+308, 1.7976931348623157e+308} {599, 368} - + 256 YES - - - 292 - {{8, 7}, {185, 28}} - - YES - - 67108864 - 138018816 - Open CrashLog... - - - -2038284288 - 1 - - Helvetica - 11 - 16 - - - - - - 200 - 25 - - NO - 292 - {{191, 7}, {185, 28}} + {{7, 7}, {185, 28}} YES @@ -2898,7 +2871,11 @@ -2038284288 1 - + + Helvetica + 11 + 16 + @@ -3067,6 +3044,7 @@ {599, 368} + {{0, 0}, {1280, 778}} {599, 384} @@ -3663,338 +3641,6 @@ VLCMainMenu - - 9 - 2 - {{265, 356}, {612, 323}} - 1886912512 - VLC crashed previously - NSWindow - - View - - - {1.7976931348623157e+308, 1.7976931348623157e+308} - - - 256 - - YES - - - 266 - {{89, 286}, {506, 17}} - - YES - - 69206017 - 272629760 - VLC crashed previously - - - - - - NO - - - - 266 - {{89, 207}, {506, 71}} - - YES - - 69206017 - 272629760 - RG8geW91IHdhbnQgdG8gc2VuZCBkZXRhaWxzIG9uIHRoZSBjcmFzaCB0byBWTEMncyBkZXZlbG9wbWVu -dCB0ZWFtPwoKSWYgeW91IHdhbnQsIHlvdSBjYW4gZW50ZXIgYSBmZXcgbGluZXMgb24gd2hhdCB5b3Ug -ZGlkIGJlZm9yZSBWTEMgY3Jhc2hlZCBhbG9uZyB3aXRoIG90aGVyIGhlbHBmdWwgaW5mb3JtYXRpb246 -IGEgbGluayB0byBkb3dubG9hZCBhIHNhbXBsZSBmaWxlLCBhIFVSTCBvZiBhIG5ldHdvcmsgc3RyZWFt -LCAuLi4 - - - - - - NO - - - - 268 - - YES - - YES - Apple PDF pasteboard type - Apple PICT pasteboard type - Apple PNG pasteboard type - NSFilenamesPboardType - NeXT Encapsulated PostScript v1.2 pasteboard type - NeXT TIFF v4.0 pasteboard type - - - {{20, 239}, {64, 64}} - - YES - - 0 - 33554432 - - NSImage - NSApplicationIcon - - 0 - 0 - 0 - NO - - NO - YES - - - - 274 - - YES - - - 2304 - - YES - - - 2322 - {498, 102} - - - - - - - - - - - YES - - - 6 - - - - 498 - 1 - - - 100675555 - 0 - - - - YES - - YES - NSBackgroundColor - NSColor - - - YES - - 6 - System - selectedTextBackgroundColor - - - - 6 - System - selectedTextColor - - - - - - - YES - - YES - NSColor - NSUnderline - - - YES - - - - - - - 1 - - 6 - {998, 10000000} - - - - {{1, 1}, {498, 102}} - - - - - - {4, -5} - 1 - - 4 - - - - -2147483392 - {{484, 1}, {15, 102}} - - NO - - _doScroller: - 0.97142859999999998 - - - - -2147483392 - {{-100, -100}, {87, 18}} - - NO - 1 - - _doScroller: - 1 - 0.94565220000000005 - - - {{92, 95}, {500, 104}} - - - 133650 - - - - 0.25 - 4 - 1 - - - - 257 - {{475, 9}, {123, 32}} - - YES - - 67108864 - 134217728 - Send - - - -2038284288 - 1 - - - DQ - 200 - 25 - - NO - - - - 257 - {{352, 9}, {123, 32}} - - YES - - 67108864 - 134217728 - Don't Send - - - -2038284288 - 1 - - - Gw - 200 - 25 - - NO - - - - 290 - {{89, 71}, {505, 18}} - - YES - - 67108864 - 131072 - I agree to be possibly contacted about this bugreport. - - - 1211912448 - 2 - - NSSwitch - - - - 200 - 25 - - NO - - - - 290 - {{18, 18}, {244, 18}} - - YES - - 67108864 - 0 - Don't ask again - - - 1211912448 - 2 - - - - 200 - 25 - - NO - - - - 290 - {{107, 45}, {488, 28}} - - YES - - 67108864 - 272629760 - Only your default E-Mail address will be submitted, including no further information. - - - - - - NO - - - {612, 323} - - {{0, 0}, {1280, 778}} - {1.7976931348623157e+308, 1.7976931348623157e+308} - YES - SUUpdater @@ -4938,22 +4584,6 @@ LCAuLi4 1122 - - - o_msgs_crashlog_btn - - - - 1184 - - - - openCrashLog: - - - - 1187 - play: @@ -5340,155 +4970,75 @@ LCAuLi4 - crashReporterAction: - - + revealItemInFinder: + + - 3715 + 3947 - crashReporterAction: - - + revealItemInFinder: + + - 3716 + 3948 - o_crashrep_win - - + o_mm_mi_revealInFinder + + - 3717 + 3949 - o_crashrep_title_txt - - + o_mi_revealInFinder + + - 3718 + 3950 - - o_crashrep_desc_txt - - + + downloadCoverArt: + + - 3719 + 4148 - o_crashrep_fld - - + o_mi_dl_cover_art + + - 3720 + 4149 - o_crashrep_dontSend_btn + o_msgs_save_btn - + - 3721 + 4255 - - o_crashrep_send_btn + + saveDebugLog: - + - 3722 + 4256 - - o_crashrep_includeEmail_ckb - - + + checkForUpdates: + + - 3942 - - - - o_crashrep_includeEmail_txt - - - - 3943 - - - - revealItemInFinder: - - - - 3947 - - - - revealItemInFinder: - - - - 3948 - - - - o_mm_mi_revealInFinder - - - - 3949 - - - - o_mi_revealInFinder - - - - 3950 - - - - downloadCoverArt: - - - - 4148 - - - - o_mi_dl_cover_art - - - - 4149 - - - - o_msgs_save_btn - - - - 4255 - - - - saveDebugLog: - - - - 4256 - - - - checkForUpdates: - - - - 4371 + 4371 @@ -7106,14 +6656,6 @@ LCAuLi4 5230 - - - o_crashrep_dontaskagain_ckb - - - - 5233 - togglePlaymodeButtons: @@ -8749,22 +8291,12 @@ LCAuLi4 YES - - + - - 1164 - - - YES - - - - 4254 @@ -9106,117 +8638,6 @@ LCAuLi4 - - 3706 - - - YES - - - - Crash Reporter - - - 3707 - - - YES - - - - - - - - - - - - - - 3708 - - - YES - - - - - - 3709 - - - YES - - - - - - 3710 - - - YES - - - - - - - - 3711 - - - - - 3712 - - - YES - - - - - - 3713 - - - YES - - - - - - 3714 - - - YES - - - - - - 3940 - - - YES - - - - - - 3941 - - - YES - - - - - - 4282 - - - 4283 @@ -9266,41 +8687,6 @@ LCAuLi4 - - 4356 - - - - - 4357 - - - - - 4358 - - - - - 4359 - - - - - 4360 - - - - - 4361 - - - - - 4362 - - - 2722 @@ -9327,16 +8713,6 @@ LCAuLi4 - - 4368 - - - - - 4369 - - - -3 @@ -10334,20 +9710,6 @@ LCAuLi4 - - 5231 - - - YES - - - - - - 5232 - - - 5237 @@ -11169,8 +10531,6 @@ LCAuLi4 1137.ImportedFromIB2 1140.IBPluginDependency 1140.ImportedFromIB2 - 1164.IBPluginDependency - 1164.ImportedFromIB2 1169.IBPluginDependency 1169.ImportedFromIB2 1170.IBPluginDependency @@ -11460,36 +10820,8 @@ LCAuLi4 3654.IBPluginDependency 3654.IBViewBoundsToFrameTransform 3654.ImportedFromIB2 - 3706.IBEditorWindowLastContentRect - 3706.IBPluginDependency - 3706.IBWindowTemplateEditedContentRect - 3706.ImportedFromIB2 - 3707.IBPluginDependency - 3707.ImportedFromIB2 - 3708.IBPluginDependency - 3708.ImportedFromIB2 - 3709.IBPluginDependency - 3709.ImportedFromIB2 - 3710.IBPluginDependency - 3710.ImportedFromIB2 - 3711.IBPluginDependency - 3711.ImportedFromIB2 - 3712.IBPluginDependency - 3712.ImportedFromIB2 - 3713.IBPluginDependency - 3713.IBViewBoundsToFrameTransform - 3713.ImportedFromIB2 - 3714.IBPluginDependency - 3714.IBViewBoundsToFrameTransform - 3714.ImportedFromIB2 3914.IBPluginDependency 3914.ImportedFromIB2 - 3940.IBPluginDependency - 3940.IBViewBoundsToFrameTransform - 3940.ImportedFromIB2 - 3941.IBPluginDependency - 3941.IBViewBoundsToFrameTransform - 3941.ImportedFromIB2 3944.IBPluginDependency 3944.ImportedFromIB2 3945.IBPluginDependency @@ -11501,6 +10833,7 @@ LCAuLi4 4147.IBPluginDependency 4147.ImportedFromIB2 4254.IBPluginDependency + 4254.IBViewBoundsToFrameTransform 4254.ImportedFromIB2 4257.IBPluginDependency 4257.ImportedFromIB2 @@ -11518,7 +10851,6 @@ LCAuLi4 4279.IBPluginDependency 4280.IBPluginDependency 4281.IBPluginDependency - 4282.IBPluginDependency 4283.IBPluginDependency 4313.IBPluginDependency 4315.CustomClassName @@ -11533,17 +10865,6 @@ LCAuLi4 4332.IBPluginDependency 4333.IBPluginDependency 4348.IBPluginDependency - 4356.IBPluginDependency - 4357.IBPluginDependency - 4358.IBPluginDependency - 4359.IBPluginDependency - 4360.IBPluginDependency - 4361.IBPluginDependency - 4362.IBPluginDependency - 4368.IBPluginDependency - 4368.IBShouldRemoveOnLegacySave - 4369.IBPluginDependency - 4369.IBShouldRemoveOnLegacySave 4372.IBPluginDependency 4372.IBViewBoundsToFrameTransform 4372.ImportedFromIB2 @@ -11763,10 +11084,6 @@ LCAuLi4 5159.IBEditorWindowLastContentRect 5159.IBPluginDependency 5159.ImportedFromIB2 - 5231.IBPluginDependency - 5231.IBViewBoundsToFrameTransform - 5231.ImportedFromIB2 - 5232.IBPluginDependency 5237.IBPluginDependency 5238.IBEditorWindowLastContentRect 5238.IBPluginDependency @@ -12033,8 +11350,6 @@ LCAuLi4 com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{747, 660}, {64, 6}} com.apple.InterfaceBuilder.CocoaPlugin @@ -12324,12 +11639,6 @@ LCAuLi4 P4AAAL+AAABDoQAAwwoAAA - {{329, 330}, {612, 323}} - com.apple.InterfaceBuilder.CocoaPlugin - {{329, 330}, {612, 323}} - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -12341,40 +11650,13 @@ LCAuLi4 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDsAAAwp4AAA - - - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABD7YAAwp4AAA - - - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - P4AAAL+AAABCsgAAwvoAAA + P4AAAL+AAABDPwAAwgQAAA com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABC1gAAwtoAAA - - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -12392,7 +11674,6 @@ LCAuLi4 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin BGHUDSearchFieldCell com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -12406,17 +11687,6 @@ LCAuLi4 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin P4AAAL+AAABCsAAAw3cAAA @@ -12694,12 +11964,6 @@ LCAuLi4 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCsgAAwpQAAA - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin {{542, 690}, {260, 113}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -12938,224 +12202,54 @@ LCAuLi4 5597 - + YES - - ITSlider - VLCVolumeSliderCommon - - IBProjectSource - ../../../modules/gui/macosx/misc.h - - - - NSApplication - - IBProjectSource - ../../../modules/gui/macosx/applescript.h - - - - NSObject - - IBProjectSource - ../../../modules/gui/macosx/AppleRemote.h - - - - NSObject - - IBProjectSource - ../../../modules/gui/macosx/PXSourceListDelegate.h - - - - NSObject - - IBProjectSource - ../../../modules/gui/macosx/SPInvocationGrabbing.h - - - - NSObject - - IBProjectSource - ../../../modules/gui/macosx/SPMediaKeyTap.h - - - - NSView - - - - NSWindow - - IBProjectSource - ../../../modules/gui/macosx/CompatibilityFixes.h - - - - PXSourceList - NSOutlineView - - IBProjectSource - ../../../modules/gui/macosx/PXSourceList.h - - - - TimeLineSlider - NSSlider - - - - VLBrushedMetalImageView - NSImageView - - VLCApplication NSApplication - - IBProjectSource - ../../../modules/gui/macosx/intf.h + + IBDocumentRelativeSource + ../../../../../modules/gui/macosx/intf.h - VLCControls + VLCMain NSObject YES YES - backward: - forward: - goToSpecificTime: - lockVideosAspectRatio: - loop: - mute: - next: - play: - prev: - quitAfterPlayback: - random: - repeat: - showPosition: - stop: - volumeDown: - volumeSliderUpdated: - volumeUp: + saveDebugLog: + showMessagesPanel: + updateMessagesPanel: YES id id id - id - id - id - id - id - id - id - id - id - id - id - id - id - id YES YES - backward: - forward: - goToSpecificTime: - lockVideosAspectRatio: - loop: - mute: - next: - play: - prev: - quitAfterPlayback: - random: - repeat: - showPosition: - stop: - volumeDown: - volumeSliderUpdated: - volumeUp: + saveDebugLog: + showMessagesPanel: + updateMessagesPanel: YES - backward: - id - - - forward: - id - - - goToSpecificTime: - id - - - lockVideosAspectRatio: - id - - - loop: - id - - - mute: - id - - - next: - id - - - play: - id - - - prev: - id - - - quitAfterPlayback: - id - - - random: - id - - - repeat: - id - - - showPosition: - id - - - stop: - id - - - volumeDown: + saveDebugLog: id - volumeSliderUpdated: + showMessagesPanel: id - volumeUp: + updateMessagesPanel: id @@ -13164,24 +12258,38 @@ LCAuLi4 YES YES - o_main - o_specificTime_cancel_btn - o_specificTime_enter_fld - o_specificTime_goTo_lbl - o_specificTime_mi - o_specificTime_ok_btn - o_specificTime_sec_lbl - o_specificTime_stepper - o_specificTime_win + o_bookmarks + o_controls + o_coredialogs + o_coreinteraction + o_eyetv + o_info + o_mainmenu + o_msgs_panel + o_msgs_refresh_btn + o_msgs_save_btn + o_msgs_table + o_open + o_playlist + o_prefs + o_sprefs + o_wizard YES id + VLCControls + id + id id id id + NSWindow + NSButton + NSButton id id + VLCPlaylist id id id @@ -13191,508 +12299,83 @@ LCAuLi4 YES YES - o_main - o_specificTime_cancel_btn - o_specificTime_enter_fld - o_specificTime_goTo_lbl - o_specificTime_mi - o_specificTime_ok_btn - o_specificTime_sec_lbl - o_specificTime_stepper - o_specificTime_win + o_bookmarks + o_controls + o_coredialogs + o_coreinteraction + o_eyetv + o_info + o_mainmenu + o_msgs_panel + o_msgs_refresh_btn + o_msgs_save_btn + o_msgs_table + o_open + o_playlist + o_prefs + o_sprefs + o_wizard YES - o_main - id - - - o_specificTime_cancel_btn - id - - - o_specificTime_enter_fld - id - - - o_specificTime_goTo_lbl - id - - - o_specificTime_mi - id - - - o_specificTime_ok_btn + o_bookmarks id - o_specificTime_sec_lbl - id + o_controls + VLCControls - o_specificTime_stepper + o_coredialogs id - o_specificTime_win - id - - - - - IBProjectSource - ../../../modules/gui/macosx/controls.h - - - - VLCControlsBarCommon - NSObject - - YES - - YES - bwd: - fullscreen: - fwd: - play: - timeSliderAction: - - - YES - id - id - id - id - id - - - - YES - - YES - bwd: - fullscreen: - fwd: - play: - timeSliderAction: - - - YES - - bwd: - id - - - fullscreen: - id - - - fwd: - id - - - play: - id - - - timeSliderAction: + o_coreinteraction id - - - - YES - - YES - o_bottombar_view - o_bwd_btn - o_fullscreen_btn - o_fwd_btn - o_play_btn - o_progress_bar - o_progress_view - o_resize_view - o_time_fld - o_time_sld - o_time_sld_background - o_time_sld_fancygradient_view - - - YES - id - id - id - id - id - id - id - id - id - id - id - id - - - - YES - - YES - o_bottombar_view - o_bwd_btn - o_fullscreen_btn - o_fwd_btn - o_play_btn - o_progress_bar - o_progress_view - o_resize_view - o_time_fld - o_time_sld - o_time_sld_background - o_time_sld_fancygradient_view - - - YES - o_bottombar_view + o_eyetv id - o_bwd_btn + o_info id - o_fullscreen_btn + o_mainmenu id - o_fwd_btn - id + o_msgs_panel + NSWindow - o_play_btn - id + o_msgs_refresh_btn + NSButton - o_progress_bar - id + o_msgs_save_btn + NSButton - o_progress_view + o_msgs_table id - o_resize_view + o_open id - o_time_fld - id + o_playlist + VLCPlaylist - o_time_sld + o_prefs id - o_time_sld_background - id - - - o_time_sld_fancygradient_view - id - - - - - IBProjectSource - ../../../modules/gui/macosx/ControlsBar.h - - - - VLCCustomWindowButtonPrototype - NSButton - - IBProjectSource - ../../../modules/gui/macosx/MainWindowTitle.h - - - - VLCCustomWindowCloseButton - VLCCustomWindowButtonPrototype - - - - VLCCustomWindowFullscreenButton - VLCCustomWindowButtonPrototype - - - - VLCCustomWindowMinimizeButton - VLCCustomWindowButtonPrototype - - - - VLCCustomWindowZoomButton - VLCCustomWindowButtonPrototype - - - - VLCFSPanel - NSWindow - - IBProjectSource - ../../../modules/gui/macosx/fspanel.h - - - - VLCMain - NSObject - - YES - - YES - crashReporterAction: - openCrashLog: - saveDebugLog: - showMessagesPanel: - updateMessagesPanel: - - - YES - id - id - id - id - id - - - - YES - - YES - crashReporterAction: - openCrashLog: - saveDebugLog: - showMessagesPanel: - updateMessagesPanel: - - - YES - - crashReporterAction: - id - - - openCrashLog: - id - - - saveDebugLog: - id - - - showMessagesPanel: - id - - - updateMessagesPanel: - id - - - - - YES - - YES - o_bookmarks - o_controls - o_coredialogs - o_coreinteraction - o_crashrep_desc_txt - o_crashrep_dontSend_btn - o_crashrep_dontaskagain_ckb - o_crashrep_fld - o_crashrep_includeEmail_ckb - o_crashrep_includeEmail_txt - o_crashrep_send_btn - o_crashrep_title_txt - o_crashrep_win - o_eyetv - o_info - o_mainmenu - o_msgs_crashlog_btn - o_msgs_panel - o_msgs_refresh_btn - o_msgs_save_btn - o_msgs_table - o_open - o_playlist - o_prefs - o_sprefs - o_wizard - - - YES - id - VLCControls - id - id - NSTextField - NSButton - NSButton - NSTextView - NSButton - NSTextField - NSButton - NSTextField - NSWindow - id - id - id - NSButton - NSWindow - NSButton - NSButton - id - id - VLCPlaylist - id - id - id - - - - YES - - YES - o_bookmarks - o_controls - o_coredialogs - o_coreinteraction - o_crashrep_desc_txt - o_crashrep_dontSend_btn - o_crashrep_dontaskagain_ckb - o_crashrep_fld - o_crashrep_includeEmail_ckb - o_crashrep_includeEmail_txt - o_crashrep_send_btn - o_crashrep_title_txt - o_crashrep_win - o_eyetv - o_info - o_mainmenu - o_msgs_crashlog_btn - o_msgs_panel - o_msgs_refresh_btn - o_msgs_save_btn - o_msgs_table - o_open - o_playlist - o_prefs - o_sprefs - o_wizard - - - YES - - o_bookmarks - id - - - o_controls - VLCControls - - - o_coredialogs - id - - - o_coreinteraction - id - - - o_crashrep_desc_txt - NSTextField - - - o_crashrep_dontSend_btn - NSButton - - - o_crashrep_dontaskagain_ckb - NSButton - - - o_crashrep_fld - NSTextView - - - o_crashrep_includeEmail_ckb - NSButton - - - o_crashrep_includeEmail_txt - NSTextField - - - o_crashrep_send_btn - NSButton - - - o_crashrep_title_txt - NSTextField - - - o_crashrep_win - NSWindow - - - o_eyetv - id - - - o_info - id - - - o_mainmenu - id - - - o_msgs_crashlog_btn - NSButton - - - o_msgs_panel - NSWindow - - - o_msgs_refresh_btn - NSButton - - - o_msgs_save_btn - NSButton - - - o_msgs_table - id - - - o_open - id - - - o_playlist - VLCPlaylist - - - o_prefs - id - - - o_sprefs + o_sprefs id @@ -13701,3511 +12384,7 @@ LCAuLi4 - - - - VLCMainMenu - NSObject - - YES - - YES - addSubtitleFile: - createVideoSnapshot: - floatOnTop: - intfOpenCapture: - intfOpenDisc: - intfOpenFile: - intfOpenFileGeneric: - intfOpenNet: - openDocumentation: - openDonate: - openForum: - openReadMe: - openWebsite: - resizeVideoWindow: - setPlaybackRate: - showAudioEffects: - showBookmarks: - showConvertAndSave: - showInformationPanel: - showLicense: - showTrackSynchronization: - showVideoEffects: - showWizard: - switchSubtitleBackgroundOpacity: - switchSubtitleOption: - telxNavLink: - telxTransparent: - toggleAtoBloop: - toggleAudioDevice: - toggleEffectsButton: - toggleFullscreen: - toggleFullscreenDevice: - toggleJumpButtons: - togglePlaylistColumnTable: - togglePlaymodeButtons: - toggleRecord: - toggleSidebar: - toggleVar: - viewAbout: - viewErrorsAndWarnings: - viewHelp: - viewPreferences: - - - YES - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - - - - YES - - YES - addSubtitleFile: - createVideoSnapshot: - floatOnTop: - intfOpenCapture: - intfOpenDisc: - intfOpenFile: - intfOpenFileGeneric: - intfOpenNet: - openDocumentation: - openDonate: - openForum: - openReadMe: - openWebsite: - resizeVideoWindow: - setPlaybackRate: - showAudioEffects: - showBookmarks: - showConvertAndSave: - showInformationPanel: - showLicense: - showTrackSynchronization: - showVideoEffects: - showWizard: - switchSubtitleBackgroundOpacity: - switchSubtitleOption: - telxNavLink: - telxTransparent: - toggleAtoBloop: - toggleAudioDevice: - toggleEffectsButton: - toggleFullscreen: - toggleFullscreenDevice: - toggleJumpButtons: - togglePlaylistColumnTable: - togglePlaymodeButtons: - toggleRecord: - toggleSidebar: - toggleVar: - viewAbout: - viewErrorsAndWarnings: - viewHelp: - viewPreferences: - - - YES - - addSubtitleFile: - id - - - createVideoSnapshot: - id - - - floatOnTop: - id - - - intfOpenCapture: - id - - - intfOpenDisc: - id - - - intfOpenFile: - id - - - intfOpenFileGeneric: - id - - - intfOpenNet: - id - - - openDocumentation: - id - - - openDonate: - id - - - openForum: - id - - - openReadMe: - id - - - openWebsite: - id - - - resizeVideoWindow: - id - - - setPlaybackRate: - id - - - showAudioEffects: - id - - - showBookmarks: - id - - - showConvertAndSave: - id - - - showInformationPanel: - id - - - showLicense: - id - - - showTrackSynchronization: - id - - - showVideoEffects: - id - - - showWizard: - id - - - switchSubtitleBackgroundOpacity: - id - - - switchSubtitleOption: - id - - - telxNavLink: - id - - - telxTransparent: - id - - - toggleAtoBloop: - id - - - toggleAudioDevice: - id - - - toggleEffectsButton: - id - - - toggleFullscreen: - id - - - toggleFullscreenDevice: - id - - - toggleJumpButtons: - id - - - togglePlaylistColumnTable: - id - - - togglePlaymodeButtons: - id - - - toggleRecord: - id - - - toggleSidebar: - id - - - toggleVar: - id - - - viewAbout: - id - - - viewErrorsAndWarnings: - id - - - viewHelp: - id - - - viewPreferences: - id - - - - - YES - - YES - o_about - o_audioeffects - o_bookmarks - o_convertandsave - o_dmi_mute - o_dmi_next - o_dmi_play - o_dmi_previous - o_dmi_stop - o_extMgr - o_mi_AtoBloop - o_mi_about - o_mi_add_intf - o_mi_aspect_ratio - o_mi_audioeffects - o_mi_audiotrack - o_mi_bookmarks - o_mi_bring_atf - o_mi_bwd - o_mi_channels - o_mi_chapter - o_mi_checkForUpdate - o_mi_clear - o_mi_close_window - o_mi_controller - o_mi_convertandsave - o_mi_copy - o_mi_crop - o_mi_cut - o_mi_deinterlace - o_mi_deinterlace_mode - o_mi_device - o_mi_documentation - o_mi_donation - o_mi_double_window - o_mi_errorsAndWarnings - o_mi_extensions - o_mi_ffmpeg_pp - o_mi_fittoscreen - o_mi_floatontop - o_mi_forum - o_mi_fullscreen - o_mi_fwd - o_mi_half_window - o_mi_help - o_mi_hide - o_mi_hide_others - o_mi_info - o_mi_license - o_mi_loop - o_mi_messages - o_mi_minimize - o_mi_mute - o_mi_next - o_mi_normal_window - o_mi_openSubtitleFile - o_mi_open_capture - o_mi_open_disc - o_mi_open_file - o_mi_open_generic - o_mi_open_net - o_mi_open_recent - o_mi_open_wizard - o_mi_paste - o_mi_play - o_mi_player - o_mi_playlist - o_mi_playlistTableColumns - o_mi_prefs - o_mi_previous - o_mi_program - o_mi_quit - o_mi_quitAfterPB - o_mi_random - o_mi_rate - o_mi_rate_faster_lbl - o_mi_rate_fld - o_mi_rate_lbl - o_mi_rate_lbl_gray - o_mi_rate_normal_lbl - o_mi_rate_sld - o_mi_rate_slower_lbl - o_mi_rate_view - o_mi_readme - o_mi_record - o_mi_repeat - o_mi_screen - o_mi_select_all - o_mi_services - o_mi_show_all - o_mi_snapshot - o_mi_stop - o_mi_subtitle_bgcolor - o_mi_subtitle_bgopacity - o_mi_subtitle_bgopacity_lbl - o_mi_subtitle_bgopacity_lbl_gray - o_mi_subtitle_bgopacity_sld - o_mi_subtitle_bgopacity_view - o_mi_subtitle_outlinethickness - o_mi_subtitle_size - o_mi_subtitle_textcolor - o_mi_subtitle_track - o_mi_teletext - o_mi_teletext_blue - o_mi_teletext_green - o_mi_teletext_index - o_mi_teletext_red - o_mi_teletext_transparent - o_mi_teletext_yellow - o_mi_title - o_mi_toggleEffectsButton - o_mi_toggleJumpButtons - o_mi_togglePlaymodeButtons - o_mi_toggleSidebar - o_mi_trackSynchronization - o_mi_videoeffects - o_mi_videotrack - o_mi_visual - o_mi_vol_down - o_mi_vol_up - o_mi_website - o_mu_add_intf - o_mu_aspect_ratio - o_mu_audio - o_mu_audiotrack - o_mu_channels - o_mu_chapter - o_mu_controls - o_mu_crop - o_mu_deinterlace - o_mu_deinterlace_mode - o_mu_device - o_mu_edit - o_mu_extensions - o_mu_ffmpeg_pp - o_mu_file - o_mu_help - o_mu_playlistTableColumns - o_mu_program - o_mu_screen - o_mu_subtitle_bgcolor - o_mu_subtitle_outlinethickness - o_mu_subtitle_size - o_mu_subtitle_textcolor - o_mu_subtitle_tracks - o_mu_subtitles - o_mu_title - o_mu_video - o_mu_videotrack - o_mu_view - o_mu_visual - o_mu_window - o_trackSynchronization - o_videoeffects - o_vmi_fullscreen - o_vmi_mute - o_vmi_next - o_vmi_play - o_vmi_prev - o_vmi_snapshot - o_vmi_stop - o_vmi_voldown - o_vmi_volup - o_vout_menu - - - YES - id - id - id - id - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - id - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - id - id - id - id - id - id - id - NSView - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - id - id - id - NSView - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenu - NSMenu - NSMenu - NSMenu - NSMenu - NSMenu - NSMenu - NSMenu - NSMenu - NSMenu - NSMenu - NSMenu - NSMenu - NSMenu - NSMenu - NSMenu - NSMenu - NSMenu - NSMenu - NSMenu - NSMenu - NSMenu - NSMenu - NSMenu - NSMenu - NSMenu - NSMenu - NSMenu - NSMenu - NSMenu - NSMenu - id - id - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenu - - - - YES - - YES - o_about - o_audioeffects - o_bookmarks - o_convertandsave - o_dmi_mute - o_dmi_next - o_dmi_play - o_dmi_previous - o_dmi_stop - o_extMgr - o_mi_AtoBloop - o_mi_about - o_mi_add_intf - o_mi_aspect_ratio - o_mi_audioeffects - o_mi_audiotrack - o_mi_bookmarks - o_mi_bring_atf - o_mi_bwd - o_mi_channels - o_mi_chapter - o_mi_checkForUpdate - o_mi_clear - o_mi_close_window - o_mi_controller - o_mi_convertandsave - o_mi_copy - o_mi_crop - o_mi_cut - o_mi_deinterlace - o_mi_deinterlace_mode - o_mi_device - o_mi_documentation - o_mi_donation - o_mi_double_window - o_mi_errorsAndWarnings - o_mi_extensions - o_mi_ffmpeg_pp - o_mi_fittoscreen - o_mi_floatontop - o_mi_forum - o_mi_fullscreen - o_mi_fwd - o_mi_half_window - o_mi_help - o_mi_hide - o_mi_hide_others - o_mi_info - o_mi_license - o_mi_loop - o_mi_messages - o_mi_minimize - o_mi_mute - o_mi_next - o_mi_normal_window - o_mi_openSubtitleFile - o_mi_open_capture - o_mi_open_disc - o_mi_open_file - o_mi_open_generic - o_mi_open_net - o_mi_open_recent - o_mi_open_wizard - o_mi_paste - o_mi_play - o_mi_player - o_mi_playlist - o_mi_playlistTableColumns - o_mi_prefs - o_mi_previous - o_mi_program - o_mi_quit - o_mi_quitAfterPB - o_mi_random - o_mi_rate - o_mi_rate_faster_lbl - o_mi_rate_fld - o_mi_rate_lbl - o_mi_rate_lbl_gray - o_mi_rate_normal_lbl - o_mi_rate_sld - o_mi_rate_slower_lbl - o_mi_rate_view - o_mi_readme - o_mi_record - o_mi_repeat - o_mi_screen - o_mi_select_all - o_mi_services - o_mi_show_all - o_mi_snapshot - o_mi_stop - o_mi_subtitle_bgcolor - o_mi_subtitle_bgopacity - o_mi_subtitle_bgopacity_lbl - o_mi_subtitle_bgopacity_lbl_gray - o_mi_subtitle_bgopacity_sld - o_mi_subtitle_bgopacity_view - o_mi_subtitle_outlinethickness - o_mi_subtitle_size - o_mi_subtitle_textcolor - o_mi_subtitle_track - o_mi_teletext - o_mi_teletext_blue - o_mi_teletext_green - o_mi_teletext_index - o_mi_teletext_red - o_mi_teletext_transparent - o_mi_teletext_yellow - o_mi_title - o_mi_toggleEffectsButton - o_mi_toggleJumpButtons - o_mi_togglePlaymodeButtons - o_mi_toggleSidebar - o_mi_trackSynchronization - o_mi_videoeffects - o_mi_videotrack - o_mi_visual - o_mi_vol_down - o_mi_vol_up - o_mi_website - o_mu_add_intf - o_mu_aspect_ratio - o_mu_audio - o_mu_audiotrack - o_mu_channels - o_mu_chapter - o_mu_controls - o_mu_crop - o_mu_deinterlace - o_mu_deinterlace_mode - o_mu_device - o_mu_edit - o_mu_extensions - o_mu_ffmpeg_pp - o_mu_file - o_mu_help - o_mu_playlistTableColumns - o_mu_program - o_mu_screen - o_mu_subtitle_bgcolor - o_mu_subtitle_outlinethickness - o_mu_subtitle_size - o_mu_subtitle_textcolor - o_mu_subtitle_tracks - o_mu_subtitles - o_mu_title - o_mu_video - o_mu_videotrack - o_mu_view - o_mu_visual - o_mu_window - o_trackSynchronization - o_videoeffects - o_vmi_fullscreen - o_vmi_mute - o_vmi_next - o_vmi_play - o_vmi_prev - o_vmi_snapshot - o_vmi_stop - o_vmi_voldown - o_vmi_volup - o_vout_menu - - - YES - - o_about - id - - - o_audioeffects - id - - - o_bookmarks - id - - - o_convertandsave - id - - - o_dmi_mute - NSMenuItem - - - o_dmi_next - NSMenuItem - - - o_dmi_play - NSMenuItem - - - o_dmi_previous - NSMenuItem - - - o_dmi_stop - NSMenuItem - - - o_extMgr - id - - - o_mi_AtoBloop - NSMenuItem - - - o_mi_about - NSMenuItem - - - o_mi_add_intf - NSMenuItem - - - o_mi_aspect_ratio - NSMenuItem - - - o_mi_audioeffects - NSMenuItem - - - o_mi_audiotrack - NSMenuItem - - - o_mi_bookmarks - NSMenuItem - - - o_mi_bring_atf - NSMenuItem - - - o_mi_bwd - NSMenuItem - - - o_mi_channels - NSMenuItem - - - o_mi_chapter - NSMenuItem - - - o_mi_checkForUpdate - NSMenuItem - - - o_mi_clear - NSMenuItem - - - o_mi_close_window - NSMenuItem - - - o_mi_controller - NSMenuItem - - - o_mi_convertandsave - NSMenuItem - - - o_mi_copy - NSMenuItem - - - o_mi_crop - NSMenuItem - - - o_mi_cut - NSMenuItem - - - o_mi_deinterlace - NSMenuItem - - - o_mi_deinterlace_mode - NSMenuItem - - - o_mi_device - NSMenuItem - - - o_mi_documentation - NSMenuItem - - - o_mi_donation - NSMenuItem - - - o_mi_double_window - NSMenuItem - - - o_mi_errorsAndWarnings - NSMenuItem - - - o_mi_extensions - NSMenuItem - - - o_mi_ffmpeg_pp - NSMenuItem - - - o_mi_fittoscreen - NSMenuItem - - - o_mi_floatontop - NSMenuItem - - - o_mi_forum - NSMenuItem - - - o_mi_fullscreen - NSMenuItem - - - o_mi_fwd - NSMenuItem - - - o_mi_half_window - NSMenuItem - - - o_mi_help - NSMenuItem - - - o_mi_hide - NSMenuItem - - - o_mi_hide_others - NSMenuItem - - - o_mi_info - NSMenuItem - - - o_mi_license - NSMenuItem - - - o_mi_loop - NSMenuItem - - - o_mi_messages - NSMenuItem - - - o_mi_minimize - NSMenuItem - - - o_mi_mute - NSMenuItem - - - o_mi_next - NSMenuItem - - - o_mi_normal_window - NSMenuItem - - - o_mi_openSubtitleFile - NSMenuItem - - - o_mi_open_capture - NSMenuItem - - - o_mi_open_disc - NSMenuItem - - - o_mi_open_file - NSMenuItem - - - o_mi_open_generic - NSMenuItem - - - o_mi_open_net - NSMenuItem - - - o_mi_open_recent - NSMenuItem - - - o_mi_open_wizard - NSMenuItem - - - o_mi_paste - NSMenuItem - - - o_mi_play - NSMenuItem - - - o_mi_player - NSMenuItem - - - o_mi_playlist - NSMenuItem - - - o_mi_playlistTableColumns - NSMenuItem - - - o_mi_prefs - NSMenuItem - - - o_mi_previous - NSMenuItem - - - o_mi_program - NSMenuItem - - - o_mi_quit - NSMenuItem - - - o_mi_quitAfterPB - NSMenuItem - - - o_mi_random - NSMenuItem - - - o_mi_rate - NSMenuItem - - - o_mi_rate_faster_lbl - id - - - o_mi_rate_fld - id - - - o_mi_rate_lbl - id - - - o_mi_rate_lbl_gray - id - - - o_mi_rate_normal_lbl - id - - - o_mi_rate_sld - id - - - o_mi_rate_slower_lbl - id - - - o_mi_rate_view - NSView - - - o_mi_readme - NSMenuItem - - - o_mi_record - NSMenuItem - - - o_mi_repeat - NSMenuItem - - - o_mi_screen - NSMenuItem - - - o_mi_select_all - NSMenuItem - - - o_mi_services - NSMenuItem - - - o_mi_show_all - NSMenuItem - - - o_mi_snapshot - NSMenuItem - - - o_mi_stop - NSMenuItem - - - o_mi_subtitle_bgcolor - NSMenuItem - - - o_mi_subtitle_bgopacity - NSMenuItem - - - o_mi_subtitle_bgopacity_lbl - id - - - o_mi_subtitle_bgopacity_lbl_gray - id - - - o_mi_subtitle_bgopacity_sld - id - - - o_mi_subtitle_bgopacity_view - NSView - - - o_mi_subtitle_outlinethickness - NSMenuItem - - - o_mi_subtitle_size - NSMenuItem - - - o_mi_subtitle_textcolor - NSMenuItem - - - o_mi_subtitle_track - NSMenuItem - - - o_mi_teletext - NSMenuItem - - - o_mi_teletext_blue - NSMenuItem - - - o_mi_teletext_green - NSMenuItem - - - o_mi_teletext_index - NSMenuItem - - - o_mi_teletext_red - NSMenuItem - - - o_mi_teletext_transparent - NSMenuItem - - - o_mi_teletext_yellow - NSMenuItem - - - o_mi_title - NSMenuItem - - - o_mi_toggleEffectsButton - NSMenuItem - - - o_mi_toggleJumpButtons - NSMenuItem - - - o_mi_togglePlaymodeButtons - NSMenuItem - - - o_mi_toggleSidebar - NSMenuItem - - - o_mi_trackSynchronization - NSMenuItem - - - o_mi_videoeffects - NSMenuItem - - - o_mi_videotrack - NSMenuItem - - - o_mi_visual - NSMenuItem - - - o_mi_vol_down - NSMenuItem - - - o_mi_vol_up - NSMenuItem - - - o_mi_website - NSMenuItem - - - o_mu_add_intf - NSMenu - - - o_mu_aspect_ratio - NSMenu - - - o_mu_audio - NSMenu - - - o_mu_audiotrack - NSMenu - - - o_mu_channels - NSMenu - - - o_mu_chapter - NSMenu - - - o_mu_controls - NSMenu - - - o_mu_crop - NSMenu - - - o_mu_deinterlace - NSMenu - - - o_mu_deinterlace_mode - NSMenu - - - o_mu_device - NSMenu - - - o_mu_edit - NSMenu - - - o_mu_extensions - NSMenu - - - o_mu_ffmpeg_pp - NSMenu - - - o_mu_file - NSMenu - - - o_mu_help - NSMenu - - - o_mu_playlistTableColumns - NSMenu - - - o_mu_program - NSMenu - - - o_mu_screen - NSMenu - - - o_mu_subtitle_bgcolor - NSMenu - - - o_mu_subtitle_outlinethickness - NSMenu - - - o_mu_subtitle_size - NSMenu - - - o_mu_subtitle_textcolor - NSMenu - - - o_mu_subtitle_tracks - NSMenu - - - o_mu_subtitles - NSMenu - - - o_mu_title - NSMenu - - - o_mu_video - NSMenu - - - o_mu_videotrack - NSMenu - - - o_mu_view - NSMenu - - - o_mu_visual - NSMenu - - - o_mu_window - NSMenu - - - o_trackSynchronization - id - - - o_videoeffects - id - - - o_vmi_fullscreen - NSMenuItem - - - o_vmi_mute - NSMenuItem - - - o_vmi_next - NSMenuItem - - - o_vmi_play - NSMenuItem - - - o_vmi_prev - NSMenuItem - - - o_vmi_snapshot - NSMenuItem - - - o_vmi_stop - NSMenuItem - - - o_vmi_voldown - NSMenuItem - - - o_vmi_volup - NSMenuItem - - - o_vout_menu - NSMenu - - - - - IBProjectSource - ../../../modules/gui/macosx/MainMenu.h - - - - VLCMainWindow - VLCVideoWindowCommon - - YES - - YES - addPodcast: - addPodcastWindowAction: - dropzoneButtonAction: - removePodcast: - removePodcastWindowAction: - togglePlaylist: - - - YES - id - id - id - id - id - id - - - - YES - - YES - addPodcast: - addPodcastWindowAction: - dropzoneButtonAction: - removePodcast: - removePodcastWindowAction: - togglePlaylist: - - - YES - - addPodcast: - id - - - addPodcastWindowAction: - id - - - dropzoneButtonAction: - id - - - removePodcast: - id - - - removePodcastWindowAction: - id - - - togglePlaylist: - id - - - - - YES - - YES - o_chosen_category_lbl - o_dropzone_box - o_dropzone_btn - o_dropzone_lbl - o_dropzone_view - o_fspanel - o_left_split_view - o_playlist_table - o_podcast_add_btn - o_podcast_remove_btn - o_podcast_subscribe_cancel_btn - o_podcast_subscribe_ok_btn - o_podcast_subscribe_subtitle_lbl - o_podcast_subscribe_title_lbl - o_podcast_subscribe_url_fld - o_podcast_subscribe_window - o_podcast_unsubscribe_cancel_btn - o_podcast_unsubscribe_ok_btn - o_podcast_unsubscribe_pop - o_podcast_unsubscribe_subtitle_lbl - o_podcast_unsubscribe_title_lbl - o_podcast_unsubscribe_window - o_podcast_view - o_right_split_view - o_search_fld - o_sidebar_scrollview - o_sidebar_view - o_split_view - - - YES - id - id - id - id - id - VLCFSPanel - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - - - - YES - - YES - o_chosen_category_lbl - o_dropzone_box - o_dropzone_btn - o_dropzone_lbl - o_dropzone_view - o_fspanel - o_left_split_view - o_playlist_table - o_podcast_add_btn - o_podcast_remove_btn - o_podcast_subscribe_cancel_btn - o_podcast_subscribe_ok_btn - o_podcast_subscribe_subtitle_lbl - o_podcast_subscribe_title_lbl - o_podcast_subscribe_url_fld - o_podcast_subscribe_window - o_podcast_unsubscribe_cancel_btn - o_podcast_unsubscribe_ok_btn - o_podcast_unsubscribe_pop - o_podcast_unsubscribe_subtitle_lbl - o_podcast_unsubscribe_title_lbl - o_podcast_unsubscribe_window - o_podcast_view - o_right_split_view - o_search_fld - o_sidebar_scrollview - o_sidebar_view - o_split_view - - - YES - - o_chosen_category_lbl - id - - - o_dropzone_box - id - - - o_dropzone_btn - id - - - o_dropzone_lbl - id - - - o_dropzone_view - id - - - o_fspanel - VLCFSPanel - - - o_left_split_view - id - - - o_playlist_table - id - - - o_podcast_add_btn - id - - - o_podcast_remove_btn - id - - - o_podcast_subscribe_cancel_btn - id - - - o_podcast_subscribe_ok_btn - id - - - o_podcast_subscribe_subtitle_lbl - id - - - o_podcast_subscribe_title_lbl - id - - - o_podcast_subscribe_url_fld - id - - - o_podcast_subscribe_window - id - - - o_podcast_unsubscribe_cancel_btn - id - - - o_podcast_unsubscribe_ok_btn - id - - - o_podcast_unsubscribe_pop - id - - - o_podcast_unsubscribe_subtitle_lbl - id - - - o_podcast_unsubscribe_title_lbl - id - - - o_podcast_unsubscribe_window - id - - - o_podcast_view - id - - - o_right_split_view - id - - - o_search_fld - id - - - o_sidebar_scrollview - id - - - o_sidebar_view - id - - - o_split_view - id - - - - - IBProjectSource - ../../../modules/gui/macosx/MainWindow.h - - - - VLCMainWindowControlsBar - VLCControlsBarCommon - - YES - - YES - effects: - repeat: - shuffle: - stop: - volumeAction: - - - YES - id - id - id - id - id - - - - YES - - YES - effects: - repeat: - shuffle: - stop: - volumeAction: - - - YES - - effects: - id - - - repeat: - id - - - shuffle: - id - - - stop: - id - - - volumeAction: - id - - - - - YES - - YES - o_effects_btn - o_playlist_btn - o_repeat_btn - o_shuffle_btn - o_stop_btn - o_volume_down_btn - o_volume_sld - o_volume_track_view - o_volume_up_btn - - - YES - id - id - id - id - id - id - VLCVolumeSliderCommon - id - id - - - - YES - - YES - o_effects_btn - o_playlist_btn - o_repeat_btn - o_shuffle_btn - o_stop_btn - o_volume_down_btn - o_volume_sld - o_volume_track_view - o_volume_up_btn - - - YES - - o_effects_btn - id - - - o_playlist_btn - id - - - o_repeat_btn - id - - - o_shuffle_btn - id - - - o_stop_btn - id - - - o_volume_down_btn - id - - - o_volume_sld - VLCVolumeSliderCommon - - - o_volume_track_view - id - - - o_volume_up_btn - id - - - - - - - VLCMainWindowSplitView - NSSplitView - - - - VLCMainWindowTitleView - VLCThreePartImageView - - buttonAction: - id - - - buttonAction: - - buttonAction: - id - - - - YES - - YES - o_fullscreen_btn - o_green_btn - o_red_btn - o_title_lbl - o_yellow_btn - - - YES - id - id - id - id - id - - - - YES - - YES - o_fullscreen_btn - o_green_btn - o_red_btn - o_title_lbl - o_yellow_btn - - - YES - - o_fullscreen_btn - id - - - o_green_btn - id - - - o_red_btn - id - - - o_title_lbl - id - - - o_yellow_btn - id - - - - - - - VLCPlaylist - VLCPlaylistCommon - - YES - - YES - deleteItem: - downloadCoverArt: - playItem: - preparseItem: - recursiveExpandNode: - revealItemInFinder: - savePlaylist: - searchItem: - selectAll: - sortNodeByAuthor: - sortNodeByName: - - - YES - id - id - id - id - id - id - id - id - id - id - id - - - - YES - - YES - deleteItem: - downloadCoverArt: - playItem: - preparseItem: - recursiveExpandNode: - revealItemInFinder: - savePlaylist: - searchItem: - selectAll: - sortNodeByAuthor: - sortNodeByName: - - - YES - - deleteItem: - id - - - downloadCoverArt: - id - - - playItem: - id - - - preparseItem: - id - - - recursiveExpandNode: - id - - - revealItemInFinder: - id - - - savePlaylist: - id - - - searchItem: - id - - - selectAll: - id - - - sortNodeByAuthor: - id - - - sortNodeByName: - id - - - - - YES - - YES - o_btn_playlist - o_controller - o_ctx_menu - o_mi_delete - o_mi_dl_cover_art - o_mi_info - o_mi_play - o_mi_preparse - o_mi_recursive_expand - o_mi_revealInFinder - o_mi_save_playlist - o_mi_selectall - o_mi_sort_author - o_mi_sort_name - o_mm_mi_revealInFinder - o_playlist_header - o_playlist_view - o_playlist_wizard - o_save_accessory_popup - o_save_accessory_text - o_save_accessory_view - o_search_field - o_search_field_other - o_tc_sortColumn - - - YES - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - - - - YES - - YES - o_btn_playlist - o_controller - o_ctx_menu - o_mi_delete - o_mi_dl_cover_art - o_mi_info - o_mi_play - o_mi_preparse - o_mi_recursive_expand - o_mi_revealInFinder - o_mi_save_playlist - o_mi_selectall - o_mi_sort_author - o_mi_sort_name - o_mm_mi_revealInFinder - o_playlist_header - o_playlist_view - o_playlist_wizard - o_save_accessory_popup - o_save_accessory_text - o_save_accessory_view - o_search_field - o_search_field_other - o_tc_sortColumn - - - YES - - o_btn_playlist - id - - - o_controller - id - - - o_ctx_menu - id - - - o_mi_delete - id - - - o_mi_dl_cover_art - id - - - o_mi_info - id - - - o_mi_play - id - - - o_mi_preparse - id - - - o_mi_recursive_expand - id - - - o_mi_revealInFinder - id - - - o_mi_save_playlist - id - - - o_mi_selectall - id - - - o_mi_sort_author - id - - - o_mi_sort_name - id - - - o_mm_mi_revealInFinder - id - - - o_playlist_header - id - - - o_playlist_view - id - - - o_playlist_wizard - id - - - o_save_accessory_popup - id - - - o_save_accessory_text - id - - - o_save_accessory_view - id - - - o_search_field - id - - - o_search_field_other - id - - - o_tc_sortColumn - id - - - - - IBProjectSource - ../../../modules/gui/macosx/playlist.h - - - - VLCPlaylistCommon - NSObject - - YES - - YES - o_outline_view - o_outline_view_other - o_tc_author_other - o_tc_duration_other - o_tc_name_other - - - YES - VLCPlaylistView - VLCPlaylistView - id - id - id - - - - YES - - YES - o_outline_view - o_outline_view_other - o_tc_author_other - o_tc_duration_other - o_tc_name_other - - - YES - - o_outline_view - VLCPlaylistView - - - o_outline_view_other - VLCPlaylistView - - - o_tc_author_other - id - - - o_tc_duration_other - id - - - o_tc_name_other - id - - - - - - - VLCPlaylistView - NSOutlineView - - - - VLCProgressView - NSView - - - - VLCResizeControl - NSImageView - - - - VLCThreePartDropView - VLCThreePartImageView - - - - VLCThreePartImageView - NSView - - - - VLCTimeField - NSTextField - - - - VLCVideoWindowCommon - VLCWindow - - YES - - YES - o_controls_bar - o_titlebar_view - o_video_view - - - YES - VLCControlsBarCommon - id - VLCVoutView - - - - YES - - YES - o_controls_bar - o_titlebar_view - o_video_view - - - YES - - o_controls_bar - VLCControlsBarCommon - - - o_titlebar_view - id - - - o_video_view - VLCVoutView - - - - - IBProjectSource - ../../../modules/gui/macosx/Windows.h - - - - VLCVolumeSliderCommon - NSSlider - - - - VLCVoutView - NSView - - IBProjectSource - ../../../modules/gui/macosx/VideoView.h - - - - VLCWindow - NSWindow - - - - VLCWindowButtonCell - NSButtonCell - - - - VLCWindowTitleTextField - NSTextField - - - - VolumeSliderCell - NSSliderCell - - - - - YES - - NSActionCell - NSCell - - IBFrameworkSource - AppKit.framework/Headers/NSActionCell.h - - - - NSApplication - NSResponder - - IBFrameworkSource - AppKit.framework/Headers/NSApplication.h - - - - NSApplication - - IBFrameworkSource - AppKit.framework/Headers/NSApplicationScripting.h - - - - NSApplication - - IBFrameworkSource - AppKit.framework/Headers/NSColorPanel.h - - - - NSApplication - - IBFrameworkSource - AppKit.framework/Headers/NSHelpManager.h - - - - NSApplication - - IBFrameworkSource - AppKit.framework/Headers/NSPageLayout.h - - - - NSApplication - - IBFrameworkSource - AppKit.framework/Headers/NSUserInterfaceItemSearching.h - - - - NSApplication - - IBFrameworkSource - AppKit.framework/Headers/NSWindowRestoration.h - - - - NSBox - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSBox.h - - - - NSBrowser - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSBrowser.h - - - - NSButton - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSButton.h - - - - NSButtonCell - NSActionCell - - IBFrameworkSource - AppKit.framework/Headers/NSButtonCell.h - - - - NSCell - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSCell.h - - - - NSControl - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSControl.h - - - - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSLayoutConstraint.h - - - - NSDocumentController - NSObject - - YES - - YES - clearRecentDocuments: - newDocument: - openDocument: - saveAllDocuments: - - - YES - id - id - id - id - - - - YES - - YES - clearRecentDocuments: - newDocument: - openDocument: - saveAllDocuments: - - - YES - - clearRecentDocuments: - id - - - newDocument: - id - - - openDocument: - id - - - saveAllDocuments: - id - - - - - IBFrameworkSource - AppKit.framework/Headers/NSDocumentController.h - - - - NSDocumentController - - - - NSDrawer - NSResponder - - IBFrameworkSource - AppKit.framework/Headers/NSDrawer.h - - - - NSFormatter - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSFormatter.h - - - - NSImageCell - NSCell - - IBFrameworkSource - AppKit.framework/Headers/NSImageCell.h - - - - NSImageView - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSImageView.h - - - - NSMatrix - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSMatrix.h - - - - NSMenu - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSMenu.h - - - - NSMenuItem - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSMenuItem.h - - - - NSMenuItemCell - NSButtonCell - - IBFrameworkSource - AppKit.framework/Headers/NSMenuItemCell.h - - - - NSMovieView - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSMovieView.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSAccessibility.h - - - - NSObject - - - - NSObject - - - - NSObject - - - - NSObject - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSDictionaryController.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSDragging.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSFontManager.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSFontPanel.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSKeyValueBinding.h - - - - NSObject - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSNibLoading.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSPasteboard.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSSavePanel.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSTableView.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSToolbarItem.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSView.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSArchiver.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSClassDescription.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSError.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSFileManager.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSKeyValueCoding.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSKeyValueObserving.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSKeyedArchiver.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSObject.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSObjectScripting.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSPortCoder.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSRunLoop.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSScriptClassDescription.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSScriptKeyValueCoding.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSScriptObjectSpecifiers.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSScriptWhoseTests.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSThread.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSURL.h - - - - NSObject - - IBFrameworkSource - PrintCore.framework/Headers/PDEPluginInterface.h - - - - NSObject - - IBFrameworkSource - QTKit.framework/Headers/QTCaptureDecompressedAudioOutput.h - - - - NSObject - - IBFrameworkSource - QTKit.framework/Headers/QTCaptureDecompressedVideoOutput.h - - - - NSObject - - IBFrameworkSource - QTKit.framework/Headers/QTCaptureFileOutput.h - - - - NSObject - - IBFrameworkSource - QTKit.framework/Headers/QTCaptureVideoPreviewOutput.h - - - - NSObject - - IBFrameworkSource - QTKit.framework/Headers/QTCaptureView.h - - - - NSObject - - IBFrameworkSource - QTKit.framework/Headers/QTMovie.h - - - - NSObject - - IBFrameworkSource - QTKit.framework/Headers/QTMovieView.h - - - - NSObject - - IBFrameworkSource - WebKit.framework/Headers/WebDownload.h - - - - NSObject - - IBFrameworkSource - WebKit.framework/Headers/WebEditingDelegate.h - - - - NSObject - - IBFrameworkSource - WebKit.framework/Headers/WebFrameLoadDelegate.h - - - - NSObject - - IBFrameworkSource - WebKit.framework/Headers/WebJavaPlugIn.h - - - - NSObject - - IBFrameworkSource - WebKit.framework/Headers/WebPlugin.h - - - - NSObject - - IBFrameworkSource - WebKit.framework/Headers/WebPluginContainer.h - - - - NSObject - - IBFrameworkSource - WebKit.framework/Headers/WebPolicyDelegate.h - - - - NSObject - - IBFrameworkSource - WebKit.framework/Headers/WebResourceLoadDelegate.h - - - - NSObject - - IBFrameworkSource - WebKit.framework/Headers/WebScriptObject.h - - - - NSObject - - IBFrameworkSource - WebKit.framework/Headers/WebUIDelegate.h - - - - NSOutlineView - NSTableView - - IBFrameworkSource - AppKit.framework/Headers/NSOutlineView.h - - - - NSPanel - NSWindow - - IBFrameworkSource - AppKit.framework/Headers/NSPanel.h - - - - NSPopUpButton - NSButton - - IBFrameworkSource - AppKit.framework/Headers/NSPopUpButton.h - - - - NSPopUpButtonCell - NSMenuItemCell - - IBFrameworkSource - AppKit.framework/Headers/NSPopUpButtonCell.h - - - - NSPopover - NSResponder - - performClose: - id - - - performClose: - - performClose: - id - - - - YES - - YES - contentViewController - delegate - - - YES - NSViewController - id - - - - YES - - YES - contentViewController - delegate - - - YES - - contentViewController - NSViewController - - - delegate - id - - - - - IBFrameworkSource - AppKit.framework/Headers/NSPopover.h - - - - NSProgressIndicator - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSProgressIndicator.h - - - - NSResponder - - IBFrameworkSource - AppKit.framework/Headers/NSInterfaceStyle.h - - - - NSResponder - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSResponder.h - - - - NSResponder - - - - NSScrollView - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSScrollView.h - - - - NSScroller - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSScroller.h - - - - NSSearchField - NSTextField - - IBFrameworkSource - AppKit.framework/Headers/NSSearchField.h - - - - NSSearchFieldCell - NSTextFieldCell - - IBFrameworkSource - AppKit.framework/Headers/NSSearchFieldCell.h - - - - NSSlider - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSSlider.h - - - - NSSliderCell - NSActionCell - - IBFrameworkSource - AppKit.framework/Headers/NSSliderCell.h - - - - NSSplitView - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSSplitView.h - - - - NSStepper - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSStepper.h - - - - NSStepperCell - NSActionCell - - IBFrameworkSource - AppKit.framework/Headers/NSStepperCell.h - - - - NSTableColumn - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSTableColumn.h - - - - NSTableHeaderView - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSTableHeaderView.h - - - - NSTableView - NSControl - - - - NSText - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSText.h - - - - NSTextField - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSTextField.h - - - - NSTextFieldCell - NSActionCell - - IBFrameworkSource - AppKit.framework/Headers/NSTextFieldCell.h - - - - NSTextView - NSText - - IBFrameworkSource - AppKit.framework/Headers/NSTextView.h - - - - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSClipView.h - - - - NSView - - - - NSView - - - - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSOpenGLView.h - - - - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSRulerView.h - - - - NSView - NSResponder - - - - NSViewController - NSResponder - - view - NSView - - - view - - view - NSView - - - - IBFrameworkSource - AppKit.framework/Headers/NSViewController.h - - - - NSWindow - - - - NSWindow - - - - NSWindow - NSResponder - - IBFrameworkSource - AppKit.framework/Headers/NSWindow.h - - - - NSWindow - - - - NSWindow - - IBFrameworkSource - AppKit.framework/Headers/NSWindowScripting.h - - - - QTMovieView - NSView - - YES - - YES - add: - addScaled: - copy: - cut: - delete: - gotoBeginning: - gotoEnd: - gotoNextSelectionPoint: - gotoPosterFrame: - gotoPreviousSelectionPoint: - paste: - pause: - play: - replace: - selectAll: - selectNone: - stepBackward: - stepForward: - trim: - - - YES - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - - - - YES - - YES - add: - addScaled: - copy: - cut: - delete: - gotoBeginning: - gotoEnd: - gotoNextSelectionPoint: - gotoPosterFrame: - gotoPreviousSelectionPoint: - paste: - pause: - play: - replace: - selectAll: - selectNone: - stepBackward: - stepForward: - trim: - - - YES - - add: - id - - - addScaled: - id - - - copy: - id - - - cut: - id - - - delete: - id - - - gotoBeginning: - id - - - gotoEnd: - id - - - gotoNextSelectionPoint: - id - - - gotoPosterFrame: - id - - - gotoPreviousSelectionPoint: - id - - - paste: - id - - - pause: - id - - - play: - id - - - replace: - id - - - selectAll: - id - - - selectNone: - id - - - stepBackward: - id - - - stepForward: - id - - - trim: - id - - - - + @@ -17230,7 +12409,6 @@ LCAuLi4 YES YES - NSApplicationIcon NSMenuCheckmark NSMenuMixedState backward-3btns @@ -17261,7 +12439,6 @@ LCAuLi4 YES - {128, 128} {11, 11} {10, 3} {29, 23} diff --git a/extras/package/macosx/vlc.xcodeproj/project.pbxproj b/extras/package/macosx/vlc.xcodeproj/project.pbxproj index 6734e685c0..71c7693ce1 100644 --- a/extras/package/macosx/vlc.xcodeproj/project.pbxproj +++ b/extras/package/macosx/vlc.xcodeproj/project.pbxproj @@ -7,6 +7,7 @@ objects = { /* Begin PBXBuildFile section */ + 7D8BB0B21830244B00FAE9B7 /* CrashReporter.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7D8BB0B01830244B00FAE9B7 /* CrashReporter.xib */; }; 7DFFA16C16124F38001AF89F /* effects-one-button-pressed-dark.png in Resources */ = {isa = PBXBuildFile; fileRef = 7DFFA16A16124F38001AF89F /* effects-one-button-pressed-dark.png */; }; 7DFFA16D16124F38001AF89F /* effects-one-button-pressed-dark@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7DFFA16B16124F38001AF89F /* effects-one-button-pressed-dark@2x.png */; }; CC04323D13B246DF00D7D52E /* effects-double-buttons_dark.png in Resources */ = {isa = PBXBuildFile; fileRef = CC04321313B246DF00D7D52E /* effects-double-buttons_dark.png */; }; @@ -465,7 +466,10 @@ 5CCED71314C0D4A90057F8D1 /* ExtensionsManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ExtensionsManager.m; path = ../../../modules/gui/macosx/ExtensionsManager.m; sourceTree = SOURCE_ROOT; }; 5CCED71414C0D4A90057F8D1 /* VLCUIWidgets.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCUIWidgets.h; path = ../../../modules/gui/macosx/VLCUIWidgets.h; sourceTree = SOURCE_ROOT; }; 5CCED71514C0D4A90057F8D1 /* VLCUIWidgets.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VLCUIWidgets.m; path = ../../../modules/gui/macosx/VLCUIWidgets.m; sourceTree = SOURCE_ROOT; }; + 7D5B7B1F182FDA0300DB4869 /* CrashReporter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = CrashReporter.h; path = ../../../modules/gui/macosx/CrashReporter.h; sourceTree = ""; }; + 7D5B7B20182FDA0300DB4869 /* CrashReporter.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = CrashReporter.m; path = ../../../modules/gui/macosx/CrashReporter.m; sourceTree = ""; }; 7D7DC2CA182E86D9008C9E3E /* darwinvlc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = darwinvlc.c; path = ../../../bin/darwinvlc.c; sourceTree = ""; }; + 7D8BB0B11830244B00FAE9B7 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = Resources/English.lproj/CrashReporter.xib; sourceTree = ""; }; 7DFFA16A16124F38001AF89F /* effects-one-button-pressed-dark.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "effects-one-button-pressed-dark.png"; path = "Resources/mainwindow_dark/effects-one-button-pressed-dark.png"; sourceTree = ""; }; 7DFFA16B16124F38001AF89F /* effects-one-button-pressed-dark@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "effects-one-button-pressed-dark@2x.png"; path = "Resources/mainwindow_dark/effects-one-button-pressed-dark@2x.png"; sourceTree = ""; }; 8E49720006417F6800370C9F /* playlistinfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = playlistinfo.h; path = ../../../modules/gui/macosx/playlistinfo.h; sourceTree = SOURCE_ROOT; }; @@ -1061,6 +1065,8 @@ 8ED6C27E03E2EB1C0059A3A7 /* macosx.m */, 8ED6C27C03E2EB1C0059A3A7 /* intf.h */, 8ED6C27D03E2EB1C0059A3A7 /* intf.m */, + 7D5B7B1F182FDA0300DB4869 /* CrashReporter.h */, + 7D5B7B20182FDA0300DB4869 /* CrashReporter.m */, CC448A5A13B61D49009F72E0 /* MainMenu.h */, CC448A5B13B61D49009F72E0 /* MainMenu.m */, CC448A6013B68A0B009F72E0 /* CoreInteraction.h */, @@ -1776,6 +1782,7 @@ CCD83E2B13FE9B90004F1652 /* MainMenu.xib */, CC0663371566CD5A003A411C /* ConvertAndSave.xib */, CC461F73160084A10022423C /* SharedDialogs.xib */, + 7D8BB0B01830244B00FAE9B7 /* CrashReporter.xib */, ); name = xibs; sourceTree = ""; @@ -2228,6 +2235,7 @@ CC166FE115F5136B0088201B /* previous-6btns-dark-pressed.png in Resources */, CC166FE215F5136B0088201B /* previous-6btns-dark-pressed@2x.png in Resources */, CC166FE315F5136B0088201B /* previous-6btns-dark.png in Resources */, + 7D8BB0B21830244B00FAE9B7 /* CrashReporter.xib in Resources */, CC166FE415F5136B0088201B /* previous-6btns-dark@2x.png in Resources */, CC166FE915F517660088201B /* backward-6btns-pressed.png in Resources */, CC166FEA15F517660088201B /* backward-6btns-pressed@2x.png in Resources */, @@ -2257,6 +2265,14 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXVariantGroup section */ + 7D8BB0B01830244B00FAE9B7 /* CrashReporter.xib */ = { + isa = PBXVariantGroup; + children = ( + 7D8BB0B11830244B00FAE9B7 /* English */, + ); + name = CrashReporter.xib; + sourceTree = ""; + }; CC0663371566CD5A003A411C /* ConvertAndSave.xib */ = { isa = PBXVariantGroup; children = ( diff --git a/modules/gui/macosx/CrashReporter.h b/modules/gui/macosx/CrashReporter.h new file mode 100644 index 0000000000..1b6ee6e0ab --- /dev/null +++ b/modules/gui/macosx/CrashReporter.h @@ -0,0 +1,56 @@ +/***************************************************************************** + * CrashReporter.h: Mac OS X interface crash reporter + ***************************************************************************** + * Copyright (C) 2009-2013 VLC authors and VideoLAN + * $Id$ + * + * Authors: Felix Paul Kühne + * Pierre d'Herbemont + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. + *****************************************************************************/ + +#import + +@class VLCCrashReporter; +@protocol VLCCrashReporterDelegate + +@required +- (void)reporterFinishedAction:(VLCCrashReporter *)reporter; + +@end + +@interface VLCCrashReporter : NSObject +{ + IBOutlet NSButton * _crashrep_dontSend_btn; + IBOutlet NSButton * _crashrep_send_btn; + IBOutlet NSTextView * _crashrep_fld; + IBOutlet NSTextField * _crashrep_title_txt; + IBOutlet NSTextField * _crashrep_desc_txt; + IBOutlet NSWindow * _crashrep_win; + IBOutlet NSButton * _crashrep_includeEmail_ckb; + IBOutlet NSButton * _crashrep_dontaskagain_ckb; + IBOutlet NSTextField * _crashrep_includeEmail_txt; + NSURLConnection * _crashLogURLConnection; +} ++ (VLCCrashReporter *)sharedInstance; + +@property (retain) id delegate; + +- (void)showDialogAndSendLogIfDesired; + +- (IBAction)buttonAction:(id)sender; + +@end diff --git a/modules/gui/macosx/CrashReporter.m b/modules/gui/macosx/CrashReporter.m new file mode 100644 index 0000000000..eafea2bcf2 --- /dev/null +++ b/modules/gui/macosx/CrashReporter.m @@ -0,0 +1,222 @@ +/***************************************************************************** + * CrashReporter.h: Mac OS X interface crash reporter + ***************************************************************************** + * Copyright (C) 2009-2013 VLC authors and VideoLAN + * $Id$ + * + * Authors: Felix Paul Kühne + * Pierre d'Herbemont + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. + *****************************************************************************/ + +#import "CrashReporter.h" +#import "intf.h" +#import + +@implementation VLCCrashReporter + +#pragma mark - init + +static VLCCrashReporter *_sharedMainInstance = nil; + ++ (VLCCrashReporter *)sharedInstance +{ + return _sharedMainInstance ? _sharedMainInstance : [[self alloc] init]; +} + +- (id)init +{ + if (_sharedMainInstance) + [self dealloc]; + else + _sharedMainInstance = [super init]; + + return _sharedMainInstance; +} + + +- (void)awakeFromNib +{ + [_crashrep_send_btn setTitle: _NS("Send")]; + [_crashrep_dontSend_btn setTitle: _NS("Don't Send")]; + [_crashrep_title_txt setStringValue: _NS("VLC crashed previously")]; + [_crashrep_win setTitle: _NS("VLC crashed previously")]; + [_crashrep_desc_txt setStringValue: _NS("Do you want to send details on the crash to VLC's development team?\n\nIf you want, you can enter a few lines on what you did before VLC crashed along with other helpful information: a link to download a sample file, a URL of a network stream, ...")]; + [_crashrep_includeEmail_ckb setTitle: _NS("I agree to be possibly contacted about this bugreport.")]; + [_crashrep_includeEmail_txt setStringValue: _NS("Only your default E-Mail address will be submitted, including no further information.")]; + [_crashrep_dontaskagain_ckb setTitle: _NS("Don't ask again")]; +} + +- (void)dealloc +{ + [_crashLogURLConnection cancel]; + [_crashLogURLConnection release]; + + [super dealloc]; +} + +#pragma mark - inter-object services + +- (NSString *)_latestCrashLogPathPreviouslySeen:(BOOL)previouslySeen +{ + NSString * crashReporter; + if (OSX_MOUNTAIN_LION || OSX_MAVERICKS) + crashReporter = [@"~/Library/Logs/DiagnosticReports" stringByExpandingTildeInPath]; + else + crashReporter = [@"~/Library/Logs/CrashReporter" stringByExpandingTildeInPath]; + NSDirectoryEnumerator *direnum = [[NSFileManager defaultManager] enumeratorAtPath:crashReporter]; + NSString *fname; + NSString * latestLog = nil; + NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults]; + int year = !previouslySeen ? [defaults integerForKey:@"LatestCrashReportYear"] : 0; + int month = !previouslySeen ? [defaults integerForKey:@"LatestCrashReportMonth"]: 0; + int day = !previouslySeen ? [defaults integerForKey:@"LatestCrashReportDay"] : 0; + int hours = !previouslySeen ? [defaults integerForKey:@"LatestCrashReportHours"]: 0; + + while (fname = [direnum nextObject]) { + [direnum skipDescendents]; + if ([fname hasPrefix:@"VLC"] && [fname hasSuffix:@"crash"]) { + NSArray * compo = [fname componentsSeparatedByString:@"_"]; + if ([compo count] < 3) + continue; + compo = [[compo objectAtIndex:1] componentsSeparatedByString:@"-"]; + if ([compo count] < 4) + continue; + + // Dooh. ugly. + if (year < [[compo objectAtIndex:0] intValue] || + (year ==[[compo objectAtIndex:0] intValue] && + (month < [[compo objectAtIndex:1] intValue] || + (month ==[[compo objectAtIndex:1] intValue] && + (day < [[compo objectAtIndex:2] intValue] || + (day ==[[compo objectAtIndex:2] intValue] && + hours < [[compo objectAtIndex:3] intValue])))))) { + year = [[compo objectAtIndex:0] intValue]; + month = [[compo objectAtIndex:1] intValue]; + day = [[compo objectAtIndex:2] intValue]; + hours = [[compo objectAtIndex:3] intValue]; + latestLog = [crashReporter stringByAppendingPathComponent:fname]; + } + } + } + + if (!(latestLog && [[NSFileManager defaultManager] fileExistsAtPath:latestLog])) + return nil; + + if (!previouslySeen) { + [defaults setInteger:year forKey:@"LatestCrashReportYear"]; + [defaults setInteger:month forKey:@"LatestCrashReportMonth"]; + [defaults setInteger:day forKey:@"LatestCrashReportDay"]; + [defaults setInteger:hours forKey:@"LatestCrashReportHours"]; + } + return latestLog; +} + +- (NSString *)_latestCrashLogPath +{ + return [self _latestCrashLogPathPreviouslySeen:YES]; +} + +- (void)showDialogAndSendLogIfDesired +{ + // This pref key doesn't exists? this VLC is an upgrade, and this crash log come from previous version + NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults]; + BOOL areCrashLogsTooOld = ![defaults integerForKey:@"LatestCrashReportYear"]; + NSString * latestLog = [self _latestCrashLogPathPreviouslySeen:NO]; + if (latestLog && !areCrashLogsTooOld) { + if ([defaults integerForKey:@"AlwaysSendCrashReports"] > 0) + [self _sendCrashLog:[NSString stringWithContentsOfFile: [self _latestCrashLogPath] encoding: NSUTF8StringEncoding error: NULL] withUserComment: [_crashrep_fld string]]; + else if ([defaults integerForKey:@"AlwaysSendCrashReports"] == 0) { + [NSBundle loadNibNamed:@"CrashReporter" owner:self]; + [NSApp runModalForWindow:_crashrep_win]; + } else { + if ([self.delegate respondsToSelector: @selector(reporterFinishedAction:)]) + [self.delegate reporterFinishedAction: self]; + } + } +} + +#pragma mark - UI interaction + +- (IBAction)buttonAction:(id)sender +{ + [NSApp stopModal]; + [_crashrep_win orderOut: sender]; + if (sender == _crashrep_send_btn) { + [self _sendCrashLog:[NSString stringWithContentsOfFile: [self _latestCrashLogPath] encoding: NSUTF8StringEncoding error: NULL] withUserComment: [_crashrep_fld string]]; + if ([_crashrep_dontaskagain_ckb state]) + [[NSUserDefaults standardUserDefaults] setInteger:1 forKey:@"AlwaysSendCrashReports"]; + } else { + if ([_crashrep_dontaskagain_ckb state]) + [[NSUserDefaults standardUserDefaults] setInteger:-1 forKey:@"AlwaysSendCrashReports"]; + if ([self.delegate respondsToSelector: @selector(reporterFinishedAction:)]) + [self.delegate reporterFinishedAction: self]; + } +} + +#pragma mark - network handling + +- (void)_sendCrashLog:(NSString *)crashLog withUserComment:(NSString *)userComment +{ + NSString *urlStr = @"http://crash.videolan.org/crashlog/sendcrashreport.php"; + NSURL *url = [NSURL URLWithString:urlStr]; + + NSMutableURLRequest *req = [NSMutableURLRequest requestWithURL:url]; + [req setHTTPMethod:@"POST"]; + + NSString * email; + if ([_crashrep_includeEmail_ckb state] == NSOnState) { + ABPerson * contact = [[ABAddressBook sharedAddressBook] me]; + ABMultiValue *emails = [contact valueForProperty:kABEmailProperty]; + email = [emails valueAtIndex:[emails indexForIdentifier: + [emails primaryIdentifier]]]; + } + else + email = [NSString string]; + + NSString *postBody; + postBody = [NSString stringWithFormat:@"CrashLog=%@&Comment=%@&Email=%@\r\n", + [crashLog stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding], + [userComment stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding], + [email stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; + + [req setHTTPBody:[postBody dataUsingEncoding:NSUTF8StringEncoding]]; + + /* Released from delegate */ + _crashLogURLConnection = [[NSURLConnection alloc] initWithRequest:req delegate:self]; +} + +- (void)connectionDidFinishLoading:(NSURLConnection *)connection +{ + msg_Dbg(VLCIntf, "crash report successfully sent"); + [_crashLogURLConnection release]; + _crashLogURLConnection = nil; + + if ([self.delegate respondsToSelector: @selector(reporterFinishedAction:)]) + [self.delegate reporterFinishedAction: self]; +} + +- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error +{ + msg_Warn(VLCIntf, "Error when sending the crash report: %s (%li)", [[error localizedDescription] UTF8String], [error code]); + [_crashLogURLConnection release]; + _crashLogURLConnection = nil; + + if ([self.delegate respondsToSelector: @selector(reporterFinishedAction:)]) + [self.delegate reporterFinishedAction: self]; +} + +@end diff --git a/modules/gui/macosx/Modules.am b/modules/gui/macosx/Modules.am index 580798fe21..d8b7b8cd84 100644 --- a/modules/gui/macosx/Modules.am +++ b/modules/gui/macosx/Modules.am @@ -83,5 +83,7 @@ SOURCES_macosx = \ ControlsBar.h \ VLCVoutWindowController.m \ VLCVoutWindowController.h \ + CrashReporter.m \ + CrashReporter.h \ iTunes.h \ $(NULL) diff --git a/modules/gui/macosx/intf.h b/modules/gui/macosx/intf.h index fdb2ff1d1d..8e019ab65f 100644 --- a/modules/gui/macosx/intf.h +++ b/modules/gui/macosx/intf.h @@ -115,23 +115,10 @@ struct intf_sys_t NSMutableArray * o_msg_arr; /* messages array */ NSLock * o_msg_lock; /* messages lock */ BOOL b_msg_arr_changed; /* did the array change? */ - IBOutlet NSButton * o_msgs_crashlog_btn; /* messages open crashlog */ IBOutlet NSButton * o_msgs_save_btn; /* save the log as rtf */ IBOutlet NSButton * o_msgs_refresh_btn; /* update the panel */ IBOutlet id o_msgs_table; - /* CrashReporter panel */ - IBOutlet NSButton * o_crashrep_dontSend_btn; - IBOutlet NSButton * o_crashrep_send_btn; - IBOutlet NSTextView * o_crashrep_fld; - IBOutlet NSTextField * o_crashrep_title_txt; - IBOutlet NSTextField * o_crashrep_desc_txt; - IBOutlet NSWindow * o_crashrep_win; - IBOutlet NSButton * o_crashrep_includeEmail_ckb; - IBOutlet NSButton * o_crashrep_dontaskagain_ckb; - IBOutlet NSTextField * o_crashrep_includeEmail_txt; - NSURLConnection * crashLogURLConnection; - AppleRemote * o_remote; BOOL b_remote_button_hold; /* true as long as the user holds the left,right,plus or minus on the remote control */ @@ -200,8 +187,6 @@ struct intf_sys_t - (void)updateDelays; - (void)initStrings; -- (IBAction)crashReporterAction:(id)sender; -- (IBAction)openCrashLog:(id)sender; - (IBAction)saveDebugLog:(id)sender; - (IBAction)showMessagesPanel:(id)sender; - (IBAction)updateMessagesPanel:(id)sender; diff --git a/modules/gui/macosx/intf.m b/modules/gui/macosx/intf.m index 0fe54cf2b0..2873b7e1f4 100644 --- a/modules/gui/macosx/intf.m +++ b/modules/gui/macosx/intf.m @@ -64,11 +64,11 @@ #import "TrackSynchronization.h" #import "VLCVoutWindowController.h" #import "ExtensionsManager.h" +#import "CrashReporter.h" #import "VideoEffects.h" #import "AudioEffects.h" -#import /* for crashlog send mechanism */ #import /* we're the update delegate */ #import "iTunes.h" @@ -618,7 +618,7 @@ audio_output_t *getAout(void) #pragma mark - #pragma mark Private -@interface VLCMain () +@interface VLCMain () - (void)removeOldPreferences; @end @@ -815,7 +815,7 @@ static VLCMain *_o_sharedMainInstance = nil; [[[NSWorkspace sharedWorkspace] notificationCenter] addObserver:self selector:@selector(computerWillSleep:) name:NSWorkspaceWillSleepNotification object:nil]; - [[VLCMain sharedInstance] performSelectorOnMainThread:@selector(lookForCrashLog) withObject:nil waitUntilDone:NO]; + [self performSelector:@selector(lookForCrashLog) withObject:nil afterDelay:1.5]; /* we will need this, so let's load it here so the interface appears to be more responsive */ nib_open_loaded = [NSBundle loadNibNamed:@"Open" owner: NSApp]; @@ -840,18 +840,7 @@ static VLCMain *_o_sharedMainInstance = nil; /* messages panel */ [o_msgs_panel setTitle: _NS("Messages")]; - [o_msgs_crashlog_btn setTitle: _NS("Open CrashLog...")]; [o_msgs_save_btn setTitle: _NS("Save this Log...")]; - - /* crash reporter panel */ - [o_crashrep_send_btn setTitle: _NS("Send")]; - [o_crashrep_dontSend_btn setTitle: _NS("Don't Send")]; - [o_crashrep_title_txt setStringValue: _NS("VLC crashed previously")]; - [o_crashrep_win setTitle: _NS("VLC crashed previously")]; - [o_crashrep_desc_txt setStringValue: _NS("Do you want to send details on the crash to VLC's development team?\n\nIf you want, you can enter a few lines on what you did before VLC crashed along with other helpful information: a link to download a sample file, a URL of a network stream, ...")]; - [o_crashrep_includeEmail_ckb setTitle: _NS("I agree to be possibly contacted about this bugreport.")]; - [o_crashrep_includeEmail_txt setStringValue: _NS("Only your default E-Mail address will be submitted, including no further information.")]; - [o_crashrep_dontaskagain_ckb setTitle: _NS("Don't ask again")]; } #pragma mark - @@ -949,9 +938,6 @@ static VLCMain *_o_sharedMainInstance = nil; if (o_wizard) [o_wizard release]; - [crashLogURLConnection cancel]; - [crashLogURLConnection release]; - [o_coredialogs release]; [o_eyetv release]; @@ -1730,152 +1716,18 @@ static VLCMain *_o_sharedMainInstance = nil; } #pragma mark - -#pragma mark Crash Log -- (void)sendCrashLog:(NSString *)crashLog withUserComment:(NSString *)userComment -{ - NSString *urlStr = @"http://crash.videolan.org/crashlog/sendcrashreport.php"; - NSURL *url = [NSURL URLWithString:urlStr]; - - NSMutableURLRequest *req = [NSMutableURLRequest requestWithURL:url]; - [req setHTTPMethod:@"POST"]; - - NSString * email; - if ([o_crashrep_includeEmail_ckb state] == NSOnState) { - ABPerson * contact = [[ABAddressBook sharedAddressBook] me]; - ABMultiValue *emails = [contact valueForProperty:kABEmailProperty]; - email = [emails valueAtIndex:[emails indexForIdentifier: - [emails primaryIdentifier]]]; - } - else - email = [NSString string]; - - NSString *postBody; - postBody = [NSString stringWithFormat:@"CrashLog=%@&Comment=%@&Email=%@\r\n", - [crashLog stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding], - [userComment stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding], - [email stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; - - [req setHTTPBody:[postBody dataUsingEncoding:NSUTF8StringEncoding]]; - - /* Released from delegate */ - crashLogURLConnection = [[NSURLConnection alloc] initWithRequest:req delegate:self]; -} - -- (void)connectionDidFinishLoading:(NSURLConnection *)connection -{ - msg_Dbg(p_intf, "crash report successfully sent"); - [crashLogURLConnection release]; - crashLogURLConnection = nil; -} - -- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error -{ - msg_Warn (p_intf, "Error when sending the crash report: %s (%li)", [[error localizedDescription] UTF8String], [error code]); - [crashLogURLConnection release]; - crashLogURLConnection = nil; -} - -- (NSString *)latestCrashLogPathPreviouslySeen:(BOOL)previouslySeen -{ - NSString * crashReporter; - if (OSX_MOUNTAIN_LION || OSX_MAVERICKS) - crashReporter = [@"~/Library/Logs/DiagnosticReports" stringByExpandingTildeInPath]; - else - crashReporter = [@"~/Library/Logs/CrashReporter" stringByExpandingTildeInPath]; - NSDirectoryEnumerator *direnum = [[NSFileManager defaultManager] enumeratorAtPath:crashReporter]; - NSString *fname; - NSString * latestLog = nil; - NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults]; - int year = !previouslySeen ? [defaults integerForKey:@"LatestCrashReportYear"] : 0; - int month = !previouslySeen ? [defaults integerForKey:@"LatestCrashReportMonth"]: 0; - int day = !previouslySeen ? [defaults integerForKey:@"LatestCrashReportDay"] : 0; - int hours = !previouslySeen ? [defaults integerForKey:@"LatestCrashReportHours"]: 0; - - while (fname = [direnum nextObject]) { - [direnum skipDescendents]; - if ([fname hasPrefix:@"VLC"] && [fname hasSuffix:@"crash"]) { - NSArray * compo = [fname componentsSeparatedByString:@"_"]; - if ([compo count] < 3) - continue; - compo = [[compo objectAtIndex:1] componentsSeparatedByString:@"-"]; - if ([compo count] < 4) - continue; - - // Dooh. ugly. - if (year < [[compo objectAtIndex:0] intValue] || - (year ==[[compo objectAtIndex:0] intValue] && - (month < [[compo objectAtIndex:1] intValue] || - (month ==[[compo objectAtIndex:1] intValue] && - (day < [[compo objectAtIndex:2] intValue] || - (day ==[[compo objectAtIndex:2] intValue] && - hours < [[compo objectAtIndex:3] intValue])))))) { - year = [[compo objectAtIndex:0] intValue]; - month = [[compo objectAtIndex:1] intValue]; - day = [[compo objectAtIndex:2] intValue]; - hours = [[compo objectAtIndex:3] intValue]; - latestLog = [crashReporter stringByAppendingPathComponent:fname]; - } - } - } - - if (!(latestLog && [[NSFileManager defaultManager] fileExistsAtPath:latestLog])) - return nil; - - if (!previouslySeen) { - [defaults setInteger:year forKey:@"LatestCrashReportYear"]; - [defaults setInteger:month forKey:@"LatestCrashReportMonth"]; - [defaults setInteger:day forKey:@"LatestCrashReportDay"]; - [defaults setInteger:hours forKey:@"LatestCrashReportHours"]; - } - return latestLog; -} - -- (NSString *)latestCrashLogPath -{ - return [self latestCrashLogPathPreviouslySeen:YES]; -} +#pragma mark Crash Log handling - (void)lookForCrashLog { - NSAutoreleasePool *o_pool = [[NSAutoreleasePool alloc] init]; - // This pref key doesn't exists? this VLC is an upgrade, and this crash log come from previous version - NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults]; - BOOL areCrashLogsTooOld = ![defaults integerForKey:@"LatestCrashReportYear"]; - NSString * latestLog = [self latestCrashLogPathPreviouslySeen:NO]; - if (latestLog && !areCrashLogsTooOld) { - if ([defaults integerForKey:@"AlwaysSendCrashReports"] > 0) - [self sendCrashLog:[NSString stringWithContentsOfFile: [self latestCrashLogPath] encoding: NSUTF8StringEncoding error: NULL] withUserComment: [o_crashrep_fld string]]; - else if ([defaults integerForKey:@"AlwaysSendCrashReports"] == 0) - [NSApp runModalForWindow: o_crashrep_win]; - // bail out, the user doesn't want us to send reports - } - - [o_pool release]; -} - -- (IBAction)crashReporterAction:(id)sender -{ - if (sender == o_crashrep_send_btn) { - [self sendCrashLog:[NSString stringWithContentsOfFile: [self latestCrashLogPath] encoding: NSUTF8StringEncoding error: NULL] withUserComment: [o_crashrep_fld string]]; - if ([o_crashrep_dontaskagain_ckb state]) - [[NSUserDefaults standardUserDefaults] setInteger:1 forKey:@"AlwaysSendCrashReports"]; - } else { - if ([o_crashrep_dontaskagain_ckb state]) - [[NSUserDefaults standardUserDefaults] setInteger:-1 forKey:@"AlwaysSendCrashReports"]; - } - - [NSApp stopModal]; - [o_crashrep_win orderOut: sender]; + VLCCrashReporter *reporter = [[VLCCrashReporter alloc] init]; + reporter.delegate = self; + [reporter showDialogAndSendLogIfDesired]; } -- (IBAction)openCrashLog:(id)sender +- (void)reporterFinishedAction:(VLCCrashReporter *)reporter { - NSString * latestLog = [self latestCrashLogPath]; - if (latestLog) { - [[NSWorkspace sharedWorkspace] openFile: latestLog withApplication: @"Console"]; - } else { - NSBeginInformationalAlertSheet(_NS("No CrashLog found"), _NS("Continue"), nil, nil, o_msgs_panel, self, NULL, NULL, nil, @"%@", _NS("Couldn't find any trace of a previous crash.")); - } + [reporter release]; } #pragma mark - -- 2.39.2