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();
262 bool isHwKeySupported = false;
264 SetFormStyle(FORM_STYLE_NORMAL | FORM_STYLE_INDICATOR);
265 __pList = static_cast< GroupedListView* >(GetControl(L"IDC_SETTING_LIST"));
266 if ( __pList != NULL )
269 r = __pList->SetItemProvider(*this);
270 TryCatch(!IsFailed(r),,"setItemProvider failed with error %s",GetErrorMessage(r));
271 __pList->AddGroupedListViewItemEventListener(*this);
274 // pFooter = GetFooter();
277 // AppLogDebug("setting back button");
278 // pFooter->SetBackButtonEnabled(true);
280 SetFormBackEventListener(this);
281 AppLog("SetFormBackEventListener result %s",GetErrorMessage(GetLastResult()));
282 pSceneManager = SceneManager::GetInstance();
283 if (pSceneManager != null)
285 r = pSceneManager->AddSceneEventListener(IDSCN_SETTINGS, *this);
286 TryCatch(!IsFailed(r),,"AddSceneEventListener failed with error %s",GetErrorMessage(r));
288 AddOrientationEventListener(*this);
295 SettingForm::OnGroupedListViewContextItemStateChanged(GroupedListView& listView, int groupIndex, int itemIndex, int elementId, ListContextItemStatus status)
301 SettingForm::OnGroupedListViewItemStateChanged(GroupedListView& listView, int groupIndex, int itemIndex, int elementId, ListItemStatus status)
303 int effectiveIndex = 0;
304 SettingPresentationModel* pSettingMgr = SettingPresentationModel::GetInstance();
306 if (pSettingMgr == null)
309 for (int i = 0; i < groupIndex; i++)
310 effectiveIndex = effectiveIndex + pGroupItemCount[i];
311 effectiveIndex = effectiveIndex + itemIndex;
313 if (settingInfo[effectiveIndex].itemType == ITEM_TYPE_DROPDOWN)
315 AppLogDebug("refreshing data child count is %d", settingInfo[effectiveIndex].childCount);
316 if (settingInfo[effectiveIndex].isOpen == false)
318 settingInfo[effectiveIndex].isOpen = true;
319 settingInfo[effectiveIndex].childCount = 0;
320 for (int iter = effectiveIndex + 1; iter < SETTING_MAX; iter++)
322 if (settingInfo[iter].itemType == ITEM_TYPE_RADIO)
323 settingInfo[effectiveIndex].childCount++;
327 listView.UpdateList();
331 settingInfo[effectiveIndex].isOpen = false;
332 listView.UpdateList();
335 else if (settingInfo[effectiveIndex].itemType == ITEM_TYPE_RADIO)
338 for (parentIndex = effectiveIndex; parentIndex > SETTING_INVALID; parentIndex--)
340 if (settingInfo[parentIndex].itemType == ITEM_TYPE_DROPDOWN)
343 settingInfo[parentIndex].subText = settingInfo[effectiveIndex].titleText;
345 for (int iter = 0; iter < settingInfo[parentIndex].childCount; iter++)
347 if (parentIndex + iter + 1 != effectiveIndex)
349 AppLogDebug("long effectiveIndex %d set to false", itemIndex - (effectiveIndex - parentIndex) + iter + 1);
350 settingInfo[parentIndex + iter + 1].isSelected = false;
354 AppLogDebug("effectiveIndex %d set to true", effectiveIndex);
355 settingInfo[effectiveIndex].isSelected = true;
357 if (effectiveIndex == SETTING_CURRENT_PAGE)
359 settingInfo[SETTING_CURRENT_PAGE].isSelected = false;
360 settingInfo[SETTING_FAVORITE_URL].isSelected = true;
362 //listView.RefreshList(groupIndex, itemIndex - (effectiveIndex - parentIndex) + iter + 1, LIST_REFRESH_TYPE_ITEM_MODIFY);
364 // listView.UpdateList();
365 //listView.ScrollToItem(groupIndex, itemIndex, LIST_SCROLL_ITEM_ALIGNMENT_TOP);
368 else if (settingInfo[effectiveIndex].itemType == ITEM_TYPE_TOGGLE)
370 if (settingInfo[effectiveIndex].isSelected == true)
372 settingInfo[effectiveIndex].isSelected = false;
376 settingInfo[effectiveIndex].isSelected = true;
378 // listView.RefreshList(groupIndex, itemIndex, LIST_REFRESH_TYPE_ITEM_MODIFY);
381 __pList->SetItemChecked(groupIndex, itemIndex, settingInfo[effectiveIndex].isSelected);
385 switch (effectiveIndex)
387 case SETTING_CURRENT_PAGE:
388 //SettingPresentationModel::GetInstance()->SetHomepage(settingInfo[SETTING_FAVORITE_URL].titleText);
389 AppLog("setting current page currentURL is =%ls",__currentURL.GetPointer());
390 if (__currentURL.CompareTo(L"") != 0)
392 AppLog("setting current page currentURL is =%ls",__currentURL.GetPointer());
393 SettingPresentationModel::GetInstance()->SetHomepage(CommonUtil::GetString(L"IDS_BR_BODY_USER_HOMEPAGE"));
394 SettingPresentationModel::GetInstance()->SetFavoriteValue(__currentURL);
395 settingInfo[SETTING_FAVORITE_URL].titleText = __currentURL;
396 // listView.RefreshList(groupIndex, effectiveIndex, LIST_REFRESH_TYPE_ITEM_MODIFY);
397 listView.UpdateList();
400 case SETTING_BLANK_PAGE:
401 //SettingPresentationModel::GetInstance()->SetHomepage(settingInfo[SETTING_BLANK_PAGE].titleText);
402 SettingPresentationModel::GetInstance()->SetHomepage((L"IDS_BR_BODY_BLANK_PAGE"));
403 AppLog("GetHomepage() %ls",SettingPresentationModel::GetInstance()->GetHomepage().GetPointer());
404 listView.UpdateList();
407 case SETTING_MOST_VISITED_SITE:
408 SettingPresentationModel::GetInstance()->SetHomepage(L"IDS_BR_BODY_MOST_VISITED_SITES");
409 listView.UpdateList();
412 case SETTING_FAVORITE_URL:
413 //SettingPresentationModel::GetInstance()->SetHomepage(settingInfo[SETTING_FAVORITE_URL].titleText);
414 SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_EDIT_HOMEPAGE_VIEW, SCENE_TRANSITION_ANIMATION_TYPE_LEFT));
417 case SETTING_FIT_TO_WIDTH:
418 SettingPresentationModel::GetInstance()->SetDefaultView(L"IDS_BR_BODY_FIT_TO_WIDTH");
419 listView.UpdateList();
422 case SETTING_READABLE:
423 SettingPresentationModel::GetInstance()->SetDefaultView(L"IDS_BR_BODY_READABLE");
424 listView.UpdateList();
427 case SETTING_RUN_JAVASCRIPT:
428 SettingPresentationModel::GetInstance()->SetRunJavascriptEnabled(settingInfo[SETTING_RUN_JAVASCRIPT].isSelected);
431 case SETTING_DISPLAY_IMAGES:
432 SettingPresentationModel::GetInstance()->SetDisplayImagesEnabled(settingInfo[SETTING_DISPLAY_IMAGES].isSelected);
435 case SETTING_BLOCK_POPUP:
436 SettingPresentationModel::GetInstance()->SetBlockPopUp(!settingInfo[SETTING_BLOCK_POPUP].isSelected);
439 case SETTING_CLEAR_CACHE:
443 case SETTING_CLEAR_HISTORY:
447 case SETTING_SHOW_SECURITY_WARNINGS:
448 SettingPresentationModel::GetInstance()->SetSecurityWarningsEnabled(settingInfo[SETTING_SHOW_SECURITY_WARNINGS].isSelected);
451 case SETTING_ACCEPT_COOKIES:
452 SettingPresentationModel::GetInstance()->SetCookiesEnabled(settingInfo[SETTING_ACCEPT_COOKIES].isSelected);
455 case SETTING_CLEAR_COOKIE_DATA:
459 case SETTING_REMEMBER_FORM_DATA:
460 SettingPresentationModel::GetInstance()->SetRememberFormData(settingInfo[SETTING_REMEMBER_FORM_DATA].isSelected);
463 case SETTING_CLEAR_FORM_DATA:
467 case SETTING_CLEAR_PASSWORDS:
471 case SETTING_REMEMBER_PASSWORD:
472 SettingPresentationModel::GetInstance()->SetRememberPassword(settingInfo[SETTING_REMEMBER_PASSWORD].isSelected);
475 case SETTING_SEARCH_ENGINE_YAHOO:
476 SettingPresentationModel::GetInstance()->SetSearchEngine(settingInfo[SETTING_SEARCH_ENGINE_YAHOO].titleText);
477 listView.UpdateList();
480 case SETTING_SEARCH_ENGINE_NAVER:
481 SettingPresentationModel::GetInstance()->SetSearchEngine(settingInfo[SETTING_SEARCH_ENGINE_NAVER].titleText);
482 listView.UpdateList();
485 case SETTING_SEARCH_ENGINE_GOOGLE:
486 SettingPresentationModel::GetInstance()->SetSearchEngine(settingInfo[SETTING_SEARCH_ENGINE_GOOGLE].titleText);
487 listView.UpdateList();
490 case SETTING_RESET_TO_DEFAULT:
501 SettingForm::OnGroupedListViewItemSwept(GroupedListView& listView, int groupIndex, int itemIndex, SweepDirection direction)
507 SettingForm::CreateGroupItem(int groupIndex, int itemWidth)
509 result r = E_FAILURE;
511 GroupItem* pItem = null;
512 const Color ITEM_TEXT_COLOR = CUSTOM_COLOR_SETTINGS_GROUPTITLE;
514 pItem = new(std::nothrow) GroupItem();
519 r = pItem->Construct(Dimension(itemWidth, 46));
529 text = CommonUtil::GetString(L"IDS_BR_BODY_HOMEPAGE"); // IDS_HOMEPAGE
530 settingInfo[SETTING_HOMEPAGE_TITLE].subText = SettingPresentationModel::GetInstance()->GetHomepage();
534 text = CommonUtil::GetString(L"IDS_BR_MBODY_PAGE_CONTENT_SETTINGS"); // IDS_BR_MBODY_PAGE_CONTENT_SETTINGS
538 text = CommonUtil::GetString(L"IDS_BR_BODY_PRIVACY_AND_SECURITY_ABB"); // IDS_BR_BODY_PRIVACY_AND_SECURITY_ABB
542 text = CommonUtil::GetString(L"IDS_BR_BODY_SEARCH"); // IDS_BR_BODY_SEARCH
553 pItem->SetElement(text, null);
555 AppLogDebug("background color set result %s", GetErrorMessage(r));
557 pItem->SetTextColor(ITEM_TEXT_COLOR);
562 SettingForm::CreateItem(int groupIndex, int itemIndex, int itemWidth)
564 AppLog("SettingForm::CreateItem --> groupIndex : %d, itemIndex: %d itemWidth: %d ", groupIndex, itemIndex, itemWidth);
566 result r = E_SUCCESS;
567 int effectiveIndex = 0;
568 const Color ITEM_BACKGROUND_COLOR = CUSTOM_COLOR_SETTINGS_LISTITEM_BACKGROUND;
569 const Color ITEM_RADIO_ITEM_BACKGROUND_COLOR = CUSTOM_COLOR_SETTINGS_LISTITEM_RADIO_BACKGROUND;
570 const Color ITEM_BACKGROUND_COLOR_HIGHLIGHTED = CUSTOM_BACKGROUND_COLOR_LISTVIEW_PRESSED_HIGHLIGHTED;
572 for (int i = 0; i < groupIndex; i++)
573 effectiveIndex = effectiveIndex + pGroupItemCount[i];
574 effectiveIndex = effectiveIndex + itemIndex;
575 AppLogDebug("SettingForm::CreateItem --> groupIndex : %d, itemIndex: %d itemWidth: %d effectiveIndex %d", groupIndex, itemIndex, itemWidth, effectiveIndex);
577 if (settingInfo[effectiveIndex].itemType == ITEM_TYPE_TOGGLE)
579 SettingToggleCustomItem* pItem = new(std::nothrow) SettingToggleCustomItem();
580 r = pItem->Construct(itemWidth, 112 + (__fontSize - 44));
587 pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_NORMAL,ITEM_BACKGROUND_COLOR);
588 pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_PRESSED,ITEM_BACKGROUND_COLOR_HIGHLIGHTED);
591 __pList->SetItemChecked(groupIndex, itemIndex, settingInfo[effectiveIndex].isSelected);
594 pItem->SetText(settingInfo[effectiveIndex].titleText);
600 else if (settingInfo[effectiveIndex].itemType == ITEM_TYPE_DROPDOWN)
602 DropDownCustomItem* pItem = new(std::nothrow) DropDownCustomItem();
603 r = pItem->Construct(itemWidth);
610 /* Bitmap* pNormalBackgroundBitmap = CommonUtil::GetNinepatchedBitmapN(IDB_LIST_GROUP_BG9,itemWidth,128);
611 Bitmap* pPressedBackgroundBitmap = CommonUtil::GetNinepatchedBitmapN(IDB_LIST_GROUP_BG_PRESS9,itemWidth,112);
613 if (pNormalBackgroundBitmap != NULL)
615 pItem->SetBackgroundBitmap(LIST_ITEM_DRAWING_STATUS_NORMAL,pNormalBackgroundBitmap);
616 delete pNormalBackgroundBitmap;
619 if (pPressedBackgroundBitmap != NULL)
621 pItem->SetBackgroundBitmap(LIST_ITEM_DRAWING_STATUS_PRESSED,pPressedBackgroundBitmap);
622 delete pPressedBackgroundBitmap;
625 pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_NORMAL,ITEM_BACKGROUND_COLOR);
626 pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_PRESSED,ITEM_BACKGROUND_COLOR_HIGHLIGHTED);
628 pItem->SetMainText(settingInfo[effectiveIndex].titleText);
629 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)
631 pItem->SetSubText(CommonUtil::GetString(settingInfo[effectiveIndex].subText));
635 pItem->SetSubText(settingInfo[effectiveIndex].subText);
637 if (settingInfo[effectiveIndex].isOpen)
639 pItem->SetCurState(DROP_DOWN_ITEM_STATE_OPENED);
643 pItem->SetCurState(DROP_DOWN__ITEM_STATE_CLOSED);
646 // if (pBitmap != null)
647 // pItem->AddElement(Rectangle(0, 0, 10, 128), IDA_LIST_LEFT_SIDE_MARGIN_DROPDOWN, *pBitmap, null);
657 else if (settingInfo[effectiveIndex].itemType == ITEM_TYPE_RADIO)
659 RadioCustomItem* pItem = new(std::nothrow) RadioCustomItem();
661 for (parentIndex = effectiveIndex; parentIndex > SETTING_INVALID; parentIndex--)
663 if (settingInfo[parentIndex].itemType == ITEM_TYPE_DROPDOWN)
666 if (settingInfo[parentIndex].isOpen == false || (__isCurrentPageDisable == true && groupIndex == 0 && itemIndex == 1))
668 r = pItem->Construct(itemWidth, 0);
669 AppLogDebug("construct with height 0 %s", GetErrorMessage(r));
674 pItem->Construct(itemWidth, 112 + (__fontSize - 44));
677 Bitmap* pNormalBackgroundBitmap = CommonUtil::GetNinepatchedBitmapN(IDB_LIST_GROUP_BG9,itemWidth,112);
678 Bitmap* pPressedBackgroundBitmap = CommonUtil::GetNinepatchedBitmapN(IDB_LIST_GROUP_BG_PRESS9,itemWidth,112);
680 if (pNormalBackgroundBitmap != NULL)
682 pItem->SetBackgroundBitmap(LIST_ITEM_DRAWING_STATUS_NORMAL,pNormalBackgroundBitmap);
683 delete pNormalBackgroundBitmap;
686 if (pPressedBackgroundBitmap != NULL)
688 pItem->SetBackgroundBitmap(LIST_ITEM_DRAWING_STATUS_PRESSED,pPressedBackgroundBitmap);
689 delete pPressedBackgroundBitmap;
692 pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_NORMAL,ITEM_RADIO_ITEM_BACKGROUND_COLOR);
693 pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_PRESSED,ITEM_BACKGROUND_COLOR_HIGHLIGHTED);
696 pItem->SetText(settingInfo[effectiveIndex].titleText);
697 AppLogDebug("effectiveIndex %d SettingInfo[effectiveIndex].isSelected %d", effectiveIndex, settingInfo[effectiveIndex].isSelected);
699 //if (pBitmap != null)
700 // pItem->AddElement(Rectangle(0, 0, 10, 112), IDA_LIST_LEFT_SIDE_MARGIN, *pBitmap, null);
702 // pItem->SetSelected(settingInfo[effectiveIndex].isSelected);
703 __pList->SetItemChecked(groupIndex,itemIndex,settingInfo[effectiveIndex].isSelected);
708 else if (settingInfo[effectiveIndex].itemType == ITEM_TYPE_NORMAL)
710 DefaultCustomItem* pItem = new(std::nothrow) DefaultCustomItem();
712 r = pItem->Construct(itemWidth, 112 + (__fontSize - 44));
720 // Bitmap* pNormalBackgroundBitmap = CommonUtil::GetNinepatchedBitmapN(IDB_LIST_GROUP_BG9,itemWidth,112);
721 // Bitmap* pPressedBackgroundBitmap = CommonUtil::GetNinepatchedBitmapN(IDB_LIST_GROUP_BG_PRESS9,itemWidth,112);
723 // if (pNormalBackgroundBitmap != NULL)
725 // pItem->SetBackgroundBitmap(LIST_ITEM_DRAWING_STATUS_NORMAL,pNormalBackgroundBitmap);
726 // delete pNormalBackgroundBitmap;
729 // if (pPressedBackgroundBitmap != NULL)
731 // pItem->SetBackgroundBitmap(LIST_ITEM_DRAWING_STATUS_PRESSED,pPressedBackgroundBitmap);
732 // delete pPressedBackgroundBitmap;
735 pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_NORMAL,ITEM_BACKGROUND_COLOR);
736 pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_PRESSED,ITEM_BACKGROUND_COLOR_HIGHLIGHTED);
738 pItem->SetText(settingInfo[effectiveIndex].titleText);
740 //if (pBitmap != null)
741 // pItem->AddElement(Rectangle(0, 0, 10, 112), IDA_LIST_LEFT_SIDE_MARGIN, *pBitmap, null);
758 SettingForm::DeleteGroupItem(int groupIndex, GroupItem* pItem, int itemWidth)
766 SettingForm::DeleteItem(int groupIndex, int itemIndex, ListItemBase* pItem, int itemWidth)
774 SettingForm::GetGroupCount(void)
780 SettingForm::GetItemCount(int groupIndex)
782 AppLog(" SettingForm::GetItemCount --> groupIndex : %d,", groupIndex);
783 return pGroupItemCount[groupIndex];
787 SettingForm::OnFormBackRequested(Form& source)
789 AppLog("SettingForm::OnFormBackRequested entered");
790 String* pSelectedScene = NULL;
791 Object* value = NULL;
792 MultipleWindowPresentationModel::GetInstance()->GetValue(SELECTED_SCENE_ID, &value);
793 pSelectedScene = (String*) value;
796 SceneManager::GetInstance()->GoBackward(BackwardSceneTransition(*pSelectedScene, SCENE_TRANSITION_ANIMATION_TYPE_NONE));
797 // delete pSelectedScene;
798 // pSelectedScene = null;
803 SettingForm::OnActionPerformed(const Control& source, int actionId)
808 if(__pConfirmationPopup)
810 __pConfirmationPopup->SetShowState(false);
811 __pConfirmationPopup->Show();
812 delete __pConfirmationPopup;
813 __pConfirmationPopup = null;
818 if(__pConfirmationPopup)
820 String message = L"";
821 __pConfirmationPopup->SetShowState(false);
822 __pConfirmationPopup->Show();
823 if (__pConfirmationPopup->GetMessage() == CommonUtil::GetString(L"IDS_BR_POP_EMPTY_COOKIE_POPUP_BNO"))
825 message = CommonUtil::GetString(L"IDS_BR_POP_DELETED");
826 SettingPresentationModel::GetInstance()->ClearCookie();
828 else if (__pConfirmationPopup->GetMessage() == CommonUtil::GetString(L"IDS_BR_POP_DELETE_ALL_SAVED_FORM_DATA_Q"))
830 message = CommonUtil::GetString(L"IDS_BR_POP_DELETED");
831 SettingPresentationModel::GetInstance()->ClearFormData();
833 else if (__pConfirmationPopup->GetMessage() == CommonUtil::GetString(L"IDS_BR_POP_DELETE_ALL_SAVED_PASSWORDS_Q"))
835 message = CommonUtil::GetString(L"IDS_BR_POP_DELETED");
836 SettingPresentationModel::GetInstance()->ClearPasswords();
838 else if (__pConfirmationPopup->GetMessage() == CommonUtil::GetString(L"IDS_BR_POP_DELETE_LOCALLY_CACHED_CONTENT_AND_DATABASES_Q"))
840 message = CommonUtil::GetString(L"IDS_BR_POP_DELETED");
841 SettingPresentationModel::GetInstance()->ClearCache();
843 else if (__pConfirmationPopup->GetMessage() == CommonUtil::GetString(L"IDS_BR_BODY_DELETE_BROWSER_HISTORY_Q"))
845 message = CommonUtil::GetString(L"IDS_BR_POP_DELETED");
846 HistoryPresentationModel::GetInstance()->ClearHistory();
848 else if (__pConfirmationPopup->GetMessage() == CommonUtil::GetString(L"IDS_BR_POP_ALL_SETTINGS_TO_DEFAULT_CONTINUE_Q"))
850 message = CommonUtil::GetString(L"IDS_BR_SK_DONE");
851 SettingPresentationModel::GetInstance()->ResetRegistry();
852 InitializeSettingValues();
855 __pList->UpdateList();
858 delete __pConfirmationPopup;
859 __pConfirmationPopup = null;
861 NotificationPanel* pNotification = new (std::nothrow) NotificationPanel(*this);
862 pNotification->SetText(message);
863 pNotification->SetPositionDiff(0);
864 pNotification->ShowNotification();
874 SettingForm::OnOrientationChanged(const Control& source, OrientationStatus orientationStatus)
876 Rectangle rect = GetClientAreaBounds();
881 __pList->SetBounds(rect.x,rect.y,rect.width-16,rect.height);
882 __pList->UpdateList();
885 SettingForm::SettingItemInfo::SettingItemInfo(void)
894 SettingForm::OnSceneActivatedN(const SceneId& previousSceneId, const SceneId& currentSceneId, IList* pArgs)
896 WindowInfo* pWindowInfo = null;
897 String curUrl = SettingPresentationModel::GetInstance()->GetFavoriteUrl();
899 pWindowInfo = MultipleWindowPresentationModel::GetInstance()->GetActiveWindowInfo();
901 if (previousSceneId == IDSCN_EDIT_HOMEPAGE_VIEW)
905 String* pValue = NULL;
906 pValue = dynamic_cast<String*>(pArgs->GetAt(0));
909 if (pValue->CompareTo(L"Done") == 0)
911 // SettingPresentationModel::GetInstance()->SetHomepage(CommonUtil::GetString(L"IDS_BR_BODY_USER_HOMEPAGE"));
913 else if (pValue->CompareTo(L"Cancel") == 0)
915 String homePage = SettingPresentationModel::GetInstance()->GetHomepage();
916 if (homePage.CompareTo((L"IDS_BR_BODY_MOST_VISITED_SITES")) == 0)
918 settingInfo[SETTING_MOST_VISITED_SITE].isSelected = true;
919 settingInfo[SETTING_BLANK_PAGE].isSelected = false;
920 settingInfo[SETTING_CURRENT_PAGE].isSelected = false;
921 settingInfo[SETTING_FAVORITE_URL].isSelected = false;
922 SettingPresentationModel::GetInstance()->SetHomepage(L"IDS_BR_BODY_MOST_VISITED_SITES");
925 else if (homePage.CompareTo((L"IDS_BR_BODY_BLANK_PAGE")) == 0)
927 settingInfo[SETTING_MOST_VISITED_SITE].isSelected = false;
928 settingInfo[SETTING_BLANK_PAGE].isSelected = true;
929 settingInfo[SETTING_CURRENT_PAGE].isSelected = false;
930 settingInfo[SETTING_FAVORITE_URL].isSelected = false;
931 SettingPresentationModel::GetInstance()->SetHomepage(L"IDS_BR_BODY_BLANK_PAGE");
935 settingInfo[SETTING_MOST_VISITED_SITE].isSelected = false;
936 settingInfo[SETTING_BLANK_PAGE].isSelected = false;
937 settingInfo[SETTING_CURRENT_PAGE].isSelected = false;
938 settingInfo[SETTING_FAVORITE_URL].isSelected = true;
946 if (pWindowInfo != null)
948 __currentURL.Clear();
949 __currentURL.Append(pWindowInfo->pageUrl);
950 AppLog("current url is %ls",__currentURL.GetPointer());
952 if (SettingPresentationModel::GetInstance()->GetFavoriteUrl().CompareTo(L"") == 0)
954 if (pWindowInfo->pageUrl.CompareTo(L"") == 0)
956 //settingInfo[SETTING_FAVORITE_URL].titleText = CommonUtil::GetString(L"IDS_SET_HOMEPAGE");
957 settingInfo[SETTING_FAVORITE_URL].titleText = L"http://www.tizen.org";
961 settingInfo[SETTING_FAVORITE_URL].titleText = pWindowInfo->pageUrl;
966 settingInfo[SETTING_FAVORITE_URL].titleText = SettingPresentationModel::GetInstance()->GetFavoriteUrl();
972 __pList->UpdateList();
973 if (pWindowInfo && pWindowInfo->pageUrl.CompareTo(L"") == 0)
975 __isCurrentPageDisable = true;
976 AppLog("set item enabled is false");
977 __pList->SetItemEnabled(0, 1, false);
981 __isCurrentPageDisable = false;
982 AppLog("set item enabled is true");
983 __pList->SetItemEnabled(0, 1, true);
985 for(int grpindex = 0; grpindex < groupCount; grpindex++)
987 for(int index = 0; index < *(pGroupItemCount+groupCount); index++)
989 int effectiveIndex = 0;
990 for (int i = 0; i < grpindex; i++)
991 effectiveIndex = effectiveIndex + pGroupItemCount[i];
992 effectiveIndex = effectiveIndex + index;
994 if(effectiveIndex >= SETTING_MAX)
998 if(settingInfo[effectiveIndex].itemType == ITEM_TYPE_TOGGLE || settingInfo[effectiveIndex].itemType == ITEM_TYPE_RADIO )
1000 __pList->SetItemChecked(grpindex, index, settingInfo[effectiveIndex].isSelected);
1009 SettingForm::OnSceneDeactivated(const SceneId& currentSceneId, const SceneId& nextSceneId)
1015 SettingForm::ClearHistory(void)
1017 String message = CommonUtil::GetString(L"IDS_BR_BODY_DELETE_BROWSER_HISTORY_Q");
1018 if(!__pConfirmationPopup)
1020 __pConfirmationPopup = new(std::nothrow) ConfirmationPopup();
1021 __pConfirmationPopup->Initialize();
1022 __pConfirmationPopup->RemoveActionListener(*this);
1023 __pConfirmationPopup->AddActionListener(*this);
1024 __pConfirmationPopup->setMessage(message);
1025 __pConfirmationPopup->Show();
1030 SettingForm::ClearCache(void)
1032 String message = CommonUtil::GetString(L"IDS_BR_POP_DELETE_LOCALLY_CACHED_CONTENT_AND_DATABASES_Q");
1033 if(!__pConfirmationPopup)
1035 __pConfirmationPopup = new(std::nothrow) ConfirmationPopup();
1036 __pConfirmationPopup->Initialize();
1037 __pConfirmationPopup->RemoveActionListener(*this);
1038 __pConfirmationPopup->AddActionListener(*this);
1039 __pConfirmationPopup->setMessage(message);
1040 __pConfirmationPopup->Show();
1045 SettingForm::ClearCookie(void)
1047 String message = CommonUtil::GetString(L"IDS_BR_POP_EMPTY_COOKIE_POPUP_BNO");
1048 if(!__pConfirmationPopup)
1050 __pConfirmationPopup = new(std::nothrow) ConfirmationPopup();
1051 __pConfirmationPopup->Initialize();
1052 __pConfirmationPopup->RemoveActionListener(*this);
1053 __pConfirmationPopup->AddActionListener(*this);
1054 __pConfirmationPopup->setMessage(message);
1055 __pConfirmationPopup->Show();
1060 SettingForm::ClearFormData(void)
1062 String message = CommonUtil::GetString(L"IDS_BR_POP_DELETE_ALL_SAVED_FORM_DATA_Q");
1063 if(!__pConfirmationPopup)
1065 __pConfirmationPopup = new(std::nothrow) ConfirmationPopup();
1066 __pConfirmationPopup->Initialize();
1067 __pConfirmationPopup->RemoveActionListener(*this);
1068 __pConfirmationPopup->AddActionListener(*this);
1069 __pConfirmationPopup->setMessage(message);
1070 __pConfirmationPopup->Show();
1075 SettingForm::ClearPasswords(void)
1077 String message = CommonUtil::GetString(L"IDS_BR_POP_DELETE_ALL_SAVED_PASSWORDS_Q");
1078 if(!__pConfirmationPopup)
1080 __pConfirmationPopup = new(std::nothrow) ConfirmationPopup();
1081 __pConfirmationPopup->Initialize();
1082 __pConfirmationPopup->RemoveActionListener(*this);
1083 __pConfirmationPopup->AddActionListener(*this);
1084 __pConfirmationPopup->setMessage(message);
1085 __pConfirmationPopup->Show();
1091 SettingForm::ResetToDefault()
1093 String message = CommonUtil::GetString(L"IDS_BR_POP_ALL_SETTINGS_TO_DEFAULT_CONTINUE_Q");
1094 if(!__pConfirmationPopup)
1096 __pConfirmationPopup = new(std::nothrow) ConfirmationPopup();
1097 __pConfirmationPopup->Initialize();
1098 __pConfirmationPopup->RemoveActionListener(*this);
1099 __pConfirmationPopup->AddActionListener(*this);
1100 __pConfirmationPopup->setMessage(message);
1101 __pConfirmationPopup->Show();