| Index: chrome/browser/ui/webui/options2/chromeos/set_wallpaper_options_handler2.cc
|
| diff --git a/chrome/browser/ui/webui/options2/chromeos/set_wallpaper_options_handler2.cc b/chrome/browser/ui/webui/options2/chromeos/set_wallpaper_options_handler2.cc
|
| index aba9aae9c40d42c8fb42e7ff92f6e185b559d4e3..cadf81360115c2809866710f9c46b9c68e6ce9be 100644
|
| --- a/chrome/browser/ui/webui/options2/chromeos/set_wallpaper_options_handler2.cc
|
| +++ b/chrome/browser/ui/webui/options2/chromeos/set_wallpaper_options_handler2.cc
|
| @@ -46,6 +46,8 @@ void SetWallpaperOptionsHandler::GetLocalizedValues(
|
| l10n_util::GetStringUTF16(IDS_OPTIONS_SET_WALLPAPER_DIALOG_TEXT));
|
| localized_strings->SetString("setWallpaperAuthor",
|
| l10n_util::GetStringUTF16(IDS_OPTIONS_SET_WALLPAPER_AUTHOR_TEXT));
|
| + localized_strings->SetString("randomCheckbox",
|
| + l10n_util::GetStringUTF16(IDS_OPTIONS_SET_WALLPAPER_RANDOM));
|
| }
|
|
|
| void SetWallpaperOptionsHandler::RegisterMessages() {
|
| @@ -55,8 +57,11 @@ void SetWallpaperOptionsHandler::RegisterMessages() {
|
| web_ui()->RegisterMessageCallback("onSetWallpaperPageShown",
|
| base::Bind(&SetWallpaperOptionsHandler::HandlePageShown,
|
| base::Unretained(this)));
|
| - web_ui()->RegisterMessageCallback("selectWallpaper",
|
| - base::Bind(&SetWallpaperOptionsHandler::HandleSelectImage,
|
| + web_ui()->RegisterMessageCallback("selectDefaultWallpaper",
|
| + base::Bind(&SetWallpaperOptionsHandler::HandleDefaultWallpaper,
|
| + base::Unretained(this)));
|
| + web_ui()->RegisterMessageCallback("selectRandomWallpaper",
|
| + base::Bind(&SetWallpaperOptionsHandler::HandleRandomWallpaper,
|
| base::Unretained(this)));
|
| }
|
|
|
| @@ -86,13 +91,16 @@ void SetWallpaperOptionsHandler::HandlePageInitialized(
|
|
|
| void SetWallpaperOptionsHandler::HandlePageShown(const base::ListValue* args) {
|
| DCHECK(args && args->empty());
|
| - int index = chromeos::UserManager::Get()->GetUserWallpaperIndex();
|
| + User::WallpaperType type;
|
| + int index;
|
| + UserManager::Get()->GetLoggedInUserWallpaperProperties(type, index);
|
| base::StringValue image_url(GetDefaultWallpaperThumbnailURL(index));
|
| + base::FundamentalValue is_random(type == User::RANDOM);
|
| web_ui()->CallJavascriptFunction("SetWallpaperOptions.setSelectedImage",
|
| - image_url);
|
| + image_url, is_random);
|
| }
|
|
|
| -void SetWallpaperOptionsHandler::HandleSelectImage(const ListValue* args) {
|
| +void SetWallpaperOptionsHandler::HandleDefaultWallpaper(const ListValue* args) {
|
| std::string image_url;
|
| if (!args ||
|
| args->GetSize() != 1 ||
|
| @@ -104,12 +112,24 @@ void SetWallpaperOptionsHandler::HandleSelectImage(const ListValue* args) {
|
|
|
| int user_image_index;
|
| if (IsDefaultWallpaperURL(image_url, &user_image_index)) {
|
| - UserManager::Get()->SaveUserWallpaperIndex(user_image_index);
|
| + UserManager::Get()->SaveLoggedInUserWallpaperProperties(User::DEFAULT,
|
| + user_image_index);
|
| ash::Shell::GetInstance()->desktop_background_controller()->
|
| SetLoggedInUserWallpaper();
|
| }
|
| }
|
|
|
| +void SetWallpaperOptionsHandler::HandleRandomWallpaper(const ListValue* args) {
|
| + int index = ash::GetRandomWallpaperIndex();
|
| + UserManager::Get()->SaveLoggedInUserWallpaperProperties(User::RANDOM, index);
|
| + ash::Shell::GetInstance()->desktop_background_controller()->
|
| + SetDefaultWallpaper(index);
|
| + base::StringValue image_url(GetDefaultWallpaperThumbnailURL(index));
|
| + base::FundamentalValue is_random(true);
|
| + web_ui()->CallJavascriptFunction("SetWallpaperOptions.setSelectedImage",
|
| + image_url, is_random);
|
| +}
|
| +
|
| gfx::NativeWindow SetWallpaperOptionsHandler::GetBrowserWindow() const {
|
| Browser* browser =
|
| BrowserList::FindBrowserWithProfile(Profile::FromWebUI(web_ui()));
|
|
|