summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorthakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-06-02 17:37:43 +0000
committerthakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-06-02 17:37:43 +0000
commit41176ea8715819d805ae726913c5a7c4312b2947 (patch)
tree9462fb92e16fb4ffce0c8ac1ad2aa6d80a6b129b
parent5461e1db9037f0a996042b54ba31af4807567fb7 (diff)
downloadchromium_src-41176ea8715819d805ae726913c5a7c4312b2947.zip
chromium_src-41176ea8715819d805ae726913c5a7c4312b2947.tar.gz
chromium_src-41176ea8715819d805ae726913c5a7c4312b2947.tar.bz2
Mac: Hook up "Clear Auto-Open Settings" button
xib change: Hook up button to new outlet and action, bind its "enabled" property to fileHandlerUIEnabled. BUG=41794 TEST=Download a pdf and a doc file, open prefs in second window. In the download shelf, check pdf files to auto-open. Button in prefs should become active. Let doc files auto-open. Button should stay active. Disable auto-opening for both types in shelf, button should become inactive. Let pdfs auto-open, click button. Button should become inactive, pdfs should show up as non-autoopening in shelf. Review URL: http://codereview.chromium.org/2473002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@48736 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/app/nibs/Preferences.xib80
-rw-r--r--chrome/browser/cocoa/preferences_window_controller.h17
-rw-r--r--chrome/browser/cocoa/preferences_window_controller.mm29
3 files changed, 104 insertions, 22 deletions
diff --git a/chrome/app/nibs/Preferences.xib b/chrome/app/nibs/Preferences.xib
index 954363e..2322f83 100644
--- a/chrome/app/nibs/Preferences.xib
+++ b/chrome/app/nibs/Preferences.xib
@@ -8,11 +8,11 @@
<string key="IBDocument.HIToolboxVersion">353.00</string>
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
<bool key="EncodedWithXMLCoder">YES</bool>
- <integer value="483"/>
- <integer value="74"/>
+ <integer value="481"/>
<integer value="482"/>
+ <integer value="74"/>
<integer value="3"/>
- <integer value="481"/>
+ <integer value="483"/>
</object>
<object class="NSArray" key="IBDocument.PluginDependencies">
<bool key="EncodedWithXMLCoder">YES</bool>
@@ -312,7 +312,7 @@
<reference key="NSSuperview" ref="1016273328"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="1018797611">
- <int key="NSCellFlags">604110336</int>
+ <int key="NSCellFlags">67239424</int>
<int key="NSCellFlags2">134217728</int>
<string key="NSContents">^IDS_OPTIONS_AUTOOPENFILETYPES_RESETTODEFAULT</string>
<reference key="NSSupport" ref="445696277"/>
@@ -846,7 +846,7 @@ AAMAAAABABIAAAECAAMAAAAEAAAFxgEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES
AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABBxwAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS
AAMAAAABAAEAAAFTAAMAAAAEAAAFzodzAAcAAAwYAAAF1gAAAAAACAAIAAgACAABAAEAAQABAAAMGGFw
cGwCAAAAbW50clJHQiBYWVogB9YABAADABMALAASYWNzcEFQUEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAPbWAAEAAAAA0y1hcHBsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAPbWAAEAAAAA0y1hcHBs2U706y3Sst1fqit5+wYbUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAOclhZWgAAASwAAAAUZ1hZWgAAAUAAAAAUYlhZWgAAAVQAAAAUd3RwdAAAAWgAAAAUY2hhZAAA
AXwAAAAsclRSQwAAAagAAAAOZ1RSQwAAAbgAAAAOYlRSQwAAAcgAAAAOdmNndAAAAdgAAAMSbmRpbgAA
BOwAAAY+ZGVzYwAACywAAABkZHNjbQAAC5AAAAAubW1vZAAAC8AAAAAoY3BydAAAC+gAAAAtWFlaIAAA
@@ -1406,7 +1406,7 @@ AAMAAAABABIAAAECAAMAAAAEAAAFxgEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES
AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABBxwAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS
AAMAAAABAAEAAAFTAAMAAAAEAAAFzodzAAcAAAwYAAAF1gAAAAAACAAIAAgACAABAAEAAQABAAAMGGFw
cGwCAAAAbW50clJHQiBYWVogB9YABAADABMALAASYWNzcEFQUEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAPbWAAEAAAAA0y1hcHBsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAPbWAAEAAAAA0y1hcHBs2U706y3Sst1fqit5+wYbUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAOclhZWgAAASwAAAAUZ1hZWgAAAUAAAAAUYlhZWgAAAVQAAAAUd3RwdAAAAWgAAAAUY2hhZAAA
AXwAAAAsclRSQwAAAagAAAAOZ1RSQwAAAbgAAAAOYlRSQwAAAcgAAAAOdmNndAAAAdgAAAMSbmRpbgAA
BOwAAAY+ZGVzYwAACywAAABkZHNjbQAAC5AAAAAubW1vZAAAC8AAAAAoY3BydAAAC+gAAAAtWFlaIAAA
@@ -1845,7 +1845,7 @@ AAMAAAABABIAAAECAAMAAAAEAAAFxgEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES
AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABBxwAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS
AAMAAAABAAEAAAFTAAMAAAAEAAAFzodzAAcAAAwYAAAF1gAAAAAACAAIAAgACAABAAEAAQABAAAMGGFw
cGwCAAAAbW50clJHQiBYWVogB9YABAADABMALAASYWNzcEFQUEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAPbWAAEAAAAA0y1hcHBsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAPbWAAEAAAAA0y1hcHBs2U706y3Sst1fqit5+wYbUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAOclhZWgAAASwAAAAUZ1hZWgAAAUAAAAAUYlhZWgAAAVQAAAAUd3RwdAAAAWgAAAAUY2hhZAAA
AXwAAAAsclRSQwAAAagAAAAOZ1RSQwAAAbgAAAAOYlRSQwAAAcgAAAAOdmNndAAAAdgAAAMSbmRpbgAA
BOwAAAY+ZGVzYwAACywAAABkZHNjbQAAC5AAAAAubW1vZAAAC8AAAAAoY3BydAAAC+gAAAAtWFlaIAAA
@@ -2182,7 +2182,7 @@ AAMAAAABABIAAAECAAMAAAAEAAAFxgEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES
AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABBxwAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS
AAMAAAABAAEAAAFTAAMAAAAEAAAFzodzAAcAAAwYAAAF1gAAAAAACAAIAAgACAABAAEAAQABAAAMGGFw
cGwCAAAAbW50clJHQiBYWVogB9YABAADABMALAASYWNzcEFQUEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAPbWAAEAAAAA0y1hcHBsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAPbWAAEAAAAA0y1hcHBs2U706y3Sst1fqit5+wYbUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAOclhZWgAAASwAAAAUZ1hZWgAAAUAAAAAUYlhZWgAAAVQAAAAUd3RwdAAAAWgAAAAUY2hhZAAA
AXwAAAAsclRSQwAAAagAAAAOZ1RSQwAAAbgAAAAOYlRSQwAAAcgAAAAOdmNndAAAAdgAAAMSbmRpbgAA
BOwAAAY+ZGVzYwAACywAAABkZHNjbQAAC5AAAAAubW1vZAAAC8AAAAAoY3BydAAAC+gAAAAtWFlaIAAA
@@ -3798,6 +3798,54 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
</object>
<int key="connectionID">666</int>
</object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">resetFileHandlersButton_</string>
+ <reference key="source" ref="1001"/>
+ <reference key="destination" ref="348105916"/>
+ </object>
+ <int key="connectionID">668</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">resetAutoOpenFiles:</string>
+ <reference key="source" ref="1001"/>
+ <reference key="destination" ref="348105916"/>
+ </object>
+ <int key="connectionID">669</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBBindingConnection" key="connection">
+ <string key="label">enabled: fileHandlerUIEnabled</string>
+ <reference key="source" ref="1018797611"/>
+ <reference key="destination" ref="1001"/>
+ <object class="NSNibBindingConnector" key="connector">
+ <reference key="NSSource" ref="1018797611"/>
+ <reference key="NSDestination" ref="1001"/>
+ <string key="NSLabel">enabled: fileHandlerUIEnabled</string>
+ <string key="NSBinding">enabled</string>
+ <string key="NSKeyPath">fileHandlerUIEnabled</string>
+ <int key="NSNibBindingConnectorVersion">2</int>
+ </object>
+ </object>
+ <int key="connectionID">672</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBBindingConnection" key="connection">
+ <string key="label">enabled: fileHandlerUIEnabled</string>
+ <reference key="source" ref="348105916"/>
+ <reference key="destination" ref="1001"/>
+ <object class="NSNibBindingConnector" key="connector">
+ <reference key="NSSource" ref="348105916"/>
+ <reference key="NSDestination" ref="1001"/>
+ <string key="NSLabel">enabled: fileHandlerUIEnabled</string>
+ <string key="NSBinding">enabled</string>
+ <string key="NSKeyPath">fileHandlerUIEnabled</string>
+ <int key="NSNibBindingConnectorVersion">2</int>
+ </object>
+ </object>
+ <int key="connectionID">679</int>
+ </object>
</object>
<object class="IBMutableOrderedSet" key="objectRecords">
<object class="NSArray" key="orderedObjects">
@@ -5309,8 +5357,8 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <string>{{329, 276}, {450, 286}}</string>
- <string>{{329, 276}, {450, 286}}</string>
+ <string>{{329, 154}, {450, 286}}</string>
+ <string>{{329, 154}, {450, 286}}</string>
<reference ref="6"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
@@ -5362,14 +5410,14 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <string>{{555, 302}, {540, 468}}</string>
+ <string>{{812, 302}, {540, 468}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSMutableArray">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
- <string>{{555, 448}, {540, 408}}</string>
+ <string>{{812, 448}, {540, 408}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <string>{{329, 136}, {540, 463}}</string>
+ <string>{{21, 136}, {540, 463}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>{{682, 562}, {616, 0}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
@@ -5489,7 +5537,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
</object>
</object>
<nil key="sourceID"/>
- <int key="maxID">666</int>
+ <int key="maxID">679</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
@@ -5672,6 +5720,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<string>openProxyPreferences:</string>
<string>privacyLearnMore:</string>
<string>removeSelectedHomepages:</string>
+ <string>resetAutoOpenFiles:</string>
<string>resetThemeToDefault:</string>
<string>showAutoFillSettings:</string>
<string>showCertificates:</string>
@@ -5706,6 +5755,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<string>id</string>
<string>id</string>
<string>id</string>
+ <string>id</string>
</object>
</object>
<object class="NSMutableDictionary" key="outlets">
@@ -5731,6 +5781,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<string>personalStuffGroupSync_</string>
<string>personalStuffGroupThemes_</string>
<string>personalStuffView_</string>
+ <string>resetFileHandlersButton_</string>
<string>syncButton_</string>
<string>syncCustomizeButton_</string>
<string>syncLink_</string>
@@ -5764,6 +5815,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<string>NSButton</string>
<string>NSButton</string>
<string>NSButton</string>
+ <string>NSButton</string>
<string>NSTextField</string>
<string>NSToolbar</string>
<string>NSView</string>
diff --git a/chrome/browser/cocoa/preferences_window_controller.h b/chrome/browser/cocoa/preferences_window_controller.h
index c117384..43c8a93 100644
--- a/chrome/browser/cocoa/preferences_window_controller.h
+++ b/chrome/browser/cocoa/preferences_window_controller.h
@@ -107,6 +107,8 @@ class ProfileSyncService;
IBOutlet NSButton* downloadLocationButton_;
StringPrefMember defaultDownloadLocation_;
BooleanPrefMember askForSaveLocation_;
+ IBOutlet NSButton* resetFileHandlersButton_;
+ StringPrefMember autoOpenFiles_;
BooleanPrefMember translateEnabled_;
BooleanPrefMember tabsToLinks_;
FontLanguageSettingsController* fontLanguageSettings_;
@@ -126,29 +128,30 @@ class ProfileSyncService;
// IBAction methods for responding to user actions.
// Basics panel
-- (IBAction)makeDefaultBrowser:(id)sender;
- (IBAction)addHomepage:(id)sender;
- (IBAction)removeSelectedHomepages:(id)sender;
- (IBAction)useCurrentPagesAsHomepage:(id)sender;
- (IBAction)manageSearchEngines:(id)sender;
+- (IBAction)makeDefaultBrowser:(id)sender;
// User Data panel
+- (IBAction)doSyncAction:(id)sender;
+- (IBAction)doSyncCustomize:(id)sender;
+- (IBAction)doSyncReauthentication:(id)sender;
- (IBAction)showSavedPasswords:(id)sender;
- (IBAction)showAutoFillSettings:(id)sender;
- (IBAction)importData:(id)sender;
- (IBAction)resetThemeToDefault:(id)sender;
- (IBAction)themesGallery:(id)sender;
-- (IBAction)doSyncAction:(id)sender;
-- (IBAction)doSyncCustomize:(id)sender;
-- (IBAction)doSyncReauthentication:(id)sender;
// Under the hood
-- (IBAction)browseDownloadLocation:(id)sender;
-- (IBAction)clearData:(id)sender;
- (IBAction)showContentSettings:(id)sender;
+- (IBAction)clearData:(id)sender;
- (IBAction)privacyLearnMore:(id)sender;
-- (IBAction)openProxyPreferences:(id)sender;
+- (IBAction)browseDownloadLocation:(id)sender;
+- (IBAction)resetAutoOpenFiles:(id)sender;
- (IBAction)changeFontAndLanguageSettings:(id)sender;
+- (IBAction)openProxyPreferences:(id)sender;
- (IBAction)showCertificates:(id)sender;
// When a toolbar button is clicked
diff --git a/chrome/browser/cocoa/preferences_window_controller.mm b/chrome/browser/cocoa/preferences_window_controller.mm
index f9a9c65..74e9c21 100644
--- a/chrome/browser/cocoa/preferences_window_controller.mm
+++ b/chrome/browser/cocoa/preferences_window_controller.mm
@@ -28,6 +28,7 @@
#import "chrome/browser/cocoa/l10n_util.h"
#import "chrome/browser/cocoa/search_engine_list_model.h"
#import "chrome/browser/cocoa/sync_customize_controller_cppsafe.h"
+#include "chrome/browser/download/download_manager.h"
#include "chrome/browser/extensions/extensions_service.h"
#include "chrome/browser/metrics/metrics_service.h"
#include "chrome/browser/metrics/user_metrics.h"
@@ -341,10 +342,14 @@ CGFloat AutoSizeUnderTheHoodContent(NSView* view,
- (void)setSafeBrowsing:(BOOL)value;
- (void)setMetricsRecording:(BOOL)value;
- (void)setAskForSaveLocation:(BOOL)value;
+- (void)setFileHandlerUIEnabled:(BOOL)value;
- (void)setTranslateEnabled:(BOOL)value;
- (void)setTabsToLinks:(BOOL)value;
- (void)displayPreferenceViewForPage:(OptionsPage)page
animate:(BOOL)animate;
+
+// KVC getter methods.
+- (BOOL)fileHandlerUIEnabled;
@end
namespace PreferencesWindowControllerInternal {
@@ -698,6 +703,8 @@ 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());
+ autoOpenFiles_.Init(
+ prefs::kDownloadExtensionsToOpen, prefs_, observer_.get());
translateEnabled_.Init(prefs::kEnableTranslate, prefs_, observer_.get());
tabsToLinks_.Init(prefs::kWebkitTabsToLinks, prefs_, observer_.get());
@@ -1331,9 +1338,14 @@ const int kDisabledIndex = 1;
}
else if (*prefName == prefs::kEnableTranslate) {
[self setTranslateEnabled:translateEnabled_.GetValue() ? YES : NO];
- } else if (*prefName == prefs::kWebkitTabsToLinks) {
+ }
+ else if (*prefName == prefs::kWebkitTabsToLinks) {
[self setTabsToLinks:tabsToLinks_.GetValue() ? YES : NO];
}
+ else if (*prefName == prefs::kDownloadExtensionsToOpen) {
+ // Poke KVC.
+ [self setFileHandlerUIEnabled:[self fileHandlerUIEnabled]];
+ }
}
// Set the new download path and notify the UI via KVO.
@@ -1387,6 +1399,11 @@ const int kDisabledIndex = 1;
GURL(), NEW_WINDOW, PageTransition::LINK);
}
+- (IBAction)resetAutoOpenFiles:(id)sender {
+ profile_->GetDownloadManager()->ResetAutoOpenFiles();
+ [self recordUserAction:UserMetricsAction("Options_ResetAutoOpenFiles")];
+}
+
- (IBAction)openProxyPreferences:(id)sender {
NSArray* itemsToOpen = [NSArray arrayWithObject:[NSURL fileURLWithPath:
@"/System/Library/PreferencePanes/Network.prefPane"]];
@@ -1551,6 +1568,16 @@ const int kDisabledIndex = 1;
askForSaveLocation_.SetValue(value);
}
+- (BOOL)fileHandlerUIEnabled {
+ if (!profile_->GetDownloadManager()) // Not set in unit tests.
+ return NO;
+ return profile_->GetDownloadManager()->HasAutoOpenFileTypesRegistered();
+}
+
+- (void)setFileHandlerUIEnabled:(BOOL)value {
+ [resetFileHandlersButton_ setEnabled:value];
+}
+
- (BOOL)translateEnabled {
return translateEnabled_.GetValue();
}