OLD | NEW |
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 #include "chrome/browser/autofill/autofill_dialog.h" | 5 #include "chrome/browser/autofill/autofill_dialog.h" |
6 | 6 |
7 #include <gtk/gtk.h> | 7 #include <gtk/gtk.h> |
8 | 8 |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
11 | 11 |
12 #include "app/l10n_util.h" | 12 #include "app/l10n_util.h" |
13 #include "base/logging.h" | 13 #include "base/logging.h" |
14 #include "base/message_loop.h" | 14 #include "base/message_loop.h" |
15 #include "base/utf_string_conversions.h" | 15 #include "base/utf_string_conversions.h" |
16 #include "chrome/browser/autofill/autofill_manager.h" | 16 #include "chrome/browser/autofill/autofill_manager.h" |
17 #include "chrome/browser/autofill/autofill_profile.h" | 17 #include "chrome/browser/autofill/autofill_profile.h" |
18 #include "chrome/browser/autofill/credit_card.h" | 18 #include "chrome/browser/autofill/credit_card.h" |
19 #include "chrome/browser/autofill/form_group.h" | 19 #include "chrome/browser/autofill/form_group.h" |
20 #include "chrome/browser/autofill/personal_data_manager.h" | 20 #include "chrome/browser/autofill/personal_data_manager.h" |
21 #include "chrome/browser/autofill/phone_number.h" | 21 #include "chrome/browser/autofill/phone_number.h" |
22 #include "chrome/browser/browser.h" | 22 #include "chrome/browser/browser.h" |
23 #include "chrome/browser/browser_list.h" | 23 #include "chrome/browser/browser_list.h" |
24 #include "chrome/browser/gtk/gtk_chrome_link_button.h" | 24 #include "chrome/browser/gtk/gtk_chrome_link_button.h" |
25 #include "chrome/browser/gtk/gtk_util.h" | 25 #include "chrome/browser/gtk/gtk_util.h" |
26 #include "chrome/browser/gtk/options/options_layout_gtk.h" | 26 #include "chrome/browser/gtk/options/options_layout_gtk.h" |
27 #include "chrome/browser/pref_service.h" | |
28 #include "chrome/browser/profile.h" | 27 #include "chrome/browser/profile.h" |
29 #include "chrome/common/pref_names.h" | 28 #include "chrome/common/pref_names.h" |
30 #include "gfx/gtk_util.h" | 29 #include "gfx/gtk_util.h" |
31 #include "grit/chromium_strings.h" | 30 #include "grit/chromium_strings.h" |
32 #include "grit/generated_resources.h" | 31 #include "grit/generated_resources.h" |
33 #include "grit/locale_settings.h" | 32 #include "grit/locale_settings.h" |
34 | 33 |
35 namespace { | 34 namespace { |
36 | 35 |
37 // The name of the object property used to store an entry widget pointer on | 36 // The name of the object property used to store an entry widget pointer on |
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
223 | 222 |
224 //////////////////////////////////////////////////////////////////////////////// | 223 //////////////////////////////////////////////////////////////////////////////// |
225 // AutoFillDialog | 224 // AutoFillDialog |
226 // | 225 // |
227 // The contents of the AutoFill dialog. This dialog allows users to add, edit | 226 // The contents of the AutoFill dialog. This dialog allows users to add, edit |
228 // and remove AutoFill profiles. | 227 // and remove AutoFill profiles. |
229 class AutoFillDialog : public PersonalDataManager::Observer { | 228 class AutoFillDialog : public PersonalDataManager::Observer { |
230 public: | 229 public: |
231 AutoFillDialog(AutoFillDialogObserver* observer, | 230 AutoFillDialog(AutoFillDialogObserver* observer, |
232 PersonalDataManager* personal_data_manager, | 231 PersonalDataManager* personal_data_manager, |
233 PrefService* pref_service, | |
234 AutoFillProfile* imported_profile, | 232 AutoFillProfile* imported_profile, |
235 CreditCard* imported_credit_card); | 233 CreditCard* imported_credit_card); |
236 ~AutoFillDialog(); | 234 ~AutoFillDialog(); |
237 | 235 |
238 // PersonalDataManager::Observer implementation: | 236 // PersonalDataManager::Observer implementation: |
239 void OnPersonalDataLoaded(); | 237 void OnPersonalDataLoaded(); |
240 | 238 |
241 // Shows the AutoFill dialog. | 239 // Shows the AutoFill dialog. |
242 void Show(); | 240 void Show(); |
243 | 241 |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
310 // if the address is not found. | 308 // if the address is not found. |
311 int FindIndexOfAddress(string16 billing_address); | 309 int FindIndexOfAddress(string16 billing_address); |
312 | 310 |
313 // Our observer. May not be NULL. | 311 // Our observer. May not be NULL. |
314 AutoFillDialogObserver* observer_; | 312 AutoFillDialogObserver* observer_; |
315 | 313 |
316 // The personal data manager, used to load AutoFill profiles and credit cards. | 314 // The personal data manager, used to load AutoFill profiles and credit cards. |
317 // Unowned pointer, may not be NULL. | 315 // Unowned pointer, may not be NULL. |
318 PersonalDataManager* personal_data_; | 316 PersonalDataManager* personal_data_; |
319 | 317 |
320 // The preference service. Unowned pointer, may not be NULL. | |
321 PrefService* pref_service_; | |
322 | |
323 // The imported profile. May be NULL. | 318 // The imported profile. May be NULL. |
324 AutoFillProfile* imported_profile_; | 319 AutoFillProfile* imported_profile_; |
325 | 320 |
326 // The imported credit card. May be NULL. | 321 // The imported credit card. May be NULL. |
327 CreditCard* imported_credit_card_; | 322 CreditCard* imported_credit_card_; |
328 | 323 |
329 // The list of current AutoFill profiles. | 324 // The list of current AutoFill profiles. |
330 std::vector<AutoFillProfile> profiles_; | 325 std::vector<AutoFillProfile> profiles_; |
331 | 326 |
332 // The list of current AutoFill credit cards. | 327 // The list of current AutoFill credit cards. |
(...skipping 15 matching lines...) Expand all Loading... |
348 GtkWidget* creditcards_vbox_; | 343 GtkWidget* creditcards_vbox_; |
349 | 344 |
350 DISALLOW_COPY_AND_ASSIGN(AutoFillDialog); | 345 DISALLOW_COPY_AND_ASSIGN(AutoFillDialog); |
351 }; | 346 }; |
352 | 347 |
353 // The singleton AutoFill dialog object. | 348 // The singleton AutoFill dialog object. |
354 static AutoFillDialog* dialog = NULL; | 349 static AutoFillDialog* dialog = NULL; |
355 | 350 |
356 AutoFillDialog::AutoFillDialog(AutoFillDialogObserver* observer, | 351 AutoFillDialog::AutoFillDialog(AutoFillDialogObserver* observer, |
357 PersonalDataManager* personal_data_manager, | 352 PersonalDataManager* personal_data_manager, |
358 PrefService* pref_service, | |
359 AutoFillProfile* imported_profile, | 353 AutoFillProfile* imported_profile, |
360 CreditCard* imported_credit_card) | 354 CreditCard* imported_credit_card) |
361 : observer_(observer), | 355 : observer_(observer), |
362 personal_data_(personal_data_manager), | 356 personal_data_(personal_data_manager), |
363 pref_service_(pref_service), | |
364 imported_profile_(imported_profile), | 357 imported_profile_(imported_profile), |
365 imported_credit_card_(imported_credit_card) { | 358 imported_credit_card_(imported_credit_card) { |
366 DCHECK(observer_); | 359 DCHECK(observer_); |
367 DCHECK(personal_data_); | 360 DCHECK(personal_data_); |
368 DCHECK(pref_service_); | |
369 | 361 |
370 InitializeWidgets(); | 362 InitializeWidgets(); |
371 LoadAutoFillData(); | 363 LoadAutoFillData(); |
372 | 364 |
373 gtk_util::ShowDialogWithLocalizedSize(dialog_, | 365 gtk_util::ShowDialogWithLocalizedSize(dialog_, |
374 IDS_AUTOFILL_DIALOG_WIDTH_CHARS, | 366 IDS_AUTOFILL_DIALOG_WIDTH_CHARS, |
375 IDS_AUTOFILL_DIALOG_HEIGHT_LINES, | 367 IDS_AUTOFILL_DIALOG_HEIGHT_LINES, |
376 true); | 368 true); |
377 } | 369 } |
378 | 370 |
(...skipping 605 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
984 /////////////////////////////////////////////////////////////////////////////// | 976 /////////////////////////////////////////////////////////////////////////////// |
985 // Factory/finder method: | 977 // Factory/finder method: |
986 | 978 |
987 void ShowAutoFillDialog(gfx::NativeView parent, | 979 void ShowAutoFillDialog(gfx::NativeView parent, |
988 AutoFillDialogObserver* observer, | 980 AutoFillDialogObserver* observer, |
989 Profile* profile, | 981 Profile* profile, |
990 AutoFillProfile* imported_profile, | 982 AutoFillProfile* imported_profile, |
991 CreditCard* imported_credit_card) { | 983 CreditCard* imported_credit_card) { |
992 DCHECK(profile); | 984 DCHECK(profile); |
993 | 985 |
994 // It's possible we haven't shown the InfoBar yet, but if the user is in the | |
995 // AutoFill dialog, she doesn't need to be asked to enable or disable | |
996 // AutoFill. | |
997 profile->GetPrefs()->SetBoolean(prefs::kAutoFillInfoBarShown, true); | |
998 | |
999 if (!dialog) { | 986 if (!dialog) { |
1000 dialog = new AutoFillDialog(observer, | 987 dialog = new AutoFillDialog(observer, |
1001 profile->GetPersonalDataManager(), | 988 profile->GetPersonalDataManager(), |
1002 profile->GetPrefs(), | |
1003 imported_profile, | 989 imported_profile, |
1004 imported_credit_card); | 990 imported_credit_card); |
1005 } | 991 } |
1006 dialog->Show(); | 992 dialog->Show(); |
1007 } | 993 } |
OLD | NEW |