FreeRDP
Loading...
Searching...
No Matches
GlobalDefaults.m
1/*
2 Global default bookmark settings
3
4 Copyright 2013 Thincast Technologies GmbH, Author: Dorian Johnson
5
6 This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
7 If a copy of the MPL was not distributed with this file, You can obtain one at
8 http://mozilla.org/MPL/2.0/.
9 */
10
11#import "GlobalDefaults.h"
12#import "Bookmark.h"
13#import "ConnectionParams.h"
14
15@implementation GlobalDefaults
16
17+ (GlobalDefaults *)sharedGlobalDefaults
18{
19 static GlobalDefaults *_shared_global_defaults = nil;
20
21 if (_shared_global_defaults == nil)
22 {
23 @synchronized(self)
24 {
25 if (_shared_global_defaults == nil)
26 _shared_global_defaults = [[GlobalDefaults alloc] init];
27 }
28 }
29
30 return _shared_global_defaults;
31}
32
33- (id)init
34{
35 if (!(self = [super init]))
36 return nil;
37
38 ComputerBookmark *bookmark = nil;
39 NSData *bookmark_data =
40 [[NSUserDefaults standardUserDefaults] objectForKey:@"TSXSharedGlobalDefaultBookmark"];
41
42 if (bookmark_data && [bookmark_data length])
43 {
44 NSError *error = nil;
45 bookmark = [NSKeyedUnarchiver unarchivedObjectOfClass:[ComputerBookmark class]
46 fromData:bookmark_data
47 error:&error];
48
49 if (!bookmark)
50 NSLog(@"%s: failed to unarchive the default bookmark: %@", __func__, error);
51 }
52
53 if (!bookmark)
54 bookmark = [[[ComputerBookmark alloc] initWithBaseDefaultParameters] autorelease];
55
56 _default_bookmark = [bookmark retain];
57 return self;
58}
59
60- (void)dealloc
61{
62 [_default_bookmark release];
63 [super dealloc];
64}
65
66#pragma mark -
67
68@synthesize bookmark = _default_bookmark;
69
70- (ComputerBookmark *)newBookmark
71{
72 return [[ComputerBookmark alloc] initWithConnectionParameters:[[self newParams] autorelease]];
73}
74
75- (ConnectionParams *)newParams
76{
77 ConnectionParams *param_copy = [[[self bookmark] params] copy];
78 return param_copy;
79}
80
81@end