root / pithos-macos / PithosPreferencesController.m @ d8426ffb
History | View | Annotate | Download (10.2 kB)
1 | 589a14ca | Miltiadis Vasilakis | // |
---|---|---|---|
2 | 589a14ca | Miltiadis Vasilakis | // PithosPreferencesController.m |
3 | 589a14ca | Miltiadis Vasilakis | // pithos-macos |
4 | 589a14ca | Miltiadis Vasilakis | // |
5 | d8426ffb | Miltiadis Vasilakis | // Copyright 2011-2012 GRNET S.A. All rights reserved. |
6 | 589a14ca | Miltiadis Vasilakis | // |
7 | 589a14ca | Miltiadis Vasilakis | // Redistribution and use in source and binary forms, with or |
8 | 589a14ca | Miltiadis Vasilakis | // without modification, are permitted provided that the following |
9 | 589a14ca | Miltiadis Vasilakis | // conditions are met: |
10 | 589a14ca | Miltiadis Vasilakis | // |
11 | 589a14ca | Miltiadis Vasilakis | // 1. Redistributions of source code must retain the above |
12 | 589a14ca | Miltiadis Vasilakis | // copyright notice, this list of conditions and the following |
13 | 589a14ca | Miltiadis Vasilakis | // disclaimer. |
14 | 589a14ca | Miltiadis Vasilakis | // |
15 | 589a14ca | Miltiadis Vasilakis | // 2. Redistributions in binary form must reproduce the above |
16 | 589a14ca | Miltiadis Vasilakis | // copyright notice, this list of conditions and the following |
17 | 589a14ca | Miltiadis Vasilakis | // disclaimer in the documentation and/or other materials |
18 | 589a14ca | Miltiadis Vasilakis | // provided with the distribution. |
19 | 589a14ca | Miltiadis Vasilakis | // |
20 | 589a14ca | Miltiadis Vasilakis | // THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS |
21 | 589a14ca | Miltiadis Vasilakis | // OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
22 | 589a14ca | Miltiadis Vasilakis | // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
23 | 589a14ca | Miltiadis Vasilakis | // PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR |
24 | 589a14ca | Miltiadis Vasilakis | // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
25 | 589a14ca | Miltiadis Vasilakis | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
26 | 589a14ca | Miltiadis Vasilakis | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF |
27 | 589a14ca | Miltiadis Vasilakis | // USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED |
28 | 589a14ca | Miltiadis Vasilakis | // AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
29 | 589a14ca | Miltiadis Vasilakis | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN |
30 | 589a14ca | Miltiadis Vasilakis | // ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
31 | 589a14ca | Miltiadis Vasilakis | // POSSIBILITY OF SUCH DAMAGE. |
32 | 589a14ca | Miltiadis Vasilakis | // |
33 | 589a14ca | Miltiadis Vasilakis | // The views and conclusions contained in the software and |
34 | 589a14ca | Miltiadis Vasilakis | // documentation are those of the authors and should not be |
35 | 589a14ca | Miltiadis Vasilakis | // interpreted as representing official policies, either expressed |
36 | 589a14ca | Miltiadis Vasilakis | // or implied, of GRNET S.A. |
37 | 589a14ca | Miltiadis Vasilakis | |
38 | 589a14ca | Miltiadis Vasilakis | #import "PithosPreferencesController.h" |
39 | 470e6f81 | Miltiadis Vasilakis | #import "PithosBrowserController.h" |
40 | 470e6f81 | Miltiadis Vasilakis | #import "PithosAccountNode.h" |
41 | d8426ffb | Miltiadis Vasilakis | #import "PithosAccount.h" |
42 | 589a14ca | Miltiadis Vasilakis | #import "pithos_macosAppDelegate.h" |
43 | 589a14ca | Miltiadis Vasilakis | |
44 | 589a14ca | Miltiadis Vasilakis | @implementation PithosPreferencesController |
45 | d8426ffb | Miltiadis Vasilakis | @synthesize pithosBrowserController, selectedPithosAccount; |
46 | d8426ffb | Miltiadis Vasilakis | @synthesize accountsArrayController; |
47 | d8426ffb | Miltiadis Vasilakis | @synthesize accountRemoveEnable; |
48 | d8426ffb | Miltiadis Vasilakis | @synthesize serverURL, authUser, authToken, manual, loginEnable, loginCancelEnable; |
49 | 470e6f81 | Miltiadis Vasilakis | @synthesize groupsDictionaryController, selectedGroupMembersDictionaryController; |
50 | d8426ffb | Miltiadis Vasilakis | @synthesize syncActive, syncDirectoryPath, syncApplyEnable, syncCancelEnable; |
51 | 470e6f81 | Miltiadis Vasilakis | |
52 | 470e6f81 | Miltiadis Vasilakis | #pragma mark - |
53 | 470e6f81 | Miltiadis Vasilakis | #pragma mark Object Lifecycle |
54 | 589a14ca | Miltiadis Vasilakis | |
55 | 589a14ca | Miltiadis Vasilakis | - (id)init { |
56 | 589a14ca | Miltiadis Vasilakis | return [super initWithWindowNibName:@"PithosPreferencesController"]; |
57 | 589a14ca | Miltiadis Vasilakis | } |
58 | 589a14ca | Miltiadis Vasilakis | |
59 | 589a14ca | Miltiadis Vasilakis | - (void)windowDidLoad { |
60 | 589a14ca | Miltiadis Vasilakis | [super windowDidLoad]; |
61 | 589a14ca | Miltiadis Vasilakis | |
62 | 589a14ca | Miltiadis Vasilakis | NSWindow *window = [self window]; |
63 | 589a14ca | Miltiadis Vasilakis | [window setHidesOnDeactivate:NO]; |
64 | 589a14ca | Miltiadis Vasilakis | [window setExcludedFromWindowsMenu:YES]; |
65 | 589a14ca | Miltiadis Vasilakis | |
66 | d8426ffb | Miltiadis Vasilakis | // // Select the first tab when the window is loaded for the first time. |
67 | d8426ffb | Miltiadis Vasilakis | // [[window valueForKeyPath:@"toolbar"] setSelectedItemIdentifier:@"0"]; |
68 | 470e6f81 | Miltiadis Vasilakis | |
69 | 470e6f81 | Miltiadis Vasilakis | [groupsDictionaryController setInitialKey:@"group"]; |
70 | 470e6f81 | Miltiadis Vasilakis | [groupsDictionaryController setInitialValue:@"user"]; |
71 | 470e6f81 | Miltiadis Vasilakis | [selectedGroupMembersDictionaryController setInitialKey:@"user"]; |
72 | 470e6f81 | Miltiadis Vasilakis | [selectedGroupMembersDictionaryController setInitialValue:@""]; |
73 | 470e6f81 | Miltiadis Vasilakis | |
74 | 2d9996a2 | Miltiadis Vasilakis | [window setDelegate:self]; |
75 | d8426ffb | Miltiadis Vasilakis | |
76 | d8426ffb | Miltiadis Vasilakis | self.selectedPithosAccount = [[accountsArrayController selectedObjects] objectAtIndex:0]; |
77 | d8426ffb | Miltiadis Vasilakis | [accountsArrayController addObserver:self forKeyPath:@"selection" options:NSKeyValueObservingOptionNew context:NULL]; |
78 | 589a14ca | Miltiadis Vasilakis | } |
79 | 589a14ca | Miltiadis Vasilakis | |
80 | d8426ffb | Miltiadis Vasilakis | - (BOOL)windowShouldClose:(id)sender { |
81 | d8426ffb | Miltiadis Vasilakis | return [(pithos_macosAppDelegate *)[[NSApplication sharedApplication] delegate] activated]; |
82 | 589a14ca | Miltiadis Vasilakis | } |
83 | 589a14ca | Miltiadis Vasilakis | |
84 | d8426ffb | Miltiadis Vasilakis | //- (void)windowWillClose:(NSNotification *)notification { |
85 | d8426ffb | Miltiadis Vasilakis | //} |
86 | d8426ffb | Miltiadis Vasilakis | |
87 | d8426ffb | Miltiadis Vasilakis | //- (IBAction)toolbarItemSelected:(id)sender { |
88 | d8426ffb | Miltiadis Vasilakis | //} |
89 | d8426ffb | Miltiadis Vasilakis | |
90 | d8426ffb | Miltiadis Vasilakis | #pragma mark - |
91 | d8426ffb | Miltiadis Vasilakis | #pragma Observers |
92 | d8426ffb | Miltiadis Vasilakis | |
93 | d8426ffb | Miltiadis Vasilakis | - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context { |
94 | d8426ffb | Miltiadis Vasilakis | if ([object isEqualTo:accountsArrayController] && |
95 | d8426ffb | Miltiadis Vasilakis | [keyPath isEqualToString:@"selection"] && |
96 | d8426ffb | Miltiadis Vasilakis | [[accountsArrayController selectedObjects] count]) { |
97 | d8426ffb | Miltiadis Vasilakis | self.selectedPithosAccount = [[accountsArrayController selectedObjects] objectAtIndex:0]; |
98 | d8426ffb | Miltiadis Vasilakis | } |
99 | d8426ffb | Miltiadis Vasilakis | } |
100 | d8426ffb | Miltiadis Vasilakis | |
101 | d8426ffb | Miltiadis Vasilakis | #pragma mark - |
102 | d8426ffb | Miltiadis Vasilakis | #pragma Update |
103 | d8426ffb | Miltiadis Vasilakis | |
104 | d8426ffb | Miltiadis Vasilakis | - (void)updateAccounts { |
105 | d8426ffb | Miltiadis Vasilakis | pithos_macosAppDelegate *delegate = (pithos_macosAppDelegate *)[[NSApplication sharedApplication] delegate]; |
106 | d8426ffb | Miltiadis Vasilakis | self.accountRemoveEnable = (delegate.activated && ([delegate.pithosAccounts count] > 1)); |
107 | d8426ffb | Miltiadis Vasilakis | } |
108 | d8426ffb | Miltiadis Vasilakis | |
109 | d8426ffb | Miltiadis Vasilakis | - (void)updateLogin { |
110 | d8426ffb | Miltiadis Vasilakis | self.loginEnable = ([selectedPithosAccount urlIsValid:serverURL] && (!manual || ([authUser length] && [authToken length]))); |
111 | d8426ffb | Miltiadis Vasilakis | self.loginCancelEnable = (![selectedPithosAccount.serverURL isEqualToString:serverURL] || |
112 | d8426ffb | Miltiadis Vasilakis | (selectedPithosAccount.authUser && ![selectedPithosAccount.authUser isEqualToString:authUser]) || |
113 | d8426ffb | Miltiadis Vasilakis | (selectedPithosAccount.authToken && ![selectedPithosAccount.authToken isEqualToString:authToken])); |
114 | d8426ffb | Miltiadis Vasilakis | } |
115 | d8426ffb | Miltiadis Vasilakis | |
116 | d8426ffb | Miltiadis Vasilakis | - (void)updateSync { |
117 | d8426ffb | Miltiadis Vasilakis | BOOL isDirectory; |
118 | d8426ffb | Miltiadis Vasilakis | self.syncApplyEnable = (selectedPithosAccount.active && |
119 | d8426ffb | Miltiadis Vasilakis | ((selectedPithosAccount.syncActive != syncActive) || |
120 | d8426ffb | Miltiadis Vasilakis | (![selectedPithosAccount.syncDirectoryPath isEqualToString:syncDirectoryPath] && |
121 | d8426ffb | Miltiadis Vasilakis | (![[NSFileManager defaultManager] fileExistsAtPath:syncDirectoryPath isDirectory:&isDirectory] || |
122 | d8426ffb | Miltiadis Vasilakis | isDirectory)))); |
123 | d8426ffb | Miltiadis Vasilakis | self.syncCancelEnable = (selectedPithosAccount.active && |
124 | d8426ffb | Miltiadis Vasilakis | ((selectedPithosAccount.syncActive != syncActive) || |
125 | d8426ffb | Miltiadis Vasilakis | ![selectedPithosAccount.syncDirectoryPath isEqualToString:syncDirectoryPath])); |
126 | 589a14ca | Miltiadis Vasilakis | } |
127 | 589a14ca | Miltiadis Vasilakis | |
128 | 589a14ca | Miltiadis Vasilakis | #pragma mark - |
129 | dbfd951b | Miltiadis Vasilakis | #pragma Properties |
130 | 589a14ca | Miltiadis Vasilakis | |
131 | d8426ffb | Miltiadis Vasilakis | - (void)setSelectedPithosAccount:(PithosAccount *)aSelectedPithosAccount { |
132 | d8426ffb | Miltiadis Vasilakis | if (aSelectedPithosAccount && ![aSelectedPithosAccount isEqualTo:selectedPithosAccount]) { |
133 | d8426ffb | Miltiadis Vasilakis | [selectedPithosAccount release]; |
134 | d8426ffb | Miltiadis Vasilakis | selectedPithosAccount = [aSelectedPithosAccount retain]; |
135 | d8426ffb | Miltiadis Vasilakis | |
136 | d8426ffb | Miltiadis Vasilakis | [self updateAccounts]; |
137 | d8426ffb | Miltiadis Vasilakis | [self loginCancel:self]; |
138 | d8426ffb | Miltiadis Vasilakis | [self syncCancel:self]; |
139 | d8426ffb | Miltiadis Vasilakis | [self groupsRevert:self]; |
140 | d8426ffb | Miltiadis Vasilakis | } |
141 | d8426ffb | Miltiadis Vasilakis | } |
142 | d8426ffb | Miltiadis Vasilakis | |
143 | d8426ffb | Miltiadis Vasilakis | #pragma Login Properties |
144 | d8426ffb | Miltiadis Vasilakis | |
145 | d8426ffb | Miltiadis Vasilakis | - (void)setServerURL:(NSString *)aServerURL { |
146 | d8426ffb | Miltiadis Vasilakis | [serverURL release]; |
147 | d8426ffb | Miltiadis Vasilakis | serverURL = [aServerURL copy]; |
148 | d8426ffb | Miltiadis Vasilakis | [self updateLogin]; |
149 | d8426ffb | Miltiadis Vasilakis | } |
150 | d8426ffb | Miltiadis Vasilakis | |
151 | d8426ffb | Miltiadis Vasilakis | - (void)setAuthUser:(NSString *)anAuthUser { |
152 | d8426ffb | Miltiadis Vasilakis | [authUser release]; |
153 | d8426ffb | Miltiadis Vasilakis | authUser = [anAuthUser copy]; |
154 | d8426ffb | Miltiadis Vasilakis | [self updateLogin]; |
155 | d8426ffb | Miltiadis Vasilakis | } |
156 | d8426ffb | Miltiadis Vasilakis | |
157 | d8426ffb | Miltiadis Vasilakis | - (void)setAuthToken:(NSString *)anAuthToken { |
158 | d8426ffb | Miltiadis Vasilakis | [authToken release]; |
159 | d8426ffb | Miltiadis Vasilakis | authToken = [anAuthToken copy]; |
160 | d8426ffb | Miltiadis Vasilakis | [self updateLogin]; |
161 | d8426ffb | Miltiadis Vasilakis | } |
162 | d8426ffb | Miltiadis Vasilakis | |
163 | dbfd951b | Miltiadis Vasilakis | - (void)setManual:(BOOL)aManual { |
164 | dbfd951b | Miltiadis Vasilakis | manual = aManual; |
165 | d8426ffb | Miltiadis Vasilakis | [self updateLogin]; |
166 | dbfd951b | Miltiadis Vasilakis | if (!manual) { |
167 | d8426ffb | Miltiadis Vasilakis | self.authUser = [[selectedPithosAccount.authUser copy] autorelease]; |
168 | d8426ffb | Miltiadis Vasilakis | self.authToken = [[selectedPithosAccount.authToken copy] autorelease]; |
169 | dbfd951b | Miltiadis Vasilakis | } |
170 | 74314fd6 | Miltiadis Vasilakis | } |
171 | 74314fd6 | Miltiadis Vasilakis | |
172 | d8426ffb | Miltiadis Vasilakis | #pragma Sync Properties |
173 | d8426ffb | Miltiadis Vasilakis | |
174 | d8426ffb | Miltiadis Vasilakis | - (void)setSyncActive:(BOOL)aSyncActive { |
175 | d8426ffb | Miltiadis Vasilakis | syncActive = aSyncActive; |
176 | d8426ffb | Miltiadis Vasilakis | [self updateSync]; |
177 | d8426ffb | Miltiadis Vasilakis | } |
178 | d8426ffb | Miltiadis Vasilakis | |
179 | d8426ffb | Miltiadis Vasilakis | - (void)setSyncDirectoryPath:(NSString *)aSyncDirectoryPath { |
180 | d8426ffb | Miltiadis Vasilakis | [syncDirectoryPath release]; |
181 | d8426ffb | Miltiadis Vasilakis | syncDirectoryPath = [aSyncDirectoryPath copy]; |
182 | d8426ffb | Miltiadis Vasilakis | [self updateSync]; |
183 | d8426ffb | Miltiadis Vasilakis | } |
184 | d8426ffb | Miltiadis Vasilakis | |
185 | dbfd951b | Miltiadis Vasilakis | #pragma mark - |
186 | d8426ffb | Miltiadis Vasilakis | #pragma Actions |
187 | d8426ffb | Miltiadis Vasilakis | |
188 | d8426ffb | Miltiadis Vasilakis | - (IBAction)addAccount:(id)sender { |
189 | d8426ffb | Miltiadis Vasilakis | [accountsArrayController addObject:[PithosAccount pithosAccount]]; |
190 | d8426ffb | Miltiadis Vasilakis | [self updateAccounts]; |
191 | d8426ffb | Miltiadis Vasilakis | pithos_macosAppDelegate *delegate = (pithos_macosAppDelegate *)[[NSApplication sharedApplication] delegate]; |
192 | d8426ffb | Miltiadis Vasilakis | [delegate.pithosAccountsDictionary setObject:selectedPithosAccount forKey:selectedPithosAccount.name]; |
193 | d8426ffb | Miltiadis Vasilakis | [delegate savePithosAccounts:self]; |
194 | d8426ffb | Miltiadis Vasilakis | } |
195 | d8426ffb | Miltiadis Vasilakis | |
196 | d8426ffb | Miltiadis Vasilakis | - (IBAction)removeAccount:(id)sender { |
197 | d8426ffb | Miltiadis Vasilakis | [self updateAccounts]; |
198 | d8426ffb | Miltiadis Vasilakis | if (!accountRemoveEnable) |
199 | d8426ffb | Miltiadis Vasilakis | return; |
200 | d8426ffb | Miltiadis Vasilakis | PithosAccount *removedPithosAccount = [selectedPithosAccount retain]; |
201 | d8426ffb | Miltiadis Vasilakis | pithos_macosAppDelegate *delegate = (pithos_macosAppDelegate *)[[NSApplication sharedApplication] delegate]; |
202 | d8426ffb | Miltiadis Vasilakis | if ([delegate.currentPithosAccount isEqualTo:removedPithosAccount] && [delegate.pithosBrowserController operationsPending]) { |
203 | d8426ffb | Miltiadis Vasilakis | NSAlert *alert = [[[NSAlert alloc] init] autorelease]; |
204 | d8426ffb | Miltiadis Vasilakis | [alert setMessageText:@"Operations Pending"]; |
205 | d8426ffb | Miltiadis Vasilakis | [alert setInformativeText:@"There are pending operations in the browser, do you want to remove the account and cancel them?"]; |
206 | d8426ffb | Miltiadis Vasilakis | [alert addButtonWithTitle:@"OK"]; |
207 | d8426ffb | Miltiadis Vasilakis | [alert addButtonWithTitle:@"Cancel"]; |
208 | d8426ffb | Miltiadis Vasilakis | NSInteger choice = [alert runModal]; |
209 | d8426ffb | Miltiadis Vasilakis | if (choice == NSAlertSecondButtonReturn) { |
210 | d8426ffb | Miltiadis Vasilakis | [removedPithosAccount release]; |
211 | d8426ffb | Miltiadis Vasilakis | return; |
212 | d8426ffb | Miltiadis Vasilakis | } |
213 | d8426ffb | Miltiadis Vasilakis | } |
214 | d8426ffb | Miltiadis Vasilakis | [accountsArrayController removeObject:selectedPithosAccount]; |
215 | d8426ffb | Miltiadis Vasilakis | [delegate.pithosAccountsDictionary removeObjectForKey:removedPithosAccount.name]; |
216 | d8426ffb | Miltiadis Vasilakis | [delegate removedPithosAccount:removedPithosAccount]; |
217 | d8426ffb | Miltiadis Vasilakis | [delegate savePithosAccounts:self]; |
218 | d8426ffb | Miltiadis Vasilakis | [removedPithosAccount release]; |
219 | d8426ffb | Miltiadis Vasilakis | [self updateAccounts]; |
220 | d8426ffb | Miltiadis Vasilakis | } |
221 | d8426ffb | Miltiadis Vasilakis | |
222 | d8426ffb | Miltiadis Vasilakis | #pragma Login Actions |
223 | dbfd951b | Miltiadis Vasilakis | |
224 | d8426ffb | Miltiadis Vasilakis | - (IBAction)login:(id)sender { |
225 | d8426ffb | Miltiadis Vasilakis | if (!manual) { |
226 | d8426ffb | Miltiadis Vasilakis | [selectedPithosAccount loginWithServerURL:serverURL]; |
227 | dbfd951b | Miltiadis Vasilakis | } else { |
228 | d8426ffb | Miltiadis Vasilakis | [selectedPithosAccount authenticateWithServerURL:serverURL authUser:authUser authToken:authToken]; |
229 | d8426ffb | Miltiadis Vasilakis | self.manual = NO; |
230 | d8426ffb | Miltiadis Vasilakis | pithos_macosAppDelegate *delegate = (pithos_macosAppDelegate *)[[NSApplication sharedApplication] delegate]; |
231 | d8426ffb | Miltiadis Vasilakis | [delegate savePithosAccounts:self]; |
232 | d8426ffb | Miltiadis Vasilakis | if (!delegate.activated) { |
233 | d8426ffb | Miltiadis Vasilakis | delegate.activated = YES; |
234 | d8426ffb | Miltiadis Vasilakis | [delegate showPithosBrowser:self]; |
235 | d8426ffb | Miltiadis Vasilakis | } |
236 | d8426ffb | Miltiadis Vasilakis | if ([selectedPithosAccount isEqualTo:delegate.currentPithosAccount]) |
237 | d8426ffb | Miltiadis Vasilakis | delegate.pithosBrowserController.pithos = selectedPithosAccount.pithos; |
238 | dbfd951b | Miltiadis Vasilakis | } |
239 | 589a14ca | Miltiadis Vasilakis | } |
240 | 589a14ca | Miltiadis Vasilakis | |
241 | d8426ffb | Miltiadis Vasilakis | - (IBAction)loginCancel:(id)server { |
242 | d8426ffb | Miltiadis Vasilakis | self.serverURL = [[selectedPithosAccount.serverURL copy] autorelease]; |
243 | d8426ffb | Miltiadis Vasilakis | self.authUser = [[selectedPithosAccount.authUser copy] autorelease]; |
244 | d8426ffb | Miltiadis Vasilakis | self.authToken = [[selectedPithosAccount.authToken copy] autorelease]; |
245 | d8426ffb | Miltiadis Vasilakis | } |
246 | d8426ffb | Miltiadis Vasilakis | |
247 | d8426ffb | Miltiadis Vasilakis | #pragma Sync Actions |
248 | d8426ffb | Miltiadis Vasilakis | |
249 | d8426ffb | Miltiadis Vasilakis | - (IBAction)syncApply:(id)sender { |
250 | d8426ffb | Miltiadis Vasilakis | [selectedPithosAccount updateSyncWithSyncActive:syncActive syncDirectoryPath:syncDirectoryPath]; |
251 | d8426ffb | Miltiadis Vasilakis | [self updateSync]; |
252 | d8426ffb | Miltiadis Vasilakis | pithos_macosAppDelegate *delegate = (pithos_macosAppDelegate *)[[NSApplication sharedApplication] delegate]; |
253 | d8426ffb | Miltiadis Vasilakis | [delegate savePithosAccounts:self]; |
254 | d8426ffb | Miltiadis Vasilakis | } |
255 | d8426ffb | Miltiadis Vasilakis | |
256 | d8426ffb | Miltiadis Vasilakis | - (IBAction)syncCancel:(id)sender { |
257 | d8426ffb | Miltiadis Vasilakis | self.syncActive = selectedPithosAccount.syncActive; |
258 | d8426ffb | Miltiadis Vasilakis | self.syncDirectoryPath = [[selectedPithosAccount.syncDirectoryPath copy] autorelease]; |
259 | d8426ffb | Miltiadis Vasilakis | } |
260 | d8426ffb | Miltiadis Vasilakis | |
261 | 470e6f81 | Miltiadis Vasilakis | #pragma mark Groups Actions |
262 | 470e6f81 | Miltiadis Vasilakis | |
263 | d8426ffb | Miltiadis Vasilakis | - (IBAction)groupsApply:(id)sender { |
264 | 470e6f81 | Miltiadis Vasilakis | [[self window] makeFirstResponder:nil]; |
265 | d8426ffb | Miltiadis Vasilakis | if (selectedPithosAccount.active) |
266 | d8426ffb | Miltiadis Vasilakis | [selectedPithosAccount.accountNode applyInfo]; |
267 | d8426ffb | Miltiadis Vasilakis | } |
268 | d8426ffb | Miltiadis Vasilakis | |
269 | d8426ffb | Miltiadis Vasilakis | - (IBAction)groupsRevert:(id)sender { |
270 | d8426ffb | Miltiadis Vasilakis | if (selectedPithosAccount.active && selectedPithosAccount.accountNode) |
271 | d8426ffb | Miltiadis Vasilakis | [selectedPithosAccount.accountNode refreshInfo]; |
272 | 470e6f81 | Miltiadis Vasilakis | } |
273 | 470e6f81 | Miltiadis Vasilakis | |
274 | 589a14ca | Miltiadis Vasilakis | @end |