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

Side by Side Diff: chrome/browser/ui/views/importer_view.cc

Issue 5873005: Views: Implement the ImporterList::Observer in ImporterView to enable the (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/ui/views/importer_view.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/views/importer_view.h" 5 #include "chrome/browser/views/importer_view.h"
6 6
7 #include "app/l10n_util.h" 7 #include "app/l10n_util.h"
8 #include "base/string16.h" 8 #include "base/compiler_specific.h"
9 #include "base/utf_string_conversions.h" 9 #include "base/utf_string_conversions.h"
10 #include "chrome/browser/browser_list.h" 10 #include "chrome/browser/browser_list.h"
11 #include "chrome/browser/browser_window.h" 11 #include "chrome/browser/browser_window.h"
12 #include "chrome/browser/importer/importer_data_types.h" 12 #include "chrome/browser/importer/importer_data_types.h"
13 #include "grit/generated_resources.h" 13 #include "grit/generated_resources.h"
14 #include "grit/locale_settings.h" 14 #include "grit/locale_settings.h"
15 #include "views/controls/button/checkbox.h" 15 #include "views/controls/button/checkbox.h"
16 #include "views/controls/label.h" 16 #include "views/controls/label.h"
17 #include "views/grid_layout.h" 17 #include "views/grid_layout.h"
18 #include "views/standard_layout.h" 18 #include "views/standard_layout.h"
(...skipping 16 matching lines...) Expand all
35 35
36 ImporterView::ImporterView(Profile* profile, int initial_state) 36 ImporterView::ImporterView(Profile* profile, int initial_state)
37 : import_from_label_(NULL), 37 : import_from_label_(NULL),
38 profile_combobox_(NULL), 38 profile_combobox_(NULL),
39 import_items_label_(NULL), 39 import_items_label_(NULL),
40 history_checkbox_(NULL), 40 history_checkbox_(NULL),
41 favorites_checkbox_(NULL), 41 favorites_checkbox_(NULL),
42 passwords_checkbox_(NULL), 42 passwords_checkbox_(NULL),
43 search_engines_checkbox_(NULL), 43 search_engines_checkbox_(NULL),
44 profile_(profile), 44 profile_(profile),
45 importer_host_(new ImporterHost()), 45 ALLOW_THIS_IN_INITIALIZER_LIST(importer_host_(new ImporterHost(this))),
46 initial_state_(initial_state) { 46 initial_state_(initial_state) {
47 DCHECK(profile); 47 DCHECK(profile);
48 SetupControl(); 48 SetupControl();
49 } 49 }
50 50
51 ImporterView::~ImporterView() { 51 ImporterView::~ImporterView() {
52 } 52 }
53 53
54 void ImporterView::SetupControl() { 54 void ImporterView::SetupControl() {
55 // Adds all controls. 55 // Adds all controls.
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
172 172
173 void ImporterView::ButtonPressed( 173 void ImporterView::ButtonPressed(
174 views::Button* sender, const views::Event& event) { 174 views::Button* sender, const views::Event& event) {
175 // When no checkbox is checked we should disable the "Import" button. 175 // When no checkbox is checked we should disable the "Import" button.
176 // This forces the button to evaluate what state they should be in. 176 // This forces the button to evaluate what state they should be in.
177 GetDialogClientView()->UpdateDialogButtons(); 177 GetDialogClientView()->UpdateDialogButtons();
178 } 178 }
179 179
180 int ImporterView::GetItemCount() { 180 int ImporterView::GetItemCount() {
181 DCHECK(importer_host_.get()); 181 DCHECK(importer_host_.get());
182 int item_count = importer_host_->GetAvailableProfileCount(); 182
183 if (checkbox_items_.size() < static_cast<size_t>(item_count)) 183 int item_count;
sky 2010/12/16 23:07:22 This code should live in SourceProfilesLoaded, and
James Hawkins 2010/12/16 23:32:13 Done.
184 checkbox_items_.resize(item_count, initial_state_); 184 if (!importer_host_->source_profiles_loaded()) {
185 item_count = 1;
186 } else {
187 item_count = importer_host_->GetAvailableProfileCount();
188
189 if (checkbox_items_.size() < static_cast<size_t>(item_count))
190 checkbox_items_.resize(item_count, initial_state_);
191 }
192
185 return item_count; 193 return item_count;
186 } 194 }
187 195
188 string16 ImporterView::GetItemAt(int index) { 196 string16 ImporterView::GetItemAt(int index) {
189 DCHECK(importer_host_.get()); 197 DCHECK(importer_host_.get());
190 return WideToUTF16Hack(importer_host_->GetSourceProfileNameAt(index)); 198
199 if (!importer_host_->source_profiles_loaded())
200 return l10n_util::GetStringUTF16(IDS_IMPORT_LOADING_PROFILES);
201 else
202 return WideToUTF16Hack(importer_host_->GetSourceProfileNameAt(index));
191 } 203 }
192 204
193 void ImporterView::ItemChanged(views::Combobox* combobox, 205 void ImporterView::ItemChanged(views::Combobox* combobox,
194 int prev_index, int new_index) { 206 int prev_index, int new_index) {
195 DCHECK(combobox); 207 DCHECK(combobox);
196 DCHECK(checkbox_items_.size() >= 208 DCHECK(checkbox_items_.size() >=
197 static_cast<size_t>(importer_host_->GetAvailableProfileCount())); 209 static_cast<size_t>(importer_host_->GetAvailableProfileCount()));
198 210
199 if (prev_index == new_index) 211 if (prev_index == new_index)
200 return; 212 return;
201 213
202 // Save the current state 214 // Save the current state
203 uint16 prev_items = GetCheckedItems(); 215 uint16 prev_items = GetCheckedItems();
204 checkbox_items_[prev_index] = prev_items; 216 checkbox_items_[prev_index] = prev_items;
205 217
206 // Enable/Disable the checkboxes for this Item 218 // Enable/Disable the checkboxes for this Item
207 uint16 new_enabled_items = importer_host_->GetSourceProfileInfoAt( 219 uint16 new_enabled_items = importer_host_->GetSourceProfileInfoAt(
208 new_index).services_supported; 220 new_index).services_supported;
209 SetCheckedItemsState(new_enabled_items); 221 SetCheckedItemsState(new_enabled_items);
210 222
211 // Set the checked items for this Item 223 // Set the checked items for this Item
212 uint16 new_items = checkbox_items_[new_index]; 224 uint16 new_items = checkbox_items_[new_index];
213 SetCheckedItems(new_items); 225 SetCheckedItems(new_items);
214 } 226 }
215 227
228 void ImporterView::SourceProfilesLoaded() {
229 // Reload the profile combobox.
230 profile_combobox_->ModelChanged();
231 }
232
216 void ImporterView::ImportCanceled() { 233 void ImporterView::ImportCanceled() {
217 ImportComplete(); 234 ImportComplete();
218 } 235 }
219 236
220 void ImporterView::ImportComplete() { 237 void ImporterView::ImportComplete() {
221 // Now close this window since the import completed or was canceled. 238 // Now close this window since the import completed or was canceled.
222 window()->Close(); 239 window()->Close();
223 } 240 }
224 241
225 views::Checkbox* ImporterView::InitCheckbox(const std::wstring& text, 242 views::Checkbox* ImporterView::InitCheckbox(const std::wstring& text,
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
278 if (favorites_checkbox_->IsEnabled()) 295 if (favorites_checkbox_->IsEnabled())
279 favorites_checkbox_->SetChecked(!!(items & importer::FAVORITES)); 296 favorites_checkbox_->SetChecked(!!(items & importer::FAVORITES));
280 297
281 if (passwords_checkbox_->IsEnabled()) 298 if (passwords_checkbox_->IsEnabled())
282 passwords_checkbox_->SetChecked(!!(items & importer::PASSWORDS)); 299 passwords_checkbox_->SetChecked(!!(items & importer::PASSWORDS));
283 300
284 if (search_engines_checkbox_->IsEnabled()) 301 if (search_engines_checkbox_->IsEnabled())
285 search_engines_checkbox_->SetChecked(!!(items & 302 search_engines_checkbox_->SetChecked(!!(items &
286 importer::SEARCH_ENGINES)); 303 importer::SEARCH_ENGINES));
287 } 304 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/views/importer_view.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698