diff options
author | thakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-02 17:37:43 +0000 |
---|---|---|
committer | thakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-02 17:37:43 +0000 |
commit | 41176ea8715819d805ae726913c5a7c4312b2947 (patch) | |
tree | 9462fb92e16fb4ffce0c8ac1ad2aa6d80a6b129b | |
parent | 5461e1db9037f0a996042b54ba31af4807567fb7 (diff) | |
download | chromium_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.xib | 80 | ||||
-rw-r--r-- | chrome/browser/cocoa/preferences_window_controller.h | 17 | ||||
-rw-r--r-- | chrome/browser/cocoa/preferences_window_controller.mm | 29 |
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(); } |