[vlc-commits] macosx/full prefs: move from explicit singleton to a functional singleton
Felix Paul Kühne
git at videolan.org
Sat Jul 18 18:33:44 CEST 2015
vlc | branch: master | Felix Paul Kühne <fkuehne at videolan.org> | Sat Jul 18 18:29:45 2015 +0200| [41ed8b154711992f67bd9fc64d915c91cb362327] | committer: Felix Paul Kühne
macosx/full prefs: move from explicit singleton to a functional singleton
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=41ed8b154711992f67bd9fc64d915c91cb362327
---
.../macosx/Resources/English.lproj/Preferences.xib | 10 ++++--
modules/gui/macosx/prefs.h | 2 --
modules/gui/macosx/prefs.m | 35 ++++++++------------
3 files changed, 20 insertions(+), 27 deletions(-)
diff --git a/extras/package/macosx/Resources/English.lproj/Preferences.xib b/extras/package/macosx/Resources/English.lproj/Preferences.xib
index d7d4fa6..c9db124 100644
--- a/extras/package/macosx/Resources/English.lproj/Preferences.xib
+++ b/extras/package/macosx/Resources/English.lproj/Preferences.xib
@@ -10,7 +10,7 @@
<connections>
<outlet property="cancelButton" destination="1543" id="xKX-e8-dhh"/>
<outlet property="prefsView" destination="1537" id="Yv9-bn-gFQ"/>
- <outlet property="prefsWindow" destination="1530" id="34m-Dr-em4"/>
+ <outlet property="prefsWindow" destination="1530" id="GrB-uU-B7B"/>
<outlet property="resetButton" destination="1542" id="2QZ-tp-Blv"/>
<outlet property="saveButton" destination="1541" id="Ng1-aE-PqI"/>
<outlet property="showBasicButton" destination="3642" id="E0I-T2-hF5"/>
@@ -19,7 +19,7 @@
</connections>
</customObject>
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
- <customObject id="-3" userLabel="Application"/>
+ <customObject id="-3" userLabel="Application" customClass="NSObject"/>
<window title="Preferences" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" visibleAtLaunch="NO" frameAutosaveName="prefs" animationBehavior="default" id="1530" userLabel="Com. Preferences" customClass="NSPanel">
<windowStyleMask key="styleMask" titled="YES" resizable="YES"/>
<windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
@@ -42,7 +42,7 @@
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<outlineView verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnReordering="NO" multipleSelection="NO" autosaveColumns="NO" indentationPerLevel="16" autoresizesOutlineColumn="YES" outlineTableColumn="1535" id="1534">
- <rect key="frame" x="0.0" y="0.0" width="188" height="392"/>
+ <rect key="frame" x="0.0" y="0.0" width="188" height="19"/>
<autoresizingMask key="autoresizingMask"/>
<animations/>
<size key="intercellSpacing" width="3" height="2"/>
@@ -63,6 +63,10 @@
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
</tableColumn>
</tableColumns>
+ <connections>
+ <outlet property="dataSource" destination="-2" id="mjP-Y3-e81"/>
+ <outlet property="delegate" destination="-2" id="Wdi-xB-wsa"/>
+ </connections>
</outlineView>
</subviews>
<animations/>
diff --git a/modules/gui/macosx/prefs.h b/modules/gui/macosx/prefs.h
index 8a4a8b6..6ee116e 100644
--- a/modules/gui/macosx/prefs.h
+++ b/modules/gui/macosx/prefs.h
@@ -29,8 +29,6 @@
*****************************************************************************/
@interface VLCPrefs : NSObject
-+ (VLCPrefs *)sharedInstance;
-
@property (readwrite, weak) IBOutlet NSWindow *prefsWindow;
@property (readwrite, weak) IBOutlet NSTextField *titleLabel;
@property (readwrite, weak) IBOutlet NSOutlineView *tree;
diff --git a/modules/gui/macosx/prefs.m b/modules/gui/macosx/prefs.m
index 2880735..851b667 100644
--- a/modules/gui/macosx/prefs.m
+++ b/modules/gui/macosx/prefs.m
@@ -75,6 +75,7 @@
NSMutableArray *_options;
NSMutableArray *_subviews;
}
+ at property (readwrite, weak) VLCPrefs *prefsViewController;
- (id)initWithName:(NSString*)name;
@@ -84,7 +85,7 @@
- (NSString *)name;
- (NSMutableArray *)children;
- (NSMutableArray *)options;
-- (void)showView:(NSScrollView *)prefsView;
+- (void)showView;
- (void)applyChanges;
- (void)resetView;
@@ -131,7 +132,6 @@
module_config_t * _configItem;
}
- (id)initWithConfigItem:(module_config_t *)configItem;
-
- (module_config_t *)configItem;
@end
@@ -147,7 +147,7 @@
@interface VLCPrefs()
{
- VLCTreeMainItem * _rootTreeItem;
+ VLCTreeMainItem *_rootTreeItem;
NSView *o_emptyView;
NSMutableDictionary *o_save_prefs;
}
@@ -155,18 +155,6 @@
@implementation VLCPrefs
-+ (VLCPrefs *)sharedInstance
-{
- static VLCPrefs *sharedInstance = nil;
- static dispatch_once_t pred;
-
- dispatch_once(&pred, ^{
- sharedInstance = [VLCPrefs new];
- });
-
- return sharedInstance;
-}
-
- (void)awakeFromNib
{
o_emptyView = [[NSView alloc] init];
@@ -190,14 +178,14 @@
- (void)setTitle: (NSString *) o_title_name
{
- [_titleLabel setStringValue: o_title_name];
+ [self.titleLabel setStringValue: o_title_name];
}
- (void)showPrefsWithLevel:(NSInteger)iWindow_level
{
- [_prefsWindow setLevel: iWindow_level];
- [_prefsWindow center];
- [_prefsWindow makeKeyAndOrderFront:self];
+ [self.prefsWindow setLevel: iWindow_level];
+ [self.prefsWindow center];
+ [self.prefsWindow makeKeyAndOrderFront:self];
[_rootTreeItem resetView];
}
@@ -237,7 +225,9 @@
/* update the document view to the view of the selected tree item */
- (void)outlineViewSelectionDidChange:(NSNotification *)o_notification
{
- [[_tree itemAtRow:[_tree selectedRow]] showView: _prefsView];
+ VLCTreeItem *treeItem = [_tree itemAtRow:[_tree selectedRow]];
+ treeItem.prefsViewController = self;
+ [treeItem showView];
[_tree expandItem:[_tree itemAtRow:[_tree selectedRow]]];
}
@@ -296,12 +286,13 @@
return _name;
}
-- (void)showView:(NSScrollView *)prefsView
+- (void)showView
{
+ NSScrollView *prefsView = self.prefsViewController.prefsView;
NSRect s_vrc;
NSView *view;
- [[VLCPrefs sharedInstance] setTitle: [self name]];
+ [self.prefsViewController setTitle: [self name]];
s_vrc = [[prefsView contentView] bounds]; s_vrc.size.height -= 4;
view = [[NSView alloc] initWithFrame: s_vrc];
[view setAutoresizingMask: NSViewWidthSizable | NSViewMinYMargin | NSViewMaxYMargin];
More information about the vlc-commits
mailing list