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

Side by Side Diff: chrome/browser/ui/toolbar/wrench_menu_model.cc

Issue 7155015: Store profile avatar to preferences (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: '' Created 9 years, 5 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/toolbar/wrench_menu_model.h" 5 #include "chrome/browser/ui/toolbar/wrench_menu_model.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <cmath> 8 #include <cmath>
9 9
10 #include "base/command_line.h" 10 #include "base/command_line.h"
11 #include "base/i18n/number_formatting.h" 11 #include "base/i18n/number_formatting.h"
12 #include "base/path_service.h" 12 #include "base/path_service.h"
13 #include "base/string_number_conversions.h" 13 #include "base/string_number_conversions.h"
14 #include "base/string_util.h" 14 #include "base/string_util.h"
15 #include "base/utf_string_conversions.h" 15 #include "base/utf_string_conversions.h"
16 #include "chrome/app/chrome_command_ids.h" 16 #include "chrome/app/chrome_command_ids.h"
17 #include "chrome/browser/browser_process.h" 17 #include "chrome/browser/browser_process.h"
18 #include "chrome/browser/defaults.h" 18 #include "chrome/browser/defaults.h"
19 #include "chrome/browser/prefs/pref_service.h" 19 #include "chrome/browser/prefs/pref_service.h"
20 #include "chrome/browser/profiles/profile.h" 20 #include "chrome/browser/profiles/profile.h"
21 #include "chrome/browser/profiles/profile_info_cache.h"
21 #include "chrome/browser/profiles/profile_manager.h" 22 #include "chrome/browser/profiles/profile_manager.h"
22 #include "chrome/browser/sync/profile_sync_service.h" 23 #include "chrome/browser/sync/profile_sync_service.h"
23 #include "chrome/browser/sync/sync_ui_util.h" 24 #include "chrome/browser/sync/sync_ui_util.h"
24 #include "chrome/browser/tabs/tab_strip_model.h" 25 #include "chrome/browser/tabs/tab_strip_model.h"
25 #include "chrome/browser/task_manager/task_manager.h" 26 #include "chrome/browser/task_manager/task_manager.h"
26 #include "chrome/browser/ui/browser.h" 27 #include "chrome/browser/ui/browser.h"
27 #include "chrome/browser/ui/browser_window.h" 28 #include "chrome/browser/ui/browser_window.h"
28 #include "chrome/browser/ui/toolbar/encoding_menu_controller.h" 29 #include "chrome/browser/ui/toolbar/encoding_menu_controller.h"
29 #include "chrome/browser/upgrade_detector.h" 30 #include "chrome/browser/upgrade_detector.h"
30 #include "chrome/common/chrome_paths.h" 31 #include "chrome/common/chrome_paths.h"
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after
220 221
221 ProfilesSubMenuModel::ProfilesSubMenuModel( 222 ProfilesSubMenuModel::ProfilesSubMenuModel(
222 ui::SimpleMenuModel::Delegate* delegate, Browser* browser) 223 ui::SimpleMenuModel::Delegate* delegate, Browser* browser)
223 : SimpleMenuModel(this), 224 : SimpleMenuModel(this),
224 browser_(browser), 225 browser_(browser),
225 delegate_(delegate) { 226 delegate_(delegate) {
226 Build(); 227 Build();
227 } 228 }
228 229
229 void ProfilesSubMenuModel::Build() { 230 void ProfilesSubMenuModel::Build() {
230 ProfileManager* profile_manager = g_browser_process->profile_manager(); 231 ProfileInfoCache& cache =
231 size_t count = profile_manager->GetNumberOfProfiles(); 232 g_browser_process->profile_manager()->GetProfileInfoCache();
233 size_t count = cache.GetNumberOfProfiles();
232 for (size_t i = 0; i < count; ++i) { 234 for (size_t i = 0; i < count; ++i) {
233 AddCheckItem(COMMAND_SWITCH_TO_PROFILE + i, 235 AddCheckItem(COMMAND_SWITCH_TO_PROFILE + i,
234 profile_manager->GetNameOfProfileAtIndex(i)); 236 cache.GetNameOfProfileAtIndex(i));
235 } 237 }
236 238
237 AddSeparator(); 239 AddSeparator();
238 240
239 const string16 short_product_name = 241 const string16 short_product_name =
240 l10n_util::GetStringUTF16(IDS_SHORT_PRODUCT_NAME); 242 l10n_util::GetStringUTF16(IDS_SHORT_PRODUCT_NAME);
241 AddItem(IDC_CREATE_NEW_PROFILE, l10n_util::GetStringFUTF16( 243 AddItem(IDC_CREATE_NEW_PROFILE, l10n_util::GetStringFUTF16(
242 IDS_PROFILES_CREATE_NEW_PROFILE_OPTION, short_product_name)); 244 IDS_PROFILES_CREATE_NEW_PROFILE_OPTION, short_product_name));
243 } 245 }
244 246
245 class ProfileSwitchObserver : public ProfileManagerObserver { 247 class ProfileSwitchObserver : public ProfileManagerObserver {
246 virtual void OnProfileCreated(Profile* profile) OVERRIDE { 248 virtual void OnProfileCreated(Profile* profile) OVERRIDE {
247 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 249 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
248 250
249 Browser* browser = BrowserList::FindTabbedBrowser(profile, false); 251 Browser* browser = BrowserList::FindTabbedBrowser(profile, false);
250 if (browser) 252 if (browser)
251 browser->window()->Activate(); 253 browser->window()->Activate();
252 else 254 else
253 Browser::NewWindowWithProfile(profile); 255 Browser::NewWindowWithProfile(profile);
254 } 256 }
255 257
256 virtual bool DeleteAfterCreation() OVERRIDE { return true; } 258 virtual bool DeleteAfterCreation() OVERRIDE { return true; }
257 }; 259 };
258 260
259 void ProfilesSubMenuModel::ExecuteCommand(int command_id) { 261 void ProfilesSubMenuModel::ExecuteCommand(int command_id) {
260 ProfileManager* profile_manager = g_browser_process->profile_manager(); 262 ProfileInfoCache& cache =
263 g_browser_process->profile_manager()->GetProfileInfoCache();
261 size_t index = command_id; 264 size_t index = command_id;
262 if (index < profile_manager->GetNumberOfProfiles()) { 265 if (index < cache.GetNumberOfProfiles()) {
263 FilePath userDataFolder; 266 FilePath profile_path = cache.GetPathOfProfileAtIndex(index);
264 PathService::Get(chrome::DIR_USER_DATA, &userDataFolder);
265 FilePath profile_path =
266 profile_manager->GetFilePathOfProfileAtIndex(index, userDataFolder);
267
268 ProfileSwitchObserver* observer = new ProfileSwitchObserver; 267 ProfileSwitchObserver* observer = new ProfileSwitchObserver;
269 // The observer is deleted by the manager when profile creation is finished. 268 // The observer is deleted by the manager when profile creation is finished.
270 profile_manager->CreateProfileAsync(profile_path, observer); 269 g_browser_process->profile_manager()->CreateProfileAsync(
270 profile_path, observer);
271 } else { 271 } else {
272 delegate_->ExecuteCommand(command_id); 272 delegate_->ExecuteCommand(command_id);
273 } 273 }
274 } 274 }
275 275
276 bool ProfilesSubMenuModel::IsCommandIdChecked(int command_id) const { 276 bool ProfilesSubMenuModel::IsCommandIdChecked(int command_id) const {
277 ProfileManager* profile_manager = g_browser_process->profile_manager(); 277 ProfileInfoCache& cache =
278 g_browser_process->profile_manager()->GetProfileInfoCache();
278 size_t index = command_id; 279 size_t index = command_id;
279 if (index < profile_manager->GetNumberOfProfiles()) { 280 if (index < cache.GetNumberOfProfiles()) {
280 FilePath userDataFolder; 281 FilePath userDataFolder;
281 PathService::Get(chrome::DIR_USER_DATA, &userDataFolder); 282 PathService::Get(chrome::DIR_USER_DATA, &userDataFolder);
282 FilePath profile_path = 283 FilePath profile_path = cache.GetPathOfProfileAtIndex(index);
283 profile_manager->GetFilePathOfProfileAtIndex(index, userDataFolder);
284 return browser_->GetProfile()->GetPath() == profile_path; 284 return browser_->GetProfile()->GetPath() == profile_path;
285 } 285 }
286 return delegate_->IsCommandIdChecked(command_id); 286 return delegate_->IsCommandIdChecked(command_id);
287 } 287 }
288 288
289 bool ProfilesSubMenuModel::IsCommandIdEnabled(int command_id) const { 289 bool ProfilesSubMenuModel::IsCommandIdEnabled(int command_id) const {
290 ProfileManager* profile_manager = g_browser_process->profile_manager(); 290 ProfileInfoCache& cache =
291 g_browser_process->profile_manager()->GetProfileInfoCache();
291 size_t index = command_id; 292 size_t index = command_id;
292 if (index < profile_manager->GetNumberOfProfiles()) 293 if (index < cache.GetNumberOfProfiles())
293 return true; 294 return true;
294 return delegate_->IsCommandIdEnabled(command_id); 295 return delegate_->IsCommandIdEnabled(command_id);
295 } 296 }
296 297
297 bool ProfilesSubMenuModel::GetAcceleratorForCommandId( 298 bool ProfilesSubMenuModel::GetAcceleratorForCommandId(
298 int command_id, 299 int command_id,
299 ui::Accelerator* accelerator) { 300 ui::Accelerator* accelerator) {
300 ProfileManager* profile_manager = g_browser_process->profile_manager(); 301 ProfileInfoCache& cache =
302 g_browser_process->profile_manager()->GetProfileInfoCache();
301 size_t index = command_id; 303 size_t index = command_id;
302 if (index < profile_manager->GetNumberOfProfiles()) 304 if (index < cache.GetNumberOfProfiles())
303 return false; 305 return false;
304 return delegate_->GetAcceleratorForCommandId(command_id, accelerator); 306 return delegate_->GetAcceleratorForCommandId(command_id, accelerator);
305 } 307 }
306 308
307 //////////////////////////////////////////////////////////////////////////////// 309 ////////////////////////////////////////////////////////////////////////////////
308 // WrenchMenuModel 310 // WrenchMenuModel
309 311
310 WrenchMenuModel::WrenchMenuModel(ui::AcceleratorProvider* provider, 312 WrenchMenuModel::WrenchMenuModel(ui::AcceleratorProvider* provider,
311 Browser* browser) 313 Browser* browser)
312 : ALLOW_THIS_IN_INITIALIZER_LIST(ui::SimpleMenuModel(this)), 314 : ALLOW_THIS_IN_INITIALIZER_LIST(ui::SimpleMenuModel(this)),
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after
564 bookmark_sub_menu_model_.get()); 566 bookmark_sub_menu_model_.get());
565 AddItemWithStringId(IDC_SHOW_HISTORY, IDS_SHOW_HISTORY); 567 AddItemWithStringId(IDC_SHOW_HISTORY, IDS_SHOW_HISTORY);
566 AddItemWithStringId(IDC_SHOW_DOWNLOADS, IDS_SHOW_DOWNLOADS); 568 AddItemWithStringId(IDC_SHOW_DOWNLOADS, IDS_SHOW_DOWNLOADS);
567 AddSeparator(); 569 AddSeparator();
568 570
569 #if !defined(OS_CHROMEOS) 571 #if !defined(OS_CHROMEOS)
570 const string16 short_product_name = 572 const string16 short_product_name =
571 l10n_util::GetStringUTF16(IDS_SHORT_PRODUCT_NAME); 573 l10n_util::GetStringUTF16(IDS_SHORT_PRODUCT_NAME);
572 const CommandLine& browser_command_line = *CommandLine::ForCurrentProcess(); 574 const CommandLine& browser_command_line = *CommandLine::ForCurrentProcess();
573 if (browser_command_line.HasSwitch(switches::kMultiProfiles)) { 575 if (browser_command_line.HasSwitch(switches::kMultiProfiles)) {
574 if (g_browser_process->profile_manager()->GetNumberOfProfiles() > 1) { 576 ProfileInfoCache& cache =
577 g_browser_process->profile_manager()->GetProfileInfoCache();
578 if (cache.GetNumberOfProfiles() > 1) {
575 profiles_sub_menu_model_.reset(new ProfilesSubMenuModel(this, browser_)); 579 profiles_sub_menu_model_.reset(new ProfilesSubMenuModel(this, browser_));
576 AddSubMenu(IDC_PROFILE_MENU, l10n_util::GetStringFUTF16( 580 AddSubMenu(IDC_PROFILE_MENU, l10n_util::GetStringFUTF16(
577 IDS_PROFILES_MENU, short_product_name), 581 IDS_PROFILES_MENU, short_product_name),
578 profiles_sub_menu_model_.get()); 582 profiles_sub_menu_model_.get());
579 } else { 583 } else {
580 profiles_sub_menu_model_.reset(); 584 profiles_sub_menu_model_.reset();
581 AddItem(IDC_CREATE_NEW_PROFILE, l10n_util::GetStringFUTF16( 585 AddItem(IDC_CREATE_NEW_PROFILE, l10n_util::GetStringFUTF16(
582 IDS_PROFILES_CREATE_NEW_PROFILE_OPTION, short_product_name)); 586 IDS_PROFILES_CREATE_NEW_PROFILE_OPTION, short_product_name));
583 } 587 }
584 588
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
671 &enable_increment, &enable_decrement); 675 &enable_increment, &enable_decrement);
672 } 676 }
673 zoom_label_ = l10n_util::GetStringFUTF16( 677 zoom_label_ = l10n_util::GetStringFUTF16(
674 IDS_ZOOM_PERCENT, base::IntToString16(zoom_percent)); 678 IDS_ZOOM_PERCENT, base::IntToString16(zoom_percent));
675 } 679 }
676 680
677 string16 WrenchMenuModel::GetSyncMenuLabel() const { 681 string16 WrenchMenuModel::GetSyncMenuLabel() const {
678 return sync_ui_util::GetSyncMenuLabel( 682 return sync_ui_util::GetSyncMenuLabel(
679 browser_->profile()->GetOriginalProfile()->GetProfileSyncService()); 683 browser_->profile()->GetOriginalProfile()->GetProfileSyncService());
680 } 684 }
OLDNEW
« no previous file with comments | « chrome/browser/profiles/profile_manager.cc ('k') | chrome/browser/ui/views/frame/browser_view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698