diff options
-rw-r--r-- | chrome/app/nibs/Preferences.xib | 32 | ||||
-rw-r--r-- | chrome/browser/browser_theme_provider.cc | 7 | ||||
-rw-r--r-- | chrome/browser/cocoa/preferences_window_controller.h | 1 | ||||
-rw-r--r-- | chrome/browser/cocoa/preferences_window_controller.mm | 21 |
4 files changed, 55 insertions, 6 deletions
diff --git a/chrome/app/nibs/Preferences.xib b/chrome/app/nibs/Preferences.xib index ad5198c..c49b4b6 100644 --- a/chrome/app/nibs/Preferences.xib +++ b/chrome/app/nibs/Preferences.xib @@ -2,12 +2,13 @@ <archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.03"> <data> <int key="IBDocument.SystemTarget">1050</int> - <string key="IBDocument.SystemVersion">9L30</string> + <string key="IBDocument.SystemVersion">9L31a</string> <string key="IBDocument.InterfaceBuilderVersion">677</string> <string key="IBDocument.AppKitVersion">949.54</string> <string key="IBDocument.HIToolboxVersion">353.00</string> <object class="NSMutableArray" key="IBDocument.EditedObjectIDs"> <bool key="EncodedWithXMLCoder">YES</bool> + <integer value="482"/> <integer value="3"/> </object> <object class="NSArray" key="IBDocument.PluginDependencies"> @@ -1700,7 +1701,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <string key="NSClassName">NSView</string> </object> <object class="NSCustomView" id="393583039"> - <nil key="NSNextResponder"/> + <reference key="NSNextResponder"/> <int key="NSvFlags">268</int> <object class="NSMutableArray" key="NSSubviews"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -2270,6 +2271,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> </object> </object> <string key="NSFrameSize">{511, 352}</string> + <reference key="NSSuperview"/> <string key="NSClassName">NSView</string> </object> <object class="NSCustomView" id="933437956"> @@ -2297,6 +2299,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> </object> <string key="NSFrame">{{1, 1}, {468, 402}}</string> <reference key="NSSuperview" ref="14278481"/> + <reference key="NSNextKeyView" ref="772886817"/> <reference key="NSDocView" ref="772886817"/> <reference key="NSBGColor" ref="592613688"/> <int key="NScvFlags">4</int> @@ -2324,6 +2327,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> </object> <string key="NSFrame">{{-1, 60}, {485, 404}}</string> <reference key="NSSuperview" ref="933437956"/> + <reference key="NSNextKeyView" ref="277407604"/> <int key="NSsFlags">18</int> <reference key="NSVScroller" ref="331420378"/> <reference key="NSHScroller" ref="470087648"/> @@ -3068,6 +3072,26 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> </object> <int key="connectionID">517</int> </object> + <object class="IBConnectionRecord"> + <object class="IBBindingConnection" key="connection"> + <string key="label">enabled: isUsingDefaultTheme</string> + <reference key="source" ref="865039969"/> + <reference key="destination" ref="1001"/> + <object class="NSNibBindingConnector" key="connector"> + <reference key="NSSource" ref="865039969"/> + <reference key="NSDestination" ref="1001"/> + <string key="NSLabel">enabled: isUsingDefaultTheme</string> + <string key="NSBinding">enabled</string> + <string key="NSKeyPath">isUsingDefaultTheme</string> + <object class="NSDictionary" key="NSOptions"> + <string key="NS.key.0">NSValueTransformerName</string> + <string key="NS.object.0">NSNegateBoolean</string> + </object> + <int key="NSNibBindingConnectorVersion">2</int> + </object> + </object> + <int key="connectionID">521</int> + </object> </object> <object class="IBMutableOrderedSet" key="objectRecords"> <object class="NSArray" key="orderedObjects"> @@ -4442,7 +4466,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>{{80, 1032}, {474, 450}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>{{61, 998}, {511, 352}}</string> + <string>{{61, 804}, {511, 352}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>{{81, 523}, {483, 463}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> @@ -4521,7 +4545,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> </object> </object> <nil key="sourceID"/> - <int key="maxID">517</int> + <int key="maxID">521</int> </object> <object class="IBClassDescriber" key="IBDocument.Classes"> <object class="NSMutableArray" key="referencedPartialClassDescriptions"> diff --git a/chrome/browser/browser_theme_provider.cc b/chrome/browser/browser_theme_provider.cc index 85fcd15..44fb4d6 100644 --- a/chrome/browser/browser_theme_provider.cc +++ b/chrome/browser/browser_theme_provider.cc @@ -470,6 +470,13 @@ void BrowserThemeProvider::SetTheme(Extension* extension) { extension->path()); SetColorData(extension->GetThemeColors()); SetTintData(extension->GetThemeTints()); + + // Drop out to default theme if the theme data is empty. + if (images_.empty() && colors_.empty() && tints_.empty()) { + UseDefaultTheme(); + return; + } + SetDisplayPropertyData(extension->GetThemeDisplayProperties()); raw_data_.clear(); diff --git a/chrome/browser/cocoa/preferences_window_controller.h b/chrome/browser/cocoa/preferences_window_controller.h index a69591c..11e013d 100644 --- a/chrome/browser/cocoa/preferences_window_controller.h +++ b/chrome/browser/cocoa/preferences_window_controller.h @@ -71,6 +71,7 @@ class Profile; IBOutlet NSPathControl* downloadLocationControl_; StringPrefMember defaultDownloadLocation_; BooleanPrefMember askForSaveLocation_; + StringPrefMember currentTheme_; } // Designated initializer. |profile| should not be NULL. diff --git a/chrome/browser/cocoa/preferences_window_controller.mm b/chrome/browser/cocoa/preferences_window_controller.mm index 6227d09..48f4b9b 100644 --- a/chrome/browser/cocoa/preferences_window_controller.mm +++ b/chrome/browser/cocoa/preferences_window_controller.mm @@ -86,6 +86,7 @@ void RemoveAllButLastView(NSArray* views) { - (void)setShowPageOptionsButtons:(BOOL)value; - (void)setPasswordManagerEnabledIndex:(NSInteger)value; - (void)setFormAutofillEnabledIndex:(NSInteger)value; +- (void)setIsUsingDefaultTheme:(BOOL)value; - (void)setShowAlternateErrorPages:(BOOL)value; - (void)setUseSuggest:(BOOL)value; - (void)setDnsPrefetch:(BOOL)value; @@ -249,10 +250,11 @@ class PrefObserverBridge : public NotificationObserver { observer_.get()); // TODO(pinkerton): Register Default search. - // UserData panel + // Personal Stuff panel askSavePasswords_.Init(prefs::kPasswordManagerEnabled, prefs_, observer_.get()); formAutofill_.Init(prefs::kFormAutofillEnabled, prefs_, observer_.get()); + currentTheme_.Init(prefs::kCurrentThemeID, prefs_, observer_.get()); // Under the hood panel alternateErrorPages_.Init(prefs::kAlternateErrorPagesEnabled, @@ -260,6 +262,7 @@ class PrefObserverBridge : public NotificationObserver { useSuggest_.Init(prefs::kSearchSuggestEnabled, prefs_, observer_.get()); dnsPrefetch_.Init(prefs::kDnsPrefetchingEnabled, prefs_, observer_.get()); safeBrowsing_.Init(prefs::kSafeBrowsingEnabled, prefs_, observer_.get()); + // During unit tests, there is no local state object, so we fall back to // the prefs object (where we've explicitly registered this pref so we // know it's there). @@ -671,7 +674,7 @@ const int kDisabledIndex = 1; // Callback when preferences are changed. |prefName| is the name of the pref // that has changed. Unlike on Windows, we don't need to use this method for // initializing, that's handled by Cocoa Bindings. -// Handles prefs for the "Minor Tweaks" panel. +// Handles prefs for the "Personal Stuff" panel. - (void)userDataPrefChanged:(std::wstring*)prefName { if (*prefName == prefs::kPasswordManagerEnabled) { [self setPasswordManagerEnabledIndex:askSavePasswords_.GetValue() ? @@ -681,6 +684,9 @@ const int kDisabledIndex = 1; [self setFormAutofillEnabledIndex:formAutofill_.GetValue() ? kEnabledIndex : kDisabledIndex]; } + if (*prefName == prefs::kCurrentThemeID) { + [self setIsUsingDefaultTheme:currentTheme_.GetValue().length() == 0]; + } } // Called to launch the Keychain Access app to show the user's stored @@ -755,6 +761,17 @@ const int kDisabledIndex = 1; return formAutofill_.GetValue() ? kEnabledIndex : kDisabledIndex; } +- (void)setIsUsingDefaultTheme:(BOOL)value { + if (value) + [self recordUserAction:L"Options_IsUsingDefaultTheme_Enable"]; + else + [self recordUserAction:L"Options_IsUsingDefaultTheme_Disable"]; +} + +- (BOOL)isUsingDefaultTheme { + return currentTheme_.GetValue().length() == 0; +} + //------------------------------------------------------------------------- // Under the hood panel |