OLD | NEW |
---|---|
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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/chooser_content_view.h" | 5 #include "chrome/browser/ui/views/chooser_content_view.h" |
6 | 6 |
7 #include "base/memory/ptr_util.h" | 7 #include "base/memory/ptr_util.h" |
8 #include "base/numerics/safe_conversions.h" | 8 #include "base/numerics/safe_conversions.h" |
9 #include "chrome/grit/generated_resources.h" | 9 #include "chrome/grit/generated_resources.h" |
10 #include "ui/base/l10n/l10n_util.h" | 10 #include "ui/base/l10n/l10n_util.h" |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
57 help_text_range_ = gfx::Range(offsets[0], offsets[0] + help_text_.size()); | 57 help_text_range_ = gfx::Range(offsets[0], offsets[0] + help_text_.size()); |
58 re_scan_text_range_ = | 58 re_scan_text_range_ = |
59 gfx::Range(offsets[1], offsets[1] + re_scan_text.size()); | 59 gfx::Range(offsets[1], offsets[1] + re_scan_text.size()); |
60 chooser_controller_->set_view(this); | 60 chooser_controller_->set_view(this); |
61 std::vector<ui::TableColumn> table_columns; | 61 std::vector<ui::TableColumn> table_columns; |
62 table_columns.push_back(ui::TableColumn()); | 62 table_columns.push_back(ui::TableColumn()); |
63 table_view_ = new views::TableView( | 63 table_view_ = new views::TableView( |
64 this, table_columns, | 64 this, table_columns, |
65 chooser_controller_->ShouldShowIconBeforeText() ? views::ICON_AND_TEXT | 65 chooser_controller_->ShouldShowIconBeforeText() ? views::ICON_AND_TEXT |
66 : views::TEXT_ONLY, | 66 : views::TEXT_ONLY, |
67 true /* single_selection */); | 67 !chooser_controller_->AllowMultipleSelection() /* single_selection */); |
68 table_view_->set_select_on_remove(false); | 68 table_view_->set_select_on_remove(false); |
69 table_view_->SetObserver(table_view_observer); | 69 table_view_->SetObserver(table_view_observer); |
70 table_view_->SetEnabled(chooser_controller_->NumOptions() > 0); | 70 table_view_->SetEnabled(chooser_controller_->NumOptions() > 0); |
71 | 71 |
72 table_parent_ = table_view_->CreateParentIfNecessary(); | 72 table_parent_ = table_view_->CreateParentIfNecessary(); |
73 AddChildView(table_parent_); | 73 AddChildView(table_parent_); |
74 | 74 |
75 throbber_ = new views::Throbber(); | 75 throbber_ = new views::Throbber(); |
76 throbber_->SetVisible(false); | 76 throbber_->SetVisible(false); |
77 AddChildView(throbber_); | 77 AddChildView(throbber_); |
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
278 ? chooser_controller_->GetOkButtonLabel() | 278 ? chooser_controller_->GetOkButtonLabel() |
279 : l10n_util::GetStringUTF16(IDS_DEVICE_CHOOSER_CANCEL_BUTTON_TEXT); | 279 : l10n_util::GetStringUTF16(IDS_DEVICE_CHOOSER_CANCEL_BUTTON_TEXT); |
280 } | 280 } |
281 | 281 |
282 bool ChooserContentView::IsDialogButtonEnabled(ui::DialogButton button) const { | 282 bool ChooserContentView::IsDialogButtonEnabled(ui::DialogButton button) const { |
283 return button != ui::DIALOG_BUTTON_OK || | 283 return button != ui::DIALOG_BUTTON_OK || |
284 !table_view_->selection_model().empty(); | 284 !table_view_->selection_model().empty(); |
285 } | 285 } |
286 | 286 |
287 void ChooserContentView::Accept() { | 287 void ChooserContentView::Accept() { |
288 chooser_controller_->Select(table_view_->selection_model().active()); | 288 for (int index : table_view_->selection_model().selected_indices()) |
289 chooser_controller_->Select(index); | |
sky
2016/11/22 04:37:35
Isn't Select() a one time type call? I would expec
juncai
2016/11/22 19:07:00
Done.
| |
289 } | 290 } |
290 | 291 |
291 void ChooserContentView::Cancel() { | 292 void ChooserContentView::Cancel() { |
292 chooser_controller_->Cancel(); | 293 chooser_controller_->Cancel(); |
293 } | 294 } |
294 | 295 |
295 void ChooserContentView::Close() { | 296 void ChooserContentView::Close() { |
296 chooser_controller_->Close(); | 297 chooser_controller_->Close(); |
297 } | 298 } |
298 | 299 |
299 void ChooserContentView::UpdateTableView() { | 300 void ChooserContentView::UpdateTableView() { |
300 if (chooser_controller_->NumOptions() == 0) { | 301 if (chooser_controller_->NumOptions() == 0) { |
301 table_view_->OnModelChanged(); | 302 table_view_->OnModelChanged(); |
302 table_view_->SetEnabled(false); | 303 table_view_->SetEnabled(false); |
303 } else { | 304 } else { |
304 table_view_->SetEnabled(true); | 305 table_view_->SetEnabled(true); |
305 } | 306 } |
306 } | 307 } |
307 | 308 |
308 void ChooserContentView::SetGetHelpAndReScanLink() { | 309 void ChooserContentView::SetGetHelpAndReScanLink() { |
309 footnote_link_->SetText(help_and_re_scan_text_); | 310 footnote_link_->SetText(help_and_re_scan_text_); |
310 footnote_link_->AddStyleRange( | 311 footnote_link_->AddStyleRange( |
311 help_text_range_, views::StyledLabel::RangeStyleInfo::CreateForLink()); | 312 help_text_range_, views::StyledLabel::RangeStyleInfo::CreateForLink()); |
312 footnote_link_->AddStyleRange( | 313 footnote_link_->AddStyleRange( |
313 re_scan_text_range_, views::StyledLabel::RangeStyleInfo::CreateForLink()); | 314 re_scan_text_range_, views::StyledLabel::RangeStyleInfo::CreateForLink()); |
314 } | 315 } |
OLD | NEW |