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

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

Issue 5913004: Clean up AutoFillProfile::CreateInferredLabels() (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 10 years 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
« no previous file with comments | « chrome/browser/autofill/autofill_profile.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 #include "chrome/browser/autofill/autofill_profile.h" 5 #include "chrome/browser/autofill/autofill_profile.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <list> 8 #include <list>
9 #include <map> 9 #include <map>
10 #include <set> 10 #include <set>
(...skipping 349 matching lines...) Expand 10 before | Expand all | Expand 10 after
360 } 360 }
361 361
362 string16 new_label; 362 string16 new_label;
363 if (field_it < fields.size() && fields.size() > minimal_fields_shown) { 363 if (field_it < fields.size() && fields.size() > minimal_fields_shown) {
364 std::vector<AutoFillFieldType> unique_fields; 364 std::vector<AutoFillFieldType> unique_fields;
365 unique_fields.resize(fields.size()); 365 unique_fields.resize(fields.size());
366 std::copy(fields.begin(), fields.end(), unique_fields.begin()); 366 std::copy(fields.begin(), fields.end(), unique_fields.begin());
367 unique_fields.resize(std::max(field_it + 1, minimal_fields_shown)); 367 unique_fields.resize(std::max(field_it + 1, minimal_fields_shown));
368 new_label = 368 new_label =
369 profiles->at(*similar_profiles)->ConstructInferredLabel( 369 profiles->at(*similar_profiles)->ConstructInferredLabel(
370 &unique_fields); 370 unique_fields);
371 } else { 371 } else {
372 new_label = 372 new_label =
373 profiles->at(*similar_profiles)->ConstructInferredLabel(&fields); 373 profiles->at(*similar_profiles)->ConstructInferredLabel(fields);
374 } 374 }
375 (*created_labels)[*similar_profiles] = new_label; 375 (*created_labels)[*similar_profiles] = new_label;
376 } 376 }
377 } else { 377 } else {
378 std::vector<AutoFillFieldType> non_empty_fields; 378 std::vector<AutoFillFieldType> non_empty_fields;
379 size_t include_fields = minimal_fields_shown ? minimal_fields_shown : 1; 379 size_t include_fields = minimal_fields_shown ? minimal_fields_shown : 1;
380 non_empty_fields.reserve(include_fields); 380 non_empty_fields.reserve(include_fields);
381 for (size_t i = 0; i < fields_to_use.size(); ++i) { 381 for (size_t i = 0; i < fields_to_use.size(); ++i) {
382 if (!profiles->at(label_iterator->second.front())->GetFieldText( 382 if (!profiles->at(label_iterator->second.front())->GetFieldText(
383 AutoFillType(fields_to_use[i])).empty()) { 383 AutoFillType(fields_to_use[i])).empty()) {
384 non_empty_fields.push_back(fields_to_use[i]); 384 non_empty_fields.push_back(fields_to_use[i]);
385 if (non_empty_fields.size() >= include_fields) 385 if (non_empty_fields.size() >= include_fields)
386 break; 386 break;
387 } 387 }
388 } 388 }
389 389
390 (*created_labels)[label_iterator->second.front()] = 390 (*created_labels)[label_iterator->second.front()] =
391 profiles->at(label_iterator->second.front())->ConstructInferredLabel( 391 profiles->at(label_iterator->second.front())->ConstructInferredLabel(
392 &non_empty_fields); 392 non_empty_fields);
393 } 393 }
394 } 394 }
395 } 395 }
396 396
397 bool AutoFillProfile::IsEmpty() const { 397 bool AutoFillProfile::IsEmpty() const {
398 FieldTypeSet types; 398 FieldTypeSet types;
399 GetAvailableFieldTypes(&types); 399 GetAvailableFieldTypes(&types);
400 return types.empty(); 400 return types.empty();
401 } 401 }
402 402
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
462 GetFieldText(AutoFillType(ADDRESS_HOME_LINE1)) + 462 GetFieldText(AutoFillType(ADDRESS_HOME_LINE1)) +
463 GetFieldText(AutoFillType(ADDRESS_HOME_LINE2)) + 463 GetFieldText(AutoFillType(ADDRESS_HOME_LINE2)) +
464 GetFieldText(AutoFillType(EMAIL_ADDRESS)); 464 GetFieldText(AutoFillType(EMAIL_ADDRESS));
465 } 465 }
466 466
467 Address* AutoFillProfile::GetHomeAddress() { 467 Address* AutoFillProfile::GetHomeAddress() {
468 return static_cast<Address*>(personal_info_[AutoFillType::ADDRESS_HOME]); 468 return static_cast<Address*>(personal_info_[AutoFillType::ADDRESS_HOME]);
469 } 469 }
470 470
471 string16 AutoFillProfile::ConstructInferredLabel( 471 string16 AutoFillProfile::ConstructInferredLabel(
472 const std::vector<AutoFillFieldType>* included_fields) const { 472 const std::vector<AutoFillFieldType>& included_fields) const {
473 DCHECK(included_fields); 473 const string16 separator =
474 l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_ADDRESS_SUMMARY_SEPARATOR);
475
474 string16 label; 476 string16 label;
475 string16 separator = l10n_util::GetStringUTF16(
476 IDS_AUTOFILL_DIALOG_ADDRESS_SUMMARY_SEPARATOR);
477 for (std::vector<AutoFillFieldType>::const_iterator it = 477 for (std::vector<AutoFillFieldType>::const_iterator it =
478 included_fields->begin(); it != included_fields->end(); ++it) { 478 included_fields.begin();
479 it != included_fields.end(); ++it) {
479 string16 field = GetFieldText(AutoFillType(*it)); 480 string16 field = GetFieldText(AutoFillType(*it));
480 if (!field.empty()) { 481 if (field.empty())
481 if (!label.empty()) { 482 continue;
482 label.append(separator); 483
483 } 484 if (!label.empty())
484 // Fax number has special format, to indicate that this is a fax number. 485 label.append(separator);
485 if (*it == PHONE_FAX_WHOLE_NUMBER) { 486
486 field = l10n_util::GetStringFUTF16( 487 // Fax number has special format, to indicate that this is a fax number.
487 IDS_AUTOFILL_DIALOG_ADDRESS_SUMMARY_FAX_FORMAT, field); 488 if (*it == PHONE_FAX_WHOLE_NUMBER) {
488 } 489 field = l10n_util::GetStringFUTF16(
489 label.append(field); 490 IDS_AUTOFILL_DIALOG_ADDRESS_SUMMARY_FAX_FORMAT, field);
490 } 491 }
492 label.append(field);
491 } 493 }
492 return label; 494 return label;
493 } 495 }
494 496
495 // So we can compare AutoFillProfiles with EXPECT_EQ(). 497 // So we can compare AutoFillProfiles with EXPECT_EQ().
496 std::ostream& operator<<(std::ostream& os, const AutoFillProfile& profile) { 498 std::ostream& operator<<(std::ostream& os, const AutoFillProfile& profile) {
497 return os 499 return os
498 << UTF16ToUTF8(profile.Label()) 500 << UTF16ToUTF8(profile.Label())
499 << " " 501 << " "
500 << profile.guid() 502 << profile.guid()
(...skipping 19 matching lines...) Expand all
520 << UTF16ToUTF8(profile.GetFieldText(AutoFillType(ADDRESS_HOME_ZIP))) 522 << UTF16ToUTF8(profile.GetFieldText(AutoFillType(ADDRESS_HOME_ZIP)))
521 << " " 523 << " "
522 << UTF16ToUTF8(profile.GetFieldText(AutoFillType(ADDRESS_HOME_COUNTRY))) 524 << UTF16ToUTF8(profile.GetFieldText(AutoFillType(ADDRESS_HOME_COUNTRY)))
523 << " " 525 << " "
524 << UTF16ToUTF8(profile.GetFieldText(AutoFillType( 526 << UTF16ToUTF8(profile.GetFieldText(AutoFillType(
525 PHONE_HOME_WHOLE_NUMBER))) 527 PHONE_HOME_WHOLE_NUMBER)))
526 << " " 528 << " "
527 << UTF16ToUTF8(profile.GetFieldText(AutoFillType( 529 << UTF16ToUTF8(profile.GetFieldText(AutoFillType(
528 PHONE_FAX_WHOLE_NUMBER))); 530 PHONE_FAX_WHOLE_NUMBER)));
529 } 531 }
OLDNEW
« no previous file with comments | « chrome/browser/autofill/autofill_profile.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698