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 @@
<int key="NSPeriodicInterval">25</int>
</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">
<reference key="NSNextResponder" ref="925353020"/>
<int key="NSvFlags">292</int>
......@@ -459,6 +481,42 @@
</object>
<int key="connectionID">149</int>
</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 class="IBMutableOrderedSet" key="objectRecords">
<object class="NSArray" key="orderedObjects">
......@@ -519,6 +577,7 @@
<reference ref="515710968"/>
<reference ref="425937350"/>
<reference ref="903818124"/>
<reference ref="430596235"/>
</object>
<reference key="parent" ref="114461420"/>
</object>
......@@ -635,6 +694,20 @@
<reference key="object" ref="683407897"/>
<reference key="parent" ref="903818124"/>
</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 class="NSMutableDictionary" key="flattenedProperties">
......@@ -650,6 +723,8 @@
<string>107.IBPluginDependency</string>
<string>108.IBPluginDependency</string>
<string>109.IBPluginDependency</string>
<string>156.IBPluginDependency</string>
<string>157.IBPluginDependency</string>
<string>49.IBEditorWindowLastContentRect</string>
<string>49.IBPluginDependency</string>
<string>49.IBWindowTemplateEditedContentRect</string>
......@@ -676,9 +751,11 @@
<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>{{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"/>
<string>{196, 240}</string>
<string>{{357, 418}, {480, 270}}</string>
......@@ -712,7 +789,7 @@
</object>
</object>
<nil key="sourceID"/>
<int key="maxID">155</int>
<int key="maxID">166</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
......@@ -798,6 +875,13 @@
<string key="minorKey">../third_party/GTM/Foundation/GTMNSObject+KeyValueObserving.h</string>
</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">
<string key="className">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
......
......@@ -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;
......
......@@ -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];
}
......
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