Index: chrome/browser/chromeos/login/user_manager_impl.cc |
diff --git a/chrome/browser/chromeos/login/user_manager_impl.cc b/chrome/browser/chromeos/login/user_manager_impl.cc |
index f12e0db8f6fe451570c1422cf726c24c9b2ba245..196e515ffdb488348cc5b9b37e73f2c4497a2f4f 100644 |
--- a/chrome/browser/chromeos/login/user_manager_impl.cc |
+++ b/chrome/browser/chromeos/login/user_manager_impl.cc |
@@ -6,6 +6,7 @@ |
#include <vector> |
+#include "ash/desktop_background/desktop_background_resources.h" |
#include "base/bind.h" |
#include "base/command_line.h" |
#include "base/compiler_specific.h" |
@@ -438,6 +439,10 @@ void UserManagerImpl::RemoveUserFromList(const std::string& email) { |
user_to_remove = it; |
} |
+ DictionaryPrefUpdate prefs_wallpapers_update(prefs, |
+ UserManager::kUserWallpapers); |
+ prefs_wallpapers_update->RemoveWithoutPathExpansion(email, NULL); |
+ |
DictionaryPrefUpdate prefs_images_update(prefs, UserManager::kUserImages); |
std::string image_path_string; |
prefs_images_update->GetStringWithoutPathExpansion(email, &image_path_string); |
@@ -837,6 +842,33 @@ void UserManagerImpl::SetInitialUserImage(const std::string& username) { |
SaveUserDefaultImageIndex(username, image_id); |
} |
+int UserManagerImpl::GetUserWallpaper(const std::string& username) { |
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
+ |
+ PrefService* local_state = g_browser_process->local_state(); |
+ const DictionaryValue* user_wallpapers = |
+ local_state->GetDictionary(UserManager::kUserWallpapers); |
+ int index = ash::GetPresetWallpaperIndex(); |
+ user_wallpapers->GetIntegerWithoutPathExpansion(username, |
+ &index); |
+ return index; |
+} |
+ |
+void UserManagerImpl::SaveWallpaperDefaultIndex(const std::string& username, |
+ int wallpaper_index) { |
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
+ |
+ PrefService* local_state = g_browser_process->local_state(); |
+ DictionaryPrefUpdate wallpapers_update(local_state, |
+ UserManager::kUserWallpapers); |
+ wallpapers_update->SetWithoutPathExpansion(username, |
+ new base::FundamentalValue(wallpaper_index)); |
+ content::NotificationService::current()->Notify( |
+ chrome::NOTIFICATION_DESKTOP_BACKGROUND_CHANGED, |
Ben Goodger (Google)
2012/03/09 23:20:17
can you not use notifications for this at all... r
bshe
2012/03/12 00:14:25
Done.
|
+ content::Source<UserManagerImpl>(this), |
+ content::Details<int>(&wallpaper_index)); |
+} |
+ |
void UserManagerImpl::SetUserImage(const std::string& username, |
int image_index, |
const SkBitmap& image) { |