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

Side by Side Diff: chrome/browser/autofill/autofill_dialog_controller_mac.mm

Issue 668171: AutoFill Mac preference for enabling Address Book "me" card usage.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years, 9 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 | Annotate | Revision Log
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/autofill/autofill_dialog_controller_mac.h" 5 #import "chrome/browser/autofill/autofill_dialog_controller_mac.h"
6 #include "app/l10n_util.h" 6 #include "app/l10n_util.h"
7 #include "base/mac_util.h" 7 #include "base/mac_util.h"
8 #import "chrome/browser/autofill/autofill_address_model_mac.h" 8 #import "chrome/browser/autofill/autofill_address_model_mac.h"
9 #import "chrome/browser/autofill/autofill_address_view_controller_mac.h" 9 #import "chrome/browser/autofill/autofill_address_view_controller_mac.h"
10 #import "chrome/browser/autofill/autofill_credit_card_model_mac.h" 10 #import "chrome/browser/autofill/autofill_credit_card_model_mac.h"
11 #import "chrome/browser/autofill/autofill_credit_card_view_controller_mac.h" 11 #import "chrome/browser/autofill/autofill_credit_card_view_controller_mac.h"
12 #include "chrome/browser/browser_process.h" 12 #include "chrome/browser/browser_process.h"
13 #import "chrome/browser/cocoa/disclosure_view_controller.h" 13 #import "chrome/browser/cocoa/disclosure_view_controller.h"
14 #import "chrome/browser/cocoa/section_separator_view.h" 14 #import "chrome/browser/cocoa/section_separator_view.h"
15 #import "chrome/browser/cocoa/window_size_autosaver.h" 15 #import "chrome/browser/cocoa/window_size_autosaver.h"
16 #include "chrome/browser/pref_service.h"
16 #include "chrome/browser/profile.h" 17 #include "chrome/browser/profile.h"
17 #include "chrome/common/pref_names.h" 18 #include "chrome/common/pref_names.h"
18 #include "grit/generated_resources.h" 19 #include "grit/generated_resources.h"
19 20
20 @interface AutoFillDialogController (PrivateMethods) 21 @interface AutoFillDialogController (PrivateMethods)
21 - (void)runModalDialog; 22 - (void)runModalDialog;
22 - (void)installChildViews; 23 - (void)installChildViews;
23 @end 24 @end
24 25
25 @implementation AutoFillDialogController 26 @implementation AutoFillDialogController
26 27
28 @synthesize auxiliaryEnabled = auxiliaryEnabled_;
29
27 + (void)showAutoFillDialogWithObserver:(AutoFillDialogObserver*)observer 30 + (void)showAutoFillDialogWithObserver:(AutoFillDialogObserver*)observer
28 autoFillProfiles:(const std::vector<AutoFillProfile*>&)profiles 31 autoFillProfiles:(const std::vector<AutoFillProfile*>&)profiles
29 creditCards:(const std::vector<CreditCard*>&)creditCards { 32 creditCards:(const std::vector<CreditCard*>&)creditCards
33 profile:(Profile*)profile {
30 AutoFillDialogController* controller = 34 AutoFillDialogController* controller =
31 [AutoFillDialogController controllerWithObserver:observer 35 [AutoFillDialogController controllerWithObserver:observer
32 autoFillProfiles:profiles 36 autoFillProfiles:profiles
33 creditCards:creditCards]; 37 creditCards:creditCards
38 profile:profile];
34 39
35 // Only run modal dialog if it is not already being shown. 40 // Only run modal dialog if it is not already being shown.
36 if (![controller isWindowLoaded]) { 41 if (![controller isWindowLoaded]) {
37 [controller runModalDialog]; 42 [controller runModalDialog];
38 } 43 }
39 } 44 }
40 45
41 - (void)awakeFromNib { 46 - (void)awakeFromNib {
42 [addressSectionBox_ setShowTopLine:FALSE]; 47 [addressSectionBox_ setShowTopLine:FALSE];
43 [self installChildViews]; 48 [self installChildViews];
(...skipping 27 matching lines...) Expand all
71 creditCards_.resize([creditCardFormViewControllers_ count]); 76 creditCards_.resize([creditCardFormViewControllers_ count]);
72 int j = 0; 77 int j = 0;
73 for (AutoFillCreditCardViewController* creditCardFormViewController in 78 for (AutoFillCreditCardViewController* creditCardFormViewController in
74 creditCardFormViewControllers_.get()) { 79 creditCardFormViewControllers_.get()) {
75 // Initialize the credit card here. The default initializer does not 80 // Initialize the credit card here. The default initializer does not
76 // fully initialize. 81 // fully initialize.
77 creditCards_[j] = CreditCard(ASCIIToUTF16(""), 0); 82 creditCards_[j] = CreditCard(ASCIIToUTF16(""), 0);
78 [creditCardFormViewController copyModelToCreditCard:&creditCards_[j]]; 83 [creditCardFormViewController copyModelToCreditCard:&creditCards_[j]];
79 j++; 84 j++;
80 } 85 }
86 profile_->GetPrefs()->SetBoolean(prefs::kAutoFillAuxiliaryProfilesEnabled,
87 auxiliaryEnabled_);
81 observer_->OnAutoFillDialogApply(&profiles_, &creditCards_); 88 observer_->OnAutoFillDialogApply(&profiles_, &creditCards_);
82 } 89 }
83 [self closeDialog]; 90 [self closeDialog];
84 } 91 }
85 92
86 // Called when the user clicks the cancel button. All we need to do is stop 93 // Called when the user clicks the cancel button. All we need to do is stop
87 // the modal session. 94 // the modal session.
88 - (IBAction)cancel:(id)sender { 95 - (IBAction)cancel:(id)sender {
89 [self closeDialog]; 96 [self closeDialog];
90 } 97 }
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
214 return array; 221 return array;
215 } 222 }
216 223
217 @end 224 @end
218 225
219 @implementation AutoFillDialogController (ExposedForUnitTests) 226 @implementation AutoFillDialogController (ExposedForUnitTests)
220 227
221 + (AutoFillDialogController*)controllerWithObserver: 228 + (AutoFillDialogController*)controllerWithObserver:
222 (AutoFillDialogObserver*)observer 229 (AutoFillDialogObserver*)observer
223 autoFillProfiles:(const std::vector<AutoFillProfile*>&)profiles 230 autoFillProfiles:(const std::vector<AutoFillProfile*>&)profiles
224 creditCards:(const std::vector<CreditCard*>&)creditCards { 231 creditCards:(const std::vector<CreditCard*>&)creditCards
232 profile:(Profile*)profile {
225 233
226 // Deallocation is done upon window close. See |windowWillClose:|. 234 // Deallocation is done upon window close. See |windowWillClose:|.
227 AutoFillDialogController* controller = 235 AutoFillDialogController* controller =
228 [[self alloc] initWithObserver:observer 236 [[self alloc] initWithObserver:observer
229 autoFillProfiles:profiles 237 autoFillProfiles:profiles
230 creditCards:creditCards]; 238 creditCards:creditCards
239 profile:profile];
231 return controller; 240 return controller;
232 } 241 }
233 242
234 243
235 // This is the designated initializer for this class. 244 // This is the designated initializer for this class.
236 // |profiles| are non-retained immutable list of autofill profiles. 245 // |profiles| are non-retained immutable list of autofill profiles.
237 // |creditCards| are non-retained immutable list of credit card info. 246 // |creditCards| are non-retained immutable list of credit card info.
238 - (id)initWithObserver:(AutoFillDialogObserver*)observer 247 - (id)initWithObserver:(AutoFillDialogObserver*)observer
239 autoFillProfiles:(const std::vector<AutoFillProfile*>&)profiles 248 autoFillProfiles:(const std::vector<AutoFillProfile*>&)profiles
240 creditCards:(const std::vector<CreditCard*>&)creditCards { 249 creditCards:(const std::vector<CreditCard*>&)creditCards
250 profile:(Profile*)profile {
251 CHECK(profile);
241 // Use initWithWindowNibPath: instead of initWithWindowNibName: so we 252 // Use initWithWindowNibPath: instead of initWithWindowNibName: so we
242 // can override it in a unit test. 253 // can override it in a unit test.
243 NSString* nibpath = [mac_util::MainAppBundle() 254 NSString* nibpath = [mac_util::MainAppBundle()
244 pathForResource:@"AutoFillDialog" 255 pathForResource:@"AutoFillDialog"
245 ofType:@"nib"]; 256 ofType:@"nib"];
246 if ((self = [super initWithWindowNibPath:nibpath owner:self])) { 257 if ((self = [super initWithWindowNibPath:nibpath owner:self])) {
247 observer_ = observer; 258 observer_ = observer;
248 259
249 // Make local copy of |profiles|. 260 // Make local copy of |profiles|.
250 std::vector<AutoFillProfile*>::const_iterator i; 261 std::vector<AutoFillProfile*>::const_iterator i;
251 for (i = profiles.begin(); i != profiles.end(); ++i) 262 for (i = profiles.begin(); i != profiles.end(); ++i)
252 profiles_.push_back(**i); 263 profiles_.push_back(**i);
253 264
254 // Make local copy of |creditCards|. 265 // Make local copy of |creditCards|.
255 std::vector<CreditCard*>::const_iterator j; 266 std::vector<CreditCard*>::const_iterator j;
256 for (j = creditCards.begin(); j != creditCards.end(); ++j) 267 for (j = creditCards.begin(); j != creditCards.end(); ++j)
257 creditCards_.push_back(**j); 268 creditCards_.push_back(**j);
258 269
270 profile_ = profile;
271
272 // Use property here to trigger KVO binding.
273 [self setAuxiliaryEnabled:profile_->GetPrefs()->GetBoolean(
274 prefs::kAutoFillAuxiliaryProfilesEnabled)];
275
259 // Initialize array of sub-controllers. 276 // Initialize array of sub-controllers.
260 addressFormViewControllers_.reset([[NSMutableArray array] retain]); 277 addressFormViewControllers_.reset([[NSMutableArray array] retain]);
261 278
262 // Initialize array of sub-controllers. 279 // Initialize array of sub-controllers.
263 creditCardFormViewControllers_.reset([[NSMutableArray array] retain]); 280 creditCardFormViewControllers_.reset([[NSMutableArray array] retain]);
264 } 281 }
265 return self; 282 return self;
266 } 283 }
267 284
268 // Close the dialog. 285 // Close the dialog.
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
333 350
334 // Embed the child view into our (owned by us) target view. 351 // Embed the child view into our (owned by us) target view.
335 [childView_ addSubview:[creditCardViewController view] 352 [childView_ addSubview:[creditCardViewController view]
336 positioned:NSWindowBelow relativeTo:insertionPoint]; 353 positioned:NSWindowBelow relativeTo:insertionPoint];
337 insertionPoint = [creditCardViewController view]; 354 insertionPoint = [creditCardViewController view];
338 [[creditCardViewController view] setFrameOrigin:NSMakePoint(0, 0)]; 355 [[creditCardViewController view] setFrameOrigin:NSMakePoint(0, 0)];
339 } 356 }
340 } 357 }
341 358
342 @end 359 @end
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698