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

Side by Side Diff: chrome/browser/autofill/autofill_editor_gtk.cc

Issue 6673079: Reduce boxing and unboxing of AutofillFieldType (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Compile on Windows. Created 9 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "base/message_loop.h" 9 #include "base/message_loop.h"
10 #include "base/string_number_conversions.h" 10 #include "base/string_number_conversions.h"
(...skipping 19 matching lines...) Expand all
30 GtkWidget* CreateLabel(int label_id) { 30 GtkWidget* CreateLabel(int label_id) {
31 GtkWidget* label = gtk_label_new(l10n_util::GetStringUTF8(label_id).c_str()); 31 GtkWidget* label = gtk_label_new(l10n_util::GetStringUTF8(label_id).c_str());
32 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); 32 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
33 return label; 33 return label;
34 } 34 }
35 35
36 // Sets the text of |entry| to the value of the field |type| from |profile|. 36 // Sets the text of |entry| to the value of the field |type| from |profile|.
37 void SetEntryText(GtkWidget* entry, FormGroup* profile, _FieldType type) { 37 void SetEntryText(GtkWidget* entry, FormGroup* profile, _FieldType type) {
38 gtk_entry_set_text( 38 gtk_entry_set_text(
39 GTK_ENTRY(entry), 39 GTK_ENTRY(entry),
40 UTF16ToUTF8(profile->GetFieldText(AutofillType(type))).c_str()); 40 UTF16ToUTF8(profile->GetFieldText(type)).c_str());
41 } 41 }
42 42
43 // Returns the current value of |entry|. 43 // Returns the current value of |entry|.
44 string16 GetEntryText(GtkWidget* entry) { 44 string16 GetEntryText(GtkWidget* entry) {
45 return UTF8ToUTF16(gtk_entry_get_text(GTK_ENTRY(entry))); 45 return UTF8ToUTF16(gtk_entry_get_text(GTK_ENTRY(entry)));
46 } 46 }
47 47
48 // Sets |form|'s field of type |type| to the text in |entry|. 48 // Sets |form|'s field of type |type| to the text in |entry|.
49 void SetFormValue(GtkWidget* entry, FormGroup* form, _FieldType type) { 49 void SetFormValue(GtkWidget* entry, FormGroup* form, _FieldType type) {
50 form->SetInfo(AutofillType(type), GetEntryText(entry)); 50 form->SetInfo(type, GetEntryText(entry));
51 } 51 }
52 52
53 // Sets the number of characters to display in |combobox| to |width|. 53 // Sets the number of characters to display in |combobox| to |width|.
54 void SetComboBoxCellRendererCharWidth(GtkWidget* combobox, int width) { 54 void SetComboBoxCellRendererCharWidth(GtkWidget* combobox, int width) {
55 GList* cells = gtk_cell_layout_get_cells(GTK_CELL_LAYOUT(combobox)); 55 GList* cells = gtk_cell_layout_get_cells(GTK_CELL_LAYOUT(combobox));
56 DCHECK(g_list_length(cells) > 0); 56 DCHECK(g_list_length(cells) > 0);
57 GtkCellRendererText* renderer = 57 GtkCellRendererText* renderer =
58 GTK_CELL_RENDERER_TEXT(g_list_first(cells)->data); 58 GTK_CELL_RENDERER_TEXT(g_list_first(cells)->data);
59 g_object_set(G_OBJECT(renderer), "width-chars", width, NULL); 59 g_object_set(G_OBJECT(renderer), "width-chars", width, NULL);
60 g_list_free(cells); 60 g_list_free(cells);
(...skipping 360 matching lines...) Expand 10 before | Expand all | Expand 10 after
421 SetFormValue(address_2_, profile, ADDRESS_HOME_LINE2); 421 SetFormValue(address_2_, profile, ADDRESS_HOME_LINE2);
422 SetFormValue(city_, profile, ADDRESS_HOME_CITY); 422 SetFormValue(city_, profile, ADDRESS_HOME_CITY);
423 SetFormValue(state_, profile, ADDRESS_HOME_STATE); 423 SetFormValue(state_, profile, ADDRESS_HOME_STATE);
424 SetFormValue(zip_, profile, ADDRESS_HOME_ZIP); 424 SetFormValue(zip_, profile, ADDRESS_HOME_ZIP);
425 SetFormValue(country_, profile, ADDRESS_HOME_COUNTRY); 425 SetFormValue(country_, profile, ADDRESS_HOME_COUNTRY);
426 SetFormValue(email_, profile, EMAIL_ADDRESS); 426 SetFormValue(email_, profile, EMAIL_ADDRESS);
427 427
428 string16 number, city_code, country_code; 428 string16 number, city_code, country_code;
429 PhoneNumber::ParsePhoneNumber( 429 PhoneNumber::ParsePhoneNumber(
430 GetEntryText(phone_), &number, &city_code, &country_code); 430 GetEntryText(phone_), &number, &city_code, &country_code);
431 profile->SetInfo(AutofillType(PHONE_HOME_COUNTRY_CODE), country_code); 431 profile->SetInfo(PHONE_HOME_COUNTRY_CODE, country_code);
432 profile->SetInfo(AutofillType(PHONE_HOME_CITY_CODE), city_code); 432 profile->SetInfo(PHONE_HOME_CITY_CODE, city_code);
433 profile->SetInfo(AutofillType(PHONE_HOME_NUMBER), number); 433 profile->SetInfo(PHONE_HOME_NUMBER, number);
434 434
435 PhoneNumber::ParsePhoneNumber( 435 PhoneNumber::ParsePhoneNumber(
436 GetEntryText(fax_), &number, &city_code, &country_code); 436 GetEntryText(fax_), &number, &city_code, &country_code);
437 profile->SetInfo(AutofillType(PHONE_FAX_COUNTRY_CODE), country_code); 437 profile->SetInfo(PHONE_FAX_COUNTRY_CODE, country_code);
438 profile->SetInfo(AutofillType(PHONE_FAX_CITY_CODE), city_code); 438 profile->SetInfo(PHONE_FAX_CITY_CODE, city_code);
439 profile->SetInfo(AutofillType(PHONE_FAX_NUMBER), number); 439 profile->SetInfo(PHONE_FAX_NUMBER, number);
440 } 440 }
441 441
442 void AutofillProfileEditor::UpdatePhoneImage(GtkWidget* entry, 442 void AutofillProfileEditor::UpdatePhoneImage(GtkWidget* entry,
443 GtkWidget* image) { 443 GtkWidget* image) {
444 string16 number, city_code, country_code; 444 string16 number, city_code, country_code;
445 string16 text(GetEntryText(entry)); 445 string16 text(GetEntryText(entry));
446 if (text.empty()) { 446 if (text.empty()) {
447 gtk_image_set_from_pixbuf(GTK_IMAGE(image), NULL); 447 gtk_image_set_from_pixbuf(GTK_IMAGE(image), NULL);
448 } else if (PhoneNumber::ParsePhoneNumber(text, &number, &city_code, 448 } else if (PhoneNumber::ParsePhoneNumber(text, &number, &city_code,
449 &country_code)) { 449 &country_code)) {
(...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after
706 G_CALLBACK(OnInsertTextIntoNumberThunk), this); 706 G_CALLBACK(OnInsertTextIntoNumberThunk), this);
707 } 707 }
708 708
709 void AutoFillCreditCardEditor::SetWidgetValues(CreditCard* card) { 709 void AutoFillCreditCardEditor::SetWidgetValues(CreditCard* card) {
710 SetEntryText(name_, card, CREDIT_CARD_NAME); 710 SetEntryText(name_, card, CREDIT_CARD_NAME);
711 711
712 gtk_entry_set_text(GTK_ENTRY(number_), 712 gtk_entry_set_text(GTK_ENTRY(number_),
713 UTF16ToUTF8(card->ObfuscatedNumber()).c_str()); 713 UTF16ToUTF8(card->ObfuscatedNumber()).c_str());
714 714
715 int month; 715 int month;
716 base::StringToInt(card->GetFieldText(AutofillType(CREDIT_CARD_EXP_MONTH)), 716 base::StringToInt(card->GetFieldText(CREDIT_CARD_EXP_MONTH),
717 &month); 717 &month);
718 if (month >= 1 && month <= 12) { 718 if (month >= 1 && month <= 12) {
719 gtk_combo_box_set_active(GTK_COMBO_BOX(month_), month - 1); 719 gtk_combo_box_set_active(GTK_COMBO_BOX(month_), month - 1);
720 } else { 720 } else {
721 gtk_combo_box_set_active(GTK_COMBO_BOX(month_), 0); 721 gtk_combo_box_set_active(GTK_COMBO_BOX(month_), 0);
722 } 722 }
723 723
724 int year; 724 int year;
725 if (!base::StringToInt( 725 if (!base::StringToInt(
726 card->GetFieldText(AutofillType(CREDIT_CARD_EXP_4_DIGIT_YEAR)), 726 card->GetFieldText(CREDIT_CARD_EXP_4_DIGIT_YEAR),
727 &year)) { 727 &year)) {
728 NOTREACHED(); 728 NOTREACHED();
729 } 729 }
730 if (year >= base_year_ && year < base_year_ + kNumYears) 730 if (year >= base_year_ && year < base_year_ + kNumYears)
731 gtk_combo_box_set_active(GTK_COMBO_BOX(year_), year - base_year_); 731 gtk_combo_box_set_active(GTK_COMBO_BOX(year_), year - base_year_);
732 else 732 else
733 gtk_combo_box_set_active(GTK_COMBO_BOX(year_), 0); 733 gtk_combo_box_set_active(GTK_COMBO_BOX(year_), 0);
734 } 734 }
735 735
736 void AutoFillCreditCardEditor::ApplyEdits() { 736 void AutoFillCreditCardEditor::ApplyEdits() {
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
774 CreditCard* card) { 774 CreditCard* card) {
775 SetFormValue(name_, card, CREDIT_CARD_NAME); 775 SetFormValue(name_, card, CREDIT_CARD_NAME);
776 776
777 if (edited_number_) 777 if (edited_number_)
778 SetFormValue(number_, card, CREDIT_CARD_NUMBER); 778 SetFormValue(number_, card, CREDIT_CARD_NUMBER);
779 779
780 int selected_month_index = 780 int selected_month_index =
781 gtk_combo_box_get_active(GTK_COMBO_BOX(month_)); 781 gtk_combo_box_get_active(GTK_COMBO_BOX(month_));
782 if (selected_month_index == -1) 782 if (selected_month_index == -1)
783 selected_month_index = 0; 783 selected_month_index = 0;
784 card->SetInfo(AutofillType(CREDIT_CARD_EXP_MONTH), 784 card->SetInfo(CREDIT_CARD_EXP_MONTH,
785 base::IntToString16(selected_month_index + 1)); 785 base::IntToString16(selected_month_index + 1));
786 786
787 int selected_year_index = 787 int selected_year_index =
788 gtk_combo_box_get_active(GTK_COMBO_BOX(year_)); 788 gtk_combo_box_get_active(GTK_COMBO_BOX(year_));
789 if (selected_year_index == -1) 789 if (selected_year_index == -1)
790 selected_year_index = 0; 790 selected_year_index = 0;
791 card->SetInfo(AutofillType(CREDIT_CARD_EXP_4_DIGIT_YEAR), 791 card->SetInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR,
792 base::IntToString16(selected_year_index + base_year_)); 792 base::IntToString16(selected_year_index + base_year_));
793 } 793 }
794 794
795 void AutoFillCreditCardEditor::UpdateOkButton() { 795 void AutoFillCreditCardEditor::UpdateOkButton() {
796 // Enable the ok button if at least one field is non-empty and the phone 796 // Enable the ok button if at least one field is non-empty and the phone
797 // numbers are valid. 797 // numbers are valid.
798 bool valid = !GetEntryText(name_).empty() || !GetEntryText(number_).empty(); 798 bool valid = !GetEntryText(name_).empty() || !GetEntryText(number_).empty();
799 gtk_widget_set_sensitive(ok_button_, valid); 799 gtk_widget_set_sensitive(ok_button_, valid);
800 } 800 }
801 801
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
866 new AutofillProfileEditor(observer, profile, auto_fill_profile); 866 new AutofillProfileEditor(observer, profile, auto_fill_profile);
867 } 867 }
868 868
869 void ShowAutoFillCreditCardEditor(gfx::NativeView parent, 869 void ShowAutoFillCreditCardEditor(gfx::NativeView parent,
870 AutoFillDialogObserver* observer, 870 AutoFillDialogObserver* observer,
871 Profile* profile, 871 Profile* profile,
872 CreditCard* credit_card) { 872 CreditCard* credit_card) {
873 // AutoFillCreditCardEditor takes care of deleting itself. 873 // AutoFillCreditCardEditor takes care of deleting itself.
874 new AutoFillCreditCardEditor(observer, profile, credit_card); 874 new AutoFillCreditCardEditor(observer, profile, credit_card);
875 } 875 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698