Revision: 4122
http://skim-app.svn.sourceforge.net/skim-app/?rev=4122&view=rev
Author: hofman
Date: 2008-07-03 08:02:16 -0700 (Thu, 03 Jul 2008)
Log Message:
-----------
Implement singletons along the lines of the docs.
Modified Paths:
--------------
trunk/SKDownloadController.m
trunk/SKFindController.m
trunk/SKInfoWindowController.m
trunk/SKLineInspector.m
trunk/SKNotesPanelController.m
trunk/SKPreferenceController.m
Modified: trunk/SKDownloadController.m
===================================================================
--- trunk/SKDownloadController.m 2008-07-03 00:38:29 UTC (rev 4121)
+++ trunk/SKDownloadController.m 2008-07-03 15:02:16 UTC (rev 4122)
@@ -57,18 +57,21 @@
@implementation SKDownloadController
+static SKDownloadController *sharedDownloadController = nil;
+
+ (id)sharedDownloadController {
- static SKDownloadController *sharedDownloadController = nil;
- if (sharedDownloadController == nil)
- sharedDownloadController = [[self alloc] init];
- return sharedDownloadController;
+ return sharedDownloadController ? sharedDownloadController : [[self alloc]
init];
}
++ (id)allocWithZone:(NSZone *)zone {
+ return sharedDownloadController ? sharedDownloadController : [super
allocWithZone:zone];
+}
+
- (id)init {
- if (self = [super init]) {
+ if (sharedDownloadController == nil && (sharedDownloadController = self =
[super init])) {
downloads = [[NSMutableArray alloc] init];
}
- return self;
+ return sharedDownloadController;
}
- (void)dealloc {
@@ -76,6 +79,14 @@
[super dealloc];
}
+- (id)retain { return self; }
+
+- (id)autorelease { return self; }
+
+- (void)release {}
+
+- (unsigned)retainCount { return UINT_MAX; }
+
- (NSString *)windowNibName { return @"DownloadsWindow"; }
- (void)reloadTableView {
Modified: trunk/SKFindController.m
===================================================================
--- trunk/SKFindController.m 2008-07-03 00:38:29 UTC (rev 4121)
+++ trunk/SKFindController.m 2008-07-03 15:02:16 UTC (rev 4122)
@@ -45,20 +45,22 @@
@implementation SKFindController
-static id sharedFindController = nil;
+static SKFindController *sharedFindController = nil;
+ (id)sharedFindController {
- if (sharedFindController == nil)
- sharedFindController = [[self alloc] init];
- return sharedFindController;
+ return sharedFindController ? sharedFindController : [[self alloc] init];
}
++ (id)allocWithZone:(NSZone *)zone {
+ return sharedFindController ? sharedFindController : [super
allocWithZone:zone];
+}
+
- (id)init {
- if (self = [super init]) {
+ if (sharedFindController == nil && (sharedFindController = self = [super
init])) {
ignoreCase = YES;
editors = CFArrayCreateMutable(kCFAllocatorMallocZone, 0, NULL);
}
- return self;
+ return sharedFindController;
}
- (void)dealloc {
@@ -67,25 +69,14 @@
[super dealloc];
}
-- (id)retain {
- if (self == sharedFindController)
- return self;
- else
- return [super retain];
-}
+- (id)retain { return self; }
-- (void)release {
- if (self != sharedFindController)
- [super release];
-}
+- (id)autorelease { return self; }
-- (id)autorelease {
- if (self == sharedFindController)
- return self;
- else
- return [super autorelease];
-}
+- (void)release {}
+- (unsigned)retainCount { return UINT_MAX; }
+
- (NSString *)windowNibName { return @"FindPanel"; }
- (void)awakeFromNib {
Modified: trunk/SKInfoWindowController.m
===================================================================
--- trunk/SKInfoWindowController.m 2008-07-03 00:38:29 UTC (rev 4121)
+++ trunk/SKInfoWindowController.m 2008-07-03 15:02:16 UTC (rev 4122)
@@ -59,6 +59,8 @@
@implementation SKInfoWindowController
+static SKInfoWindowController *sharedInstance = nil;
+
+ (void)initialize {
OBINITIALIZE;
@@ -68,18 +70,18 @@
}
+ (id)sharedInstance {
- static SKInfoWindowController *sharedInstance = nil;
- if (sharedInstance == nil) {
- sharedInstance = [[self alloc] init];
- }
- return sharedInstance;
+ return sharedInstance ? sharedInstance : [[self alloc] init];
}
++ (id)allocWithZone:(NSZone *)zone {
+ return sharedInstance ? sharedInstance : [super allocWithZone:zone];
+}
+
- (id)init {
- if (self = [super init]) {
+ if (sharedInstance == nil && (sharedInstance = self = [super init])) {
info = [[NSMutableDictionary alloc] init];
}
- return self;
+ return sharedInstance;
}
- (void)dealloc {
@@ -88,6 +90,14 @@
[super dealloc];
}
+- (id)retain { return self; }
+
+- (id)autorelease { return self; }
+
+- (void)release {}
+
+- (unsigned)retainCount { return UINT_MAX; }
+
- (NSString *)windowNibName {
return @"InfoWindow";
}
Modified: trunk/SKLineInspector.m
===================================================================
--- trunk/SKLineInspector.m 2008-07-03 00:38:29 UTC (rev 4121)
+++ trunk/SKLineInspector.m 2008-07-03 15:02:16 UTC (rev 4122)
@@ -61,9 +61,7 @@
static SKLineInspector *sharedLineInspector = nil;
+ (id)sharedLineInspector {
- if (sharedLineInspector == nil)
- [[self alloc] init];
- return sharedLineInspector;
+ return sharedLineInspector ? sharedLineInspector : [[self alloc] init];
}
+ (BOOL)sharedLineInspectorExists {
@@ -71,15 +69,11 @@
}
+ (id)allocWithZone:(NSZone *)zone {
- if (sharedLineInspector == nil)
- return [super allocWithZone:[self zone]];
- else
- return sharedLineInspector;
+ return sharedLineInspector ? sharedLineInspector : [super
allocWithZone:zone];
}
- (id)init {
- if (sharedLineInspector == nil && (self = [super
initWithWindowNibName:@"LineInspector"])) {
- sharedLineInspector = self;
+ if (sharedLineInspector == nil && (sharedLineInspector = self = [super
initWithWindowNibName:@"LineInspector"])) {
style = kPDFBorderStyleSolid;
lineWidth = 1.0;
dashPattern = nil;
Modified: trunk/SKNotesPanelController.m
===================================================================
--- trunk/SKNotesPanelController.m 2008-07-03 00:38:29 UTC (rev 4121)
+++ trunk/SKNotesPanelController.m 2008-07-03 15:02:16 UTC (rev 4122)
@@ -46,9 +46,7 @@
static SKNotesPanelController *sharedController = nil;
+ (id)sharedController {
- if (sharedController == nil)
- [[self alloc] init];
- return sharedController;
+ return sharedController ? sharedController : [[self alloc] init];
}
+ (BOOL)sharedControllerExists {
@@ -56,10 +54,7 @@
}
+ (id)allocWithZone:(NSZone *)zone {
- if (sharedController == nil)
- return [super allocWithZone:[self zone]];
- else
- return sharedController;
+ return sharedController ? sharedController : [super allocWithZone:[self
zone]];
}
- (id)init {
Modified: trunk/SKPreferenceController.m
===================================================================
--- trunk/SKPreferenceController.m 2008-07-03 00:38:29 UTC (rev 4121)
+++ trunk/SKPreferenceController.m 2008-07-03 15:02:16 UTC (rev 4122)
@@ -59,15 +59,18 @@
@implementation SKPreferenceController
+static SKPreferenceController *sharedPrefenceController = nil;
+
+ (id)sharedPrefenceController {
- static SKPreferenceController *sharedPrefenceController = nil;
- if (sharedPrefenceController == nil)
- sharedPrefenceController = [[self alloc] init];
- return sharedPrefenceController;
+ return sharedPrefenceController ? sharedPrefenceController : [[self alloc]
init];
}
++ (id)allocWithZone:(NSZone *)zone {
+ return sharedPrefenceController ? sharedPrefenceController : [super
allocWithZone:zone];
+}
+
- (id)init {
- if (self = [super init]) {
+ if (sharedPrefenceController == nil && (sharedPrefenceController = self =
[super init])) {
NSString *initialUserDefaultsPath = [[NSBundle mainBundle]
pathForResource:SKPreferenceInitialUserDefaultsFileName ofType:@"plist"];
resettableKeys = [[[NSDictionary
dictionaryWithContentsOfFile:initialUserDefaultsPath]
valueForKey:SKPreferenceResettableKeysKey] retain];
@@ -84,6 +87,14 @@
[super dealloc];
}
+- (id)retain { return self; }
+
+- (id)autorelease { return self; }
+
+- (void)release {}
+
+- (unsigned)retainCount { return UINT_MAX; }
+
- (NSString *)windowNibName {
return @"PreferenceWindow";
}
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-------------------------------------------------------------------------
Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
Studies have shown that voting for your favorite open source project,
along with a healthy diet, reduces your potential for chronic lameness
and boredom. Vote Now at http://www.sourceforge.net/community/cca08
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit