diff options
author | mirandac@chromium.org <mirandac@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-14 22:45:55 +0000 |
---|---|---|
committer | mirandac@chromium.org <mirandac@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-14 22:45:55 +0000 |
commit | f0510a846663dcfd2bc656b84e63fe70eaf39667 (patch) | |
tree | 7a793d32035b6e1c4ce24df35ebcf5402fd83f53 /chrome/browser | |
parent | 569c5fe15cd205eeecadb95216d8a86d73c8519e (diff) | |
download | chromium_src-f0510a846663dcfd2bc656b84e63fe70eaf39667.zip chromium_src-f0510a846663dcfd2bc656b84e63fe70eaf39667.tar.gz chromium_src-f0510a846663dcfd2bc656b84e63fe70eaf39667.tar.bz2 |
Disable "Reset to Default Theme" button in Google Chrome Options / Personal Stuff when the default theme is already set.
This change is for the Mac OS; Windows change in a separate patch.
BUG= http://crbug.com/18585
TEST= Install a default theme, note that button is disabled. Install a non-default theme, note that button is enabled. Rinse, repeat.
Review URL: http://codereview.chromium.org/278004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@29047 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser')
-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 |
3 files changed, 27 insertions, 2 deletions
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 |