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.
17 #include "browser-add-to-bookmark-view.h"
18 #include "browser-bookmark-db.h"
19 #include "browser-bookmark-view.h"
20 #include "browser-config.h"
21 #include "browser-data-manager.h"
22 #include "browser-history-db.h"
23 #include "browser-history-layout.h"
24 #include "browser-multi-window-view.h"
25 #include "browser-new-folder-view.h"
26 #include "browser-select-folder-view.h"
27 #include "browser-view.h"
29 Browser_Data_Manager::Browser_Data_Manager(void)
32 ,m_bookmark_view(NULL)
33 ,m_add_to_bookmark_view(NULL)
34 ,m_edit_bookmark_view(NULL)
35 ,m_new_folder_view(NULL)
36 ,m_select_folder_view(NULL)
37 ,m_history_layout(NULL)
38 ,m_multi_window_view(NULL)
43 BROWSER_LOGD("[%s]", __func__);
46 Browser_Data_Manager::~Browser_Data_Manager(void)
48 BROWSER_LOGD("[%s]", __func__);
49 if (m_bookmark_view) {
50 delete m_bookmark_view;
51 m_bookmark_view = NULL;
53 if (m_add_to_bookmark_view) {
54 delete m_add_to_bookmark_view;
55 m_add_to_bookmark_view = NULL;
57 if (m_edit_bookmark_view) {
58 delete m_edit_bookmark_view;
59 m_edit_bookmark_view = NULL;
61 if (m_new_folder_view) {
62 delete m_new_folder_view;
63 m_new_folder_view = NULL;
65 if (m_select_folder_view) {
66 delete m_select_folder_view;
67 m_select_folder_view = NULL;
69 if (m_history_layout) {
70 delete m_history_layout;
71 m_history_layout = NULL;
81 if (m_multi_window_view) {
82 delete m_multi_window_view;
83 m_multi_window_view = NULL;
88 Eina_Bool Browser_Data_Manager::is_in_view_stack(view_stack_status view)
90 BROWSER_LOGD("m_stack_status = %d, view = %d, m_stack_status & view = %d",
91 m_stack_status, view, m_stack_status & view);
93 if (m_stack_status & view)
99 void Browser_Data_Manager::set_browser_view(Browser_View *browser_view)
101 BROWSER_LOGD("[%s]", __func__);
102 m_browser_view = browser_view;
103 m_stack_status = m_stack_status | BR_BROWSER_VIEW;
106 Browser_Bookmark_View *Browser_Data_Manager::create_bookmark_view(void)
108 BROWSER_LOGD("[%s]", __func__);
110 destroy_bookmark_view();
112 m_bookmark_view = new(nothrow) Browser_Bookmark_View;
113 if (!m_bookmark_view)
114 BROWSER_LOGE("new Browser_Bookmark_View failed");
116 m_stack_status = m_stack_status | BR_BOOKMARK_VIEW;
118 return m_bookmark_view;
121 void Browser_Data_Manager::destroy_bookmark_view(void)
123 BROWSER_LOGD("[%s]", __func__);
124 if (m_bookmark_view) {
125 delete m_bookmark_view;
126 m_bookmark_view = NULL;
127 m_stack_status = m_stack_status - BR_BOOKMARK_VIEW;
131 Browser_Bookmark_DB *Browser_Data_Manager::create_bookmark_db(void)
133 BROWSER_LOGD("[%s]", __func__);
135 destroy_bookmark_db();
137 m_bookmark_db = new(nothrow) Browser_Bookmark_DB;
139 BROWSER_LOGE("new Browser_Bookmark_DB failed");
141 return m_bookmark_db;
144 void Browser_Data_Manager::destroy_bookmark_db(void)
146 BROWSER_LOGD("[%s]", __func__);
148 delete m_bookmark_db;
149 m_bookmark_db = NULL;
153 Browser_Add_To_Bookmark_View *Browser_Data_Manager::create_add_to_bookmark_view(string title,
154 string url, int current_folder_id)
156 BROWSER_LOGD("[%s]", __func__);
157 if (m_add_to_bookmark_view)
158 destroy_add_to_bookmark_view();
160 m_add_to_bookmark_view = new(nothrow) Browser_Add_To_Bookmark_View(title, url,
161 EINA_FALSE, current_folder_id);
162 if (!m_add_to_bookmark_view)
163 BROWSER_LOGE("new Browser_Add_To_Bookmark_View failed");
165 m_stack_status = m_stack_status | BR_ADD_TO_BOOKMARK_VIEW;
167 return m_add_to_bookmark_view;
170 void Browser_Data_Manager::destroy_add_to_bookmark_view(void)
172 BROWSER_LOGD("[%s]", __func__);
173 if (m_add_to_bookmark_view) {
174 delete m_add_to_bookmark_view;
175 m_add_to_bookmark_view = NULL;
176 m_stack_status = m_stack_status - BR_ADD_TO_BOOKMARK_VIEW;
180 Browser_Add_To_Bookmark_View *Browser_Data_Manager::create_edit_bookmark_view(string title,
181 string url, int current_folder_id)
183 BROWSER_LOGD("[%s]", __func__);
184 if (m_edit_bookmark_view)
185 destroy_edit_bookmark_view();
187 m_edit_bookmark_view = new(nothrow) Browser_Add_To_Bookmark_View(title, url,
188 EINA_TRUE, current_folder_id);
189 if (!m_edit_bookmark_view)
190 BROWSER_LOGE("new Browser_Add_To_Bookmark_View failed");
192 m_stack_status = m_stack_status | BR_EDIT_BOOKMARK_VIEW;
194 return m_edit_bookmark_view;
197 void Browser_Data_Manager::destroy_edit_bookmark_view(void)
199 BROWSER_LOGD("[%s]", __func__);
200 if (m_edit_bookmark_view) {
201 delete m_edit_bookmark_view;
202 m_edit_bookmark_view = NULL;
203 m_stack_status = m_stack_status - BR_EDIT_BOOKMARK_VIEW;
207 Browser_New_Folder_View *Browser_Data_Manager::create_new_folder_view(void)
209 BROWSER_LOGD("[%s]", __func__);
210 if (m_new_folder_view)
211 destroy_new_folder_view();
213 m_new_folder_view = new(nothrow) Browser_New_Folder_View;
214 if (!m_new_folder_view)
215 BROWSER_LOGE("new Browser_New_Folder_View failed");
217 m_stack_status = m_stack_status | BR_NEW_FOLDER_VIEW;
219 return m_new_folder_view;
222 void Browser_Data_Manager::destroy_new_folder_view(void)
224 BROWSER_LOGD("[%s]", __func__);
225 if (m_new_folder_view) {
226 delete m_new_folder_view;
227 m_new_folder_view = NULL;
228 m_stack_status = m_stack_status - BR_NEW_FOLDER_VIEW;
232 /* 'current_folder_id' is used to mark the current folder radio button in select folder view. */
233 Browser_Select_Folder_View *Browser_Data_Manager::create_select_folder_view(int current_folder_id)
235 BROWSER_LOGD("[%s]", __func__);
236 if (m_select_folder_view)
237 destroy_select_folder_view();
239 m_select_folder_view = new(nothrow) Browser_Select_Folder_View(current_folder_id);
240 if (!m_select_folder_view)
241 BROWSER_LOGE("new Browser_Select_Folder_View failed");
243 m_stack_status = m_stack_status | BR_SELECT_FOLDER_VIEW;
245 return m_select_folder_view;
248 void Browser_Data_Manager::destroy_select_folder_view(void)
250 BROWSER_LOGD("[%s]", __func__);
251 if (m_select_folder_view) {
252 delete m_select_folder_view;
253 m_select_folder_view = NULL;
254 m_stack_status = m_stack_status - BR_SELECT_FOLDER_VIEW;
258 Browser_Multi_Window_View* Browser_Data_Manager::create_multi_window_view(void)
260 BROWSER_LOGD("[%s]", __func__);
261 if (m_multi_window_view)
262 destroy_multi_window_view();
264 m_multi_window_view = new(nothrow) Browser_Multi_Window_View;
265 if (!m_multi_window_view) {
266 BROWSER_LOGE("new Browser_Multi_Window_View failed");
269 m_stack_status = m_stack_status | BR_MULTI_WINDOW_VIEW;
271 return m_multi_window_view;
274 void Browser_Data_Manager::destroy_multi_window_view(void)
276 BROWSER_LOGD("[%s]", __func__);
277 if (m_multi_window_view) {
278 delete m_multi_window_view;
279 m_multi_window_view = NULL;
280 m_stack_status = m_stack_status - BR_MULTI_WINDOW_VIEW;
284 Browser_History_Layout *Browser_Data_Manager::create_history_layout(void)
286 BROWSER_LOGD("[%s]", __func__);
287 if (m_history_layout)
288 destroy_history_layout();
290 m_history_layout = new(nothrow) Browser_History_Layout;
291 if (!m_history_layout)
292 BROWSER_LOGE("new Browser_History_Layout failed");
294 return m_history_layout;
297 void Browser_Data_Manager::destroy_history_layout(void)
299 BROWSER_LOGD("[%s]", __func__);
300 if (m_history_layout) {
301 delete m_history_layout;
302 m_history_layout = NULL;
306 Browser_History_DB *Browser_Data_Manager::create_history_db(void)
308 BROWSER_LOGD("[%s]", __func__);
310 destroy_history_db();
312 m_history_db = new(nothrow) Browser_History_DB;
314 BROWSER_LOGE("new Browser_History_DB failed");
319 void Browser_Data_Manager::destroy_history_db(void)
321 BROWSER_LOGD("[%s]", __func__);