2 * Copyright 2012 Samsung Electronics Co., Ltd
4 * Licensed under the Flora License, Version 1.0 (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://www.tizenopensource.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.
18 #include "browser-add-to-bookmark-view.h"
19 #if defined(FEATURE_MOST_VISITED_SITES)
20 #include "add-to-most-visited-sites-view.h"
22 #include "browser-geolocation-db.h"
23 #include "browser-bookmark-db.h"
24 #include "browser-bookmark-view.h"
25 #include "browser-config.h"
26 #include "browser-data-manager.h"
27 #include "browser-history-db.h"
28 #include "browser-history-layout.h"
29 #include "browser-multi-window-view.h"
30 #include "browser-new-folder-view.h"
31 #include "browser-select-folder-view.h"
32 #if defined(FEATURE_MOST_VISITED_SITES)
33 #include "most-visited-sites.h"
35 #include "browser-view.h"
37 Browser_Data_Manager::Browser_Data_Manager(void)
40 ,m_bookmark_view(NULL)
41 ,m_add_to_bookmark_view(NULL)
42 ,m_edit_bookmark_view(NULL)
43 #if defined(FEATURE_MOST_VISITED_SITES)
44 ,m_add_to_most_visited_sites_view(NULL)
46 ,m_new_folder_view(NULL)
47 ,m_select_folder_view(NULL)
48 ,m_history_layout(NULL)
49 ,m_multi_window_view(NULL)
52 ,m_geolocation_db(NULL)
55 BROWSER_LOGD("[%s]", __func__);
58 Browser_Data_Manager::~Browser_Data_Manager(void)
60 BROWSER_LOGD("[%s]", __func__);
61 if (m_bookmark_view) {
62 delete m_bookmark_view;
63 m_bookmark_view = NULL;
65 if (m_add_to_bookmark_view) {
66 delete m_add_to_bookmark_view;
67 m_add_to_bookmark_view = NULL;
69 if (m_edit_bookmark_view) {
70 delete m_edit_bookmark_view;
71 m_edit_bookmark_view = NULL;
73 #if defined(FEATURE_MOST_VISITED_SITES)
74 if (m_add_to_most_visited_sites_view) {
75 delete m_add_to_most_visited_sites_view;
76 m_add_to_most_visited_sites_view = NULL;
79 if (m_new_folder_view) {
80 delete m_new_folder_view;
81 m_new_folder_view = NULL;
83 if (m_select_folder_view) {
84 delete m_select_folder_view;
85 m_select_folder_view = NULL;
87 if (m_history_layout) {
88 delete m_history_layout;
89 m_history_layout = NULL;
99 if (m_multi_window_view) {
100 delete m_multi_window_view;
101 m_multi_window_view = NULL;
106 Eina_Bool Browser_Data_Manager::is_in_view_stack(view_stack_status view)
108 BROWSER_LOGD("m_stack_status = %d, view = %d, m_stack_status & view = %d",
109 m_stack_status, view, m_stack_status & view);
111 if (m_stack_status & view)
117 void Browser_Data_Manager::set_browser_view(Browser_View *browser_view)
119 BROWSER_LOGD("[%s]", __func__);
120 m_browser_view = browser_view;
121 m_stack_status = m_stack_status | BR_BROWSER_VIEW;
124 Browser_Bookmark_View *Browser_Data_Manager::create_bookmark_view(void)
126 BROWSER_LOGD("[%s]", __func__);
128 destroy_bookmark_view();
130 m_bookmark_view = new(nothrow) Browser_Bookmark_View;
131 if (!m_bookmark_view)
132 BROWSER_LOGE("new Browser_Bookmark_View failed");
134 m_stack_status = m_stack_status | BR_BOOKMARK_VIEW;
136 return m_bookmark_view;
139 void Browser_Data_Manager::destroy_bookmark_view(void)
141 BROWSER_LOGD("[%s]", __func__);
142 if (m_bookmark_view) {
143 delete m_bookmark_view;
144 m_bookmark_view = NULL;
145 m_stack_status = m_stack_status - BR_BOOKMARK_VIEW;
149 Browser_Bookmark_DB *Browser_Data_Manager::create_bookmark_db(void)
151 BROWSER_LOGD("[%s]", __func__);
153 destroy_bookmark_db();
155 m_bookmark_db = new(nothrow) Browser_Bookmark_DB;
157 BROWSER_LOGE("new Browser_Bookmark_DB failed");
159 return m_bookmark_db;
162 void Browser_Data_Manager::destroy_bookmark_db(void)
164 BROWSER_LOGD("[%s]", __func__);
166 delete m_bookmark_db;
167 m_bookmark_db = NULL;
171 Browser_Add_To_Bookmark_View *Browser_Data_Manager::create_add_to_bookmark_view(string title,
172 string url, int current_folder_id)
174 BROWSER_LOGD("[%s]", __func__);
175 if (m_add_to_bookmark_view)
176 destroy_add_to_bookmark_view();
178 m_add_to_bookmark_view = new(nothrow) Browser_Add_To_Bookmark_View(title, url,
179 EINA_FALSE, current_folder_id);
180 if (!m_add_to_bookmark_view)
181 BROWSER_LOGE("new Browser_Add_To_Bookmark_View failed");
183 m_stack_status = m_stack_status | BR_ADD_TO_BOOKMARK_VIEW;
185 return m_add_to_bookmark_view;
188 void Browser_Data_Manager::destroy_add_to_bookmark_view(void)
190 BROWSER_LOGD("[%s]", __func__);
191 if (m_add_to_bookmark_view) {
192 delete m_add_to_bookmark_view;
193 m_add_to_bookmark_view = NULL;
194 m_stack_status = m_stack_status - BR_ADD_TO_BOOKMARK_VIEW;
198 Browser_Add_To_Bookmark_View *Browser_Data_Manager::create_edit_bookmark_view(string title,
199 string url, int current_folder_id)
201 BROWSER_LOGD("[%s]", __func__);
202 if (m_edit_bookmark_view)
203 destroy_edit_bookmark_view();
205 m_edit_bookmark_view = new(nothrow) Browser_Add_To_Bookmark_View(title, url,
206 EINA_TRUE, current_folder_id);
207 if (!m_edit_bookmark_view)
208 BROWSER_LOGE("new Browser_Add_To_Bookmark_View failed");
210 m_stack_status = m_stack_status | BR_EDIT_BOOKMARK_VIEW;
212 return m_edit_bookmark_view;
215 void Browser_Data_Manager::destroy_edit_bookmark_view(void)
217 BROWSER_LOGD("[%s]", __func__);
218 if (m_edit_bookmark_view) {
219 delete m_edit_bookmark_view;
220 m_edit_bookmark_view = NULL;
221 m_stack_status = m_stack_status - BR_EDIT_BOOKMARK_VIEW;
225 #if defined(FEATURE_MOST_VISITED_SITES)
226 Add_To_Most_Visited_Sites_View *Browser_Data_Manager::create_add_to_most_visited_sites_view(Most_Visited_Sites *most_visited_sites)
228 BROWSER_LOGD("[%s]", __func__);
229 if (m_add_to_most_visited_sites_view)
230 destroy_add_to_most_visited_sites_view();
232 m_add_to_most_visited_sites_view = new(nothrow) Add_To_Most_Visited_Sites_View(most_visited_sites);
233 if (!m_add_to_most_visited_sites_view)
234 BROWSER_LOGE("new Add_To_Most_Visited_Sites_View failed");
236 m_stack_status = m_stack_status | ADD_TO_MOST_VISITED_SITES_VIEW;
238 return m_add_to_most_visited_sites_view;
242 #if defined(FEATURE_MOST_VISITED_SITES)
243 void Browser_Data_Manager::destroy_add_to_most_visited_sites_view(void)
245 BROWSER_LOGD("[%s]", __func__);
246 if (m_add_to_most_visited_sites_view) {
247 delete m_add_to_most_visited_sites_view;
248 m_add_to_most_visited_sites_view = NULL;
249 m_stack_status = m_stack_status - ADD_TO_MOST_VISITED_SITES_VIEW;
254 Browser_New_Folder_View *Browser_Data_Manager::create_new_folder_view(void)
256 BROWSER_LOGD("[%s]", __func__);
257 if (m_new_folder_view)
258 destroy_new_folder_view();
260 m_new_folder_view = new(nothrow) Browser_New_Folder_View;
261 if (!m_new_folder_view)
262 BROWSER_LOGE("new Browser_New_Folder_View failed");
264 m_stack_status = m_stack_status | BR_NEW_FOLDER_VIEW;
266 return m_new_folder_view;
269 void Browser_Data_Manager::destroy_new_folder_view(void)
271 BROWSER_LOGD("[%s]", __func__);
272 if (m_new_folder_view) {
273 delete m_new_folder_view;
274 m_new_folder_view = NULL;
275 m_stack_status = m_stack_status - BR_NEW_FOLDER_VIEW;
279 /* 'current_folder_id' is used to mark the current folder radio button in select folder view. */
280 Browser_Select_Folder_View *Browser_Data_Manager::create_select_folder_view(int current_folder_id)
282 BROWSER_LOGD("[%s]", __func__);
283 if (m_select_folder_view)
284 destroy_select_folder_view();
286 m_select_folder_view = new(nothrow) Browser_Select_Folder_View(current_folder_id);
287 if (!m_select_folder_view)
288 BROWSER_LOGE("new Browser_Select_Folder_View failed");
290 m_stack_status = m_stack_status | BR_SELECT_FOLDER_VIEW;
292 return m_select_folder_view;
295 void Browser_Data_Manager::destroy_select_folder_view(void)
297 BROWSER_LOGD("[%s]", __func__);
298 if (m_select_folder_view) {
299 delete m_select_folder_view;
300 m_select_folder_view = NULL;
301 m_stack_status = m_stack_status - BR_SELECT_FOLDER_VIEW;
305 Browser_Multi_Window_View* Browser_Data_Manager::create_multi_window_view(void)
307 BROWSER_LOGD("[%s]", __func__);
308 if (m_multi_window_view)
309 destroy_multi_window_view();
311 m_multi_window_view = new(nothrow) Browser_Multi_Window_View;
312 if (!m_multi_window_view) {
313 BROWSER_LOGE("new Browser_Multi_Window_View failed");
316 m_stack_status = m_stack_status | BR_MULTI_WINDOW_VIEW;
318 return m_multi_window_view;
321 void Browser_Data_Manager::destroy_multi_window_view(void)
323 BROWSER_LOGD("[%s]", __func__);
324 if (m_multi_window_view) {
325 delete m_multi_window_view;
326 m_multi_window_view = NULL;
327 m_stack_status = m_stack_status - BR_MULTI_WINDOW_VIEW;
331 Browser_History_Layout *Browser_Data_Manager::create_history_layout(void)
333 BROWSER_LOGD("[%s]", __func__);
334 if (m_history_layout)
335 destroy_history_layout();
337 m_history_layout = new(nothrow) Browser_History_Layout;
338 if (!m_history_layout)
339 BROWSER_LOGE("new Browser_History_Layout failed");
341 return m_history_layout;
344 void Browser_Data_Manager::destroy_history_layout(void)
346 BROWSER_LOGD("[%s]", __func__);
347 if (m_history_layout) {
348 delete m_history_layout;
349 m_history_layout = NULL;
353 Browser_History_DB *Browser_Data_Manager::create_history_db(void)
355 BROWSER_LOGD("[%s]", __func__);
357 destroy_history_db();
359 m_history_db = new(nothrow) Browser_History_DB;
361 BROWSER_LOGE("new Browser_History_DB failed");
366 void Browser_Data_Manager::destroy_history_db(void)
368 BROWSER_LOGD("[%s]", __func__);
375 Browser_Geolocation_DB *Browser_Data_Manager::create_geolocation_db(void)
377 BROWSER_LOGD("[%s]", __func__);
378 if (m_geolocation_db)
379 destroy_geolocation_db();
381 m_geolocation_db = new(nothrow) Browser_Geolocation_DB;
382 if (!m_geolocation_db)
383 BROWSER_LOGE("new Browser_Geolocation_DB failed");
385 return m_geolocation_db;
388 void Browser_Data_Manager::destroy_geolocation_db(void)
390 BROWSER_LOGD("[%s]", __func__);
391 if (m_geolocation_db) {
392 delete m_geolocation_db;
393 m_geolocation_db = NULL;