Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(241)

Side by Side Diff: chrome/browser/cocoa/sync_customize_controller.mm

Issue 2714006: [Mac] Added (disabled) UI for extensions sync on OS X. (Closed)
Patch Set: . Created 10 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « chrome/browser/cocoa/sync_customize_controller.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #import "chrome/browser/cocoa/sync_customize_controller.h" 5 #import "chrome/browser/cocoa/sync_customize_controller.h"
6 #import "chrome/browser/cocoa/sync_customize_controller_cppsafe.h" 6 #import "chrome/browser/cocoa/sync_customize_controller_cppsafe.h"
7 7
8 #include <algorithm> 8 #include <algorithm>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
11 #include "base/logging.h" 11 #include "base/logging.h"
12 #import "base/mac_util.h" 12 #import "base/mac_util.h"
13 #import "base/stl_util-inl.h" 13 #import "base/stl_util-inl.h"
14 #include "chrome/browser/sync/profile_sync_service.h" 14 #include "chrome/browser/sync/profile_sync_service.h"
15 #include "chrome/browser/sync/syncable/model_type.h" 15 #include "chrome/browser/sync/syncable/model_type.h"
16 #import "third_party/GTM/AppKit/GTMUILocalizerAndLayoutTweaker.h" 16 #import "third_party/GTM/AppKit/GTMUILocalizerAndLayoutTweaker.h"
17 17
18 18
19 @implementation SyncCustomizeController 19 @implementation SyncCustomizeController
20 20
21 @synthesize bookmarksRegistered = bookmarksRegistered_; 21 @synthesize bookmarksRegistered = bookmarksRegistered_;
22 @synthesize preferencesRegistered = preferencesRegistered_; 22 @synthesize preferencesRegistered = preferencesRegistered_;
23 @synthesize autofillRegistered = autofillRegistered_; 23 @synthesize autofillRegistered = autofillRegistered_;
24 @synthesize themesRegistered = themesRegistered_; 24 @synthesize themesRegistered = themesRegistered_;
25 @synthesize extensionsRegistered = extensionsRegistered_;
25 26
26 // If you add another ***Preferred variable, you must update okEnabled and 27 // If you add another ***Preferred variable, you must update okEnabled and
27 // keyPathsForValuesAffectingOkEnabled below. 28 // keyPathsForValuesAffectingOkEnabled below.
28 @synthesize bookmarksPreferred = bookmarksPreferred_; 29 @synthesize bookmarksPreferred = bookmarksPreferred_;
29 @synthesize preferencesPreferred = preferencesPreferred_; 30 @synthesize preferencesPreferred = preferencesPreferred_;
30 @synthesize autofillPreferred = autofillPreferred_; 31 @synthesize autofillPreferred = autofillPreferred_;
31 @synthesize themesPreferred = themesPreferred_; 32 @synthesize themesPreferred = themesPreferred_;
33 @synthesize extensionsPreferred = extensionsPreferred_;
32 34
33 // The OK button should be clickable if and only if there's at least one 35 // The OK button should be clickable if and only if there's at least one
34 // datatype chosen to sync. 36 // datatype chosen to sync.
35 - (BOOL)okEnabled { 37 - (BOOL)okEnabled {
36 return bookmarksPreferred_ || preferencesPreferred_ || autofillPreferred_ || 38 return bookmarksPreferred_ || preferencesPreferred_ || autofillPreferred_ ||
37 themesPreferred_; 39 themesPreferred_ || extensionsPreferred_;
38 } 40 }
39 41
40 // Naming convention; makes okEnabled get updated whenever any of the below 42 // Naming convention; makes okEnabled get updated whenever any of the below
41 // "Preferred" variables are updated. 43 // "Preferred" variables are updated.
42 + (NSSet*)keyPathsForValuesAffectingOkEnabled { 44 + (NSSet*)keyPathsForValuesAffectingOkEnabled {
43 return [NSSet setWithObjects:@"bookmarksPreferred", @"preferencesPreferred", 45 return [NSSet setWithObjects:@"bookmarksPreferred", @"preferencesPreferred",
44 @"autofillPreferred", @"themesPreferred", nil]; 46 @"autofillPreferred", @"themesPreferred",
47 @"extensionsPreferred", nil];
45 } 48 }
46 49
47 - (id)initWithProfileSyncService:(ProfileSyncService*)syncService { 50 - (id)initWithProfileSyncService:(ProfileSyncService*)syncService {
48 NSString* nibpath = [mac_util::MainAppBundle() 51 NSString* nibpath = [mac_util::MainAppBundle()
49 pathForResource:@"SyncCustomize" 52 pathForResource:@"SyncCustomize"
50 ofType:@"nib"]; 53 ofType:@"nib"];
51 if ((self = [super initWithWindowNibPath:nibpath owner:self])) { 54 if ((self = [super initWithWindowNibPath:nibpath owner:self])) {
52 CHECK(syncService); 55 CHECK(syncService);
53 syncService_ = syncService; 56 syncService_ = syncService;
54 } 57 }
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
93 [[self window] setFrame:frame display:NO]; 96 [[self window] setFrame:frame display:NO];
94 } 97 }
95 98
96 syncable::ModelTypeSet registered_types; 99 syncable::ModelTypeSet registered_types;
97 syncService_->GetRegisteredDataTypes(&registered_types); 100 syncService_->GetRegisteredDataTypes(&registered_types);
98 const syncable::ModelType expected_types[] = { 101 const syncable::ModelType expected_types[] = {
99 syncable::BOOKMARKS, 102 syncable::BOOKMARKS,
100 syncable::PREFERENCES, 103 syncable::PREFERENCES,
101 syncable::AUTOFILL, 104 syncable::AUTOFILL,
102 syncable::THEMES, 105 syncable::THEMES,
106 syncable::EXTENSIONS,
103 }; 107 };
104 DCHECK(std::includes(expected_types, 108 DCHECK(std::includes(expected_types,
105 expected_types + arraysize(expected_types), 109 expected_types + arraysize(expected_types),
106 registered_types.begin(), registered_types.end())); 110 registered_types.begin(), registered_types.end()));
107 DCHECK(ContainsKey(registered_types, syncable::BOOKMARKS)); 111 DCHECK(ContainsKey(registered_types, syncable::BOOKMARKS));
108 112
109 [self setBookmarksRegistered:ContainsKey(registered_types, 113 [self setBookmarksRegistered:ContainsKey(registered_types,
110 syncable::BOOKMARKS)]; 114 syncable::BOOKMARKS)];
111 [self setPreferencesRegistered:ContainsKey(registered_types, 115 [self setPreferencesRegistered:ContainsKey(registered_types,
112 syncable::PREFERENCES)]; 116 syncable::PREFERENCES)];
113 [self setAutofillRegistered:ContainsKey(registered_types, 117 [self setAutofillRegistered:ContainsKey(registered_types,
114 syncable::AUTOFILL)]; 118 syncable::AUTOFILL)];
115 [self setThemesRegistered:ContainsKey(registered_types, 119 [self setThemesRegistered:ContainsKey(registered_types,
116 syncable::THEMES)]; 120 syncable::THEMES)];
121 [self setExtensionsRegistered:ContainsKey(registered_types,
122 syncable::EXTENSIONS)];
117 123
118 syncable::ModelTypeSet preferred_types; 124 syncable::ModelTypeSet preferred_types;
119 syncService_->GetPreferredDataTypes(&preferred_types); 125 syncService_->GetPreferredDataTypes(&preferred_types);
120 DCHECK(std::includes(registered_types.begin(), registered_types.end(), 126 DCHECK(std::includes(registered_types.begin(), registered_types.end(),
121 preferred_types.begin(), preferred_types.end())); 127 preferred_types.begin(), preferred_types.end()));
122 128
123 [self setBookmarksPreferred:ContainsKey(preferred_types, 129 [self setBookmarksPreferred:ContainsKey(preferred_types,
124 syncable::BOOKMARKS)]; 130 syncable::BOOKMARKS)];
125 [self setPreferencesPreferred:ContainsKey(preferred_types, 131 [self setPreferencesPreferred:ContainsKey(preferred_types,
126 syncable::PREFERENCES)]; 132 syncable::PREFERENCES)];
127 [self setAutofillPreferred:ContainsKey(preferred_types, 133 [self setAutofillPreferred:ContainsKey(preferred_types,
128 syncable::AUTOFILL)]; 134 syncable::AUTOFILL)];
129 [self setThemesPreferred:ContainsKey(preferred_types, 135 [self setThemesPreferred:ContainsKey(preferred_types,
130 syncable::THEMES)]; 136 syncable::THEMES)];
137 [self setExtensionsPreferred:ContainsKey(preferred_types,
138 syncable::EXTENSIONS)];
131 } 139 }
132 140
133 - (void)windowWillClose:(NSNotification*)notification { 141 - (void)windowWillClose:(NSNotification*)notification {
134 [self autorelease]; 142 [self autorelease];
135 } 143 }
136 144
137 // Dismiss the sheet containing our window. 145 // Dismiss the sheet containing our window.
138 - (void)endSheet { 146 - (void)endSheet {
139 [NSApp endSheet:[self window]]; 147 [NSApp endSheet:[self window]];
140 } 148 }
(...skipping 10 matching lines...) Expand all
151 } 159 }
152 if ([self preferencesPreferred]) { 160 if ([self preferencesPreferred]) {
153 preferred_types.insert(syncable::PREFERENCES); 161 preferred_types.insert(syncable::PREFERENCES);
154 } 162 }
155 if ([self autofillPreferred]) { 163 if ([self autofillPreferred]) {
156 preferred_types.insert(syncable::AUTOFILL); 164 preferred_types.insert(syncable::AUTOFILL);
157 } 165 }
158 if ([self themesPreferred]) { 166 if ([self themesPreferred]) {
159 preferred_types.insert(syncable::THEMES); 167 preferred_types.insert(syncable::THEMES);
160 } 168 }
169 if ([self extensionsPreferred]) {
170 preferred_types.insert(syncable::EXTENSIONS);
171 }
161 syncService_->ChangePreferredDataTypes(preferred_types); 172 syncService_->ChangePreferredDataTypes(preferred_types);
162 [self endSheet]; 173 [self endSheet];
163 } 174 }
164 175
165 - (IBAction)endSheetWithOK:(id)sender { 176 - (IBAction)endSheetWithOK:(id)sender {
166 [self changePreferredDataTypes]; 177 [self changePreferredDataTypes];
167 [self endSheet]; 178 [self endSheet];
168 } 179 }
169 180
170 @end 181 @end
171 182
172 void ShowSyncCustomizeDialog(gfx::NativeWindow parent_window, 183 void ShowSyncCustomizeDialog(gfx::NativeWindow parent_window,
173 ProfileSyncService* sync_service) { 184 ProfileSyncService* sync_service) {
174 // syncCustomizeController releases itself on close. 185 // syncCustomizeController releases itself on close.
175 SyncCustomizeController* syncCustomizeController = 186 SyncCustomizeController* syncCustomizeController =
176 [[SyncCustomizeController alloc] 187 [[SyncCustomizeController alloc]
177 initWithProfileSyncService:sync_service]; 188 initWithProfileSyncService:sync_service];
178 [syncCustomizeController runAsModalSheet:parent_window]; 189 [syncCustomizeController runAsModalSheet:parent_window];
179 } 190 }
OLDNEW
« no previous file with comments | « chrome/browser/cocoa/sync_customize_controller.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698