| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/ui/views/profiles/profile_chooser_view.h" | 5 #include "chrome/browser/ui/views/profiles/profile_chooser_view.h" |
| 6 | 6 |
| 7 #include "base/prefs/pref_service.h" | 7 #include "base/prefs/pref_service.h" |
| 8 #include "base/strings/utf_string_conversions.h" | 8 #include "base/strings/utf_string_conversions.h" |
| 9 #include "chrome/browser/browser_process.h" | 9 #include "chrome/browser/browser_process.h" |
| 10 #include "chrome/browser/first_run/first_run.h" | 10 #include "chrome/browser/first_run/first_run.h" |
| (...skipping 655 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 666 | 666 |
| 667 void ProfileChooserView::ButtonPressed(views::Button* sender, | 667 void ProfileChooserView::ButtonPressed(views::Button* sender, |
| 668 const ui::Event& event) { | 668 const ui::Event& event) { |
| 669 // Disable button after clicking so that it doesn't get clicked twice and | 669 // Disable button after clicking so that it doesn't get clicked twice and |
| 670 // start a second action... which can crash Chrome. But don't disable if it | 670 // start a second action... which can crash Chrome. But don't disable if it |
| 671 // has no parent (like in tests) because that will also crash. | 671 // has no parent (like in tests) because that will also crash. |
| 672 if (sender->parent()) | 672 if (sender->parent()) |
| 673 sender->SetEnabled(false); | 673 sender->SetEnabled(false); |
| 674 | 674 |
| 675 if (sender == users_button_) { | 675 if (sender == users_button_) { |
| 676 profiles::ShowUserManagerMaybeWithTutorial(browser_->profile()); |
| 676 // If this is a guest session, also close all the guest browser windows. | 677 // If this is a guest session, also close all the guest browser windows. |
| 677 if (browser_->profile()->IsGuestSession()) { | 678 if (browser_->profile()->IsGuestSession()) |
| 678 chrome::ShowUserManager(base::FilePath()); | |
| 679 profiles::CloseGuestProfileWindows(); | 679 profiles::CloseGuestProfileWindows(); |
| 680 } else { | |
| 681 chrome::ShowUserManager(browser_->profile()->GetPath()); | |
| 682 } | |
| 683 } else if (sender == go_incognito_button_) { | 680 } else if (sender == go_incognito_button_) { |
| 684 DCHECK(ShouldShowGoIncognito()); | 681 DCHECK(ShouldShowGoIncognito()); |
| 685 chrome::NewIncognitoWindow(browser_); | 682 chrome::NewIncognitoWindow(browser_); |
| 686 } else if (sender == lock_button_) { | 683 } else if (sender == lock_button_) { |
| 687 profiles::LockProfile(browser_->profile()); | 684 profiles::LockProfile(browser_->profile()); |
| 688 PostActionPerformed(ProfileMetrics::PROFILE_DESKTOP_MENU_LOCK); | 685 PostActionPerformed(ProfileMetrics::PROFILE_DESKTOP_MENU_LOCK); |
| 689 } else if (sender == auth_error_email_button_) { | 686 } else if (sender == auth_error_email_button_) { |
| 690 ShowView(profiles::BUBBLE_VIEW_MODE_GAIA_REAUTH, avatar_menu_.get()); | 687 ShowView(profiles::BUBBLE_VIEW_MODE_GAIA_REAUTH, avatar_menu_.get()); |
| 691 } else if (sender == tutorial_sync_settings_ok_button_) { | 688 } else if (sender == tutorial_sync_settings_ok_button_) { |
| 692 LoginUIServiceFactory::GetForProfile(browser_->profile())-> | 689 LoginUIServiceFactory::GetForProfile(browser_->profile())-> |
| (...skipping 19 matching lines...) Expand all Loading... |
| 712 ShowView(account_management_available ? | 709 ShowView(account_management_available ? |
| 713 profiles::BUBBLE_VIEW_MODE_ACCOUNT_MANAGEMENT : | 710 profiles::BUBBLE_VIEW_MODE_ACCOUNT_MANAGEMENT : |
| 714 profiles::BUBBLE_VIEW_MODE_PROFILE_CHOOSER, avatar_menu_.get()); | 711 profiles::BUBBLE_VIEW_MODE_PROFILE_CHOOSER, avatar_menu_.get()); |
| 715 } else if (current_profile_photo_ && | 712 } else if (current_profile_photo_ && |
| 716 sender == current_profile_photo_->change_photo_button()) { | 713 sender == current_profile_photo_->change_photo_button()) { |
| 717 avatar_menu_->EditProfile(avatar_menu_->GetActiveProfileIndex()); | 714 avatar_menu_->EditProfile(avatar_menu_->GetActiveProfileIndex()); |
| 718 PostActionPerformed(ProfileMetrics::PROFILE_DESKTOP_MENU_EDIT_IMAGE); | 715 PostActionPerformed(ProfileMetrics::PROFILE_DESKTOP_MENU_EDIT_IMAGE); |
| 719 } else if (sender == signin_current_profile_link_) { | 716 } else if (sender == signin_current_profile_link_) { |
| 720 ShowView(profiles::BUBBLE_VIEW_MODE_GAIA_SIGNIN, avatar_menu_.get()); | 717 ShowView(profiles::BUBBLE_VIEW_MODE_GAIA_SIGNIN, avatar_menu_.get()); |
| 721 } else if (sender == add_person_button_) { | 718 } else if (sender == add_person_button_) { |
| 722 chrome::ShowUserManager(browser_->profile()->GetPath()); | 719 profiles::ShowUserManagerMaybeWithTutorial(browser_->profile()); |
| 723 } else if (sender == disconnect_button_) { | 720 } else if (sender == disconnect_button_) { |
| 724 chrome::ShowSettings(browser_); | 721 chrome::ShowSettings(browser_); |
| 725 } else if (sender == switch_user_cancel_button_) { | 722 } else if (sender == switch_user_cancel_button_) { |
| 726 ShowView(profiles::BUBBLE_VIEW_MODE_PROFILE_CHOOSER, avatar_menu_.get()); | 723 ShowView(profiles::BUBBLE_VIEW_MODE_PROFILE_CHOOSER, avatar_menu_.get()); |
| 727 } else { | 724 } else { |
| 728 // Either one of the "other profiles", or one of the profile accounts | 725 // Either one of the "other profiles", or one of the profile accounts |
| 729 // buttons was pressed. | 726 // buttons was pressed. |
| 730 ButtonIndexes::const_iterator profile_match = | 727 ButtonIndexes::const_iterator profile_match = |
| 731 open_other_profile_indexes_map_.find(sender); | 728 open_other_profile_indexes_map_.find(sender); |
| 732 if (profile_match != open_other_profile_indexes_map_.end()) { | 729 if (profile_match != open_other_profile_indexes_map_.end()) { |
| (...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 955 | 952 |
| 956 // Adds links and buttons. | 953 // Adds links and buttons. |
| 957 views::ColumnSet* button_columns = layout->AddColumnSet(1); | 954 views::ColumnSet* button_columns = layout->AddColumnSet(1); |
| 958 button_columns->AddColumn(views::GridLayout::LEADING, | 955 button_columns->AddColumn(views::GridLayout::LEADING, |
| 959 views::GridLayout::CENTER, 0, views::GridLayout::USE_PREF, 0, 0); | 956 views::GridLayout::CENTER, 0, views::GridLayout::USE_PREF, 0, 0); |
| 960 button_columns->AddPaddingColumn( | 957 button_columns->AddPaddingColumn( |
| 961 1, views::kUnrelatedControlHorizontalSpacing); | 958 1, views::kUnrelatedControlHorizontalSpacing); |
| 962 button_columns->AddColumn(views::GridLayout::TRAILING, | 959 button_columns->AddColumn(views::GridLayout::TRAILING, |
| 963 views::GridLayout::CENTER, 0, views::GridLayout::USE_PREF, 0, 0); | 960 views::GridLayout::CENTER, 0, views::GridLayout::USE_PREF, 0, 0); |
| 964 | 961 |
| 962 *link = CreateLink(link_text, this); |
| 963 (*link)->SetHorizontalAlignment(gfx::ALIGN_LEFT); |
| 964 (*link)->SetAutoColorReadabilityEnabled(false); |
| 965 (*link)->SetEnabledColor(SK_ColorWHITE); |
| 965 layout->StartRowWithPadding(1, 1, 0, views::kUnrelatedControlVerticalSpacing); | 966 layout->StartRowWithPadding(1, 1, 0, views::kUnrelatedControlVerticalSpacing); |
| 966 if (!link_text.empty()) { | 967 layout->AddView(*link); |
| 967 *link = CreateLink(link_text, this); | |
| 968 (*link)->SetHorizontalAlignment(gfx::ALIGN_LEFT); | |
| 969 (*link)->SetAutoColorReadabilityEnabled(false); | |
| 970 (*link)->SetEnabledColor(SK_ColorWHITE); | |
| 971 layout->AddView(*link); | |
| 972 } else { | |
| 973 layout->SkipColumns(1); | |
| 974 } | |
| 975 | 968 |
| 976 *button = new views::LabelButton(this, button_text); | 969 *button = new views::LabelButton(this, button_text); |
| 977 (*button)->SetHorizontalAlignment(gfx::ALIGN_CENTER); | 970 (*button)->SetHorizontalAlignment(gfx::ALIGN_CENTER); |
| 978 (*button)->SetStyle(views::Button::STYLE_BUTTON); | 971 (*button)->SetStyle(views::Button::STYLE_BUTTON); |
| 979 layout->AddView(*button); | 972 layout->AddView(*button); |
| 980 | 973 |
| 981 return view; | 974 return view; |
| 982 } | 975 } |
| 983 | 976 |
| 984 views::View* ProfileChooserView::CreateCurrentProfileView( | 977 views::View* ProfileChooserView::CreateCurrentProfileView( |
| (...skipping 409 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1394 return TitleCard::AddPaddedTitleCard(view, title_card, | 1387 return TitleCard::AddPaddedTitleCard(view, title_card, |
| 1395 kFixedAccountRemovalViewWidth); | 1388 kFixedAccountRemovalViewWidth); |
| 1396 } | 1389 } |
| 1397 | 1390 |
| 1398 views::View* ProfileChooserView::CreateWelcomeUpgradeTutorialViewIfNeeded( | 1391 views::View* ProfileChooserView::CreateWelcomeUpgradeTutorialViewIfNeeded( |
| 1399 bool tutorial_shown, const AvatarMenu::Item& avatar_item){ | 1392 bool tutorial_shown, const AvatarMenu::Item& avatar_item){ |
| 1400 if (first_run::IsChromeFirstRun()) | 1393 if (first_run::IsChromeFirstRun()) |
| 1401 return NULL; | 1394 return NULL; |
| 1402 | 1395 |
| 1403 Profile* profile = browser_->profile(); | 1396 Profile* profile = browser_->profile(); |
| 1397 if (!avatar_item.signed_in) { |
| 1398 profile->GetPrefs()->SetInteger( |
| 1399 prefs::kProfileAvatarTutorialShown, kUpgradeWelcomeTutorialShowMax + 1); |
| 1400 return NULL; |
| 1401 } |
| 1404 | 1402 |
| 1405 const int show_count = profile->GetPrefs()->GetInteger( | 1403 const int show_count = profile->GetPrefs()->GetInteger( |
| 1406 prefs::kProfileAvatarTutorialShown); | 1404 prefs::kProfileAvatarTutorialShown); |
| 1407 // Do not show the tutorial if user has dismissed it. | 1405 // Do not show the tutorial if user has dismissed it. |
| 1408 if (show_count > kUpgradeWelcomeTutorialShowMax) | 1406 if (show_count > kUpgradeWelcomeTutorialShowMax) |
| 1409 return NULL; | 1407 return NULL; |
| 1410 | 1408 |
| 1411 if (!tutorial_shown) { | 1409 if (!tutorial_shown) { |
| 1412 if (show_count == kUpgradeWelcomeTutorialShowMax) | 1410 if (show_count == kUpgradeWelcomeTutorialShowMax) |
| 1413 return NULL; | 1411 return NULL; |
| 1414 profile->GetPrefs()->SetInteger( | 1412 profile->GetPrefs()->SetInteger( |
| 1415 prefs::kProfileAvatarTutorialShown, show_count + 1); | 1413 prefs::kProfileAvatarTutorialShown, show_count + 1); |
| 1416 } | 1414 } |
| 1417 | 1415 |
| 1418 // For local profiles, the "Not you" link doesn't make sense. | |
| 1419 base::string16 link_message = avatar_item.signed_in ? | |
| 1420 l10n_util::GetStringFUTF16(IDS_PROFILES_NOT_YOU, avatar_item.name) : | |
| 1421 base::string16(); | |
| 1422 | |
| 1423 return CreateTutorialView( | 1416 return CreateTutorialView( |
| 1424 profiles::TUTORIAL_MODE_WELCOME_UPGRADE, | 1417 profiles::TUTORIAL_MODE_WELCOME_UPGRADE, |
| 1425 l10n_util::GetStringFUTF16( | 1418 l10n_util::GetStringFUTF16( |
| 1426 IDS_PROFILES_WELCOME_UPGRADE_TUTORIAL_TITLE, avatar_item.name), | 1419 IDS_PROFILES_WELCOME_UPGRADE_TUTORIAL_TITLE, avatar_item.name), |
| 1427 l10n_util::GetStringUTF16( | 1420 l10n_util::GetStringUTF16( |
| 1428 IDS_PROFILES_WELCOME_UPGRADE_TUTORIAL_CONTENT_TEXT), | 1421 IDS_PROFILES_WELCOME_UPGRADE_TUTORIAL_CONTENT_TEXT), |
| 1429 link_message, | 1422 l10n_util::GetStringFUTF16( |
| 1423 IDS_PROFILES_NOT_YOU, avatar_item.name), |
| 1430 l10n_util::GetStringUTF16(IDS_PROFILES_TUTORIAL_WHATS_NEW_BUTTON), | 1424 l10n_util::GetStringUTF16(IDS_PROFILES_TUTORIAL_WHATS_NEW_BUTTON), |
| 1431 &tutorial_not_you_link_, | 1425 &tutorial_not_you_link_, |
| 1432 &tutorial_see_whats_new_button_); | 1426 &tutorial_see_whats_new_button_); |
| 1433 } | 1427 } |
| 1434 | 1428 |
| 1435 views::View* ProfileChooserView::CreateSigninConfirmationView(){ | 1429 views::View* ProfileChooserView::CreateSigninConfirmationView(){ |
| 1436 return CreateTutorialView( | 1430 return CreateTutorialView( |
| 1437 profiles::TUTORIAL_MODE_CONFIRM_SIGNIN, | 1431 profiles::TUTORIAL_MODE_CONFIRM_SIGNIN, |
| 1438 l10n_util::GetStringUTF16(IDS_PROFILES_CONFIRM_SIGNIN_TUTORIAL_TITLE), | 1432 l10n_util::GetStringUTF16(IDS_PROFILES_CONFIRM_SIGNIN_TUTORIAL_TITLE), |
| 1439 l10n_util::GetStringUTF16( | 1433 l10n_util::GetStringUTF16( |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1504 IncognitoModePrefs::GetAvailability(browser_->profile()->GetPrefs()) != | 1498 IncognitoModePrefs::GetAvailability(browser_->profile()->GetPrefs()) != |
| 1505 IncognitoModePrefs::DISABLED; | 1499 IncognitoModePrefs::DISABLED; |
| 1506 return incognito_available && !browser_->profile()->IsGuestSession(); | 1500 return incognito_available && !browser_->profile()->IsGuestSession(); |
| 1507 } | 1501 } |
| 1508 | 1502 |
| 1509 void ProfileChooserView::PostActionPerformed( | 1503 void ProfileChooserView::PostActionPerformed( |
| 1510 ProfileMetrics::ProfileDesktopMenu action_performed) { | 1504 ProfileMetrics::ProfileDesktopMenu action_performed) { |
| 1511 ProfileMetrics::LogProfileDesktopMenu(action_performed, gaia_service_type_); | 1505 ProfileMetrics::LogProfileDesktopMenu(action_performed, gaia_service_type_); |
| 1512 gaia_service_type_ = signin::GAIA_SERVICE_TYPE_NONE; | 1506 gaia_service_type_ = signin::GAIA_SERVICE_TYPE_NONE; |
| 1513 } | 1507 } |
| OLD | NEW |