Commit b3e83201 authored by akalin@chromium.org's avatar akalin@chromium.org

[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
parent bb725dc7
...@@ -159,6 +159,28 @@ ...@@ -159,6 +159,28 @@
<int key="NSPeriodicInterval">25</int> <int key="NSPeriodicInterval">25</int>
</object> </object>
</object> </object>
<object class="NSButton" id="430596235">
<reference key="NSNextResponder" ref="925353020"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{26, 59}, {251, 18}}</string>
<reference key="NSSuperview" ref="925353020"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="237072256">
<int key="NSCellFlags">604110336</int>
<int key="NSCellFlags2">0</int>
<string key="NSContents">^IDS_SYNC_DATATYPE_EXTENSIONS</string>
<reference key="NSSupport" ref="460135184"/>
<reference key="NSControlView" ref="430596235"/>
<int key="NSButtonFlags">1211912703</int>
<int key="NSButtonFlags2">2</int>
<reference key="NSNormalImage" ref="817906260"/>
<reference key="NSAlternateImage" ref="165114022"/>
<string key="NSAlternateContents"/>
<string key="NSKeyEquivalent"/>
<int key="NSPeriodicDelay">200</int>
<int key="NSPeriodicInterval">25</int>
</object>
</object>
<object class="NSButton" id="425937350"> <object class="NSButton" id="425937350">
<reference key="NSNextResponder" ref="925353020"/> <reference key="NSNextResponder" ref="925353020"/>
<int key="NSvFlags">292</int> <int key="NSvFlags">292</int>
...@@ -459,6 +481,42 @@ ...@@ -459,6 +481,42 @@
</object> </object>
<int key="connectionID">149</int> <int key="connectionID">149</int>
</object> </object>
<object class="IBConnectionRecord">
<object class="IBBindingConnection" key="connection">
<string key="label">value: extensionsPreferred</string>
<reference key="source" ref="430596235"/>
<reference key="destination" ref="1001"/>
<object class="NSNibBindingConnector" key="connector">
<reference key="NSSource" ref="430596235"/>
<reference key="NSDestination" ref="1001"/>
<string key="NSLabel">value: extensionsPreferred</string>
<string key="NSBinding">value</string>
<string key="NSKeyPath">extensionsPreferred</string>
<object class="NSDictionary" key="NSOptions">
<string key="NS.key.0">NSAllowsEditingMultipleValuesSelection</string>
<reference key="NS.object.0" ref="6"/>
</object>
<int key="NSNibBindingConnectorVersion">2</int>
</object>
</object>
<int key="connectionID">163</int>
</object>
<object class="IBConnectionRecord">
<object class="IBBindingConnection" key="connection">
<string key="label">enabled: extensionsRegistered</string>
<reference key="source" ref="430596235"/>
<reference key="destination" ref="1001"/>
<object class="NSNibBindingConnector" key="connector">
<reference key="NSSource" ref="430596235"/>
<reference key="NSDestination" ref="1001"/>
<string key="NSLabel">enabled: extensionsRegistered</string>
<string key="NSBinding">enabled</string>
<string key="NSKeyPath">extensionsRegistered</string>
<int key="NSNibBindingConnectorVersion">2</int>
</object>
</object>
<int key="connectionID">166</int>
</object>
</object> </object>
<object class="IBMutableOrderedSet" key="objectRecords"> <object class="IBMutableOrderedSet" key="objectRecords">
<object class="NSArray" key="orderedObjects"> <object class="NSArray" key="orderedObjects">
...@@ -519,6 +577,7 @@ ...@@ -519,6 +577,7 @@
<reference ref="515710968"/> <reference ref="515710968"/>
<reference ref="425937350"/> <reference ref="425937350"/>
<reference ref="903818124"/> <reference ref="903818124"/>
<reference ref="430596235"/>
</object> </object>
<reference key="parent" ref="114461420"/> <reference key="parent" ref="114461420"/>
</object> </object>
...@@ -635,6 +694,20 @@ ...@@ -635,6 +694,20 @@
<reference key="object" ref="683407897"/> <reference key="object" ref="683407897"/>
<reference key="parent" ref="903818124"/> <reference key="parent" ref="903818124"/>
</object> </object>
<object class="IBObjectRecord">
<int key="objectID">156</int>
<reference key="object" ref="430596235"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="237072256"/>
</object>
<reference key="parent" ref="925353020"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">157</int>
<reference key="object" ref="237072256"/>
<reference key="parent" ref="430596235"/>
</object>
</object> </object>
</object> </object>
<object class="NSMutableDictionary" key="flattenedProperties"> <object class="NSMutableDictionary" key="flattenedProperties">
...@@ -650,6 +723,8 @@ ...@@ -650,6 +723,8 @@
<string>107.IBPluginDependency</string> <string>107.IBPluginDependency</string>
<string>108.IBPluginDependency</string> <string>108.IBPluginDependency</string>
<string>109.IBPluginDependency</string> <string>109.IBPluginDependency</string>
<string>156.IBPluginDependency</string>
<string>157.IBPluginDependency</string>
<string>49.IBEditorWindowLastContentRect</string> <string>49.IBEditorWindowLastContentRect</string>
<string>49.IBPluginDependency</string> <string>49.IBPluginDependency</string>
<string>49.IBWindowTemplateEditedContentRect</string> <string>49.IBWindowTemplateEditedContentRect</string>
...@@ -676,9 +751,11 @@ ...@@ -676,9 +751,11 @@
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>{{782, 863}, {327, 207}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>{{782, 863}, {327, 207}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>{{832, 795}, {327, 207}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>{{832, 795}, {327, 207}}</string>
<reference ref="6"/> <reference ref="6"/>
<string>{196, 240}</string> <string>{196, 240}</string>
<string>{{357, 418}, {480, 270}}</string> <string>{{357, 418}, {480, 270}}</string>
...@@ -712,7 +789,7 @@ ...@@ -712,7 +789,7 @@
</object> </object>
</object> </object>
<nil key="sourceID"/> <nil key="sourceID"/>
<int key="maxID">155</int> <int key="maxID">166</int>
</object> </object>
<object class="IBClassDescriber" key="IBDocument.Classes"> <object class="IBClassDescriber" key="IBDocument.Classes">
<object class="NSMutableArray" key="referencedPartialClassDescriptions"> <object class="NSMutableArray" key="referencedPartialClassDescriptions">
...@@ -798,6 +875,13 @@ ...@@ -798,6 +875,13 @@
<string key="minorKey">../third_party/GTM/Foundation/GTMNSObject+KeyValueObserving.h</string> <string key="minorKey">../third_party/GTM/Foundation/GTMNSObject+KeyValueObserving.h</string>
</object> </object>
</object> </object>
<object class="IBPartialClassDescription">
<string key="className">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">browser/cocoa/objc_zombie.h</string>
</object>
</object>
<object class="IBPartialClassDescription"> <object class="IBPartialClassDescription">
<string key="className">NSObject</string> <string key="className">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier"> <object class="IBClassDescriptionSource" key="sourceIdentifier">
......
...@@ -28,6 +28,7 @@ class ProfileSyncService; ...@@ -28,6 +28,7 @@ class ProfileSyncService;
BOOL preferencesRegistered_; BOOL preferencesRegistered_;
BOOL autofillRegistered_; BOOL autofillRegistered_;
BOOL themesRegistered_; BOOL themesRegistered_;
BOOL extensionsRegistered_;
// The preferred flags indicate which model types the user would // The preferred flags indicate which model types the user would
// like to sync. // like to sync.
...@@ -35,6 +36,7 @@ class ProfileSyncService; ...@@ -35,6 +36,7 @@ class ProfileSyncService;
BOOL preferencesPreferred_; BOOL preferencesPreferred_;
BOOL autofillPreferred_; BOOL autofillPreferred_;
BOOL themesPreferred_; BOOL themesPreferred_;
BOOL extensionsPreferred_;
} }
// syncService cannot be NULL. // syncService cannot be NULL.
...@@ -54,11 +56,13 @@ class ProfileSyncService; ...@@ -54,11 +56,13 @@ class ProfileSyncService;
@property(assign) BOOL preferencesRegistered; @property(assign) BOOL preferencesRegistered;
@property(assign) BOOL autofillRegistered; @property(assign) BOOL autofillRegistered;
@property(assign) BOOL themesRegistered; @property(assign) BOOL themesRegistered;
@property(assign) BOOL extensionsRegistered;
@property(assign) BOOL bookmarksPreferred; @property(assign) BOOL bookmarksPreferred;
@property(assign) BOOL preferencesPreferred; @property(assign) BOOL preferencesPreferred;
@property(assign) BOOL autofillPreferred; @property(assign) BOOL autofillPreferred;
@property(assign) BOOL themesPreferred; @property(assign) BOOL themesPreferred;
@property(assign) BOOL extensionsPreferred;
@property(readonly) BOOL okEnabled; @property(readonly) BOOL okEnabled;
......
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
@synthesize preferencesRegistered = preferencesRegistered_; @synthesize preferencesRegistered = preferencesRegistered_;
@synthesize autofillRegistered = autofillRegistered_; @synthesize autofillRegistered = autofillRegistered_;
@synthesize themesRegistered = themesRegistered_; @synthesize themesRegistered = themesRegistered_;
@synthesize extensionsRegistered = extensionsRegistered_;
// If you add another ***Preferred variable, you must update okEnabled and // If you add another ***Preferred variable, you must update okEnabled and
// keyPathsForValuesAffectingOkEnabled below. // keyPathsForValuesAffectingOkEnabled below.
...@@ -29,19 +30,21 @@ ...@@ -29,19 +30,21 @@
@synthesize preferencesPreferred = preferencesPreferred_; @synthesize preferencesPreferred = preferencesPreferred_;
@synthesize autofillPreferred = autofillPreferred_; @synthesize autofillPreferred = autofillPreferred_;
@synthesize themesPreferred = themesPreferred_; @synthesize themesPreferred = themesPreferred_;
@synthesize extensionsPreferred = extensionsPreferred_;
// The OK button should be clickable if and only if there's at least one // The OK button should be clickable if and only if there's at least one
// datatype chosen to sync. // datatype chosen to sync.
- (BOOL)okEnabled { - (BOOL)okEnabled {
return bookmarksPreferred_ || preferencesPreferred_ || autofillPreferred_ || return bookmarksPreferred_ || preferencesPreferred_ || autofillPreferred_ ||
themesPreferred_; themesPreferred_ || extensionsPreferred_;
} }
// Naming convention; makes okEnabled get updated whenever any of the below // Naming convention; makes okEnabled get updated whenever any of the below
// "Preferred" variables are updated. // "Preferred" variables are updated.
+ (NSSet*)keyPathsForValuesAffectingOkEnabled { + (NSSet*)keyPathsForValuesAffectingOkEnabled {
return [NSSet setWithObjects:@"bookmarksPreferred", @"preferencesPreferred", return [NSSet setWithObjects:@"bookmarksPreferred", @"preferencesPreferred",
@"autofillPreferred", @"themesPreferred", nil]; @"autofillPreferred", @"themesPreferred",
@"extensionsPreferred", nil];
} }
- (id)initWithProfileSyncService:(ProfileSyncService*)syncService { - (id)initWithProfileSyncService:(ProfileSyncService*)syncService {
...@@ -100,6 +103,7 @@ ...@@ -100,6 +103,7 @@
syncable::PREFERENCES, syncable::PREFERENCES,
syncable::AUTOFILL, syncable::AUTOFILL,
syncable::THEMES, syncable::THEMES,
syncable::EXTENSIONS,
}; };
DCHECK(std::includes(expected_types, DCHECK(std::includes(expected_types,
expected_types + arraysize(expected_types), expected_types + arraysize(expected_types),
...@@ -114,6 +118,8 @@ ...@@ -114,6 +118,8 @@
syncable::AUTOFILL)]; syncable::AUTOFILL)];
[self setThemesRegistered:ContainsKey(registered_types, [self setThemesRegistered:ContainsKey(registered_types,
syncable::THEMES)]; syncable::THEMES)];
[self setExtensionsRegistered:ContainsKey(registered_types,
syncable::EXTENSIONS)];
syncable::ModelTypeSet preferred_types; syncable::ModelTypeSet preferred_types;
syncService_->GetPreferredDataTypes(&preferred_types); syncService_->GetPreferredDataTypes(&preferred_types);
...@@ -128,6 +134,8 @@ ...@@ -128,6 +134,8 @@
syncable::AUTOFILL)]; syncable::AUTOFILL)];
[self setThemesPreferred:ContainsKey(preferred_types, [self setThemesPreferred:ContainsKey(preferred_types,
syncable::THEMES)]; syncable::THEMES)];
[self setExtensionsPreferred:ContainsKey(preferred_types,
syncable::EXTENSIONS)];
} }
- (void)windowWillClose:(NSNotification*)notification { - (void)windowWillClose:(NSNotification*)notification {
...@@ -158,6 +166,9 @@ ...@@ -158,6 +166,9 @@
if ([self themesPreferred]) { if ([self themesPreferred]) {
preferred_types.insert(syncable::THEMES); preferred_types.insert(syncable::THEMES);
} }
if ([self extensionsPreferred]) {
preferred_types.insert(syncable::EXTENSIONS);
}
syncService_->ChangePreferredDataTypes(preferred_types); syncService_->ChangePreferredDataTypes(preferred_types);
[self endSheet]; [self endSheet];
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment