Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(191)

Side by Side Diff: chrome/browser/cocoa/preferences_window_controller.mm

Issue 3304015: Use PrefChangeRegistrar everywhere (Closed)
Patch Set: final version for commit Created 10 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #import "chrome/browser/cocoa/preferences_window_controller.h" 5 #import "chrome/browser/cocoa/preferences_window_controller.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "app/l10n_util.h" 9 #include "app/l10n_util.h"
10 #include "app/l10n_util_mac.h" 10 #include "app/l10n_util_mac.h"
(...skipping 312 matching lines...) Expand 10 before | Expand all | Expand 10 after
323 @interface PreferencesWindowController(Private) 323 @interface PreferencesWindowController(Private)
324 // Callback when preferences are changed. |prefName| is the name of the 324 // Callback when preferences are changed. |prefName| is the name of the
325 // pref that has changed. 325 // pref that has changed.
326 - (void)prefChanged:(std::string*)prefName; 326 - (void)prefChanged:(std::string*)prefName;
327 // Callback when sync state has changed. syncService_ needs to be 327 // Callback when sync state has changed. syncService_ needs to be
328 // queried to find out what happened. 328 // queried to find out what happened.
329 - (void)syncStateChanged; 329 - (void)syncStateChanged;
330 // Record the user performed a certain action and save the preferences. 330 // Record the user performed a certain action and save the preferences.
331 - (void)recordUserAction:(const UserMetricsAction&) action; 331 - (void)recordUserAction:(const UserMetricsAction&) action;
332 - (void)registerPrefObservers; 332 - (void)registerPrefObservers;
333 - (void)unregisterPrefObservers;
334 333
335 // KVC setter methods. 334 // KVC setter methods.
336 - (void)setNewTabPageIsHomePageIndex:(NSInteger)val; 335 - (void)setNewTabPageIsHomePageIndex:(NSInteger)val;
337 - (void)setHomepageURL:(NSString*)urlString; 336 - (void)setHomepageURL:(NSString*)urlString;
338 - (void)setRestoreOnStartupIndex:(NSInteger)type; 337 - (void)setRestoreOnStartupIndex:(NSInteger)type;
339 - (void)setShowHomeButton:(BOOL)value; 338 - (void)setShowHomeButton:(BOOL)value;
340 - (void)setPasswordManagerEnabledIndex:(NSInteger)value; 339 - (void)setPasswordManagerEnabledIndex:(NSInteger)value;
341 - (void)setIsUsingDefaultTheme:(BOOL)value; 340 - (void)setIsUsingDefaultTheme:(BOOL)value;
342 - (void)setShowAlternateErrorPages:(BOOL)value; 341 - (void)setShowAlternateErrorPages:(BOOL)value;
343 - (void)setUseSuggest:(BOOL)value; 342 - (void)setUseSuggest:(BOOL)value;
(...skipping 410 matching lines...) Expand 10 before | Expand all | Expand 10 after
754 [NSColor colorWithCalibratedWhite:kBannerStrokeColor 753 [NSColor colorWithCalibratedWhite:kBannerStrokeColor
755 alpha:1.0]; 754 alpha:1.0];
756 [managedPrefsBannerView_ setStrokeColor:bannerStrokeColor]; 755 [managedPrefsBannerView_ setStrokeColor:bannerStrokeColor];
757 } 756 }
758 757
759 - (void)dealloc { 758 - (void)dealloc {
760 if (syncService_) { 759 if (syncService_) {
761 syncService_->RemoveObserver(observer_.get()); 760 syncService_->RemoveObserver(observer_.get());
762 } 761 }
763 [[NSNotificationCenter defaultCenter] removeObserver:self]; 762 [[NSNotificationCenter defaultCenter] removeObserver:self];
764 [self unregisterPrefObservers];
765 [animation_ setDelegate:nil]; 763 [animation_ setDelegate:nil];
766 [animation_ stopAnimation]; 764 [animation_ stopAnimation];
767 [super dealloc]; 765 [super dealloc];
768 } 766 }
769 767
770 // Xcode 3.1.x version of Interface Builder doesn't do a lot for editing 768 // Xcode 3.1.x version of Interface Builder doesn't do a lot for editing
771 // toolbars in XIB. So the toolbar's delegate is set to the controller so it 769 // toolbars in XIB. So the toolbar's delegate is set to the controller so it
772 // can tell the toolbar what items are selectable. 770 // can tell the toolbar what items are selectable.
773 - (NSArray*)toolbarSelectableItemIdentifiers:(NSToolbar*)toolbar { 771 - (NSArray*)toolbarSelectableItemIdentifiers:(NSToolbar*)toolbar {
774 DCHECK(toolbar == toolbar_); 772 DCHECK(toolbar == toolbar_);
775 return [[toolbar_ items] valueForKey:@"itemIdentifier"]; 773 return [[toolbar_ items] valueForKey:@"itemIdentifier"];
776 } 774 }
777 775
778 // Register our interest in the preferences we're displaying so if anything 776 // Register our interest in the preferences we're displaying so if anything
779 // else in the UI changes them we will be updated. 777 // else in the UI changes them we will be updated.
780 - (void)registerPrefObservers { 778 - (void)registerPrefObservers {
781 if (!prefs_) return; 779 if (!prefs_) return;
782 780
783 // Basics panel 781 // Basics panel
784 prefs_->AddPrefObserver(prefs::kURLsToRestoreOnStartup, observer_.get()); 782 registrar_.Init(prefs_);
783 registrar_.Add(prefs::kURLsToRestoreOnStartup, observer_.get());
785 restoreOnStartup_.Init(prefs::kRestoreOnStartup, prefs_, observer_.get()); 784 restoreOnStartup_.Init(prefs::kRestoreOnStartup, prefs_, observer_.get());
786 newTabPageIsHomePage_.Init(prefs::kHomePageIsNewTabPage, 785 newTabPageIsHomePage_.Init(prefs::kHomePageIsNewTabPage,
787 prefs_, observer_.get()); 786 prefs_, observer_.get());
788 homepage_.Init(prefs::kHomePage, prefs_, observer_.get()); 787 homepage_.Init(prefs::kHomePage, prefs_, observer_.get());
789 showHomeButton_.Init(prefs::kShowHomeButton, prefs_, observer_.get()); 788 showHomeButton_.Init(prefs::kShowHomeButton, prefs_, observer_.get());
790 789
791 // Personal Stuff panel 790 // Personal Stuff panel
792 askSavePasswords_.Init(prefs::kPasswordManagerEnabled, 791 askSavePasswords_.Init(prefs::kPasswordManagerEnabled,
793 prefs_, observer_.get()); 792 prefs_, observer_.get());
794 autoFillEnabled_.Init(prefs::kAutoFillEnabled, prefs_, observer_.get()); 793 autoFillEnabled_.Init(prefs::kAutoFillEnabled, prefs_, observer_.get());
(...skipping 21 matching lines...) Expand all
816 metricsReporting_.Init(prefs::kMetricsReportingEnabled, 815 metricsReporting_.Init(prefs::kMetricsReportingEnabled,
817 local, observer_.get()); 816 local, observer_.get());
818 defaultDownloadLocation_.Init(prefs::kDownloadDefaultDirectory, prefs_, 817 defaultDownloadLocation_.Init(prefs::kDownloadDefaultDirectory, prefs_,
819 observer_.get()); 818 observer_.get());
820 askForSaveLocation_.Init(prefs::kPromptForDownload, prefs_, observer_.get()); 819 askForSaveLocation_.Init(prefs::kPromptForDownload, prefs_, observer_.get());
821 820
822 // We don't need to observe changes in this value. 821 // We don't need to observe changes in this value.
823 lastSelectedPage_.Init(prefs::kOptionsWindowLastTabIndex, local, NULL); 822 lastSelectedPage_.Init(prefs::kOptionsWindowLastTabIndex, local, NULL);
824 } 823 }
825 824
826 // Clean up what was registered in -registerPrefObservers. We only have to
827 // clean up the non-PrefMember registrations.
828 - (void)unregisterPrefObservers {
829 if (!prefs_) return;
830
831 // Basics
832 prefs_->RemovePrefObserver(prefs::kURLsToRestoreOnStartup, observer_.get());
833
834 // Nothing to do for other panels...
835 }
836
837 // Called when the window wants to be closed. 825 // Called when the window wants to be closed.
838 - (BOOL)windowShouldClose:(id)sender { 826 - (BOOL)windowShouldClose:(id)sender {
839 // Stop any animation and clear the delegate to avoid stale pointers. 827 // Stop any animation and clear the delegate to avoid stale pointers.
840 [animation_ setDelegate:nil]; 828 [animation_ setDelegate:nil];
841 [animation_ stopAnimation]; 829 [animation_ stopAnimation];
842 830
843 return YES; 831 return YES;
844 } 832 }
845 833
846 // Called when the user hits the escape key. Closes the window. 834 // Called when the user hits the escape key. Closes the window.
(...skipping 1284 matching lines...) Expand 10 before | Expand all | Expand 10 after
2131 case OPTIONS_PAGE_ADVANCED: 2119 case OPTIONS_PAGE_ADVANCED:
2132 return underTheHoodView_; 2120 return underTheHoodView_;
2133 case OPTIONS_PAGE_DEFAULT: 2121 case OPTIONS_PAGE_DEFAULT:
2134 case OPTIONS_PAGE_COUNT: 2122 case OPTIONS_PAGE_COUNT:
2135 LOG(DFATAL) << "Invalid page value " << page; 2123 LOG(DFATAL) << "Invalid page value " << page;
2136 } 2124 }
2137 return basicsView_; 2125 return basicsView_;
2138 } 2126 }
2139 2127
2140 @end 2128 @end
OLDNEW
« no previous file with comments | « chrome/browser/cocoa/preferences_window_controller.h ('k') | chrome/browser/dom_ui/core_options_handler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698