| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/passwords/manage_passwords_bubble_view.h" | 5 #include "chrome/browser/ui/views/passwords/manage_passwords_bubble_view.h" |
| 6 | 6 |
| 7 #include "chrome/browser/chrome_notification_types.h" | 7 #include "chrome/browser/chrome_notification_types.h" |
| 8 #include "chrome/browser/ui/browser.h" | 8 #include "chrome/browser/ui/browser.h" |
| 9 #include "chrome/browser/ui/browser_finder.h" | 9 #include "chrome/browser/ui/browser_finder.h" |
| 10 #include "chrome/browser/ui/fullscreen/fullscreen_controller.h" | 10 #include "chrome/browser/ui/fullscreen/fullscreen_controller.h" |
| (...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 202 new views::LabelButton(this, l10n_util::GetStringUTF16(IDS_CANCEL)); | 202 new views::LabelButton(this, l10n_util::GetStringUTF16(IDS_CANCEL)); |
| 203 cancel_button_->SetStyle(views::Button::STYLE_BUTTON); | 203 cancel_button_->SetStyle(views::Button::STYLE_BUTTON); |
| 204 cancel_button_->SetFontList( | 204 cancel_button_->SetFontList( |
| 205 ui::ResourceBundle::GetSharedInstance().GetFontList( | 205 ui::ResourceBundle::GetSharedInstance().GetFontList( |
| 206 ui::ResourceBundle::SmallFont)); | 206 ui::ResourceBundle::SmallFont)); |
| 207 | 207 |
| 208 // Title row. | 208 // Title row. |
| 209 BuildColumnSet(layout, SINGLE_VIEW_COLUMN_SET); | 209 BuildColumnSet(layout, SINGLE_VIEW_COLUMN_SET); |
| 210 AddTitleRow(layout, parent_->model()); | 210 AddTitleRow(layout, parent_->model()); |
| 211 | 211 |
| 212 // TODO(vasilii): this is a stub instead of actual data. We temporary show 2 | 212 const auto& pending_credentials = parent_->model()->pending_credentials(); |
| 213 // credentials. | 213 for (autofill::PasswordForm* form : pending_credentials) { |
| 214 for (int i = 0; i < 2; ++i) { | 214 CredentialsItemView* credential_view = new CredentialsItemView(this, *form); |
| 215 base::string16 name = | |
| 216 l10n_util::GetStringFUTF16Int(IDS_NUMBERED_PROFILE_NAME, i); | |
| 217 CredentialsItemView* credential_view = new CredentialsItemView(this, name); | |
| 218 // Add the title to the layout with appropriate padding. | 215 // Add the title to the layout with appropriate padding. |
| 219 layout->StartRow(0, SINGLE_VIEW_COLUMN_SET); | 216 layout->StartRow(0, SINGLE_VIEW_COLUMN_SET); |
| 220 layout->AddView(credential_view); | 217 layout->AddView(credential_view); |
| 221 } | 218 } |
| 222 | 219 |
| 223 // Button row. | 220 // Button row. |
| 224 BuildColumnSet(layout, SINGLE_BUTTON_COLUMN_SET); | 221 BuildColumnSet(layout, SINGLE_BUTTON_COLUMN_SET); |
| 225 layout->StartRowWithPadding( | 222 layout->StartRowWithPadding( |
| 226 0, SINGLE_BUTTON_COLUMN_SET, 0, views::kRelatedControlVerticalSpacing); | 223 0, SINGLE_BUTTON_COLUMN_SET, 0, views::kRelatedControlVerticalSpacing); |
| 227 layout->AddView(cancel_button_); | 224 layout->AddView(cancel_button_); |
| 228 | 225 |
| 229 // Extra padding for visual awesomeness. | 226 // Extra padding for visual awesomeness. |
| 230 layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); | 227 layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); |
| 231 | 228 |
| 232 parent_->set_initially_focused_view(cancel_button_); | 229 parent_->set_initially_focused_view(cancel_button_); |
| 233 } | 230 } |
| 234 | 231 |
| 235 ManagePasswordsBubbleView::AccountChooserView::~AccountChooserView() { | 232 ManagePasswordsBubbleView::AccountChooserView::~AccountChooserView() { |
| 236 } | 233 } |
| 237 | 234 |
| 238 void ManagePasswordsBubbleView::AccountChooserView::ButtonPressed( | 235 void ManagePasswordsBubbleView::AccountChooserView::ButtonPressed( |
| 239 views::Button* sender, const ui::Event& event) { | 236 views::Button* sender, const ui::Event& event) { |
| 237 if (sender != cancel_button_) { |
| 238 // ManagePasswordsBubbleModel should care about calling a callback in case |
| 239 // the bubble is dismissed by any other means. |
| 240 CredentialsItemView* view = static_cast<CredentialsItemView*>(sender); |
| 241 parent_->model()->OnChooseCredentials(view->form()); |
| 242 } else { |
| 243 parent_->model()->OnNopeClicked(); |
| 244 } |
| 240 parent_->Close(); | 245 parent_->Close(); |
| 241 } | 246 } |
| 242 | 247 |
| 243 // ManagePasswordsBubbleView::PendingView ------------------------------------- | 248 // ManagePasswordsBubbleView::PendingView ------------------------------------- |
| 244 | 249 |
| 245 // A view offering the user the ability to save credentials. Contains a | 250 // A view offering the user the ability to save credentials. Contains a |
| 246 // single ManagePasswordItemView, along with a "Save Passwords" button | 251 // single ManagePasswordItemView, along with a "Save Passwords" button |
| 247 // and a rejection combobox. | 252 // and a rejection combobox. |
| 248 class ManagePasswordsBubbleView::PendingView : public views::View, | 253 class ManagePasswordsBubbleView::PendingView : public views::View, |
| 249 public views::ButtonListener, | 254 public views::ButtonListener, |
| (...skipping 24 matching lines...) Expand all Loading... |
| 274 ManagePasswordsBubbleView::PendingView::PendingView( | 279 ManagePasswordsBubbleView::PendingView::PendingView( |
| 275 ManagePasswordsBubbleView* parent) | 280 ManagePasswordsBubbleView* parent) |
| 276 : parent_(parent) { | 281 : parent_(parent) { |
| 277 views::GridLayout* layout = new views::GridLayout(this); | 282 views::GridLayout* layout = new views::GridLayout(this); |
| 278 layout->set_minimum_size(gfx::Size(kDesiredBubbleWidth, 0)); | 283 layout->set_minimum_size(gfx::Size(kDesiredBubbleWidth, 0)); |
| 279 SetLayoutManager(layout); | 284 SetLayoutManager(layout); |
| 280 | 285 |
| 281 // Create the pending credential item, save button and refusal combobox. | 286 // Create the pending credential item, save button and refusal combobox. |
| 282 ManagePasswordItemView* item = | 287 ManagePasswordItemView* item = |
| 283 new ManagePasswordItemView(parent->model(), | 288 new ManagePasswordItemView(parent->model(), |
| 284 parent->model()->pending_credentials(), | 289 parent->model()->pending_password(), |
| 285 password_manager::ui::FIRST_ITEM); | 290 password_manager::ui::FIRST_ITEM); |
| 286 save_button_ = new views::BlueButton( | 291 save_button_ = new views::BlueButton( |
| 287 this, l10n_util::GetStringUTF16(IDS_PASSWORD_MANAGER_SAVE_BUTTON)); | 292 this, l10n_util::GetStringUTF16(IDS_PASSWORD_MANAGER_SAVE_BUTTON)); |
| 288 save_button_->SetFontList(ui::ResourceBundle::GetSharedInstance().GetFontList( | 293 save_button_->SetFontList(ui::ResourceBundle::GetSharedInstance().GetFontList( |
| 289 ui::ResourceBundle::SmallFont)); | 294 ui::ResourceBundle::SmallFont)); |
| 290 | 295 |
| 291 combobox_model_.reset(new SavePasswordRefusalComboboxModel()); | 296 combobox_model_.reset(new SavePasswordRefusalComboboxModel()); |
| 292 refuse_combobox_.reset(new views::Combobox(combobox_model_.get())); | 297 refuse_combobox_.reset(new views::Combobox(combobox_model_.get())); |
| 293 refuse_combobox_->set_listener(this); | 298 refuse_combobox_->set_listener(this); |
| 294 refuse_combobox_->SetStyle(views::Combobox::STYLE_ACTION); | 299 refuse_combobox_->SetStyle(views::Combobox::STYLE_ACTION); |
| (...skipping 586 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 881 initially_focused_view_ = NULL; | 886 initially_focused_view_ = NULL; |
| 882 if (password_manager::ui::IsPendingState(model()->state())) { | 887 if (password_manager::ui::IsPendingState(model()->state())) { |
| 883 if (never_save_passwords_) | 888 if (never_save_passwords_) |
| 884 AddChildView(new ConfirmNeverView(this)); | 889 AddChildView(new ConfirmNeverView(this)); |
| 885 else | 890 else |
| 886 AddChildView(new PendingView(this)); | 891 AddChildView(new PendingView(this)); |
| 887 } else if (model()->state() == password_manager::ui::BLACKLIST_STATE) { | 892 } else if (model()->state() == password_manager::ui::BLACKLIST_STATE) { |
| 888 AddChildView(new BlacklistedView(this)); | 893 AddChildView(new BlacklistedView(this)); |
| 889 } else if (model()->state() == password_manager::ui::CONFIRMATION_STATE) { | 894 } else if (model()->state() == password_manager::ui::CONFIRMATION_STATE) { |
| 890 AddChildView(new SaveConfirmationView(this)); | 895 AddChildView(new SaveConfirmationView(this)); |
| 896 } else if (model()->state() == |
| 897 password_manager::ui::CREDENTIAL_REQUEST_STATE) { |
| 898 AddChildView(new AccountChooserView(this)); |
| 891 } else { | 899 } else { |
| 892 AddChildView(new ManageView(this)); | 900 AddChildView(new ManageView(this)); |
| 893 } | 901 } |
| 894 GetLayoutManager()->Layout(this); | 902 GetLayoutManager()->Layout(this); |
| 895 } | 903 } |
| 896 | 904 |
| 897 void ManagePasswordsBubbleView::NotifyNeverForThisSiteClicked() { | 905 void ManagePasswordsBubbleView::NotifyNeverForThisSiteClicked() { |
| 898 if (model()->best_matches().empty()) { | 906 if (model()->best_matches().empty()) { |
| 899 // Skip confirmation if there are no existing passwords for this site. | 907 // Skip confirmation if there are no existing passwords for this site. |
| 900 NotifyConfirmedNeverForThisSite(); | 908 NotifyConfirmedNeverForThisSite(); |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 933 } | 941 } |
| 934 | 942 |
| 935 void ManagePasswordsBubbleView::Observe( | 943 void ManagePasswordsBubbleView::Observe( |
| 936 int type, | 944 int type, |
| 937 const content::NotificationSource& source, | 945 const content::NotificationSource& source, |
| 938 const content::NotificationDetails& details) { | 946 const content::NotificationDetails& details) { |
| 939 DCHECK_EQ(type, chrome::NOTIFICATION_FULLSCREEN_CHANGED); | 947 DCHECK_EQ(type, chrome::NOTIFICATION_FULLSCREEN_CHANGED); |
| 940 GetWidget()->SetVisibilityAnimationTransition(views::Widget::ANIMATE_NONE); | 948 GetWidget()->SetVisibilityAnimationTransition(views::Widget::ANIMATE_NONE); |
| 941 CloseBubble(); | 949 CloseBubble(); |
| 942 } | 950 } |
| OLD | NEW |