summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormirandac@chromium.org <mirandac@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-14 22:45:55 +0000
committermirandac@chromium.org <mirandac@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-14 22:45:55 +0000
commitf0510a846663dcfd2bc656b84e63fe70eaf39667 (patch)
tree7a793d32035b6e1c4ce24df35ebcf5402fd83f53
parent569c5fe15cd205eeecadb95216d8a86d73c8519e (diff)
downloadchromium_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
-rw-r--r--chrome/app/nibs/Preferences.xib32
-rw-r--r--chrome/browser/browser_theme_provider.cc7
-rw-r--r--chrome/browser/cocoa/preferences_window_controller.h1
-rw-r--r--chrome/browser/cocoa/preferences_window_controller.mm21
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