[vlc-commits] macosx: Convert VLCTrackSync to NSWindowController subclass, remove singleton
David Fuhrmann
git at videolan.org
Sun Aug 2 13:26:38 CEST 2015
vlc | branch: master | David Fuhrmann <dfuhrmann at videolan.org> | Sun Aug 2 13:00:14 2015 +0200| [548807de5ad78c2d5fc2a7ce4c6aac24e6526c65] | committer: David Fuhrmann
macosx: Convert VLCTrackSync to NSWindowController subclass, remove singleton
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=548807de5ad78c2d5fc2a7ce4c6aac24e6526c65
---
modules/gui/macosx/InputManager.m | 2 +-
modules/gui/macosx/MainMenu.m | 10 +--------
modules/gui/macosx/TrackSynchronization.h | 4 +---
modules/gui/macosx/TrackSynchronization.m | 31 ++++++++++++--------------
modules/gui/macosx/VLCVoutWindowController.m | 2 +-
modules/gui/macosx/intf.h | 3 +++
modules/gui/macosx/intf.m | 9 ++++++++
7 files changed, 30 insertions(+), 31 deletions(-)
diff --git a/modules/gui/macosx/InputManager.m b/modules/gui/macosx/InputManager.m
index a480fe1..e435a58 100644
--- a/modules/gui/macosx/InputManager.m
+++ b/modules/gui/macosx/InputManager.m
@@ -419,7 +419,7 @@ static int InputEvent(vlc_object_t *p_this, const char *psz_var,
- (void)updateDelays
{
- [[VLCTrackSynchronization sharedInstance] updateValues];
+ [[[VLCMain sharedInstance] trackSyncPanel] updateValues];
}
- (void)updateMainMenu
diff --git a/modules/gui/macosx/MainMenu.m b/modules/gui/macosx/MainMenu.m
index 86d9641..d1fa3bc 100644
--- a/modules/gui/macosx/MainMenu.m
+++ b/modules/gui/macosx/MainMenu.m
@@ -55,7 +55,6 @@
{
BOOL b_nib_videoeffects_loaded;
BOOL b_nib_audioeffects_loaded;
- BOOL b_nib_tracksynchrloaded;
BOOL b_nib_bookmarks_loaded;
BOOL b_nib_convertandsave_loaded;
@@ -63,7 +62,6 @@
HelpWindowController *_helpWindowController;
VLCVideoEffects *_videoEffectsWindowController;
VLCAudioEffects *_audioEffectsWindowController;
- VLCTrackSynchronization *_trackSynchronizationWindowController;
VLCConvertAndSave *_convertAndSaveWindowController;
AddonsWindowController *_addonsController;
@@ -1294,13 +1292,7 @@
- (IBAction)showTrackSynchronization:(id)sender
{
- if (!_trackSynchronizationWindowController)
- _trackSynchronizationWindowController = [[VLCTrackSynchronization alloc] init];
-
- if (!b_nib_tracksynchrloaded)
- b_nib_tracksynchrloaded = [NSBundle loadNibNamed:@"SyncTracks" owner:_trackSynchronizationWindowController];
-
- [_trackSynchronizationWindowController toggleWindow:sender];
+ [[[VLCMain sharedInstance] trackSyncPanel] toggleWindow:sender];
}
- (IBAction)showAudioEffects:(id)sender
diff --git a/modules/gui/macosx/TrackSynchronization.h b/modules/gui/macosx/TrackSynchronization.h
index a6d0bbf..4cb32e4 100644
--- a/modules/gui/macosx/TrackSynchronization.h
+++ b/modules/gui/macosx/TrackSynchronization.h
@@ -24,10 +24,9 @@
#import <Cocoa/Cocoa.h>
- at interface VLCTrackSynchronization : NSObject
+ at interface VLCTrackSynchronization : NSWindowController
/* generic */
- at property (readwrite, weak) IBOutlet NSWindow *window;
@property (readwrite, weak) IBOutlet NSButton *resetButton;
/* Audio / Video */
@@ -48,7 +47,6 @@
@property (readwrite, weak) IBOutlet NSTextField *sv_durTextField;
@property (readwrite, weak) IBOutlet NSStepper *sv_durStepper;
-+ (VLCTrackSynchronization *)sharedInstance;
- (void)updateCocoaWindowLevel:(NSInteger)i_level;
- (IBAction)toggleWindow:(id)sender;
diff --git a/modules/gui/macosx/TrackSynchronization.m b/modules/gui/macosx/TrackSynchronization.m
index 4343cd4..3780195 100644
--- a/modules/gui/macosx/TrackSynchronization.m
+++ b/modules/gui/macosx/TrackSynchronization.m
@@ -36,21 +36,16 @@
@implementation VLCTrackSynchronization
-+ (VLCTrackSynchronization *)sharedInstance
+- (id)init
{
- static VLCTrackSynchronization *sharedInstance = nil;
- static dispatch_once_t pred;
+ self = [super initWithWindowNibName:@"SyncTracks"];
- dispatch_once(&pred, ^{
- sharedInstance = [VLCTrackSynchronization new];
- });
-
- return sharedInstance;
+ return self;
}
-- (void)awakeFromNib
+- (void)windowDidLoad
{
- [_window setTitle:_NS("Track Synchronization")];
+ [self.window setTitle:_NS("Track Synchronization")];
[_resetButton setTitle:_NS("Reset")];
[_avLabel setStringValue:_NS("Audio/Video")];
[_av_advanceLabel setStringValue: _NS("Audio track synchronization:")];
@@ -86,24 +81,26 @@
[[_sv_durTextField formatter] setFormat:[NSString stringWithFormat:@"#,##0.000%@", o_suffix]];
[_sv_durTextField setToolTip: o_toolTip];
- [_window setCollectionBehavior: NSWindowCollectionBehaviorFullScreenAuxiliary];
+ [self.window setCollectionBehavior: NSWindowCollectionBehaviorFullScreenAuxiliary];
[self resetValues:self];
}
- (void)updateCocoaWindowLevel:(NSInteger)i_level
{
- if (_window && [_window isVisible] && [_window level] != i_level)
- [_window setLevel: i_level];
+ if (self.window && [self.window isVisible] && [self.window level] != i_level)
+ [self.window setLevel: i_level];
}
- (IBAction)toggleWindow:(id)sender
{
- if ([_window isVisible])
- [_window orderOut:sender];
+ if ([self.window isVisible])
+ [self.window orderOut:sender];
else {
- [_window setLevel: [[[VLCMain sharedInstance] voutController] currentStatusWindowLevel]];
- [_window makeKeyAndOrderFront:sender];
+ [self.window setLevel: [[[VLCMain sharedInstance] voutController] currentStatusWindowLevel]];
+ [self.window makeKeyAndOrderFront:sender];
+
+ [self updateValues];
}
}
diff --git a/modules/gui/macosx/VLCVoutWindowController.m b/modules/gui/macosx/VLCVoutWindowController.m
index a588abf..20536ed 100644
--- a/modules/gui/macosx/VLCVoutWindowController.m
+++ b/modules/gui/macosx/VLCVoutWindowController.m
@@ -593,7 +593,7 @@ void WindowClose(vout_window_t *p_wnd)
[[VLCAudioEffects sharedInstance] updateCocoaWindowLevel:currentStatusWindowLevel];
[[VLCInfo sharedInstance] updateCocoaWindowLevel:currentStatusWindowLevel];
[[main bookmarks] updateCocoaWindowLevel:currentStatusWindowLevel];
- [[VLCTrackSynchronization sharedInstance] updateCocoaWindowLevel:currentStatusWindowLevel];
+ [[main trackSyncPanel] updateCocoaWindowLevel:currentStatusWindowLevel];
[[main resumeDialog] updateCocoaWindowLevel:currentStatusWindowLevel];
}
diff --git a/modules/gui/macosx/intf.h b/modules/gui/macosx/intf.h
index fec2eea..7ecedf8 100644
--- a/modules/gui/macosx/intf.h
+++ b/modules/gui/macosx/intf.h
@@ -65,6 +65,7 @@ static NSString * VLCInputChangedNotification = @"VLCInputChangedNotification";
@class VLCBookmarks;
@class VLCOpen;
@class VLCDebugMessageVisualizer;
+ at class VLCTrackSynchronization;
@interface VLCMain : NSObject <NSWindowDelegate, NSApplicationDelegate>
{
@@ -91,6 +92,8 @@ static NSString * VLCInputChangedNotification = @"VLCInputChangedNotification";
- (VLCInputManager *)inputManager;
- (VLCDebugMessageVisualizer *)debugMsgPanel;
+- (VLCTrackSynchronization *)trackSyncPanel;
+
- (void)setActiveVideoPlayback:(BOOL)b_value;
- (BOOL)activeVideoPlayback;
- (void)applicationWillTerminate:(NSNotification *)notification;
diff --git a/modules/gui/macosx/intf.m b/modules/gui/macosx/intf.m
index 7ffc099..5cba3bb 100644
--- a/modules/gui/macosx/intf.m
+++ b/modules/gui/macosx/intf.m
@@ -155,6 +155,7 @@ static int ShowController(vlc_object_t *p_this, const char *psz_variable,
VLCInputManager *_input_manager;
VLCPlaylist *_playlist;
VLCDebugMessageVisualizer *_messagePanelController;
+ VLCTrackSynchronization *_trackSyncPanel;
bool b_intf_terminating; /* Makes sure applicationWillTerminate will be called only once */
}
@@ -526,6 +527,14 @@ static int ShowController(vlc_object_t *p_this, const char *psz_variable,
return _messagePanelController;
}
+- (VLCTrackSynchronization *)trackSyncPanel
+{
+ if (!_trackSyncPanel)
+ _trackSyncPanel = [[VLCTrackSynchronization alloc] init];
+
+ return _trackSyncPanel;
+}
+
- (VLCBookmarks *)bookmarks
{
if (!_bookmarks)
More information about the vlc-commits
mailing list