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

Side by Side Diff: chrome/browser/ui/views/website_settings/chooser_bubble_ui_view.cc

Issue 1545773002: Address some TODOs for ChooserBubbleDelegate class (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: removed some TODO comments Created 4 years, 11 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
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/website_settings/chooser_bubble_ui_view.h" 5 #include "chrome/browser/ui/views/website_settings/chooser_bubble_ui_view.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "base/prefs/pref_service.h" 10 #include "base/prefs/pref_service.h"
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 class ChooserTableModel : public ui::TableModel, 115 class ChooserTableModel : public ui::TableModel,
116 public ChooserBubbleDelegate::Observer { 116 public ChooserBubbleDelegate::Observer {
117 public: 117 public:
118 explicit ChooserTableModel(ChooserBubbleDelegate* chooser_bubble_delegate) 118 explicit ChooserTableModel(ChooserBubbleDelegate* chooser_bubble_delegate)
119 : observer_(nullptr), chooser_bubble_delegate_(chooser_bubble_delegate) { 119 : observer_(nullptr), chooser_bubble_delegate_(chooser_bubble_delegate) {
120 chooser_bubble_delegate_->set_observer(this); 120 chooser_bubble_delegate_->set_observer(this);
121 } 121 }
122 122
123 // ui::TableModel: 123 // ui::TableModel:
124 int RowCount() override { 124 int RowCount() override {
125 const std::vector<base::string16>& device_names = 125 size_t num_options = chooser_bubble_delegate_->NumOptions();
126 chooser_bubble_delegate_->GetOptions(); 126 // Here it returns 1 when there is no device. In this case, the
127 if (device_names.empty()) { 127 // table view still needs to display a text message saying no
128 // Here it returns 1 when there is no device. In this case, the 128 // devices found, so the number of rows is 1.
129 // table view still needs to display a text message saying no 129 return num_options == 0 ? 1 : static_cast<int>(num_options);
130 // devices found, so the number of rows is 1.
131 return 1;
132 } else {
133 return static_cast<int>(device_names.size());
134 }
135 } 130 }
136 131
137 // ui::TableModel: 132 // ui::TableModel:
138 base::string16 GetText(int row, int column_id) override { 133 base::string16 GetText(int row, int column_id) override {
139 const std::vector<base::string16>& device_names = 134 size_t num_options = chooser_bubble_delegate_->NumOptions();
140 chooser_bubble_delegate_->GetOptions(); 135 if (num_options == 0) {
141 if (device_names.empty()) {
142 DCHECK(row == 0); 136 DCHECK(row == 0);
143 return l10n_util::GetStringUTF16( 137 return l10n_util::GetStringUTF16(
144 IDS_CHOOSER_BUBBLE_NO_DEVICES_FOUND_PROMPT); 138 IDS_CHOOSER_BUBBLE_NO_DEVICES_FOUND_PROMPT);
145 } else if (row >= 0 && row < static_cast<int>(device_names.size())) { 139 } else if (row >= 0 && row < static_cast<int>(num_options)) {
146 return device_names[row]; 140 return chooser_bubble_delegate_->GetOption(static_cast<size_t>(row));
147 } else { 141 } else {
148 NOTREACHED(); 142 NOTREACHED();
149 return base::string16(); 143 return base::string16();
150 } 144 }
151 } 145 }
152 146
153 // ui::TableModel: 147 // ui::TableModel:
154 void SetObserver(ui::TableModelObserver* observer) override { 148 void SetObserver(ui::TableModelObserver* observer) override {
155 observer_ = observer; 149 observer_ = observer;
156 } 150 }
157 151
158 // ChooserOptions::Observer: 152 // ChooserOptions::Observer:
159 void OnOptionsInitialized() override { 153 void OnOptionsInitialized() override {
160 if (observer_) { 154 if (observer_) {
161 observer_->OnModelChanged(); 155 observer_->OnModelChanged();
162 Update(); 156 Update();
163 } 157 }
164 } 158 }
165 159
166 // ChooserOptions::Observer: 160 // ChooserOptions::Observer:
167 void OnOptionAdded(int index) override { 161 void OnOptionAdded(size_t index) override {
168 if (observer_) { 162 if (observer_) {
169 observer_->OnItemsAdded(index, 1); 163 observer_->OnItemsAdded(static_cast<int>(index), 1);
170 Update(); 164 Update();
171 } 165 }
172 } 166 }
173 167
174 // ChooserOptions::Observer: 168 // ChooserOptions::Observer:
175 void OnOptionRemoved(int index) override { 169 void OnOptionRemoved(size_t index) override {
176 if (observer_) { 170 if (observer_) {
177 observer_->OnItemsRemoved(index, 1); 171 observer_->OnItemsRemoved(static_cast<int>(index), 1);
178 Update(); 172 Update();
179 } 173 }
180 } 174 }
181 175
182 void Update() { 176 void Update() {
183 views::TableView* table_view = static_cast<views::TableView*>(observer_); 177 views::TableView* table_view = static_cast<views::TableView*>(observer_);
184 178
185 if (chooser_bubble_delegate_->GetOptions().empty()) { 179 if (chooser_bubble_delegate_->NumOptions() == 0) {
186 observer_->OnModelChanged(); 180 observer_->OnModelChanged();
187 table_view->SetEnabled(false); 181 table_view->SetEnabled(false);
188 } else { 182 } else {
189 table_view->SetEnabled(true); 183 table_view->SetEnabled(true);
190 } 184 }
191 } 185 }
192 186
193 void SetConnectButton(views::LabelButton* connect_button) { 187 void SetConnectButton(views::LabelButton* connect_button) {
194 connect_button_ = connect_button; 188 connect_button_ = connect_button;
195 } 189 }
(...skipping 29 matching lines...) Expand all
225 chooser_table_model_ = new ChooserTableModel(chooser_bubble_delegate_); 219 chooser_table_model_ = new ChooserTableModel(chooser_bubble_delegate_);
226 table_view_ = new views::TableView(chooser_table_model_, table_columns, 220 table_view_ = new views::TableView(chooser_table_model_, table_columns,
227 views::TEXT_ONLY, true); 221 views::TEXT_ONLY, true);
228 table_view_->set_select_on_remove(false); 222 table_view_->set_select_on_remove(false);
229 chooser_table_model_->SetObserver(table_view_); 223 chooser_table_model_->SetObserver(table_view_);
230 table_view_->SetObserver(this); 224 table_view_->SetObserver(this);
231 layout->AddView(table_view_->CreateParentIfNecessary(), 1, 1, 225 layout->AddView(table_view_->CreateParentIfNecessary(), 1, 1,
232 views::GridLayout::FILL, views::GridLayout::FILL, 226 views::GridLayout::FILL, views::GridLayout::FILL,
233 kChooserPermissionBubbleWidth, 227 kChooserPermissionBubbleWidth,
234 kChooserPermissionBubbleHeight); 228 kChooserPermissionBubbleHeight);
235 if (chooser_bubble_delegate_->GetOptions().empty()) { 229 if (chooser_bubble_delegate_->NumOptions() == 0) {
236 table_view_->SetEnabled(false); 230 table_view_->SetEnabled(false);
237 } 231 }
238 232
239 layout->AddPaddingRow(0, kItemMajorSpacing); 233 layout->AddPaddingRow(0, kItemMajorSpacing);
240 234
241 views::View* button_row = new views::View(); 235 views::View* button_row = new views::View();
242 views::GridLayout* button_layout = new views::GridLayout(button_row); 236 views::GridLayout* button_layout = new views::GridLayout(button_row);
243 views::ColumnSet* button_columns = button_layout->AddColumnSet(0); 237 views::ColumnSet* button_columns = button_layout->AddColumnSet(0);
244 button_row->SetLayoutManager(button_layout); 238 button_row->SetLayoutManager(button_layout);
245 layout->StartRow(1, 0); 239 layout->StartRow(1, 0);
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
398 return browser_view->exclusive_access_bubble()->GetView(); 392 return browser_view->exclusive_access_bubble()->GetView();
399 393
400 return browser_view->top_container(); 394 return browser_view->top_container();
401 } 395 }
402 396
403 views::BubbleBorder::Arrow ChooserBubbleUiView::GetAnchorArrow() { 397 views::BubbleBorder::Arrow ChooserBubbleUiView::GetAnchorArrow() {
404 if (browser_->SupportsWindowFeature(Browser::FEATURE_LOCATIONBAR)) 398 if (browser_->SupportsWindowFeature(Browser::FEATURE_LOCATIONBAR))
405 return views::BubbleBorder::TOP_LEFT; 399 return views::BubbleBorder::TOP_LEFT;
406 return views::BubbleBorder::NONE; 400 return views::BubbleBorder::NONE;
407 } 401 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698