summaryrefslogtreecommitdiffstats
path: root/chrome/browser/cocoa
diff options
context:
space:
mode:
authorakalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-06-10 03:25:43 +0000
committerakalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-06-10 03:25:43 +0000
commitb3e83201cd1baff83b3662a4c2a196da36d774a0 (patch)
tree37359d930d253acdc8aadd585656d2365cba5a0d /chrome/browser/cocoa
parentbb725dc739b494b0ca088ec52ea97381a384a0fa (diff)
downloadchromium_src-b3e83201cd1baff83b3662a4c2a196da36d774a0.zip
chromium_src-b3e83201cd1baff83b3662a4c2a196da36d774a0.tar.gz
chromium_src-b3e83201cd1baff83b3662a4c2a196da36d774a0.tar.bz2
[Mac] Added (disabled) UI for extensions sync on OS X.
SyncCustomize.xib changes: Added checkbox for extensions and hooked it up via KVO to SyncCustomizeController. BUG=32413 TEST=manual Review URL: http://codereview.chromium.org/2714006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49360 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/cocoa')
-rw-r--r--chrome/browser/cocoa/sync_customize_controller.h4
-rw-r--r--chrome/browser/cocoa/sync_customize_controller.mm15
2 files changed, 17 insertions, 2 deletions
diff --git a/chrome/browser/cocoa/sync_customize_controller.h b/chrome/browser/cocoa/sync_customize_controller.h
index 32f626e..da22203 100644
--- a/chrome/browser/cocoa/sync_customize_controller.h
+++ b/chrome/browser/cocoa/sync_customize_controller.h
@@ -28,6 +28,7 @@ class ProfileSyncService;
BOOL preferencesRegistered_;
BOOL autofillRegistered_;
BOOL themesRegistered_;
+ BOOL extensionsRegistered_;
// The preferred flags indicate which model types the user would
// like to sync.
@@ -35,6 +36,7 @@ class ProfileSyncService;
BOOL preferencesPreferred_;
BOOL autofillPreferred_;
BOOL themesPreferred_;
+ BOOL extensionsPreferred_;
}
// syncService cannot be NULL.
@@ -54,11 +56,13 @@ class ProfileSyncService;
@property(assign) BOOL preferencesRegistered;
@property(assign) BOOL autofillRegistered;
@property(assign) BOOL themesRegistered;
+@property(assign) BOOL extensionsRegistered;
@property(assign) BOOL bookmarksPreferred;
@property(assign) BOOL preferencesPreferred;
@property(assign) BOOL autofillPreferred;
@property(assign) BOOL themesPreferred;
+@property(assign) BOOL extensionsPreferred;
@property(readonly) BOOL okEnabled;
diff --git a/chrome/browser/cocoa/sync_customize_controller.mm b/chrome/browser/cocoa/sync_customize_controller.mm
index 5ceface..9bb7cfe 100644
--- a/chrome/browser/cocoa/sync_customize_controller.mm
+++ b/chrome/browser/cocoa/sync_customize_controller.mm
@@ -22,6 +22,7 @@
@synthesize preferencesRegistered = preferencesRegistered_;
@synthesize autofillRegistered = autofillRegistered_;
@synthesize themesRegistered = themesRegistered_;
+@synthesize extensionsRegistered = extensionsRegistered_;
// If you add another ***Preferred variable, you must update okEnabled and
// keyPathsForValuesAffectingOkEnabled below.
@@ -29,19 +30,21 @@
@synthesize preferencesPreferred = preferencesPreferred_;
@synthesize autofillPreferred = autofillPreferred_;
@synthesize themesPreferred = themesPreferred_;
+@synthesize extensionsPreferred = extensionsPreferred_;
// The OK button should be clickable if and only if there's at least one
// datatype chosen to sync.
- (BOOL)okEnabled {
return bookmarksPreferred_ || preferencesPreferred_ || autofillPreferred_ ||
- themesPreferred_;
+ themesPreferred_ || extensionsPreferred_;
}
// Naming convention; makes okEnabled get updated whenever any of the below
// "Preferred" variables are updated.
+ (NSSet*)keyPathsForValuesAffectingOkEnabled {
return [NSSet setWithObjects:@"bookmarksPreferred", @"preferencesPreferred",
- @"autofillPreferred", @"themesPreferred", nil];
+ @"autofillPreferred", @"themesPreferred",
+ @"extensionsPreferred", nil];
}
- (id)initWithProfileSyncService:(ProfileSyncService*)syncService {
@@ -100,6 +103,7 @@
syncable::PREFERENCES,
syncable::AUTOFILL,
syncable::THEMES,
+ syncable::EXTENSIONS,
};
DCHECK(std::includes(expected_types,
expected_types + arraysize(expected_types),
@@ -114,6 +118,8 @@
syncable::AUTOFILL)];
[self setThemesRegistered:ContainsKey(registered_types,
syncable::THEMES)];
+ [self setExtensionsRegistered:ContainsKey(registered_types,
+ syncable::EXTENSIONS)];
syncable::ModelTypeSet preferred_types;
syncService_->GetPreferredDataTypes(&preferred_types);
@@ -128,6 +134,8 @@
syncable::AUTOFILL)];
[self setThemesPreferred:ContainsKey(preferred_types,
syncable::THEMES)];
+ [self setExtensionsPreferred:ContainsKey(preferred_types,
+ syncable::EXTENSIONS)];
}
- (void)windowWillClose:(NSNotification*)notification {
@@ -158,6 +166,9 @@
if ([self themesPreferred]) {
preferred_types.insert(syncable::THEMES);
}
+ if ([self extensionsPreferred]) {
+ preferred_types.insert(syncable::EXTENSIONS);
+ }
syncService_->ChangePreferredDataTypes(preferred_types);
[self endSheet];
}