2 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
4 // Licensed under the Flora License, Version 1.1 (the License);
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
8 // http://floralicense.org/license/
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an AS IS BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
17 //!Internet SettingForm class
18 /*@file: IntSettingForm.cpp
19 *@brief: The SettingForm
23 #include <FGraphics.h>
26 #include "IntCommonLib.h"
27 #include "IntConfirmationPopup.h"
28 #include "IntDefaultCustomItem.h"
29 #include "IntDropDownCustomItem.h"
30 #include "IntHistoryPresentationModel.h"
31 #include "IntInternetApp.h"
32 #include "IntMultipleWindowPresentationModel.h"
33 #include "IntNotificationPanel.h"
34 #include "IntRadioCustomItem.h"
35 #include "IntSceneRegister.h"
36 #include "IntSettingForm.h"
37 #include "IntSettingPresentationModel.h"
38 #include "IntSettingToggleCustomItem.h"
41 using namespace Tizen::App;
42 using namespace Tizen::Base;
43 using namespace Tizen::Base::Collection;
44 using namespace Tizen::Graphics;
45 using namespace Tizen::Ui;
46 using namespace Tizen::Ui::Controls;
47 using namespace Tizen::Ui::Scenes;
50 SettingForm::SettingForm(void)
51 : __fontValue(0),__pResetPopup(null),__pWindowInfo(null) , __pConfirmationPopup(null)
55 InitializeSettingValues();
59 SettingForm::~SettingForm(void)
63 delete[] pGroupItemCount;
64 pGroupItemCount = null;
69 SettingForm::InitializeSettingValues(void)
71 AppLog("SettingForm::InitializeSettingValues homepage %ls",SettingPresentationModel::GetInstance()->GetHomepage().GetPointer());
73 pGroupItemCount = new(std::nothrow) int[5];
74 pGroupItemCount[0] = 5; //Homepage
75 pGroupItemCount[1] = 6; //Page content settings
76 pGroupItemCount[2] = 9; //Private and Security
77 pGroupItemCount[3] = 4; //Search
78 pGroupItemCount[4] = 1; //Website settings and Reset
80 for (int iter = (int) SETTING_INVALID + 1; iter < (int) SETTING_MAX; iter++)
82 settingInfo[iter].isSelected = false;
85 AppLogDebug("image display %d", (int) SettingPresentationModel::GetInstance()->IsDisplayImagesEnabled());
86 settingInfo[SETTING_HOMEPAGE_TITLE].titleText = CommonUtil::GetString(L"IDS_BR_BODY_HOMEPAGE");
87 settingInfo[SETTING_HOMEPAGE_TITLE].subText = SettingPresentationModel::GetInstance()->GetHomepage();
88 settingInfo[SETTING_HOMEPAGE_TITLE].itemType = ITEM_TYPE_DROPDOWN;
90 settingInfo[SETTING_CURRENT_PAGE].titleText = CommonUtil::GetString(L"IDS_BR_BODY_CURRENT_PAGE");
91 settingInfo[SETTING_CURRENT_PAGE].subText = L"";
92 settingInfo[SETTING_CURRENT_PAGE].itemType = ITEM_TYPE_RADIO;
94 settingInfo[SETTING_BLANK_PAGE].titleText = CommonUtil::GetString(L"IDS_BR_BODY_BLANK_PAGE");
95 settingInfo[SETTING_BLANK_PAGE].subText = L"";
96 settingInfo[SETTING_BLANK_PAGE].itemType = ITEM_TYPE_RADIO;
97 if (SettingPresentationModel::GetInstance()->GetHomepage().CompareTo((L"IDS_BR_BODY_BLANK_PAGE")) == 0)
99 settingInfo[SETTING_BLANK_PAGE].isSelected = true;
102 settingInfo[SETTING_MOST_VISITED_SITE].titleText = CommonUtil::GetString(L"IDS_BR_BODY_MOST_VISITED_SITES");
103 settingInfo[SETTING_MOST_VISITED_SITE].subText = L"";
104 settingInfo[SETTING_MOST_VISITED_SITE].itemType = ITEM_TYPE_RADIO;
105 if (SettingPresentationModel::GetInstance()->GetHomepage().CompareTo((L"IDS_BR_BODY_MOST_VISITED_SITES")) == 0)
107 settingInfo[SETTING_MOST_VISITED_SITE].isSelected = true;
109 WindowInfo* pWindowInfo = null;
110 String curUrl = SettingPresentationModel::GetInstance()->GetFavoriteUrl();
111 AppLog("SettingForm::OnSceneActivatedN check1");
113 settingInfo[SETTING_FAVORITE_URL].titleText = L"http://www.tizen.org";
114 if (SettingPresentationModel::GetInstance()->GetFavoriteUrl().CompareTo(L"") == 0)
116 SettingPresentationModel::GetInstance()->SetFavoriteValue(L"http://www.tizen.org");
118 settingInfo[SETTING_FAVORITE_URL].subText = L"";
119 settingInfo[SETTING_FAVORITE_URL].itemType = ITEM_TYPE_RADIO;
121 String homePage = SettingPresentationModel::GetInstance()->GetHomepage();
122 if (homePage.CompareTo((L"IDS_BR_BODY_MOST_VISITED_SITES")) == 0)
124 settingInfo[SETTING_MOST_VISITED_SITE].isSelected = true;
125 settingInfo[SETTING_BLANK_PAGE].isSelected = false;
126 settingInfo[SETTING_CURRENT_PAGE].isSelected = false;
127 settingInfo[SETTING_FAVORITE_URL].isSelected = false;
128 SettingPresentationModel::GetInstance()->SetHomepage(L"IDS_BR_BODY_MOST_VISITED_SITES");
130 else if (homePage.CompareTo((L"IDS_BR_BODY_BLANK_PAGE")) == 0)
132 settingInfo[SETTING_MOST_VISITED_SITE].isSelected = false;
133 settingInfo[SETTING_BLANK_PAGE].isSelected = true;
134 settingInfo[SETTING_CURRENT_PAGE].isSelected = false;
135 settingInfo[SETTING_FAVORITE_URL].isSelected = false;
136 SettingPresentationModel::GetInstance()->SetHomepage(L"IDS_BR_BODY_BLANK_PAGE");
140 settingInfo[SETTING_MOST_VISITED_SITE].isSelected = false;
141 settingInfo[SETTING_BLANK_PAGE].isSelected = false;
142 settingInfo[SETTING_CURRENT_PAGE].isSelected = false;
143 settingInfo[SETTING_FAVORITE_URL].isSelected = true;
146 settingInfo[SETTING_DEFAULT_VIEW_TITLE].titleText = CommonUtil::GetString(L"IDS_BR_BODY_DEFAULT_VIEW");
147 settingInfo[SETTING_DEFAULT_VIEW_TITLE].subText = CommonUtil::GetString(SettingPresentationModel::GetInstance()->GetDefaultView());
148 settingInfo[SETTING_DEFAULT_VIEW_TITLE].itemType = ITEM_TYPE_DROPDOWN;
150 settingInfo[SETTING_FIT_TO_WIDTH].titleText = CommonUtil::GetString(L"IDS_BR_BODY_FIT_TO_WIDTH");
151 settingInfo[SETTING_FIT_TO_WIDTH].subText = L"";
152 settingInfo[SETTING_FIT_TO_WIDTH].itemType = ITEM_TYPE_RADIO;
153 settingInfo[SETTING_FIT_TO_WIDTH].isSelected = !(String::Compare(settingInfo[SETTING_FIT_TO_WIDTH].titleText, settingInfo[SETTING_DEFAULT_VIEW_TITLE].subText));
155 settingInfo[SETTING_READABLE].titleText = CommonUtil::GetString(L"IDS_BR_BODY_READABLE");
156 settingInfo[SETTING_READABLE].subText = L"";
157 settingInfo[SETTING_READABLE].itemType = ITEM_TYPE_RADIO;
158 settingInfo[SETTING_READABLE].isSelected = !(String::Compare(settingInfo[SETTING_READABLE].titleText, settingInfo[SETTING_DEFAULT_VIEW_TITLE].subText));
160 settingInfo[SETTING_RUN_JAVASCRIPT].titleText = CommonUtil::GetString(L"IDS_BR_BODY_RUN_JAVASCRIPT");
161 settingInfo[SETTING_RUN_JAVASCRIPT].subText = L"";
162 settingInfo[SETTING_RUN_JAVASCRIPT].itemType = ITEM_TYPE_TOGGLE;
163 settingInfo[SETTING_RUN_JAVASCRIPT].isSelected = SettingPresentationModel::GetInstance()->IsRunJavascriptEnabled();
165 settingInfo[SETTING_DISPLAY_IMAGES].titleText = CommonUtil::GetString(L"IDS_BR_BODY_SHOW_IMAGES");
166 settingInfo[SETTING_DISPLAY_IMAGES].subText = L"";
167 settingInfo[SETTING_DISPLAY_IMAGES].itemType = ITEM_TYPE_TOGGLE;
168 settingInfo[SETTING_DISPLAY_IMAGES].isSelected = SettingPresentationModel::GetInstance()->IsDisplayImagesEnabled();
170 settingInfo[SETTING_BLOCK_POPUP].titleText = CommonUtil::GetString(L"IDS_BR_BODY_BLOCK_POP_UPS_ABB");
171 settingInfo[SETTING_BLOCK_POPUP].subText = L"";
172 settingInfo[SETTING_BLOCK_POPUP].itemType = ITEM_TYPE_TOGGLE;
173 settingInfo[SETTING_BLOCK_POPUP].isSelected = !SettingPresentationModel::GetInstance()->IsBlockPopUp();
175 settingInfo[SETTING_CLEAR_CACHE].titleText = CommonUtil::GetString(L"IDS_BR_BODY_CLEAR_CACHE");
176 settingInfo[SETTING_CLEAR_CACHE].subText = L"";
177 settingInfo[SETTING_CLEAR_CACHE].itemType = ITEM_TYPE_NORMAL;
179 settingInfo[SETTING_CLEAR_HISTORY].titleText = CommonUtil::GetString(L"IDS_BR_BODY_CLEAR_HISTORY");
180 settingInfo[SETTING_CLEAR_HISTORY].subText = L"";
181 settingInfo[SETTING_CLEAR_HISTORY].itemType = ITEM_TYPE_NORMAL;
183 settingInfo[SETTING_SHOW_SECURITY_WARNINGS].titleText = CommonUtil::GetString(L"IDS_BR_BODY_SHOW_SECURITY_WARNINGS");
184 settingInfo[SETTING_SHOW_SECURITY_WARNINGS].subText = L"";
185 settingInfo[SETTING_SHOW_SECURITY_WARNINGS].itemType = ITEM_TYPE_TOGGLE;
186 settingInfo[SETTING_SHOW_SECURITY_WARNINGS].isSelected = SettingPresentationModel::GetInstance()->IsSecurityWarningsEnabled();
188 settingInfo[SETTING_ACCEPT_COOKIES].titleText = CommonUtil::GetString(L"IDS_BR_BODY_ACCEPT_COOKIES");
189 settingInfo[SETTING_ACCEPT_COOKIES].subText = L"";
190 settingInfo[SETTING_ACCEPT_COOKIES].itemType = ITEM_TYPE_TOGGLE;
191 settingInfo[SETTING_ACCEPT_COOKIES].isSelected = SettingPresentationModel::GetInstance()->IsCookiesEnabled();
193 settingInfo[SETTING_CLEAR_COOKIE_DATA].titleText = CommonUtil::GetString(L"IDS_BR_BODY_CLEAR_ALL_COOKIE_DATA");
194 settingInfo[SETTING_CLEAR_COOKIE_DATA].subText = CommonUtil::GetString(L"IDS_BR_BODY_COOKIES");
195 settingInfo[SETTING_CLEAR_COOKIE_DATA].itemType = ITEM_TYPE_NORMAL;
197 settingInfo[SETTING_REMEMBER_FORM_DATA].titleText = CommonUtil::GetString(L"IDS_BR_BODY_REMEMBER_FORM_DATA");
198 settingInfo[SETTING_REMEMBER_FORM_DATA].subText = L"";
199 settingInfo[SETTING_REMEMBER_FORM_DATA].itemType = ITEM_TYPE_TOGGLE;
200 settingInfo[SETTING_REMEMBER_FORM_DATA].isSelected = SettingPresentationModel::GetInstance()->IsRememberFormData();
202 settingInfo[SETTING_CLEAR_FORM_DATA].titleText = CommonUtil::GetString(L"IDS_BR_BODY_CLEAR_FORM_DATA");
203 settingInfo[SETTING_CLEAR_FORM_DATA].subText = CommonUtil::GetString(L"IDS_BR_HEADER_FORM_DATA");
204 settingInfo[SETTING_CLEAR_FORM_DATA].itemType = ITEM_TYPE_NORMAL;
206 settingInfo[SETTING_REMEMBER_PASSWORD].titleText = CommonUtil::GetString(L"IDS_BR_BODY_REMEMBER_PASSWORDS");
207 settingInfo[SETTING_REMEMBER_PASSWORD].subText = L"";
208 settingInfo[SETTING_REMEMBER_PASSWORD].itemType = ITEM_TYPE_TOGGLE;
209 settingInfo[SETTING_REMEMBER_PASSWORD].isSelected = SettingPresentationModel::GetInstance()->IsRememberPassword();
212 settingInfo[SETTING_CLEAR_PASSWORDS].titleText = CommonUtil::GetString(L"IDS_BR_BODY_CLEAR_PASSWORDS");
213 settingInfo[SETTING_CLEAR_PASSWORDS].subText = L"";
214 settingInfo[SETTING_CLEAR_PASSWORDS].itemType = ITEM_TYPE_NORMAL;
216 settingInfo[SETTING_SEARCH_ENGINE_TITLE].titleText = CommonUtil::GetString(L"IDS_BR_BODY_SEARCH_ENGINE");
217 settingInfo[SETTING_SEARCH_ENGINE_TITLE].subText = SettingPresentationModel::GetInstance()->GetSearchEngine();
218 settingInfo[SETTING_SEARCH_ENGINE_TITLE].itemType = ITEM_TYPE_DROPDOWN;
220 settingInfo[SETTING_SEARCH_ENGINE_YAHOO].titleText = L"Yahoo"; //CommonUtil::GetString(L"IDS_BR_BODY_YAHOO");
221 settingInfo[SETTING_SEARCH_ENGINE_YAHOO].subText = L"";
222 settingInfo[SETTING_SEARCH_ENGINE_YAHOO].itemType = ITEM_TYPE_RADIO;
223 settingInfo[SETTING_SEARCH_ENGINE_YAHOO].isSelected = !(String::Compare(settingInfo[SETTING_SEARCH_ENGINE_YAHOO].titleText, settingInfo[SETTING_SEARCH_ENGINE_TITLE].subText));
225 settingInfo[SETTING_SEARCH_ENGINE_NAVER].titleText = L"Naver"; //CommonUtil::GetString(L"IDS_BR_BODY_NAVER");
226 settingInfo[SETTING_SEARCH_ENGINE_NAVER].subText = L"";
227 settingInfo[SETTING_SEARCH_ENGINE_NAVER].itemType = ITEM_TYPE_RADIO;
228 settingInfo[SETTING_SEARCH_ENGINE_NAVER].isSelected = !(String::Compare(settingInfo[SETTING_SEARCH_ENGINE_NAVER].titleText, settingInfo[SETTING_SEARCH_ENGINE_TITLE].subText));
230 settingInfo[SETTING_SEARCH_ENGINE_GOOGLE].titleText = CommonUtil::GetString(L"IDS_COM_BODY_GOOGLE");
231 settingInfo[SETTING_SEARCH_ENGINE_GOOGLE].subText = L"";
232 settingInfo[SETTING_SEARCH_ENGINE_GOOGLE].itemType = ITEM_TYPE_RADIO;
233 settingInfo[SETTING_SEARCH_ENGINE_GOOGLE].isSelected = !(String::Compare(settingInfo[SETTING_SEARCH_ENGINE_GOOGLE].titleText, settingInfo[SETTING_SEARCH_ENGINE_TITLE].subText));
235 settingInfo[SETTING_RESET_TO_DEFAULT].titleText = CommonUtil::GetString(L"IDS_BR_BODY_RESET_TO_DEFAULT");
236 settingInfo[SETTING_RESET_TO_DEFAULT].subText = L"";
237 settingInfo[SETTING_RESET_TO_DEFAULT].itemType = ITEM_TYPE_NORMAL;
241 SettingForm::Initialize(void)
243 result r = E_FAILURE;
245 r = Construct(L"IDL_SETTING_FORM");
254 SettingForm::OnInitializing(void)
256 result r = E_FAILURE;
257 Footer* pFooter = NULL;
258 SceneManager* pSceneManager = NULL;
260 __fontSize = CommonUtil::GetFontSize();
261 InternetApp* pInternet = static_cast<InternetApp*> (Application::GetInstance());
263 bool isHwKeySupported = false;
265 SetFormStyle(FORM_STYLE_NORMAL | FORM_STYLE_INDICATOR);
266 __pList = static_cast< GroupedListView* >(GetControl(L"IDC_SETTING_LIST"));
267 if ( __pList != NULL )
270 r = __pList->SetItemProvider(*this);
271 TryCatch(!IsFailed(r),,"setItemProvider failed with error %s",GetErrorMessage(r));
272 __pList->AddGroupedListViewItemEventListener(*this);
275 pFooter = GetFooter();
278 AppLogDebug("setting back button");
279 pFooter->SetBackButtonEnabled(true);
281 SetFormBackEventListener(this);
282 AppLog("SetFormBackEventListener result %s",GetErrorMessage(GetLastResult()));
283 pSceneManager = SceneManager::GetInstance();
284 if (pSceneManager != null)
286 r = pSceneManager->AddSceneEventListener(IDSCN_SETTINGS, *this);
287 TryCatch(!IsFailed(r),,"AddSceneEventListener failed with error %s",GetErrorMessage(r));
289 AddOrientationEventListener(*this);
296 SettingForm::OnGroupedListViewContextItemStateChanged(GroupedListView& listView, int groupIndex, int itemIndex, int elementId, ListContextItemStatus status)
302 SettingForm::OnGroupedListViewItemStateChanged(GroupedListView& listView, int groupIndex, int itemIndex, int elementId, ListItemStatus status)
304 int effectiveIndex = 0;
305 SettingPresentationModel* pSettingMgr = SettingPresentationModel::GetInstance();
307 if (pSettingMgr == null)
310 for (int i = 0; i < groupIndex; i++)
311 effectiveIndex = effectiveIndex + pGroupItemCount[i];
312 effectiveIndex = effectiveIndex + itemIndex;
314 if (settingInfo[effectiveIndex].itemType == ITEM_TYPE_DROPDOWN)
316 AppLogDebug("refreshing data child count is %d", settingInfo[effectiveIndex].childCount);
317 if (settingInfo[effectiveIndex].isOpen == false)
319 settingInfo[effectiveIndex].isOpen = true;
320 settingInfo[effectiveIndex].childCount = 0;
321 for (int iter = effectiveIndex + 1; iter < SETTING_MAX; iter++)
323 if (settingInfo[iter].itemType == ITEM_TYPE_RADIO)
324 settingInfo[effectiveIndex].childCount++;
328 listView.UpdateList();
332 settingInfo[effectiveIndex].isOpen = false;
333 listView.UpdateList();
336 else if (settingInfo[effectiveIndex].itemType == ITEM_TYPE_RADIO)
339 for (parentIndex = effectiveIndex; parentIndex > SETTING_INVALID; parentIndex--)
341 if (settingInfo[parentIndex].itemType == ITEM_TYPE_DROPDOWN)
344 settingInfo[parentIndex].subText = settingInfo[effectiveIndex].titleText;
346 for (int iter = 0; iter < settingInfo[parentIndex].childCount; iter++)
348 if (parentIndex + iter + 1 != effectiveIndex)
350 AppLogDebug("long effectiveIndex %d set to false", itemIndex - (effectiveIndex - parentIndex) + iter + 1);
351 settingInfo[parentIndex + iter + 1].isSelected = false;
355 AppLogDebug("effectiveIndex %d set to true", effectiveIndex);
356 settingInfo[effectiveIndex].isSelected = true;
358 if (effectiveIndex == SETTING_CURRENT_PAGE)
360 settingInfo[SETTING_CURRENT_PAGE].isSelected = false;
361 settingInfo[SETTING_FAVORITE_URL].isSelected = true;
363 //listView.RefreshList(groupIndex, itemIndex - (effectiveIndex - parentIndex) + iter + 1, LIST_REFRESH_TYPE_ITEM_MODIFY);
365 // listView.UpdateList();
366 //listView.ScrollToItem(groupIndex, itemIndex, LIST_SCROLL_ITEM_ALIGNMENT_TOP);
369 else if (settingInfo[effectiveIndex].itemType == ITEM_TYPE_TOGGLE)
371 if (settingInfo[effectiveIndex].isSelected == true)
373 settingInfo[effectiveIndex].isSelected = false;
377 settingInfo[effectiveIndex].isSelected = true;
379 // listView.RefreshList(groupIndex, itemIndex, LIST_REFRESH_TYPE_ITEM_MODIFY);
382 __pList->SetItemChecked(groupIndex, itemIndex, settingInfo[effectiveIndex].isSelected);
386 switch (effectiveIndex)
388 case SETTING_CURRENT_PAGE:
389 //SettingPresentationModel::GetInstance()->SetHomepage(settingInfo[SETTING_FAVORITE_URL].titleText);
390 AppLog("setting current page currentURL is =%ls",__currentURL.GetPointer());
391 if (__currentURL.CompareTo(L"") != 0)
393 AppLog("setting current page currentURL is =%ls",__currentURL.GetPointer());
394 SettingPresentationModel::GetInstance()->SetHomepage(CommonUtil::GetString(L"IDS_BR_BODY_USER_HOMEPAGE"));
395 SettingPresentationModel::GetInstance()->SetFavoriteValue(__currentURL);
396 settingInfo[SETTING_FAVORITE_URL].titleText = __currentURL;
397 // listView.RefreshList(groupIndex, effectiveIndex, LIST_REFRESH_TYPE_ITEM_MODIFY);
398 listView.UpdateList();
401 case SETTING_BLANK_PAGE:
402 //SettingPresentationModel::GetInstance()->SetHomepage(settingInfo[SETTING_BLANK_PAGE].titleText);
403 SettingPresentationModel::GetInstance()->SetHomepage((L"IDS_BR_BODY_BLANK_PAGE"));
404 AppLog("GetHomepage() %ls",SettingPresentationModel::GetInstance()->GetHomepage().GetPointer());
405 listView.UpdateList();
408 case SETTING_MOST_VISITED_SITE:
409 SettingPresentationModel::GetInstance()->SetHomepage(L"IDS_BR_BODY_MOST_VISITED_SITES");
410 listView.UpdateList();
413 case SETTING_FAVORITE_URL:
414 //SettingPresentationModel::GetInstance()->SetHomepage(settingInfo[SETTING_FAVORITE_URL].titleText);
415 SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_EDIT_HOMEPAGE_VIEW, SCENE_TRANSITION_ANIMATION_TYPE_LEFT));
418 case SETTING_FIT_TO_WIDTH:
419 SettingPresentationModel::GetInstance()->SetDefaultView(L"IDS_BR_BODY_FIT_TO_WIDTH");
420 listView.UpdateList();
423 case SETTING_READABLE:
424 SettingPresentationModel::GetInstance()->SetDefaultView(L"IDS_BR_BODY_READABLE");
425 listView.UpdateList();
428 case SETTING_RUN_JAVASCRIPT:
429 SettingPresentationModel::GetInstance()->SetRunJavascriptEnabled(settingInfo[SETTING_RUN_JAVASCRIPT].isSelected);
432 case SETTING_DISPLAY_IMAGES:
433 SettingPresentationModel::GetInstance()->SetDisplayImagesEnabled(settingInfo[SETTING_DISPLAY_IMAGES].isSelected);
436 case SETTING_BLOCK_POPUP:
437 SettingPresentationModel::GetInstance()->SetBlockPopUp(!settingInfo[SETTING_BLOCK_POPUP].isSelected);
440 case SETTING_CLEAR_CACHE:
444 case SETTING_CLEAR_HISTORY:
448 case SETTING_SHOW_SECURITY_WARNINGS:
449 SettingPresentationModel::GetInstance()->SetSecurityWarningsEnabled(settingInfo[SETTING_SHOW_SECURITY_WARNINGS].isSelected);
452 case SETTING_ACCEPT_COOKIES:
453 SettingPresentationModel::GetInstance()->SetCookiesEnabled(settingInfo[SETTING_ACCEPT_COOKIES].isSelected);
456 case SETTING_CLEAR_COOKIE_DATA:
460 case SETTING_REMEMBER_FORM_DATA:
461 SettingPresentationModel::GetInstance()->SetRememberFormData(settingInfo[SETTING_REMEMBER_FORM_DATA].isSelected);
464 case SETTING_CLEAR_FORM_DATA:
468 case SETTING_CLEAR_PASSWORDS:
472 case SETTING_REMEMBER_PASSWORD:
473 SettingPresentationModel::GetInstance()->SetRememberPassword(settingInfo[SETTING_REMEMBER_PASSWORD].isSelected);
476 case SETTING_SEARCH_ENGINE_YAHOO:
477 SettingPresentationModel::GetInstance()->SetSearchEngine(settingInfo[SETTING_SEARCH_ENGINE_YAHOO].titleText);
478 listView.UpdateList();
481 case SETTING_SEARCH_ENGINE_NAVER:
482 SettingPresentationModel::GetInstance()->SetSearchEngine(settingInfo[SETTING_SEARCH_ENGINE_NAVER].titleText);
483 listView.UpdateList();
486 case SETTING_SEARCH_ENGINE_GOOGLE:
487 SettingPresentationModel::GetInstance()->SetSearchEngine(settingInfo[SETTING_SEARCH_ENGINE_GOOGLE].titleText);
488 listView.UpdateList();
491 case SETTING_RESET_TO_DEFAULT:
502 SettingForm::OnGroupedListViewItemSwept(GroupedListView& listView, int groupIndex, int itemIndex, SweepDirection direction)
508 SettingForm::CreateGroupItem(int groupIndex, int itemWidth)
510 result r = E_FAILURE;
512 GroupItem* pItem = null;
513 const Color ITEM_TEXT_COLOR = CUSTOM_COLOR_SETTINGS_GROUPTITLE;
515 pItem = new(std::nothrow) GroupItem();
520 r = pItem->Construct(Dimension(itemWidth, 46));
530 text = CommonUtil::GetString(L"IDS_BR_BODY_HOMEPAGE"); // IDS_HOMEPAGE
531 settingInfo[SETTING_HOMEPAGE_TITLE].subText = SettingPresentationModel::GetInstance()->GetHomepage();
535 text = CommonUtil::GetString(L"IDS_BR_MBODY_PAGE_CONTENT_SETTINGS"); // IDS_BR_MBODY_PAGE_CONTENT_SETTINGS
539 text = CommonUtil::GetString(L"IDS_BR_BODY_PRIVACY_AND_SECURITY_ABB"); // IDS_BR_BODY_PRIVACY_AND_SECURITY_ABB
543 text = CommonUtil::GetString(L"IDS_BR_BODY_SEARCH"); // IDS_BR_BODY_SEARCH
554 pItem->SetElement(text, null);
556 AppLogDebug("background color set result %s", GetErrorMessage(r));
558 pItem->SetTextColor(ITEM_TEXT_COLOR);
563 SettingForm::CreateItem(int groupIndex, int itemIndex, int itemWidth)
565 AppLog("SettingForm::CreateItem --> groupIndex : %d, itemIndex: %d itemWidth: %d ", groupIndex, itemIndex, itemWidth);
567 result r = E_SUCCESS;
568 int effectiveIndex = 0;
569 const Color ITEM_BACKGROUND_COLOR = CUSTOM_COLOR_SETTINGS_LISTITEM_BACKGROUND;
570 const Color ITEM_RADIO_ITEM_BACKGROUND_COLOR = CUSTOM_COLOR_SETTINGS_LISTITEM_RADIO_BACKGROUND;
571 const Color ITEM_BACKGROUND_COLOR_HIGHLIGHTED = CUSTOM_BACKGROUND_COLOR_LISTVIEW_PRESSED_HIGHLIGHTED;
573 for (int i = 0; i < groupIndex; i++)
574 effectiveIndex = effectiveIndex + pGroupItemCount[i];
575 effectiveIndex = effectiveIndex + itemIndex;
576 AppLogDebug("SettingForm::CreateItem --> groupIndex : %d, itemIndex: %d itemWidth: %d effectiveIndex %d", groupIndex, itemIndex, itemWidth, effectiveIndex);
578 if (settingInfo[effectiveIndex].itemType == ITEM_TYPE_TOGGLE)
580 SettingToggleCustomItem* pItem = new(std::nothrow) SettingToggleCustomItem();
581 r = pItem->Construct(itemWidth, 112 + (__fontSize - 44));
588 pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_NORMAL,ITEM_BACKGROUND_COLOR);
589 pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_PRESSED,ITEM_BACKGROUND_COLOR_HIGHLIGHTED);
592 __pList->SetItemChecked(groupIndex, itemIndex, settingInfo[effectiveIndex].isSelected);
595 pItem->SetText(settingInfo[effectiveIndex].titleText);
601 else if (settingInfo[effectiveIndex].itemType == ITEM_TYPE_DROPDOWN)
603 DropDownCustomItem* pItem = new(std::nothrow) DropDownCustomItem();
604 r = pItem->Construct(itemWidth);
611 /* Bitmap* pNormalBackgroundBitmap = CommonUtil::GetNinepatchedBitmapN(IDB_LIST_GROUP_BG9,itemWidth,128);
612 Bitmap* pPressedBackgroundBitmap = CommonUtil::GetNinepatchedBitmapN(IDB_LIST_GROUP_BG_PRESS9,itemWidth,112);
614 if (pNormalBackgroundBitmap != NULL)
616 pItem->SetBackgroundBitmap(LIST_ITEM_DRAWING_STATUS_NORMAL,pNormalBackgroundBitmap);
617 delete pNormalBackgroundBitmap;
620 if (pPressedBackgroundBitmap != NULL)
622 pItem->SetBackgroundBitmap(LIST_ITEM_DRAWING_STATUS_PRESSED,pPressedBackgroundBitmap);
623 delete pPressedBackgroundBitmap;
626 pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_NORMAL,ITEM_BACKGROUND_COLOR);
627 pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_PRESSED,ITEM_BACKGROUND_COLOR_HIGHLIGHTED);
629 pItem->SetMainText(settingInfo[effectiveIndex].titleText);
630 if(settingInfo[effectiveIndex].subText.CompareTo(L"IDS_BR_BODY_BLANK_PAGE") == 0 || settingInfo[effectiveIndex].subText.CompareTo(L"IDS_BR_BODY_MOST_VISITED_SITES") == 0 || settingInfo[effectiveIndex].subText.CompareTo(L"IDS_BR_BODY_FIT_TO_WIDTH") == 0 || settingInfo[effectiveIndex].subText.CompareTo(L"IDS_BR_BODY_READABLE") == 0)
632 pItem->SetSubText(CommonUtil::GetString(settingInfo[effectiveIndex].subText));
636 pItem->SetSubText(settingInfo[effectiveIndex].subText);
638 if (settingInfo[effectiveIndex].isOpen)
640 pItem->SetCurState(DROP_DOWN_ITEM_STATE_OPENED);
644 pItem->SetCurState(DROP_DOWN__ITEM_STATE_CLOSED);
647 // if (pBitmap != null)
648 // pItem->AddElement(Rectangle(0, 0, 10, 128), IDA_LIST_LEFT_SIDE_MARGIN_DROPDOWN, *pBitmap, null);
658 else if (settingInfo[effectiveIndex].itemType == ITEM_TYPE_RADIO)
662 RadioCustomItem* pItem = new(std::nothrow) RadioCustomItem();
664 for (parentIndex = effectiveIndex; parentIndex > SETTING_INVALID; parentIndex--)
666 if (settingInfo[parentIndex].itemType == ITEM_TYPE_DROPDOWN)
669 if (settingInfo[parentIndex].isOpen == false || (__isCurrentPageDisable == true && groupIndex == 0 && itemIndex == 1))
671 r = pItem->Construct(itemWidth, 0);
672 AppLogDebug("construct with height 0 %s", GetErrorMessage(r));
677 pItem->Construct(itemWidth, 112 + (__fontSize - 44));
680 Bitmap* pNormalBackgroundBitmap = CommonUtil::GetNinepatchedBitmapN(IDB_LIST_GROUP_BG9,itemWidth,112);
681 Bitmap* pPressedBackgroundBitmap = CommonUtil::GetNinepatchedBitmapN(IDB_LIST_GROUP_BG_PRESS9,itemWidth,112);
683 if (pNormalBackgroundBitmap != NULL)
685 pItem->SetBackgroundBitmap(LIST_ITEM_DRAWING_STATUS_NORMAL,pNormalBackgroundBitmap);
686 delete pNormalBackgroundBitmap;
689 if (pPressedBackgroundBitmap != NULL)
691 pItem->SetBackgroundBitmap(LIST_ITEM_DRAWING_STATUS_PRESSED,pPressedBackgroundBitmap);
692 delete pPressedBackgroundBitmap;
695 pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_NORMAL,ITEM_RADIO_ITEM_BACKGROUND_COLOR);
696 pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_PRESSED,ITEM_BACKGROUND_COLOR_HIGHLIGHTED);
699 pItem->SetText(settingInfo[effectiveIndex].titleText);
700 AppLogDebug("effectiveIndex %d SettingInfo[effectiveIndex].isSelected %d", effectiveIndex, settingInfo[effectiveIndex].isSelected);
702 //if (pBitmap != null)
703 // pItem->AddElement(Rectangle(0, 0, 10, 112), IDA_LIST_LEFT_SIDE_MARGIN, *pBitmap, null);
705 pItem->SetSelected(settingInfo[effectiveIndex].isSelected);
710 else if (settingInfo[effectiveIndex].itemType == ITEM_TYPE_NORMAL)
712 DefaultCustomItem* pItem = new(std::nothrow) DefaultCustomItem();
714 r = pItem->Construct(itemWidth, 112 + (__fontSize - 44));
722 // Bitmap* pNormalBackgroundBitmap = CommonUtil::GetNinepatchedBitmapN(IDB_LIST_GROUP_BG9,itemWidth,112);
723 // Bitmap* pPressedBackgroundBitmap = CommonUtil::GetNinepatchedBitmapN(IDB_LIST_GROUP_BG_PRESS9,itemWidth,112);
725 // if (pNormalBackgroundBitmap != NULL)
727 // pItem->SetBackgroundBitmap(LIST_ITEM_DRAWING_STATUS_NORMAL,pNormalBackgroundBitmap);
728 // delete pNormalBackgroundBitmap;
731 // if (pPressedBackgroundBitmap != NULL)
733 // pItem->SetBackgroundBitmap(LIST_ITEM_DRAWING_STATUS_PRESSED,pPressedBackgroundBitmap);
734 // delete pPressedBackgroundBitmap;
737 pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_NORMAL,ITEM_BACKGROUND_COLOR);
738 pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_PRESSED,ITEM_BACKGROUND_COLOR_HIGHLIGHTED);
740 pItem->SetText(settingInfo[effectiveIndex].titleText);
742 //if (pBitmap != null)
743 // pItem->AddElement(Rectangle(0, 0, 10, 112), IDA_LIST_LEFT_SIDE_MARGIN, *pBitmap, null);
760 SettingForm::DeleteGroupItem(int groupIndex, GroupItem* pItem, int itemWidth)
768 SettingForm::DeleteItem(int groupIndex, int itemIndex, ListItemBase* pItem, int itemWidth)
776 SettingForm::GetGroupCount(void)
782 SettingForm::GetItemCount(int groupIndex)
784 AppLog(" SettingForm::GetItemCount --> groupIndex : %d,", groupIndex);
785 return pGroupItemCount[groupIndex];
789 SettingForm::OnFormBackRequested(Form& source)
791 AppLog("SettingForm::OnFormBackRequested entered");
792 String* pSelectedScene = NULL;
793 Object* value = NULL;
794 MultipleWindowPresentationModel::GetInstance()->GetValue(SELECTED_SCENE_ID, &value);
795 pSelectedScene = (String*) value;
798 SceneManager::GetInstance()->GoBackward(BackwardSceneTransition(*pSelectedScene, SCENE_TRANSITION_ANIMATION_TYPE_NONE));
799 // delete pSelectedScene;
800 // pSelectedScene = null;
805 SettingForm::OnActionPerformed(const Control& source, int actionId)
810 if(__pConfirmationPopup)
812 __pConfirmationPopup->SetShowState(false);
813 __pConfirmationPopup->Show();
814 delete __pConfirmationPopup;
815 __pConfirmationPopup = null;
820 if(__pConfirmationPopup)
822 String message = L"";
823 __pConfirmationPopup->SetShowState(false);
824 __pConfirmationPopup->Show();
825 if (__pConfirmationPopup->GetMessage() == CommonUtil::GetString(L"IDS_BR_POP_EMPTY_COOKIE_POPUP_BNO"))
827 message = CommonUtil::GetString(L"IDS_BR_POP_DELETED");
828 SettingPresentationModel::GetInstance()->ClearCookie();
830 else if (__pConfirmationPopup->GetMessage() == CommonUtil::GetString(L"IDS_BR_POP_DELETE_ALL_SAVED_FORM_DATA_Q"))
832 message = CommonUtil::GetString(L"IDS_BR_POP_DELETED");
833 SettingPresentationModel::GetInstance()->ClearFormData();
835 else if (__pConfirmationPopup->GetMessage() == CommonUtil::GetString(L"IDS_BR_POP_DELETE_ALL_SAVED_PASSWORDS_Q"))
837 message = CommonUtil::GetString(L"IDS_BR_POP_DELETED");
838 SettingPresentationModel::GetInstance()->ClearPasswords();
840 else if (__pConfirmationPopup->GetMessage() == CommonUtil::GetString(L"IDS_BR_POP_DELETE_LOCALLY_CACHED_CONTENT_AND_DATABASES_Q"))
842 message = CommonUtil::GetString(L"IDS_BR_POP_DELETED");
843 SettingPresentationModel::GetInstance()->ClearCache();
845 else if (__pConfirmationPopup->GetMessage() == CommonUtil::GetString(L"IDS_BR_BODY_DELETE_BROWSER_HISTORY_Q"))
847 message = CommonUtil::GetString(L"IDS_BR_POP_DELETED");
848 HistoryPresentationModel::GetInstance()->ClearHistory();
850 else if (__pConfirmationPopup->GetMessage() == CommonUtil::GetString(L"IDS_BR_POP_ALL_SETTINGS_TO_DEFAULT_CONTINUE_Q"))
852 message = CommonUtil::GetString(L"IDS_BR_SK_DONE");
853 SettingPresentationModel::GetInstance()->ResetRegistry();
854 InitializeSettingValues();
857 __pList->UpdateList();
860 delete __pConfirmationPopup;
861 __pConfirmationPopup = null;
863 NotificationPanel* pNotification = new (std::nothrow) NotificationPanel(*this);
864 pNotification->SetText(message);
865 pNotification->SetPositionDiff(0);
866 pNotification->ShowNotification();
876 SettingForm::OnOrientationChanged(const Control& source, OrientationStatus orientationStatus)
878 Rectangle rect = GetClientAreaBounds();
883 __pList->SetBounds(rect.x,rect.y,rect.width-16,rect.height);
884 __pList->UpdateList();
887 SettingForm::SettingItemInfo::SettingItemInfo(void)
896 SettingForm::OnSceneActivatedN(const SceneId& previousSceneId, const SceneId& currentSceneId, IList* pArgs)
898 WindowInfo* pWindowInfo = null;
899 String curUrl = SettingPresentationModel::GetInstance()->GetFavoriteUrl();
901 pWindowInfo = MultipleWindowPresentationModel::GetInstance()->GetActiveWindowInfo();
903 if (previousSceneId == IDSCN_EDIT_HOMEPAGE_VIEW)
907 String* pValue = NULL;
908 pValue = dynamic_cast<String*>(pArgs->GetAt(0));
911 if (pValue->CompareTo(L"Done") == 0)
913 // SettingPresentationModel::GetInstance()->SetHomepage(CommonUtil::GetString(L"IDS_BR_BODY_USER_HOMEPAGE"));
915 else if (pValue->CompareTo(L"Cancel") == 0)
917 String homePage = SettingPresentationModel::GetInstance()->GetHomepage();
918 if (homePage.CompareTo((L"IDS_BR_BODY_MOST_VISITED_SITES")) == 0)
920 settingInfo[SETTING_MOST_VISITED_SITE].isSelected = true;
921 settingInfo[SETTING_BLANK_PAGE].isSelected = false;
922 settingInfo[SETTING_CURRENT_PAGE].isSelected = false;
923 settingInfo[SETTING_FAVORITE_URL].isSelected = false;
924 SettingPresentationModel::GetInstance()->SetHomepage(L"IDS_BR_BODY_MOST_VISITED_SITES");
927 else if (homePage.CompareTo((L"IDS_BR_BODY_BLANK_PAGE")) == 0)
929 settingInfo[SETTING_MOST_VISITED_SITE].isSelected = false;
930 settingInfo[SETTING_BLANK_PAGE].isSelected = true;
931 settingInfo[SETTING_CURRENT_PAGE].isSelected = false;
932 settingInfo[SETTING_FAVORITE_URL].isSelected = false;
933 SettingPresentationModel::GetInstance()->SetHomepage(L"IDS_BR_BODY_BLANK_PAGE");
937 settingInfo[SETTING_MOST_VISITED_SITE].isSelected = false;
938 settingInfo[SETTING_BLANK_PAGE].isSelected = false;
939 settingInfo[SETTING_CURRENT_PAGE].isSelected = false;
940 settingInfo[SETTING_FAVORITE_URL].isSelected = true;
948 if (pWindowInfo != null)
950 __currentURL.Clear();
951 __currentURL.Append(pWindowInfo->pageUrl);
952 AppLog("current url is %ls",__currentURL.GetPointer());
954 if (SettingPresentationModel::GetInstance()->GetFavoriteUrl().CompareTo(L"") == 0)
956 if (pWindowInfo->pageUrl.CompareTo(L"") == 0)
958 //settingInfo[SETTING_FAVORITE_URL].titleText = CommonUtil::GetString(L"IDS_SET_HOMEPAGE");
959 settingInfo[SETTING_FAVORITE_URL].titleText = L"http://www.tizen.org";
963 settingInfo[SETTING_FAVORITE_URL].titleText = pWindowInfo->pageUrl;
968 settingInfo[SETTING_FAVORITE_URL].titleText = SettingPresentationModel::GetInstance()->GetFavoriteUrl();
974 __pList->UpdateList();
975 if (pWindowInfo && pWindowInfo->pageUrl.CompareTo(L"") == 0)
977 __isCurrentPageDisable = true;
978 AppLog("set item enabled is false");
979 __pList->SetItemEnabled(0, 1, false);
983 __isCurrentPageDisable = false;
984 AppLog("set item enabled is true");
985 __pList->SetItemEnabled(0, 1, true);
987 for(int grpindex = 0; grpindex < groupCount; grpindex++)
989 for(int index = 0; index < *(pGroupItemCount+groupCount); index++)
991 int effectiveIndex = 0;
992 for (int i = 0; i < grpindex; i++)
993 effectiveIndex = effectiveIndex + pGroupItemCount[i];
994 effectiveIndex = effectiveIndex + index;
996 if(effectiveIndex >= SETTING_MAX)
1000 if(settingInfo[effectiveIndex].itemType == ITEM_TYPE_TOGGLE || settingInfo[effectiveIndex].itemType == ITEM_TYPE_RADIO )
1002 __pList->SetItemChecked(grpindex, index, settingInfo[effectiveIndex].isSelected);
1011 SettingForm::OnSceneDeactivated(const SceneId& currentSceneId, const SceneId& nextSceneId)
1017 SettingForm::ClearHistory(void)
1019 String message = CommonUtil::GetString(L"IDS_BR_BODY_DELETE_BROWSER_HISTORY_Q");
1020 if(!__pConfirmationPopup)
1022 __pConfirmationPopup = new(std::nothrow) ConfirmationPopup();
1023 __pConfirmationPopup->Initialize();
1024 __pConfirmationPopup->RemoveActionListener(*this);
1025 __pConfirmationPopup->AddActionListener(*this);
1026 __pConfirmationPopup->setMessage(message);
1027 __pConfirmationPopup->Show();
1032 SettingForm::ClearCache(void)
1034 String message = CommonUtil::GetString(L"IDS_BR_POP_DELETE_LOCALLY_CACHED_CONTENT_AND_DATABASES_Q");
1035 if(!__pConfirmationPopup)
1037 __pConfirmationPopup = new(std::nothrow) ConfirmationPopup();
1038 __pConfirmationPopup->Initialize();
1039 __pConfirmationPopup->RemoveActionListener(*this);
1040 __pConfirmationPopup->AddActionListener(*this);
1041 __pConfirmationPopup->setMessage(message);
1042 __pConfirmationPopup->Show();
1047 SettingForm::ClearCookie(void)
1049 String message = CommonUtil::GetString(L"IDS_BR_POP_EMPTY_COOKIE_POPUP_BNO");
1050 if(!__pConfirmationPopup)
1052 __pConfirmationPopup = new(std::nothrow) ConfirmationPopup();
1053 __pConfirmationPopup->Initialize();
1054 __pConfirmationPopup->RemoveActionListener(*this);
1055 __pConfirmationPopup->AddActionListener(*this);
1056 __pConfirmationPopup->setMessage(message);
1057 __pConfirmationPopup->Show();
1062 SettingForm::ClearFormData(void)
1064 String message = CommonUtil::GetString(L"IDS_BR_POP_DELETE_ALL_SAVED_FORM_DATA_Q");
1065 if(!__pConfirmationPopup)
1067 __pConfirmationPopup = new(std::nothrow) ConfirmationPopup();
1068 __pConfirmationPopup->Initialize();
1069 __pConfirmationPopup->RemoveActionListener(*this);
1070 __pConfirmationPopup->AddActionListener(*this);
1071 __pConfirmationPopup->setMessage(message);
1072 __pConfirmationPopup->Show();
1077 SettingForm::ClearPasswords(void)
1079 String message = CommonUtil::GetString(L"IDS_BR_POP_DELETE_ALL_SAVED_PASSWORDS_Q");
1080 if(!__pConfirmationPopup)
1082 __pConfirmationPopup = new(std::nothrow) ConfirmationPopup();
1083 __pConfirmationPopup->Initialize();
1084 __pConfirmationPopup->RemoveActionListener(*this);
1085 __pConfirmationPopup->AddActionListener(*this);
1086 __pConfirmationPopup->setMessage(message);
1087 __pConfirmationPopup->Show();
1093 SettingForm::ResetToDefault()
1095 String message = CommonUtil::GetString(L"IDS_BR_POP_ALL_SETTINGS_TO_DEFAULT_CONTINUE_Q");
1096 if(!__pConfirmationPopup)
1098 __pConfirmationPopup = new(std::nothrow) ConfirmationPopup();
1099 __pConfirmationPopup->Initialize();
1100 __pConfirmationPopup->RemoveActionListener(*this);
1101 __pConfirmationPopup->AddActionListener(*this);
1102 __pConfirmationPopup->setMessage(message);
1103 __pConfirmationPopup->Show();