From d5438771ead347730484eb124a4d8dfaaaf4919b Mon Sep 17 00:00:00 2001 From: sungwon2han Date: Wed, 23 Sep 2015 13:53:33 +0900 Subject: [PATCH 01/16] Browser exit when load bookmark items [Issue#] NA [Problem] Browser cannot get bookmark info from browser-provider [Cause] browser-provider issue [Solution] add error check routing for browser-provider Change-Id: If91dc072d4c6294d331294b7cde74433d1dc2f2f Signed-off-by: sungwon2han --- services/BookmarkService/BookmarkService.cpp | 60 ++++++++++++++++------------ 1 file changed, 35 insertions(+), 25 deletions(-) diff --git a/services/BookmarkService/BookmarkService.cpp b/services/BookmarkService/BookmarkService.cpp index 3af5cb7..68d1586 100644 --- a/services/BookmarkService/BookmarkService.cpp +++ b/services/BookmarkService/BookmarkService.cpp @@ -206,31 +206,41 @@ std::vector > BookmarkService::getBookmarks(int fo for(int i = 0; i bookmark = std::make_shared(url, title, std::string(""),(int) bookmark_info.parent, ids[i]); - - std::shared_ptr bi = std::make_shared(); - bi->imageType = tizen_browser::tools::BrowserImage::ImageType::ImageTypePNG; - bi->width = bookmark_info.thumbnail_width; - bi->height = bookmark_info.thumbnail_height; - bi->dataSize = bookmark_info.thumbnail_length; - bi->imageData = (void*)malloc(bookmark_info.thumbnail_length); - memcpy(bi->imageData, (void*)bookmark_info.thumbnail, bookmark_info.thumbnail_length); - bookmark->setThumbnail(bi); - - std::shared_ptr fav = std::make_shared(); - unsigned char *image_bytes; - bp_bookmark_adaptor_get_icon(ids[i], &fav->width, &fav->height, &image_bytes, &fav->dataSize); - fav->imageType = tizen_browser::tools::BrowserImage::ImageType::ImageTypePNG; - - fav->imageData = (void*)malloc(bookmark_info.favicon_length); - memcpy(fav->imageData, (void*)image_bytes, bookmark_info.favicon_length); - bookmark->setFavicon(fav); - m_bookmarks.push_back(bookmark); - + if (bp_bookmark_adaptor_get_easy_all(ids[i], &bookmark_info) == 0) { + std::string url = (bookmark_info.url ? bookmark_info.url : ""); + std::string title = (bookmark_info.title ? bookmark_info.title : ""); + + std::shared_ptr bookmark = std::make_shared(url, title, std::string(""),(int) bookmark_info.parent, ids[i]); + + if (bookmark_info.thumbnail_length != -1) { + std::shared_ptr bi = std::make_shared(); + bi->imageType = tizen_browser::tools::BrowserImage::ImageType::ImageTypePNG; + bi->width = bookmark_info.thumbnail_width; + bi->height = bookmark_info.thumbnail_height; + bi->dataSize = bookmark_info.thumbnail_length; + bi->imageData = (void*)malloc(bookmark_info.thumbnail_length); + memcpy(bi->imageData, (void*)bookmark_info.thumbnail, bookmark_info.thumbnail_length); + bookmark->setThumbnail(bi); + } else { + BROWSER_LOGD("bookmark thumbnail size is -1"); + } + + if (bookmark_info.favicon_length != -1) { + std::shared_ptr fav = std::make_shared(); + unsigned char *image_bytes; + bp_bookmark_adaptor_get_icon(ids[i], &fav->width, &fav->height, &image_bytes, &fav->dataSize); + fav->imageType = tizen_browser::tools::BrowserImage::ImageType::ImageTypePNG; + + fav->imageData = (void*)malloc(bookmark_info.favicon_length); + memcpy(fav->imageData, (void*)image_bytes, bookmark_info.favicon_length); + bookmark->setFavicon(fav); + } else { + BROWSER_LOGD("bookmark favicon size is -1"); + } + m_bookmarks.push_back(bookmark); + } else { + BROWSER_LOGD("bp_bookmark_adaptor_get_easy_all error"); + } } free(ids); return m_bookmarks; -- 2.7.4 From 4f6d5a3694b2c8b3e5672dbbaeacd785d97fe358 Mon Sep 17 00:00:00 2001 From: sungwon2han Date: Wed, 23 Sep 2015 15:18:59 +0900 Subject: [PATCH 02/16] Browser exit when load history items [Issue#] NA [Problem] Browser cannot get history info from browser-provider [Cause] browser-provider issue [Solution] add error check routine for browser-provider Change-Id: I12368bc9394e8115c4debfa9b72d8aa5a9aa9f5c Signed-off-by: sungwon2han --- services/HistoryService/HistoryService.cpp | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/services/HistoryService/HistoryService.cpp b/services/HistoryService/HistoryService.cpp index 1d93507..c60d669 100644 --- a/services/HistoryService/HistoryService.cpp +++ b/services/HistoryService/HistoryService.cpp @@ -214,14 +214,18 @@ std::shared_ptr HistoryService::getMostVisitedHistoryItems() history->setTitle(std::string(history_info.title ? history_info.title : "")); //thumbail - std::shared_ptr hi = std::make_shared(); - hi->imageType = tools::BrowserImage::ImageTypePNG; - hi->width = history_info.thumbnail_width; - hi->height = history_info.thumbnail_height; - hi->dataSize = history_info.thumbnail_length; - hi->imageData = (void*)malloc(history_info.thumbnail_length); - memcpy(hi->imageData, (void*)history_info.thumbnail, history_info.thumbnail_length); - history->setThumbnail(hi); + if (history_info.thumbnail_length != -1) { + std::shared_ptr hi = std::make_shared(); + hi->imageType = tools::BrowserImage::ImageTypePNG; + hi->width = history_info.thumbnail_width; + hi->height = history_info.thumbnail_height; + hi->dataSize = history_info.thumbnail_length; + hi->imageData = (void*)malloc(history_info.thumbnail_length); + memcpy(hi->imageData, (void*)history_info.thumbnail, history_info.thumbnail_length); + history->setThumbnail(hi); + } else { + BROWSER_LOGD("history thumbnail lenght is -1"); + } ret_history_list->push_back(history); } -- 2.7.4 From 237f5ec4e55c5ca7436e4f34620038c42cae3368 Mon Sep 17 00:00:00 2001 From: Albert Malewski Date: Wed, 23 Sep 2015 08:13:29 +0200 Subject: [PATCH 03/16] Fixed navigating by D-pad in More Menu [Issue] https://bugs.tizen.org/jira/browse/TT-183 [Problem] There was no support for D-pad navigation in More Menu. [Cause] Incorrect method of callback registration was used. [Solution] Registered callback in elm_gengrid_item_append function instead of evas_object_smart_callback_add. [Verify] Launch browser > Navigate to More menu > Choose an item You should be able to go into Bookmarks/History/Settings from More Menu just using keyboard/D-pad. Change-Id: Ib4673f0e645dbc1c3cbf4d4e2503cf4609b5a205 --- services/MoreMenuUI/MoreMenuUI.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/services/MoreMenuUI/MoreMenuUI.cpp b/services/MoreMenuUI/MoreMenuUI.cpp index d8050ec..395a43d 100644 --- a/services/MoreMenuUI/MoreMenuUI.cpp +++ b/services/MoreMenuUI/MoreMenuUI.cpp @@ -324,7 +324,7 @@ void MoreMenuUI::addItems() MoreMenuItemData *itemData = new MoreMenuItemData(); itemData->item = type; itemData->moreMenuUI = std::shared_ptr(this); - Elm_Object_Item* bookmarkView = elm_gengrid_item_append(m_gengrid, m_item_class, itemData, NULL, this); + Elm_Object_Item* bookmarkView = elm_gengrid_item_append(m_gengrid, m_item_class, itemData, _thumbSelected, itemData); m_map_menu_views.insert(std::pair(itemData->item, bookmarkView)); elm_gengrid_item_selected_set(bookmarkView, EINA_FALSE); } @@ -455,7 +455,6 @@ Evas_Object * MoreMenuUI::_grid_content_get(void *data, Evas_Object *obj, const if (!strncmp(part_name2, part, part_name2_len)) { Evas_Object *thumbButton = elm_button_add(obj); elm_object_style_set(thumbButton, "clickButton"); - evas_object_smart_callback_add(thumbButton, "clicked", tizen_browser::base_ui::MoreMenuUI::_thumbSelected, data); evas_object_event_callback_add(thumbButton, EVAS_CALLBACK_MOUSE_IN, __cb_mouse_in, data); evas_object_event_callback_add(thumbButton, EVAS_CALLBACK_MOUSE_OUT, __cb_mouse_out, data); return thumbButton; -- 2.7.4 From 20508f317281c4c881cadfbe88c7b523205062a1 Mon Sep 17 00:00:00 2001 From: Albert Malewski Date: Wed, 23 Sep 2015 13:06:16 +0200 Subject: [PATCH 04/16] Fixed navigating by D-pad in History and Settings [Issue] https://bugs.tizen.org/jira/browse/TT-183 [Problem] There was no support for D-pad navigation in More Menu. [Cause] Some elements seemed not to be allowed to be focused. [Solution] Added focus on some elements in HistoryUI and SettingsUI using elm_object_focus_custom_chain_append. Set focus on 'Close' button by default. Cleared focused elements from MoreMenuUI that were visible in HistoryUI, BookmarkManagerUI and SettingsUI. [Verify] Launch browser > Navigate to More menu > Choose an item You should be able to go into Bookmarks/History/Settings from More Menu just using keyboard/D-pad. Change-Id: Ica000176f025659b2a4352a2b4e49fe13f552b92 --- services/HistoryUI/HistoryUI.cpp | 7 ++++++- services/HistoryUI/HistoryUI.h | 2 +- services/MoreMenuUI/MoreMenuUI.cpp | 15 +++++++++++++++ services/MoreMenuUI/MoreMenuUI.h | 1 + services/SettingsUI/SettingsUI.cpp | 1 + services/SimpleUI/SimpleUI.cpp | 11 +++++++---- services/SimpleUI/SimpleUI.h | 2 +- 7 files changed, 32 insertions(+), 7 deletions(-) diff --git a/services/HistoryUI/HistoryUI.cpp b/services/HistoryUI/HistoryUI.cpp index 8443e04..f8eaa13 100644 --- a/services/HistoryUI/HistoryUI.cpp +++ b/services/HistoryUI/HistoryUI.cpp @@ -75,6 +75,7 @@ void HistoryUI::showUI() addItems(); evas_object_show(m_actionBar); evas_object_show(m_history_layout); + elm_object_focus_set(elm_object_part_content_get(m_actionBar, "close_click"), EINA_TRUE); } void HistoryUI::hideUI() @@ -87,6 +88,7 @@ void HistoryUI::hideUI() m_gengrid = nullptr; evas_object_hide(m_actionBar); evas_object_hide(m_history_layout); + elm_object_focus_custom_chain_unset(m_history_layout); } // TODO: Remove this function when proper view handling will be introduced @@ -179,11 +181,13 @@ Evas_Object* HistoryUI::createActionBar(Evas_Object* history_layout) elm_object_style_set(button, "history_button"); evas_object_smart_callback_add(button, "clicked", HistoryUI::_clearHistory_clicked, this); elm_object_part_content_set(actionBar, "clearhistory_click", button); + elm_object_focus_custom_chain_append(history_layout, button, nullptr); button = elm_button_add(actionBar); elm_object_style_set(button, "history_button"); evas_object_smart_callback_add(button, "clicked", HistoryUI::_close_clicked_cb, this); elm_object_part_content_set(actionBar, "close_click", button); + elm_object_focus_custom_chain_append(history_layout, button, nullptr); return actionBar; } @@ -193,7 +197,7 @@ void HistoryUI::_close_clicked_cb(void * data, Evas_Object*, void*) BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); if (data) { HistoryUI *historyUI = static_cast(data); - historyUI->closeHistoryUIClicked(std::string()); + historyUI->closeHistoryUIClicked(); historyUI->clearItems(); } } @@ -295,6 +299,7 @@ Evas_Object * HistoryUI::_history_grid_content_get(void *data, Evas_Object*, con Elm_Object_Item* historyView = elm_genlist_item_append(id->historyUI->m_genListToday, id->historyUI->m_itemClassToday, *it, nullptr, ELM_GENLIST_ITEM_NONE, _history_item_clicked_cb, (*it)); id->historyUI->m_map_history_views.insert(std::pair((*it)->item->getUrl(), historyView)); } + elm_object_focus_custom_chain_append(id->historyUI->m_history_layout, id->historyUI->m_genListToday, nullptr); return id->historyUI->m_genListToday; } diff --git a/services/HistoryUI/HistoryUI.h b/services/HistoryUI/HistoryUI.h index c849f5f..0635653 100644 --- a/services/HistoryUI/HistoryUI.h +++ b/services/HistoryUI/HistoryUI.h @@ -50,7 +50,7 @@ public: Evas_Object* createActionBar(Evas_Object* history_layout); void show(Evas_Object *main_layout); void addItems(); - boost::signals2::signal closeHistoryUIClicked; + boost::signals2::signal closeHistoryUIClicked; boost::signals2::signal clearHistoryClicked; boost::signals2::signal)> historyItemClicked; boost::signals2::signal)> historyDeleteClicked; diff --git a/services/MoreMenuUI/MoreMenuUI.cpp b/services/MoreMenuUI/MoreMenuUI.cpp index 395a43d..e472d21 100644 --- a/services/MoreMenuUI/MoreMenuUI.cpp +++ b/services/MoreMenuUI/MoreMenuUI.cpp @@ -103,6 +103,7 @@ void MoreMenuUI::showUI() m_gengrid=createGengrid(getContent()); addItems(); elm_object_part_content_set(getContent(), "elm.swallow.grid", m_gengrid); + setFocus(EINA_TRUE); } void MoreMenuUI::hideUI() @@ -167,6 +168,8 @@ void MoreMenuUI::showCurrentTab() elm_object_style_set(button, "hidden_button"); evas_object_smart_callback_add(button, "clicked", _close_clicked, this); elm_object_part_content_set(m_current_tab_bar, "close_click", button); + evas_object_show(button); + elm_object_focus_set(button, EINA_TRUE); button = elm_button_add(m_mm_layout); elm_object_style_set(button, "hidden_button"); @@ -499,12 +502,15 @@ void MoreMenuUI::_thumbSelected(void* data, Evas_Object*, void*) BROWSER_LOGD("type: %d", itemData->item); switch (itemData->item) { case HISTORY: + itemData->moreMenuUI->setFocus(EINA_FALSE); itemData->moreMenuUI->historyUIClicked(std::string()); break; case SETTINGS: + itemData->moreMenuUI->setFocus(EINA_FALSE); itemData->moreMenuUI->settingsClicked(std::string()); break; case BOOKMARK_MANAGER: + itemData->moreMenuUI->setFocus(EINA_FALSE); itemData->moreMenuUI->bookmarkManagerClicked(std::string()); break; #ifdef READER_MODE_ENABLED @@ -550,6 +556,7 @@ void MoreMenuUI::clearItems() hide(); BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); elm_gengrid_clear(m_gengrid); + elm_object_tree_focus_allow_set(getContent(), EINA_FALSE); m_map_menu_views.clear(); evas_object_del(m_current_tab_bar); elm_theme_extension_del(NULL, m_edjFilePath.c_str()); @@ -563,5 +570,13 @@ void MoreMenuUI::_exitClicked() elm_exit(); } +void MoreMenuUI::setFocus(Eina_Bool focusable) +{ + BROWSER_LOGD("[%s:%d]", __PRETTY_FUNCTION__, __LINE__); + elm_object_tree_focus_allow_set(getContent(), focusable); + if (focusable == EINA_TRUE) + elm_object_focus_set(elm_object_part_content_get(m_current_tab_bar, "close_click"), focusable); +} + } } diff --git a/services/MoreMenuUI/MoreMenuUI.h b/services/MoreMenuUI/MoreMenuUI.h index 4b1dac1..8f1d803 100644 --- a/services/MoreMenuUI/MoreMenuUI.h +++ b/services/MoreMenuUI/MoreMenuUI.h @@ -81,6 +81,7 @@ public: void setURL(const std::string& url); void changeBookmarkStatus(bool data); void createToastPopup(const char* text); + void setFocus(Eina_Bool focusable); boost::signals2::signal addToBookmarkClicked; //TODO: remove redundant argument from this signal. diff --git a/services/SettingsUI/SettingsUI.cpp b/services/SettingsUI/SettingsUI.cpp index c51b6ff..7d88733 100644 --- a/services/SettingsUI/SettingsUI.cpp +++ b/services/SettingsUI/SettingsUI.cpp @@ -77,6 +77,7 @@ void SettingsUI::showUI() evas_object_show(m_items_layout); evas_object_show(m_settings_layout); evas_object_show(m_actionBar); + elm_object_focus_set(elm_object_part_content_get(m_actionBar, "close_click"), EINA_TRUE); } void SettingsUI::hideUI() diff --git a/services/SimpleUI/SimpleUI.cpp b/services/SimpleUI/SimpleUI.cpp index a2a0145..5528ab8 100644 --- a/services/SimpleUI/SimpleUI.cpp +++ b/services/SimpleUI/SimpleUI.cpp @@ -458,7 +458,7 @@ void SimpleUI::onOpenURLInNewTab(std::shared_ptrgetUrl(); if(m_historyUI) { // TODO: remove this section when naviframes will be available m_historyUI->clearItems(); - closeHistoryUI(std::string()); + closeHistoryUI(); } if(m_moreMenuUI) { // TODO: remove this section when naviframes will be available @@ -792,20 +792,21 @@ void SimpleUI::showHistoryUI(const std::string& str) (tizen_browser::core::ServiceManager::getInstance().getService("org.tizen.browser.historyui")); M_ASSERT(m_historyUI); m_historyUI->clearHistoryClicked.connect(boost::bind(&SimpleUI::onClearHistoryClicked, this,_1)); - m_historyUI->closeHistoryUIClicked.connect(boost::bind(&SimpleUI::closeHistoryUI, this,_1)); + m_historyUI->closeHistoryUIClicked.connect(boost::bind(&SimpleUI::closeHistoryUI, this)); m_historyUI->historyItemClicked.connect(boost::bind(&SimpleUI::onOpenURLInNewTab, this, _1, true)); // desktop mode as default m_historyUI->addHistoryItems(getHistory()); m_historyUI->show(m_window.get()); } } -void SimpleUI::closeHistoryUI(const std::string& str) +void SimpleUI::closeHistoryUI() { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); m_historyUI->clearHistoryClicked.disconnect(boost::bind(&SimpleUI::onClearHistoryClicked, this,_1)); - m_historyUI->closeHistoryUIClicked.disconnect(boost::bind(&SimpleUI::closeHistoryUI, this,_1)); + m_historyUI->closeHistoryUIClicked.disconnect(boost::bind(&SimpleUI::closeHistoryUI, this)); m_historyUI->historyItemClicked.disconnect(boost::bind(&SimpleUI::onOpenURLInNewTab, this, _1, true)); // desktop mode as default m_historyUI.reset(); + m_moreMenuUI->setFocus(EINA_TRUE); } void SimpleUI::showSettingsUI(const std::string& str) @@ -834,6 +835,7 @@ void SimpleUI::closeSettingsUI(const std::string& str) { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); m_settingsUI.reset(); + m_moreMenuUI->setFocus(EINA_TRUE); } void SimpleUI::showMoreMenu() @@ -940,6 +942,7 @@ void SimpleUI::closeBookmarkManagerMenu(const std::string& str) if(m_mainUI) { m_mainUI->showBookmarks(getBookmarks()); } + m_moreMenuUI->setFocus(EINA_TRUE); } void SimpleUI::hideHistory() diff --git a/services/SimpleUI/SimpleUI.h b/services/SimpleUI/SimpleUI.h index 897d66d..a889e3f 100644 --- a/services/SimpleUI/SimpleUI.h +++ b/services/SimpleUI/SimpleUI.h @@ -209,7 +209,7 @@ private: void switchToMobileMode(); void switchToDesktopMode(); void showHistoryUI(const std::string& str); - void closeHistoryUI(const std::string&); + void closeHistoryUI(); void showURIBar(); void hideURIBar(); void hideSettingsMenu(); -- 2.7.4 From de03fb181a63e64dfe4ea9acad94727164974455 Mon Sep 17 00:00:00 2001 From: Maciej Skrzypkowski Date: Wed, 23 Sep 2015 16:44:14 +0200 Subject: [PATCH 05/16] D-pad navigation for Quic access view [Issue] https://bugs.tizen.org/jira/browse/TT-183 [Problem] There was no support for D-pad navigation in Quick Access. [Cause] Some elements seemed not to be allowed to be focused. [Solution] Added buttons which enables to focus tiles in Quick Access. [Verify] Launch browser > Open few web pages > open Quick Access view, try to navigate using D-pad. Change-Id: Ie0e5b661a8502d551539e9d89e59162d554eb044 Signed-off-by: Maciej Skrzypkowski --- services/MainUI/MainUI.cpp | 18 ++++++++++-------- services/MainUI/MainUI.h | 2 +- services/MainUI/edc/MainUI.edc | 20 ++++++++++++++++++-- services/SimpleUI/SimpleUI.cpp | 10 ++++++++++ services/WebPageUI/WebPageUI.cpp | 20 +++++++++++++++++++- services/WebPageUI/WebPageUI.h | 4 ++-- 6 files changed, 60 insertions(+), 14 deletions(-) diff --git a/services/MainUI/MainUI.cpp b/services/MainUI/MainUI.cpp index 11df7f9..d2248fd 100644 --- a/services/MainUI/MainUI.cpp +++ b/services/MainUI/MainUI.cpp @@ -101,6 +101,9 @@ void MainUI::showMostVisited(std::shared_ptr< services::HistoryItemVector > vec) { addHistoryItems(vec); showHistory(); + // update focus chain + elm_object_focus_custom_chain_append(m_parent, m_mostVisitedButton, NULL); + elm_object_focus_custom_chain_append(m_parent, m_bookmarksButton, NULL); } void MainUI::showBookmarks(std::vector< std::shared_ptr< tizen_browser::services::BookmarkItem > > vec) @@ -208,7 +211,6 @@ Evas_Object* MainUI::createTopButtons (Evas_Object *parent) evas_object_smart_callback_add(mostVisitedButton, "clicked", _mostVisited_clicked, this); evas_object_show(mostVisitedButton); elm_layout_content_set(layoutTop, "mostvisited_click", mostVisitedButton); - m_mostVisitedButton = mostVisitedButton; Evas_Object *bookmarksButton = elm_button_add(layoutTop); @@ -216,7 +218,6 @@ Evas_Object* MainUI::createTopButtons (Evas_Object *parent) evas_object_smart_callback_add(bookmarksButton, "clicked", _bookmark_clicked, this); evas_object_show(bookmarksButton); elm_layout_content_set(layoutTop, "bookmark_click", bookmarksButton); - m_bookmarksButton = bookmarksButton; return layoutTop; @@ -274,11 +275,11 @@ void MainUI::addHistoryItem(std::shared_ptr hi) itemData->item = hi; itemData->mainUI = std::shared_ptr(this); - Evas_Object* tile = elm_layout_add(m_mostVisitedView); + Evas_Object* tile = elm_button_add(m_mostVisitedView); if (tileNumber == BIG_TILE_INDEX) - elm_layout_file_set(tile, edjFilePath.c_str(), "big_tile"); + elm_object_style_set(tile, "big_tile"); else - elm_layout_file_set(tile, edjFilePath.c_str(), "small_tile"); + elm_object_style_set(tile, "small_tile"); evas_object_size_hint_weight_set(tile, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set (tile, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_show(tile); @@ -289,7 +290,8 @@ void MainUI::addHistoryItem(std::shared_ptr hi) elm_layout_text_set(tile, "page_url", hi->getUrl().c_str()); Evas_Object * thumb = tizen_browser::tools::EflTools::getEvasImage(hi->getThumbnail(), m_parent); elm_object_part_content_set(tile, "elm.thumbnail", thumb); - edje_object_signal_callback_add(elm_layout_edje_get(tile), "mouse,clicked,1", "over", _thumbClicked, itemData); + evas_object_smart_callback_add(tile, "clicked", _thumbClicked, itemData); + elm_object_focus_custom_chain_append(m_parent, tile, NULL); m_historyItems.push_back(hi); } @@ -374,7 +376,7 @@ void MainUI::_thumbBookmarkClicked(void * data, Evas_Object * , void *) itemData->mainUI->openURLInNewTab(itemData->item, itemData->mainUI->isDesktopMode()); } -void MainUI::_thumbClicked(void* data, Evas_Object *, const char *, const char *) +void MainUI::_thumbClicked(void* data, Evas_Object*, void*) { BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__); HistoryItemData * itemData = reinterpret_cast(data); @@ -386,7 +388,7 @@ void MainUI::clearHistoryGenlist() BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__); for (auto it = m_tiles.begin(); it != m_tiles.end(); ++it) { - edje_object_signal_callback_del(elm_layout_edje_get(*it), "mouse,clicked,1", "over", _thumbClicked); + evas_object_smart_callback_del(*it, "clicked", _thumbClicked); evas_object_del(*it); } diff --git a/services/MainUI/MainUI.h b/services/MainUI/MainUI.h index 0b5b52b..30e9aa6 100644 --- a/services/MainUI/MainUI.h +++ b/services/MainUI/MainUI.h @@ -80,7 +80,7 @@ private: static char* _grid_bookmark_text_get(void *data, Evas_Object *obj, const char *part); static Evas_Object * _grid_bookmark_content_get(void *data, Evas_Object *obj, const char *part); static void _thumbBookmarkClicked(void * data, Evas_Object * obj, void * event_info); - static void _thumbClicked(void *data, Evas_Object *obj, const char *emission, const char *source); + static void _thumbClicked(void * data, Evas_Object * obj, void * event_info); void setEmptyView(bool empty); void showNoHistoryLabel(); diff --git a/services/MainUI/edc/MainUI.edc b/services/MainUI/edc/MainUI.edc index 8dfe2be..55d5a22 100644 --- a/services/MainUI/edc/MainUI.edc +++ b/services/MainUI/edc/MainUI.edc @@ -456,7 +456,7 @@ group { name: "mv_bookmarks"; } } -group { name: "big_tile"; +group { name: "elm/button/base/big_tile"; data.item: "texts" "page_title page_url"; data.item: "contents" "elm.thumbnail"; min: 600 614; @@ -670,10 +670,18 @@ group { name: "big_tile"; target: "border_left"; target: "border_right"; } + program { + name: "mouse_click"; + signal: "mouse,clicked,1"; + source: "over"; + script { + emit("elm,action,click", ""); + } + } } } -group { name: "small_tile"; +group { name: "elm/button/base/small_tile"; data.item: "texts" "page_title page_url"; data.item: "contents" "elm.thumbnail"; images { @@ -917,6 +925,14 @@ group { name: "small_tile"; target: "border_left"; target: "border_right"; } + program { + name: "mouse_click"; + signal: "mouse,clicked,1"; + source: "over"; + script { + emit("elm,action,click", ""); + } + } } } diff --git a/services/SimpleUI/SimpleUI.cpp b/services/SimpleUI/SimpleUI.cpp index 5528ab8..c475b47 100644 --- a/services/SimpleUI/SimpleUI.cpp +++ b/services/SimpleUI/SimpleUI.cpp @@ -886,6 +886,16 @@ void SimpleUI::closeMoreMenu(const std::string& str) m_moreMenuUI->isBookmark.disconnect(boost::bind(&SimpleUI::checkBookmark, this)); m_moreMenuUI->deleteBookmark.disconnect(boost::bind(&SimpleUI::deleteBookmark, this)); m_moreMenuUI.reset(); + + // TODO: temporary showing proper view untin VieManger will be available + if (m_webPageUI->isHomePageActive()) { + m_webPageUI->switchViewToQuickAccess(m_mainUI->getContent()); + m_webEngine->disconnectCurrentWebViewSignals(); + m_mainUI->showMostVisited(getMostVisitedItems()); + } + else { + switchViewToWebPage(); + } } void SimpleUI::switchToMobileMode() diff --git a/services/WebPageUI/WebPageUI.cpp b/services/WebPageUI/WebPageUI.cpp index 0982bf3..8adfcbe 100644 --- a/services/WebPageUI/WebPageUI.cpp +++ b/services/WebPageUI/WebPageUI.cpp @@ -68,6 +68,7 @@ void WebPageUI::showUI() void WebPageUI::hideUI() { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + elm_object_focus_custom_chain_unset(m_mainLayout); } void WebPageUI::loadStarted() @@ -108,6 +109,13 @@ void WebPageUI::setMainContent(Evas_Object* content) hideWebView(); elm_object_part_content_set(m_mainLayout, "web_view", content); evas_object_show(content); + + // set custom focus chain + elm_object_focus_custom_chain_unset(m_mainLayout); + elm_object_focus_custom_chain_append(m_mainLayout, m_rightButtonBar->getContent(), NULL); + if (!isHomePageActive()) + elm_object_focus_custom_chain_append(m_mainLayout, m_leftButtonBar->getContent(), NULL); + elm_object_focus_custom_chain_append(m_mainLayout, m_URIEntry->getContent(), NULL); } void WebPageUI::switchViewToErrorPage() @@ -126,6 +134,7 @@ void WebPageUI::switchViewToWebPage(Evas_Object* content, const std::string uri) setMainContent(content); evas_object_show(m_leftButtonBar->getContent()); updateURIBar(uri); + elm_object_focus_custom_chain_append(m_mainLayout, content, NULL); } void WebPageUI::switchViewToQuickAccess(Evas_Object* content) @@ -301,7 +310,16 @@ std::string WebPageUI::edjePath(const std::string& file) return std::string(EDJE_DIR) + file; } - +void WebPageUI::showTabUIConnect() +{ + hideUI(); + showTabUI(); +} +void WebPageUI::showMoreMenuConnect() +{ + hideUI(); + showMoreMenu(); +} } // namespace tizen_browser } // namespace base_ui \ No newline at end of file diff --git a/services/WebPageUI/WebPageUI.h b/services/WebPageUI/WebPageUI.h index e2010c8..2a71239 100644 --- a/services/WebPageUI/WebPageUI.h +++ b/services/WebPageUI/WebPageUI.h @@ -80,8 +80,8 @@ private: void forwardPageConnect() { forwardPage(); } void stopLoadingPageConnect() { stopLoadingPage(); } void reloadPageConnect() { reloadPage(); } - void showTabUIConnect() { showTabUI(); } - void showMoreMenuConnect() { showMoreMenu(); } + void showTabUIConnect(); + void showMoreMenuConnect(); Evas_Object* m_parent; Evas_Object* m_mainLayout; -- 2.7.4 From b058e83751f199fa0a44ce702c71ce54ad42d6cc Mon Sep 17 00:00:00 2001 From: "t.dakowicz" Date: Tue, 22 Sep 2015 14:15:06 +0200 Subject: [PATCH 06/16] TT-168 Proper display of current site info [Issue#] https://bugs.tizen.org/jira/browse/TT-168 [Problem] Current site info was wrong for Home Page (Quick Access view) [Cause] Home Page status was not checked [Solution] Added method for that case and added posibillity of disabling the 'add to bookmark' button when needed [Verify] Check if adding blank page doesn't work Change-Id: Iaf287a26a238732029897f867a34a8f1f810c813 --- services/MoreMenuUI/MoreMenuUI.cpp | 31 ++++++++++++++++++++++--------- services/MoreMenuUI/MoreMenuUI.h | 4 ++++ services/SimpleUI/SimpleUI.cpp | 13 ++++++++++--- 3 files changed, 36 insertions(+), 12 deletions(-) diff --git a/services/MoreMenuUI/MoreMenuUI.cpp b/services/MoreMenuUI/MoreMenuUI.cpp index e472d21..45d3b0d 100644 --- a/services/MoreMenuUI/MoreMenuUI.cpp +++ b/services/MoreMenuUI/MoreMenuUI.cpp @@ -171,13 +171,13 @@ void MoreMenuUI::showCurrentTab() evas_object_show(button); elm_object_focus_set(button, EINA_TRUE); - button = elm_button_add(m_mm_layout); - elm_object_style_set(button, "hidden_button"); - evas_object_smart_callback_add(button, "clicked", _star_clicked, this); + m_bookmarkButton = elm_button_add(m_mm_layout); + elm_object_style_set(m_bookmarkButton, "hidden_button"); + evas_object_smart_callback_add(m_bookmarkButton, "clicked", _star_clicked, this); m_bookmarkIcon = elm_icon_add(m_mm_layout); elm_object_part_content_set(m_current_tab_bar, "bookmark_ico", m_bookmarkIcon); - elm_object_part_content_set(m_current_tab_bar, "star_click", button); + elm_object_part_content_set(m_current_tab_bar, "star_click", m_bookmarkButton); } void MoreMenuUI::setFavIcon(std::shared_ptr favicon) @@ -216,10 +216,7 @@ void MoreMenuUI::setDocIcon() void MoreMenuUI::setWebTitle(const std::string& title) { BROWSER_LOGD("[%s:%d] %s", __PRETTY_FUNCTION__, __LINE__, title.c_str()); - if(!title.empty()) - elm_object_part_text_set(m_current_tab_bar, "webpage_title", title.c_str()); - else - elm_object_part_text_set(m_current_tab_bar, "webpage_title", "New Tab"); + elm_object_part_text_set(m_current_tab_bar, "webpage_title", title.c_str()); } void MoreMenuUI::setURL(const std::string& url) @@ -233,19 +230,29 @@ void MoreMenuUI::setURL(const std::string& url) if(true == isBookmark()) { m_isBookmark = EINA_TRUE; changeBookmarkStatus(true); + enableAddToBookmarkButton(true); } else { m_isBookmark = EINA_FALSE; changeBookmarkStatus(false); + enableAddToBookmarkButton(true); } } else { - elm_object_part_text_set(m_current_tab_bar, "webpage_url", ""); m_isBookmark = EINA_FALSE; + elm_object_part_text_set(m_current_tab_bar, "webpage_url", ""); + elm_object_part_text_set(m_current_tab_bar, "webpage_title", "No Content"); changeBookmarkStatus(false); + enableAddToBookmarkButton(false); } } +void MoreMenuUI::setHomePageInfo() +{ + setDocIcon(); + setURL(""); +} + void MoreMenuUI::changeBookmarkStatus(bool data) { if(data) { @@ -260,6 +267,12 @@ void MoreMenuUI::changeBookmarkStatus(bool data) } } +void MoreMenuUI::enableAddToBookmarkButton(bool data) +{ + if(m_bookmarkButton) + elm_object_disabled_set(m_bookmarkButton, data ? EINA_FALSE : EINA_TRUE); +} + void MoreMenuUI::createToastPopup(const char* text) { m_toastPopup = elm_popup_add(m_mm_layout); diff --git a/services/MoreMenuUI/MoreMenuUI.h b/services/MoreMenuUI/MoreMenuUI.h index 8f1d803..c793b18 100644 --- a/services/MoreMenuUI/MoreMenuUI.h +++ b/services/MoreMenuUI/MoreMenuUI.h @@ -79,7 +79,10 @@ public: void setFavIcon(std::shared_ptr favicon); void setWebTitle(const std::string& title); void setURL(const std::string& url); + void setHomePageInfo(); + void changeBookmarkStatus(bool data); + void enableAddToBookmarkButton(bool data); void createToastPopup(const char* text); void setFocus(Eina_Bool focusable); @@ -119,6 +122,7 @@ private: Evas_Object *m_toastPopup; Evas_Object *m_icon; Evas_Object *m_bookmarkIcon; + Evas_Object *m_bookmarkButton; Elm_Gengrid_Item_Class * m_item_class; std::map m_map_menu_views; std::string m_edjFilePath; diff --git a/services/SimpleUI/SimpleUI.cpp b/services/SimpleUI/SimpleUI.cpp index c475b47..310cf54 100644 --- a/services/SimpleUI/SimpleUI.cpp +++ b/services/SimpleUI/SimpleUI.cpp @@ -863,9 +863,16 @@ void SimpleUI::showMoreMenu() m_moreMenuUI->show(m_window.get(), desktopMode); m_moreMenuUI->showCurrentTab(); - m_moreMenuUI->setFavIcon(m_webEngine->getFavicon()); - m_moreMenuUI->setWebTitle(m_webEngine->getTitle()); - m_moreMenuUI->setURL(m_webEngine->getURI()); + + if(!m_webPageUI->isHomePageActive()) { + m_moreMenuUI->setFavIcon(m_webEngine->getFavicon()); + m_moreMenuUI->setWebTitle(m_webEngine->getTitle()); + m_moreMenuUI->setURL(m_webEngine->getURI()); + } + else { + m_moreMenuUI->setHomePageInfo(); + } + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); } } -- 2.7.4 From c171bea428e1c112d1d1a6d2fca4c6b33a645e07 Mon Sep 17 00:00:00 2001 From: Dariusz Frankiewicz Date: Tue, 22 Sep 2015 11:14:40 +0200 Subject: [PATCH 07/16] Reneme More Menu tooltip label [Issue] https://bugs.tizen.org/jira/browse/TT-172 [Problem] Wrong tooltip label. [Solution] Rename label. [Verify] Open browser, point More Menu button and check if label is "More Menu" instead of "Settings". Change-Id: I4694d62669952fae28533c8ae3540f6a7828fe18 Signed-off-by: Dariusz Frankiewicz --- services/WebPageUI/WebPageUI.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/services/WebPageUI/WebPageUI.cpp b/services/WebPageUI/WebPageUI.cpp index 8adfcbe..c72e5a5 100644 --- a/services/WebPageUI/WebPageUI.cpp +++ b/services/WebPageUI/WebPageUI.cpp @@ -242,8 +242,8 @@ void WebPageUI::createActions() m_tab->setToolTip("Tab page"); m_tab->setIcon("browser/toolbar_tab"); - m_showMoreMenu = sharedAction(new Action("Settings")); - m_showMoreMenu->setToolTip("Settings"); + m_showMoreMenu = sharedAction(new Action("More_Menu")); + m_showMoreMenu->setToolTip("More Menu"); m_showMoreMenu->setIcon("browser/toolbar_setting"); } -- 2.7.4 From 38a5bb87fd416edef8c2cdb4aa7abb60f0995034 Mon Sep 17 00:00:00 2001 From: Dariusz Frankiewicz Date: Tue, 22 Sep 2015 17:07:19 +0200 Subject: [PATCH 08/16] Rename some labels in browser. [Issue] https://bugs.tizen.org/jira/browse/TT-179 [Problem] Some labels are incorrect according to UI guidelines. [Verify] Check if reported labels are consistent with UI guidelines. Change-Id: I4bb700e9003477611a9999aff415486a3236d2a2 Signed-off-by: Dariusz Frankiewicz --- services/MoreMenuUI/MoreMenuUI.cpp | 16 +++---- services/MoreMenuUI/edc/MoreMenu.edc | 2 +- services/SettingsUI/edc/Settings.edc | 82 ++++++++++++++++++------------------ services/WebPageUI/WebPageUI.cpp | 2 +- 4 files changed, 51 insertions(+), 51 deletions(-) diff --git a/services/MoreMenuUI/MoreMenuUI.cpp b/services/MoreMenuUI/MoreMenuUI.cpp index 45d3b0d..af30684 100644 --- a/services/MoreMenuUI/MoreMenuUI.cpp +++ b/services/MoreMenuUI/MoreMenuUI.cpp @@ -364,27 +364,27 @@ char* MoreMenuUI::_grid_text_get(void* data, Evas_Object*, const char* part) break; #endif case BOOKMARK_MANAGER: - item_name = "Bookmark manager"; + item_name = "Bookmark Manager"; break; case HISTORY: - item_name = "History"; + item_name = "History Manager"; break; case SCREEN_ZOOM: - item_name = "Screen zoom"; + item_name = "Screen Zoom"; break; #ifdef START_MINIBROWSER_ENABLED case START_MINIBROWSER: - item_name = "Start minibrowser"; + item_name = "Start Mini Browser"; break; #endif case FOCUS_MODE: - item_name = "Focus mode"; + item_name = "Focus Mode"; break; case VIEW_MOBILE_WEB: - item_name = "View mobile web"; + item_name = "View Mobile Web"; break; case VIEW_DESKTOP_WEB: - item_name = "View desktop web"; + item_name = "View Desktop Web"; break; case SHARE: item_name = "Share"; @@ -393,7 +393,7 @@ char* MoreMenuUI::_grid_text_get(void* data, Evas_Object*, const char* part) item_name = "Settings"; break; case EXIT_BROWSER: - item_name = "Exit browser"; + item_name = "Exit Browser"; break; default: item_name = ""; diff --git a/services/MoreMenuUI/edc/MoreMenu.edc b/services/MoreMenuUI/edc/MoreMenu.edc index 5347fd3..4863286 100644 --- a/services/MoreMenuUI/edc/MoreMenu.edc +++ b/services/MoreMenuUI/edc/MoreMenu.edc @@ -209,7 +209,7 @@ RESOURCE_IMAGE_LOSSY("ico_url.png") rel2 { relative: 1.0 1.0; to: "action_bar_bg";} color_class: titleTextColor; text { - text: "More menu"; + text: "More Menu"; font: "Sans"; size: 58; align: 0.5 0.5; diff --git a/services/SettingsUI/edc/Settings.edc b/services/SettingsUI/edc/Settings.edc index e22ae4c..0265aa4 100644 --- a/services/SettingsUI/edc/Settings.edc +++ b/services/SettingsUI/edc/Settings.edc @@ -186,7 +186,11 @@ group { name: "settings_items"; image: "ico_bg_round_shape_37x37.png" COMP; } styles { - style { name: "sub_title_text"; + style { name: "title_text"; + base: "font=Sans:style=Bold font_size="30" color=#808080 color_class=T024D text_class=T024D wrap=none"; + STYLE_TAGS + } + style { name: "sub_title_text"; base: "font=Sans:style=Regular font_size="28" color=#808080 color_class=T024D text_class=T024D wrap=mixed"; STYLE_TAGS } @@ -209,8 +213,8 @@ group { name: "settings_items"; part { name: "del_web_browsing_text_bg"; type: RECT; description { state: "default" 0.0; - min: 420 152; - max: 420 152; + min: 460 152; + max: 460 152; align: 0.0 0.0; color: 231 231 231 255; rel1 { @@ -223,24 +227,23 @@ group { name: "settings_items"; } } part { name: "del_web_browsing_text"; - type: TEXT; + type: TEXTBLOCK; description { state: "default" 0.0; - min: 420 36; - max: 420 36; + min: 460 46; + max: 460 46; align: 0.0 0.0; rel1 { to: "del_web_browsing_text_bg"; relative: 0.0 0.0; - offset: 0 0; + offset: -40 0; } rel2 { relative: 1.0 1.0; } color: 51 51 51 255; text { - text: "Delete web browsing data"; - font: "Sans"; - size: 32; + text: "Delete Web Browsing Data"; + style: "title_text"; align: 0 0.5; } } @@ -248,13 +251,13 @@ group { name: "settings_items"; part { name: "del_web_browsing_sub_text"; type: TEXTBLOCK; description { state: "default" 0.0; - min: 420 116; - max: 420 116; + min: 440 116; + max: 440 116; align: 0.0 0.0; rel1 { to: "del_web_browsing_text_bg"; relative: 0.0 0.0; - offset: 0 42; + offset: -40 62; } rel2 { relative: 1.0 1.0; @@ -280,7 +283,7 @@ group { name: "settings_items"; min: 348 64; max: 348 64; - rel1 { relative: 0.0 1.0; to: "del_web_browsing_text_bg"; } + rel1 { relative: 0.0 1.0; to: "del_web_browsing_text_bg"; offset: 0 42;} rel2 { relative: 1.0 1.0; to: "del_web_browsing_text_bg"; } color_class: focusBgColor; } @@ -308,7 +311,7 @@ group { name: "settings_items"; rel2 { relative: 1.0 1.0;to: "del_selected_data_button";} color: 255 255 255 255; text { - text: "Delete selected data"; + text: "Delete Selected Data"; font: "Sans"; size: 24; align: 0.5 0.5; @@ -468,10 +471,10 @@ group { name: "settings_items"; } } part { name: "reset_mv_text"; - type: TEXT; + type: TEXTBLOCK; description { state: "default" 0.0; - min: 420 36; - max: 420 36; + min: 420 46; + max: 420 46; align: 0.0 0.0; rel1 { to: "reset_mv_text_bg"; @@ -483,9 +486,8 @@ group { name: "settings_items"; } color: 51 51 51 255; text { - text: "Reset most visited site"; - font: "Sans"; - size: 32; + text: "Reset Most Visited Site"; + style: "title_text"; align: 0 0.5; } } @@ -499,7 +501,7 @@ group { name: "settings_items"; rel1 { to: "reset_mv_text_bg"; relative: 0.0 0.0; - offset: 0 42; + offset: 0 62; } rel2 { relative: 1.0 1.0; @@ -525,7 +527,7 @@ group { name: "settings_items"; min: 348 64; max: 348 64; - rel1 { relative: 0.0 1.0; to: "reset_mv_text_bg"; } + rel1 { relative: 0.0 1.0; to: "reset_mv_text_bg"; offset: 0 42;} rel2 { relative: 1.0 1.0; to: "reset_mv_text_bg"; } color_class: focusBgColor; } @@ -553,7 +555,7 @@ group { name: "settings_items"; rel2 { relative: 1.0 1.0;to: "reset_mv_button";} color: 255 255 255 255; text { - text: "Reset most visited site"; + text: "Reset Most Visited Site"; font: "Sans"; size: 24; align: 0.5 0.5; @@ -612,10 +614,10 @@ group { name: "settings_items"; } } part { name: "webcontents_sharing_text"; - type: TEXT; + type: TEXTBLOCK; description { state: "default" 0.0; - min: 942 32; - max: 942 32; + min: 942 46; + max: 942 46; align: 0.0 0.0; rel1 { to: "webcontents_sharing_text_bg"; @@ -628,9 +630,8 @@ group { name: "settings_items"; } color: 51 51 51 255; text { - text: "Web contents Sharing"; - font: "Sans"; - size: 32; + text: "Web Contents Sharing"; + style: "title_text"; align: 0 0.5; } } @@ -644,7 +645,7 @@ group { name: "settings_items"; rel1 { to: "webcontents_sharing_text_bg"; relative: 0.0 0.0; - offset: 0 42; + offset: 0 62; } rel2 { relative: 1.0 1.0; @@ -664,11 +665,11 @@ group { name: "settings_items"; description { state: "default" 0.0; visible: 1; fixed: 1 1; - rel1 { relative: 0.0 1.0;to: "webcontents_sharing_text_bg"; offset: 0 10;} + rel1 { relative: 0.0 1.0;to: "webcontents_sharing_text_bg"; offset: 0 62;} rel2 { relative: 1.0 1.0;to: "webcontents_sharing_text_bg";} color: 51 51 51 255; text { - text: "Sharing request Bookmark Sync Tab Sync"; + text: "Sharing Request Bookmark Sync Tab Sync"; font: "Sans"; size: 32; align: 0 0.5; @@ -932,10 +933,10 @@ group { name: "settings_items"; } } part { name: "reset_browser_text"; - type: TEXT; + type: TEXTBLOCK; description { state: "default" 0.0; - min: 420 36; - max: 420 36; + min: 420 46; + max: 420 46; align: 0.0 0.0; rel1 { to: "reset_browser_text_bg"; @@ -949,8 +950,7 @@ group { name: "settings_items"; color: 51 51 51 255; text { text: "Reset Browser"; - font: "Sans"; - size: 32; + style: "title_text"; align: 0 0.5; } } @@ -964,7 +964,7 @@ group { name: "settings_items"; rel1 { to: "reset_browser_text_bg"; relative: 0.0 0.0; - offset: 0 42; + offset: 0 62; } rel2 { relative: 1.0 1.0; @@ -990,7 +990,7 @@ group { name: "settings_items"; min: 348 64; max: 348 64; - rel1 { relative: 0.0 1.0; to: "reset_browser_text_bg"; } + rel1 { relative: 0.0 1.0; to: "reset_browser_text_bg"; offset: 0 42;} rel2 { relative: 1.0 1.0; to: "reset_browser_text_bg"; } color_class: focusBgColor; } @@ -1018,7 +1018,7 @@ group { name: "settings_items"; rel2 { relative: 1.0 1.0;to: "reset_browser_button";} color: 255 255 255 255; text { - text: "Reset browser"; + text: "Reset Browser"; font: "Sans"; size: 24; align: 0.5 0.5; diff --git a/services/WebPageUI/WebPageUI.cpp b/services/WebPageUI/WebPageUI.cpp index c72e5a5..f80a2e6 100644 --- a/services/WebPageUI/WebPageUI.cpp +++ b/services/WebPageUI/WebPageUI.cpp @@ -239,7 +239,7 @@ void WebPageUI::createActions() m_reload->setToolTip("Reload"); m_reload->setIcon("browser/toolbar_reload"); m_tab = sharedAction(new Action("Tabs")); - m_tab->setToolTip("Tab page"); + m_tab->setToolTip("Tab Manager"); m_tab->setIcon("browser/toolbar_tab"); m_showMoreMenu = sharedAction(new Action("More_Menu")); -- 2.7.4 From a6c7206a77bdd417fd3ebd22ff07b1433b4e35db Mon Sep 17 00:00:00 2001 From: Dariusz Frankiewicz Date: Fri, 25 Sep 2015 14:53:50 +0200 Subject: [PATCH 09/16] Fix bad progress bar position. [Issue] N/A [Problem] Progress bar is invisible while page is loading. [Cause] Bad posiotion. [Solution] Move progress bar down. [Verify] Load some page and check if progress bar is visible. Change-Id: I0c628d60c46ae855dc517150bf235331846f7ed0 Signed-off-by: Dariusz Frankiewicz --- services/WebPageUI/edc/WebPageUI.edc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/WebPageUI/edc/WebPageUI.edc b/services/WebPageUI/edc/WebPageUI.edc index a2de43b..13983f4 100644 --- a/services/WebPageUI/edc/WebPageUI.edc +++ b/services/WebPageUI/edc/WebPageUI.edc @@ -180,7 +180,7 @@ collections { max: 1920 2; rel1 { relative: 0.0 0.0; - offset: -12 -10; + offset: 0 1; to: "web_view"; } rel2 { relative: 1.0 1.0; } -- 2.7.4 From e3896da65dab5e1d4002fea6da43d30c9c8c94de Mon Sep 17 00:00:00 2001 From: Maciej Skrzypkowski Date: Tue, 29 Sep 2015 10:21:22 +0200 Subject: [PATCH 10/16] Introduced new window management. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Continuation of patch proposed by Marcin Łapiński. [Issue] https://bugs.tizen.org/jira/browse/TT-157 [Problem] There was no proper views management [Cause] N/A [Solution] New class ViewManager for controling switching between views. [Verify] Launch browser > switch between different views (page view, more menu, settings, etc.), check if switching is correct check if there are no relevant warnings in logs. Change-Id: I8827964b6539ecb7a4c02edd3d296b72a149a9e7 Signed-off-by: Maciej Skrzypkowski --- services/BookmarkManagerUI/BookmarkManagerUI.cpp | 61 +-- services/BookmarkManagerUI/BookmarkManagerUI.h | 10 +- .../BookmarkManagerUI/edc/BookmarkManagerUI.edc | 2 +- services/HistoryUI/HistoryUI.cpp | 102 ++--- services/HistoryUI/HistoryUI.h | 6 +- services/MainUI/MainUI.cpp | 68 +-- services/MainUI/MainUI.h | 11 +- services/MoreMenuUI/MoreMenuUI.cpp | 133 +++--- services/MoreMenuUI/MoreMenuUI.h | 22 +- services/SettingsUI/SettingsUI.cpp | 28 +- services/SettingsUI/SettingsUI.h | 10 +- services/SimpleUI/CMakeLists.txt | 1 + services/SimpleUI/SimpleUI.cpp | 463 +++++++++------------ services/SimpleUI/SimpleUI.h | 41 +- services/SimpleUI/ViewManager.cpp | 75 ++-- services/SimpleUI/ViewManager.h | 12 +- services/SimpleUI/edc/ViewManager.edc | 44 ++ services/TabUI/TabUI.cpp | 85 ++-- services/TabUI/TabUI.h | 13 +- services/WebPageUI/URIEntry.h | 3 +- services/WebPageUI/WebPageUI.cpp | 55 ++- services/WebPageUI/WebPageUI.h | 3 + 22 files changed, 566 insertions(+), 682 deletions(-) create mode 100644 services/SimpleUI/edc/ViewManager.edc diff --git a/services/BookmarkManagerUI/BookmarkManagerUI.cpp b/services/BookmarkManagerUI/BookmarkManagerUI.cpp index ae5e9fa..213cca2 100644 --- a/services/BookmarkManagerUI/BookmarkManagerUI.cpp +++ b/services/BookmarkManagerUI/BookmarkManagerUI.cpp @@ -76,13 +76,6 @@ void BookmarkManagerUI::createGengridItemClasses() m_bookmark_item_class->func.del = nullptr; } -void BookmarkManagerUI::show(Evas_Object* parent) -{ - init(parent); - b_mm_layout=createBookmarksLayout(m_parent); - showUI(); -} - void BookmarkManagerUI::init(Evas_Object* parent) { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); @@ -93,18 +86,13 @@ void BookmarkManagerUI::init(Evas_Object* parent) void BookmarkManagerUI::showUI() { evas_object_show(b_mm_layout); - //regenerate gengrid and genlist - createGenGrid(); - showTopContent(); } void BookmarkManagerUI::hideUI() { - evas_object_hide(b_mm_layout); - evas_object_del(m_gengrid); - m_gengrid=nullptr; - evas_object_del(m_genList); - m_genList=nullptr; + evas_object_hide(b_mm_layout); + elm_gengrid_clear(m_gengrid); + m_map_bookmark.clear(); } Evas_Object* BookmarkManagerUI::getContent() @@ -126,6 +114,7 @@ Evas_Object* BookmarkManagerUI::createBookmarksLayout(Evas_Object* parent) evas_object_show(b_mm_layout); createGenGrid(); + showTopContent(); return b_mm_layout; } @@ -133,10 +122,6 @@ Evas_Object* BookmarkManagerUI::createBookmarksLayout(Evas_Object* parent) // (After fixing window managment) void BookmarkManagerUI::createGenGrid() { - //TODO: After fixing window managment remove this. - if(m_gengrid != nullptr) - evas_object_del(m_gengrid); - m_gengrid = elm_gengrid_add(b_mm_layout); elm_object_part_content_set(b_mm_layout, "elm.swallow.grid", m_gengrid); elm_object_style_set(m_gengrid, "back_ground"); @@ -152,9 +137,6 @@ void BookmarkManagerUI::createGenGrid() elm_gengrid_item_size_set(m_gengrid, 404 * efl_scale, 320 * efl_scale); } -//TODO: Remove externall calls and make it private method. -// Make parend the argument and return created object -// to make code more modular.(After fixing window managment) void BookmarkManagerUI::showTopContent() { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); @@ -210,19 +192,13 @@ Evas_Object* BookmarkManagerUI::listItemContentGet(void* data, Evas_Object* obj, return nullptr; } -void BookmarkManagerUI::item_clicked_cb(void*, Evas_Object*, void*) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); -} - void BookmarkManagerUI::close_clicked_cb(void* data, Evas_Object*, void*) { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); if (data != nullptr) { ItemData * id = static_cast(data); - id->m_bookmarkManager->closeBookmarkManagerClicked(std::string()); - id->m_bookmarkManager->clearItems(); + id->m_bookmarkManager->closeBookmarkManagerClicked(); } } @@ -232,13 +208,6 @@ char* BookmarkManagerUI::listItemTextGet(void* data, Evas_Object*, const char* p return strdup("Bookmark"); } -void BookmarkManagerUI::hide() -{ - evas_object_hide(elm_layout_content_get(b_mm_layout, "elm.swallow.grid")); - evas_object_hide(elm_layout_content_get(b_mm_layout, "elm.swallow.genlist")); - evas_object_hide(b_mm_layout); -} - Evas_Object * BookmarkManagerUI::getGenList() { return m_genList; @@ -362,25 +331,5 @@ void BookmarkManagerUI::_bookmarkItemClicked(void * data, Evas_Object *, void * } } -void BookmarkManagerUI::clearItems() -{ - hide(); - BROWSER_LOGD("Deleting all items from gengrid"); - elm_gengrid_clear(m_gengrid); - elm_genlist_clear(m_genList); - m_map_bookmark.clear(); - elm_theme_extension_del(nullptr, edjFilePath.c_str()); - elm_theme_full_flush(); - elm_cache_all_flush(); -} - -void BookmarkManagerUI::updateGengrid() -{ - elm_genlist_clear(m_genList); - //elm_gengrid_clear(m_gengrid); - //remove 'createGenGrid' if the elm_gengrid_clear() will be valid again - createGenGrid(); - m_map_bookmark.clear(); -} } } diff --git a/services/BookmarkManagerUI/BookmarkManagerUI.h b/services/BookmarkManagerUI/BookmarkManagerUI.h index 22c1095..af9296b 100644 --- a/services/BookmarkManagerUI/BookmarkManagerUI.h +++ b/services/BookmarkManagerUI/BookmarkManagerUI.h @@ -43,26 +43,21 @@ public: void hideUI(); Evas_Object *getContent(); - // TODO: remove this (After fixing window managment) - void show(Evas_Object *main_layout); - - //TODO: make it private; - void showTopContent(); virtual std::string getName(); void addBookmarkItem(std::shared_ptr); void addBookmarkItems(std::vector >); void hide(); void clearItems(); - void updateGengrid(); Evas_Object* createNoHistoryLabel(); void setEmptyGengrid(bool setEmpty); - boost::signals2::signal closeBookmarkManagerClicked; + boost::signals2::signal closeBookmarkManagerClicked; boost::signals2::signal)> bookmarkItemClicked; private: Evas_Object* createBookmarksLayout(Evas_Object* parent); void createGenGrid(); + void showTopContent(); void createGengridItemClasses(); Evas_Object *getGenList(); Evas_Object *getGenGrid(); @@ -76,7 +71,6 @@ private: static Evas_Object* listItemContentGet(void *data, Evas_Object *obj, const char *part); static char* listItemTextGet(void *data, Evas_Object *, const char *part); - static void item_clicked_cb(void *, Evas_Object *, void *); static void close_clicked_cb(void *data, Evas_Object *, void *); private: diff --git a/services/BookmarkManagerUI/edc/BookmarkManagerUI.edc b/services/BookmarkManagerUI/edc/BookmarkManagerUI.edc index 96f6c64..761990d 100644 --- a/services/BookmarkManagerUI/edc/BookmarkManagerUI.edc +++ b/services/BookmarkManagerUI/edc/BookmarkManagerUI.edc @@ -444,7 +444,7 @@ group { min: 1920 795; max: 1920 795; align: 0.0 0.0; - fixed: 0 0; + fixed: 1 1; rel1 { relative: 0.0 0.0; to: "gengrid_bg"; offset: 63 0;} rel2 { relative: 1.0 1.0; to: "gengrid_bg";} } diff --git a/services/HistoryUI/HistoryUI.cpp b/services/HistoryUI/HistoryUI.cpp index f8eaa13..094f04c 100644 --- a/services/HistoryUI/HistoryUI.cpp +++ b/services/HistoryUI/HistoryUI.cpp @@ -71,10 +71,9 @@ void HistoryUI::showUI() { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); M_ASSERT(m_history_layout); - m_gengrid = createGengrid(m_history_layout); - addItems(); evas_object_show(m_actionBar); evas_object_show(m_history_layout); + elm_object_focus_custom_chain_append(m_history_layout, m_genListToday, nullptr); elm_object_focus_set(elm_object_part_content_get(m_actionBar, "close_click"), EINA_TRUE); } @@ -82,23 +81,12 @@ void HistoryUI::hideUI() { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); M_ASSERT(m_history_layout); - evas_object_del(m_genListToday); - m_genListToday = nullptr; - evas_object_del(m_gengrid); - m_gengrid = nullptr; evas_object_hide(m_actionBar); evas_object_hide(m_history_layout); elm_object_focus_custom_chain_unset(m_history_layout); + clearItems(); } -// TODO: Remove this function when proper view handling will be introduced -void HistoryUI::show(Evas_Object* parent) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - init(parent); - m_history_layout = createHistoryUILayout(m_parent); - showUI(); -} void HistoryUI::init(Evas_Object* parent) { @@ -112,7 +100,7 @@ Evas_Object* HistoryUI::getContent() BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); M_ASSERT(m_parent); if (!m_history_layout) - m_history_layout = createHistoryUILayout(m_parent); + createHistoryUILayout(m_parent); return m_history_layout; } @@ -120,15 +108,14 @@ Evas_Object* HistoryUI::createHistoryUILayout(Evas_Object* parent) { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); elm_theme_extension_add(nullptr, m_edjFilePath.c_str()); - Evas_Object* history_layout = elm_layout_add(parent); - elm_layout_file_set(history_layout, m_edjFilePath.c_str(), "history-layout"); - evas_object_size_hint_weight_set(history_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(history_layout, EVAS_HINT_FILL, EVAS_HINT_FILL); - - m_actionBar = createActionBar(history_layout); - m_gengrid = createGengrid(history_layout); + m_history_layout = elm_layout_add(parent); + elm_layout_file_set(m_history_layout, m_edjFilePath.c_str(), "history-layout"); + evas_object_size_hint_weight_set(m_history_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(m_history_layout, EVAS_HINT_FILL, EVAS_HINT_FILL); - return history_layout; + m_actionBar = createActionBar(m_history_layout); + m_gengrid = createGengrid(m_history_layout); + clearItems(); } Evas_Object* HistoryUI::createGengrid(Evas_Object* history_layout) @@ -151,6 +138,27 @@ Evas_Object* HistoryUI::createGengrid(Evas_Object* history_layout) double efl_scale = elm_config_scale_get() / elm_app_base_scale_get(); elm_gengrid_item_size_set(gengrid, 580 * efl_scale, 580 * efl_scale); + + HistoryItemData *itemData = new HistoryItemData(); + itemData->historyUI = std::shared_ptr(this); + Elm_Object_Item* historyView = elm_gengrid_item_append(gengrid, m_item_class, itemData, nullptr, this); + elm_gengrid_item_selected_set(historyView, EINA_FALSE); + + // create genlist for today entries + m_genListToday = elm_genlist_add(m_history_layout); + elm_genlist_homogeneous_set(m_genListToday, EINA_FALSE); + elm_genlist_multi_select_set(m_genListToday, EINA_FALSE); + elm_genlist_select_mode_set(m_genListToday, ELM_OBJECT_SELECT_MODE_ALWAYS); + elm_genlist_mode_set(m_genListToday, ELM_LIST_LIMIT); + elm_genlist_decorate_mode_set(m_genListToday, EINA_TRUE); + evas_object_size_hint_weight_set(m_genListToday, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + m_itemClassToday = elm_genlist_item_class_new(); + m_itemClassToday->item_style = "history_url_items"; + m_itemClassToday->func.text_get = &_listTodayTextGet; + m_itemClassToday->func.content_get = nullptr; + m_itemClassToday->func.state_get = nullptr; + m_itemClassToday->func.del = nullptr; + return gengrid; } @@ -198,7 +206,6 @@ void HistoryUI::_close_clicked_cb(void * data, Evas_Object*, void*) if (data) { HistoryUI *historyUI = static_cast(data); historyUI->closeHistoryUIClicked(); - historyUI->clearItems(); } } @@ -225,22 +232,10 @@ void HistoryUI::_clearHistory_clicked(void* data, Evas_Object*, void*) BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); HistoryUI *historyUI = static_cast(data); - historyUI->clearHistoryClicked(std::string()); + historyUI->clearHistoryClicked(); historyUI->clearItems(); } -void HistoryUI::addItems() -{ - BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__); - for (size_t i = 0; i < 1; i++) { - HistoryItemData *itemData = new HistoryItemData(); - itemData->historyUI = std::shared_ptr(this); - Elm_Object_Item* historyView = elm_gengrid_item_append(m_gengrid, m_item_class, itemData, nullptr, this); - elm_gengrid_item_selected_set(historyView, EINA_FALSE); - } - BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__); -} - void HistoryUI::addHistoryItem(std::shared_ptr hi) { BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__); @@ -248,6 +243,8 @@ void HistoryUI::addHistoryItem(std::shared_ptr hi) itemData->item = hi; itemData->historyUI = std::shared_ptr(this); _history_item_data.push_back(itemData); + Elm_Object_Item* historyView = elm_genlist_item_append(itemData->historyUI->m_genListToday, itemData->historyUI->m_itemClassToday, itemData, nullptr, ELM_GENLIST_ITEM_NONE, _history_item_clicked_cb, itemData); + itemData->historyUI->m_map_history_views.insert(std::pair(hi->getUrl(), historyView)); } void HistoryUI::addHistoryItems(std::shared_ptr items) @@ -279,28 +276,6 @@ Evas_Object * HistoryUI::_history_grid_content_get(void *data, Evas_Object*, con static const int part_name_len = strlen(part_name); if(!strncmp(part_name, part, part_name_len)) { - id->historyUI->m_genListToday = elm_genlist_add(id->historyUI->m_history_layout); - - elm_genlist_homogeneous_set(id->historyUI->m_genListToday, EINA_FALSE); - elm_genlist_multi_select_set(id->historyUI->m_genListToday, EINA_FALSE); - elm_genlist_select_mode_set(id->historyUI->m_genListToday, ELM_OBJECT_SELECT_MODE_ALWAYS); - elm_genlist_mode_set(id->historyUI->m_genListToday, ELM_LIST_LIMIT); - elm_genlist_decorate_mode_set(id->historyUI->m_genListToday, EINA_TRUE); - evas_object_size_hint_weight_set(id->historyUI->m_genListToday, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - - id->historyUI->m_itemClassToday = elm_genlist_item_class_new(); - id->historyUI->m_itemClassToday->item_style = "history_url_items"; - id->historyUI->m_itemClassToday->func.text_get = &_listTodayTextGet; - id->historyUI->m_itemClassToday->func.content_get = nullptr; - id->historyUI->m_itemClassToday->func.state_get = nullptr; - id->historyUI->m_itemClassToday->func.del = nullptr; - - for(auto it = _history_item_data.begin(); it != _history_item_data.end(); it++) { - Elm_Object_Item* historyView = elm_genlist_item_append(id->historyUI->m_genListToday, id->historyUI->m_itemClassToday, *it, nullptr, ELM_GENLIST_ITEM_NONE, _history_item_clicked_cb, (*it)); - id->historyUI->m_map_history_views.insert(std::pair((*it)->item->getUrl(), historyView)); - } - elm_object_focus_custom_chain_append(id->historyUI->m_history_layout, id->historyUI->m_genListToday, nullptr); - return id->historyUI->m_genListToday; } } @@ -318,19 +293,10 @@ void HistoryUI::removeHistoryItem(const std::string& uri) m_map_history_views.erase(uri); } -void HistoryUI::hide() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - evas_object_hide(elm_layout_content_get(m_history_layout, "action_bar_history")); - evas_object_hide(m_history_layout); -} - void HistoryUI::clearItems() { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - hide(); elm_genlist_clear(m_genListToday); - elm_gengrid_clear(m_gengrid); m_map_history_views.clear(); _history_item_data.clear(); } diff --git a/services/HistoryUI/HistoryUI.h b/services/HistoryUI/HistoryUI.h index 0635653..859eddc 100644 --- a/services/HistoryUI/HistoryUI.h +++ b/services/HistoryUI/HistoryUI.h @@ -45,16 +45,14 @@ public: void addHistoryItem(std::shared_ptr); void addHistoryItems(std::shared_ptr); void removeHistoryItem(const std::string& uri); - void clearItems(); - void hide(); Evas_Object* createActionBar(Evas_Object* history_layout); - void show(Evas_Object *main_layout); void addItems(); boost::signals2::signal closeHistoryUIClicked; - boost::signals2::signal clearHistoryClicked; + boost::signals2::signal clearHistoryClicked; boost::signals2::signal)> historyItemClicked; boost::signals2::signal)> historyDeleteClicked; private: + void clearItems(); Evas_Object* createHistoryUILayout(Evas_Object* parent); Elm_Gengrid_Item_Class* crateItemClass(); static char* _grid_text_get(void *data, Evas_Object *obj, const char *part); diff --git a/services/MainUI/MainUI.cpp b/services/MainUI/MainUI.cpp index d2248fd..6e64eae 100644 --- a/services/MainUI/MainUI.cpp +++ b/services/MainUI/MainUI.cpp @@ -138,9 +138,6 @@ Evas_Object* MainUI::createQuickAccessLayout(Evas_Object* parent) m_mostVisitedView = createMostVisitedView(layout); m_bookmarksView = createBookmarksView (layout); - evas_object_show(m_mostVisitedView); - //TODO: uncoment this after cleaning up the mess in whole app window. - //evas_object_show(m_bookmarksView); showHistory(); return layout; @@ -170,7 +167,21 @@ Evas_Object* MainUI::createBookmarksView (Evas_Object * parent) evas_object_size_hint_weight_set(bookmarkViewLayout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(bookmarkViewLayout, EVAS_HINT_FILL, EVAS_HINT_FILL); - Evas_Object *bookmarkGengrid = elm_gengrid_add(bookmarkViewLayout); + m_bookmarkGengrid = createBookmarkGengrid(bookmarkViewLayout); + elm_object_part_content_set(bookmarkViewLayout, "elm.swallow.grid", m_bookmarkGengrid); + + Evas_Object* topButtons = createTopButtons(bookmarkViewLayout); + elm_object_part_content_set(bookmarkViewLayout, "elm.swallow.layoutTop", topButtons); + + Evas_Object* bottomButton = createBottomButton(bookmarkViewLayout); + elm_object_part_content_set(bookmarkViewLayout, "elm.swallow.layoutBottom", bottomButton); + + return bookmarkViewLayout; +} + +Evas_Object* MainUI::createBookmarkGengrid(Evas_Object *parent) +{ + Evas_Object *bookmarkGengrid = elm_gengrid_add(parent); elm_gengrid_align_set(bookmarkGengrid, 0, 0); elm_gengrid_select_mode_set(bookmarkGengrid, ELM_OBJECT_SELECT_MODE_ALWAYS); @@ -182,18 +193,8 @@ Evas_Object* MainUI::createBookmarksView (Evas_Object * parent) evas_object_size_hint_weight_set(bookmarkGengrid, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(bookmarkGengrid, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_gengrid_item_size_set(bookmarkGengrid, 364 * efl_scale, 320 * efl_scale); - evas_object_show(bookmarkGengrid); - - elm_object_part_content_set(bookmarkViewLayout, "elm.swallow.grid", bookmarkGengrid); - m_bookmarkGengrid = bookmarkGengrid; - - Evas_Object* topButtons = createTopButtons(bookmarkViewLayout); - elm_object_part_content_set(bookmarkViewLayout, "elm.swallow.layoutTop", topButtons); - Evas_Object* bottomButton = createBottomButton(bookmarkViewLayout); - elm_object_part_content_set(bookmarkViewLayout, "elm.swallow.layoutBottom", bottomButton); - - return bookmarkViewLayout; + return bookmarkGengrid; } Evas_Object* MainUI::createTopButtons (Evas_Object *parent) @@ -248,21 +249,21 @@ void MainUI::_mostVisited_clicked(void * data, Evas_Object *, void *) { BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__); MainUI* mainUI = reinterpret_cast(data); - mainUI->mostVisitedClicked(std::string()); + mainUI->mostVisitedClicked(); } void MainUI::_bookmark_clicked(void * data, Evas_Object *, void *) { BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__); MainUI* mainUI = reinterpret_cast(data); - mainUI->bookmarkClicked(std::string()); + mainUI->bookmarkClicked(); } void MainUI::_bookmark_manager_clicked(void * data, Evas_Object *, void *) { BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__); MainUI* mainUI = static_cast(data); - mainUI->bookmarkManagerClicked(std::string()); + mainUI->bookmarkManagerClicked(); } void MainUI::addHistoryItem(std::shared_ptr hi) @@ -327,10 +328,9 @@ void MainUI::addBookmarkItem(std::shared_ptr > items) { clearBookmarkGengrid(); - BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__); - for (auto it = items.begin(); it != items.end(); ++it) { - addBookmarkItem(*it); - } + for (auto it = items.begin(); it != items.end(); ++it) { + addBookmarkItem(*it); + } } @@ -403,7 +403,6 @@ void MainUI::showHistory() if (elm_layout_content_get(m_layout, "elm.swallow.content") == m_mostVisitedView) return; - //TODO: remove these "evas_object_hide" and "evas_object_show" after cleaning up the mess in whole app window. elm_layout_content_unset(m_layout, "elm.swallow.content"); evas_object_hide(m_bookmarksView); elm_layout_content_set(m_layout, "elm.swallow.content", m_mostVisitedView); @@ -422,7 +421,6 @@ void MainUI::showHistory() void MainUI::clearBookmarkGengrid() { BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__); - elm_gengrid_clear(m_bookmarkGengrid); m_map_bookmark_views.clear(); } @@ -431,10 +429,9 @@ void MainUI::showBookmarks() { BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__); - if (elm_layout_content_get(m_layout, "elm.swallow.content") == m_bookmarksView) + if (elm_layout_content_get(m_layout, "elm.swallow.content") == m_bookmarksView && m_bookmarksView != nullptr) return; - //TODO: remove these "evas_object_hide" and "evas_object_show" after cleaning up the mess in whole app window. elm_layout_content_unset(m_layout, "elm.swallow.content"); evas_object_hide(m_mostVisitedView); elm_layout_content_set(m_layout, "elm.swallow.content", m_bookmarksView); @@ -444,18 +441,23 @@ void MainUI::showBookmarks() evas_object_show(m_layout); } -void MainUI::hide() +void MainUI::showUI() { - BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__); - evas_object_hide(m_layout); - evas_object_hide(m_mostVisitedView); - evas_object_hide(m_bookmarksView); - clearItems(); + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + evas_object_show(m_layout); + if (elm_layout_content_get(m_layout, "elm.swallow.content") == m_bookmarksView) { + evas_object_show(m_bookmarksView); + } else { + evas_object_show(m_mostVisitedView); + } } -void MainUI::clearItems() +void MainUI::hideUI() { BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__); + evas_object_hide(m_layout); + evas_object_hide(m_mostVisitedView); + evas_object_hide(m_bookmarksView); clearHistoryGenlist(); clearBookmarkGengrid(); } diff --git a/services/MainUI/MainUI.h b/services/MainUI/MainUI.h index 30e9aa6..1b9e43f 100644 --- a/services/MainUI/MainUI.h +++ b/services/MainUI/MainUI.h @@ -43,7 +43,8 @@ public: Evas_Object* getContent(); void showMostVisited(std::shared_ptr vec); void showBookmarks(std::vector > vec); - void hide(); + void hideUI(); + void showUI(); virtual std::string getName(); void openDetailPopup(std::shared_ptr currItem, std::shared_ptr prevItems); bool isDesktopMode() const; @@ -52,9 +53,9 @@ public: boost::signals2::signal, int)> mostVisitedTileClicked; boost::signals2::signal, bool)> openURLInNewTab; - boost::signals2::signal mostVisitedClicked; - boost::signals2::signal bookmarkClicked; - boost::signals2::signal bookmarkManagerClicked; + boost::signals2::signal mostVisitedClicked; + boost::signals2::signal bookmarkClicked; + boost::signals2::signal bookmarkManagerClicked; static const int MAX_THUMBNAIL_WIDTH; static const int MAX_THUMBNAIL_HEIGHT; @@ -67,9 +68,9 @@ private: void addBookmarkItems(std::vector >); void clearHistoryGenlist(); void clearBookmarkGengrid(); + Evas_Object* createBookmarkGengrid(Evas_Object *parent); void showHistory(); void showBookmarks(); - void clearItems(); Evas_Object* createQuickAccessLayout(Evas_Object *parent); Evas_Object* createMostVisitedView(Evas_Object *parent); diff --git a/services/MoreMenuUI/MoreMenuUI.cpp b/services/MoreMenuUI/MoreMenuUI.cpp index af30684..633f1bf 100644 --- a/services/MoreMenuUI/MoreMenuUI.cpp +++ b/services/MoreMenuUI/MoreMenuUI.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * Copyright (c) 2015 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the License); * you may not use this file except in compliance with the License. @@ -45,10 +45,14 @@ typedef struct _MoreItemData } MoreMenuItemData; MoreMenuUI::MoreMenuUI() - : m_gengrid(nullptr) + : m_current_tab_bar(nullptr) + , m_mm_layout(nullptr) + , m_gengrid(nullptr) , m_parent(nullptr) + , m_toastPopup(nullptr) + , m_icon(nullptr) + , m_bookmarkIcon(nullptr) , m_item_class(nullptr) - , m_mm_layout(nullptr) , m_desktopMode(true) , m_isBookmark(false) { @@ -63,6 +67,7 @@ MoreMenuUI::~MoreMenuUI() BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); if (m_item_class) elm_gengrid_item_class_free(m_item_class); + evas_object_del(m_gengrid); } Elm_Gengrid_Item_Class* MoreMenuUI::createItemClass() @@ -84,25 +89,16 @@ void MoreMenuUI::init(Evas_Object* parent) m_parent = parent; } -void MoreMenuUI::show(Evas_Object* parent, bool desktopMode) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - init(parent); - //TODO: move this function call to SimpleUI::initUIServices after introducing new window managment. - setDesktopMode(desktopMode); - m_mm_layout=createMoreMenuLayout(parent); - showUI(); -} void MoreMenuUI::showUI() { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - M_ASSERT(m_parent); - evas_object_show(getContent()); - //regenerate gengrid - m_gengrid=createGengrid(getContent()); + M_ASSERT(m_mm_layout); + createGengrid(); // recreate gengrid because icons could have changed addItems(); - elm_object_part_content_set(getContent(), "elm.swallow.grid", m_gengrid); + evas_object_show(m_mm_layout); + evas_object_show(elm_object_part_content_get(m_mm_layout,"current_tab_bar")); + evas_object_show(m_gengrid); setFocus(EINA_TRUE); } @@ -110,8 +106,10 @@ void MoreMenuUI::hideUI() { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); M_ASSERT(m_mm_layout); - evas_object_hide(getContent()); - //destroy gengrid + setFocus(EINA_FALSE); + evas_object_hide(m_mm_layout); + evas_object_hide(elm_object_part_content_get(m_mm_layout,"current_tab_bar")); + clearItems(); evas_object_del(m_gengrid); } @@ -119,41 +117,37 @@ void MoreMenuUI::hideUI() Evas_Object* MoreMenuUI::getContent() { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - M_ASSERT(m_parent); if(!m_mm_layout) - m_mm_layout = createMoreMenuLayout(m_parent); + createMoreMenuLayout(); return m_mm_layout; } -Evas_Object* MoreMenuUI::createMoreMenuLayout(Evas_Object* parent) +void MoreMenuUI::createMoreMenuLayout() { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + M_ASSERT(m_parent); elm_theme_extension_add(NULL, m_edjFilePath.c_str()); - Evas_Object* mm_layout = elm_layout_add(parent); - elm_layout_file_set(mm_layout, m_edjFilePath.c_str(), "moremenu-layout"); - evas_object_size_hint_weight_set(mm_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(mm_layout, EVAS_HINT_FILL, EVAS_HINT_FILL); - - evas_object_show(mm_layout); - return mm_layout; + m_mm_layout = elm_layout_add(m_parent); + elm_layout_file_set(m_mm_layout, m_edjFilePath.c_str(), "moremenu-layout"); + evas_object_size_hint_weight_set(m_mm_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(m_mm_layout, EVAS_HINT_FILL, EVAS_HINT_FILL); } -Evas_Object* MoreMenuUI::createGengrid(Evas_Object* parent) +void MoreMenuUI::createGengrid() { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - Evas_Object* gengrid = elm_gengrid_add(parent); - elm_object_part_content_set(parent, "elm.swallow.grid", gengrid); + m_gengrid = elm_gengrid_add(m_mm_layout); + elm_object_part_content_set(m_mm_layout, "elm.swallow.grid", m_gengrid); - elm_gengrid_align_set(gengrid, 0, 0); - elm_gengrid_select_mode_set(gengrid, ELM_OBJECT_SELECT_MODE_ALWAYS); - elm_gengrid_multi_select_set(gengrid, EINA_FALSE); - elm_gengrid_horizontal_set(gengrid, EINA_FALSE); - elm_scroller_policy_set(gengrid, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF); - elm_scroller_page_size_set(gengrid, 0, 327); - evas_object_size_hint_weight_set(gengrid, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(gengrid, EVAS_HINT_FILL, EVAS_HINT_FILL); - elm_gengrid_item_size_set(gengrid, 364 * efl_scale, 320 * efl_scale); - return gengrid; + elm_gengrid_align_set(m_gengrid, 0, 0); + elm_gengrid_select_mode_set(m_gengrid, ELM_OBJECT_SELECT_MODE_ALWAYS); + elm_gengrid_multi_select_set(m_gengrid, EINA_FALSE); + elm_gengrid_horizontal_set(m_gengrid, EINA_FALSE); + elm_scroller_policy_set(m_gengrid, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF); + elm_scroller_page_size_set(m_gengrid, 0, 327); + evas_object_size_hint_weight_set(m_gengrid, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(m_gengrid, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_gengrid_item_size_set(m_gengrid, 364 * efl_scale, 320 * efl_scale); } void MoreMenuUI::showCurrentTab() @@ -222,7 +216,6 @@ void MoreMenuUI::setWebTitle(const std::string& title) void MoreMenuUI::setURL(const std::string& url) { BROWSER_LOGD("[%s:%d] %s", __PRETTY_FUNCTION__, __LINE__, url.c_str()); - char* part_name = "add_to_bookmark_text"; if(!url.empty()) { elm_object_part_text_set(m_current_tab_bar, "webpage_url", url.c_str()); @@ -285,7 +278,7 @@ void MoreMenuUI::createToastPopup(const char* text) elm_popup_timeout_set(m_toastPopup, 3.0); } -void MoreMenuUI::_timeout(void *data, Evas_Object *obj, void *event_info) +void MoreMenuUI::_timeout(void *data, Evas_Object*, void*) { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); MoreMenuUI *moreMenuUI = static_cast(data); @@ -314,17 +307,10 @@ void MoreMenuUI::_close_clicked(void* data, Evas_Object*, void*) BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); if (data) { MoreMenuUI *moreMenuUI = static_cast(data); - moreMenuUI->closeMoreMenuClicked(std::string()); - moreMenuUI->clearItems(); + moreMenuUI->closeMoreMenuClicked(); } } -void MoreMenuUI::hide() -{ - evas_object_hide(elm_layout_content_get(m_mm_layout, "elm.swallow.grid")); - evas_object_hide(elm_layout_content_get(m_mm_layout, "current_tab_bar")); - evas_object_hide(m_mm_layout); -} void MoreMenuUI::addItems() { @@ -344,7 +330,20 @@ void MoreMenuUI::addItems() m_map_menu_views.insert(std::pair(itemData->item, bookmarkView)); elm_gengrid_item_selected_set(bookmarkView, EINA_FALSE); } - BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__); +} + +void MoreMenuUI::clearItems() +{ + BROWSER_LOGD("[%s:%d]", __PRETTY_FUNCTION__, __LINE__); + for (auto it = m_map_menu_views.begin(); it != m_map_menu_views.end(); ++it) { + Elm_Object_Item* bookmarkView = it->second; + Evas_Object *button = elm_object_item_part_content_get(it->second, "thumbbutton_item"); + evas_object_event_callback_del(button, EVAS_CALLBACK_MOUSE_IN, __cb_mouse_in); + evas_object_event_callback_del(button, EVAS_CALLBACK_MOUSE_OUT, __cb_mouse_out); + } + + elm_gengrid_clear(m_gengrid); + m_map_menu_views.clear(); } char* MoreMenuUI::_grid_text_get(void* data, Evas_Object*, const char* part) @@ -515,16 +514,13 @@ void MoreMenuUI::_thumbSelected(void* data, Evas_Object*, void*) BROWSER_LOGD("type: %d", itemData->item); switch (itemData->item) { case HISTORY: - itemData->moreMenuUI->setFocus(EINA_FALSE); - itemData->moreMenuUI->historyUIClicked(std::string()); + itemData->moreMenuUI->historyUIClicked(); break; case SETTINGS: - itemData->moreMenuUI->setFocus(EINA_FALSE); - itemData->moreMenuUI->settingsClicked(std::string()); + itemData->moreMenuUI->settingsClicked(); break; case BOOKMARK_MANAGER: - itemData->moreMenuUI->setFocus(EINA_FALSE); - itemData->moreMenuUI->bookmarkManagerClicked(std::string()); + itemData->moreMenuUI->bookmarkManagerClicked(); break; #ifdef READER_MODE_ENABLED case READER_MODE: @@ -543,14 +539,12 @@ void MoreMenuUI::_thumbSelected(void* data, Evas_Object*, void*) case VIEW_MOBILE_WEB: itemData->moreMenuUI->switchToMobileMode(); itemData->moreMenuUI->m_desktopMode = false; - itemData->moreMenuUI->closeMoreMenuClicked(std::string()); - itemData->moreMenuUI->clearItems(); + itemData->moreMenuUI->closeMoreMenuClicked(); break; case VIEW_DESKTOP_WEB: itemData->moreMenuUI->switchToDesktopMode(); itemData->moreMenuUI->m_desktopMode = true; - itemData->moreMenuUI->closeMoreMenuClicked(std::string()); - itemData->moreMenuUI->clearItems(); + itemData->moreMenuUI->closeMoreMenuClicked(); break; case SHARE: break; @@ -564,19 +558,6 @@ void MoreMenuUI::_thumbSelected(void* data, Evas_Object*, void*) } } -void MoreMenuUI::clearItems() -{ - hide(); - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - elm_gengrid_clear(m_gengrid); - elm_object_tree_focus_allow_set(getContent(), EINA_FALSE); - m_map_menu_views.clear(); - evas_object_del(m_current_tab_bar); - elm_theme_extension_del(NULL, m_edjFilePath.c_str()); - elm_theme_full_flush(); - elm_cache_all_flush(); -} - void MoreMenuUI::_exitClicked() { BROWSER_LOGD("[%s:%d]", __PRETTY_FUNCTION__, __LINE__); diff --git a/services/MoreMenuUI/MoreMenuUI.h b/services/MoreMenuUI/MoreMenuUI.h index c793b18..c8ed824 100644 --- a/services/MoreMenuUI/MoreMenuUI.h +++ b/services/MoreMenuUI/MoreMenuUI.h @@ -68,14 +68,8 @@ public: void setDesktopMode(bool desktopMode) {m_desktopMode = desktopMode;} - void show(Evas_Object *main_layout, bool desktopMode); - //TODO: remove this function after new view managment introduction. void showCurrentTab(); virtual std::string getName(); - void addItems(); - //TODO: remove this function after new view managment introduction. - void hide(); - void clearItems(); void setFavIcon(std::shared_ptr favicon); void setWebTitle(const std::string& title); void setURL(const std::string& url); @@ -87,20 +81,20 @@ public: void setFocus(Eina_Bool focusable); boost::signals2::signal addToBookmarkClicked; - //TODO: remove redundant argument from this signal. - boost::signals2::signal bookmarkManagerClicked; - boost::signals2::signal historyUIClicked; - boost::signals2::signal settingsClicked; - //TODO: remove redundant argument from this signal. - boost::signals2::signal closeMoreMenuClicked; + boost::signals2::signal bookmarkManagerClicked; + boost::signals2::signal historyUIClicked; + boost::signals2::signal settingsClicked; + boost::signals2::signal closeMoreMenuClicked; boost::signals2::signal switchToMobileMode; boost::signals2::signal switchToDesktopMode; boost::signals2::signal isBookmark; boost::signals2::signal deleteBookmark; private: Elm_Gengrid_Item_Class* createItemClass(); - Evas_Object* createMoreMenuLayout(Evas_Object* parent); - Evas_Object* createGengrid(Evas_Object* parent); + void createMoreMenuLayout(); + void createGengrid(); + void addItems(); + void clearItems(); static char* _grid_text_get(void *data, Evas_Object *obj, const char *part); static Evas_Object * _grid_content_get(void *data, Evas_Object *obj, const char *part); static void _thumbSelected(void * data, Evas_Object * obj, void * event_info); diff --git a/services/SettingsUI/SettingsUI.cpp b/services/SettingsUI/SettingsUI.cpp index 7d88733..6457f75 100644 --- a/services/SettingsUI/SettingsUI.cpp +++ b/services/SettingsUI/SettingsUI.cpp @@ -104,14 +104,6 @@ Evas_Object* SettingsUI::createSettingsUILayout(Evas_Object* parent) return settings_layout; } -void SettingsUI::show(Evas_Object* parent) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - init(parent); - m_settings_layout = createSettingsUILayout(m_parent); - showUI(); -} - Evas_Object* SettingsUI::createActionBar(Evas_Object* settings_layout) { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); @@ -268,18 +260,10 @@ void SettingsUI::close_clicked_cb(void* data, Evas_Object*, void*) BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); if (data) { SettingsUI * s_ui = static_cast(data); - s_ui->closeSettingsUIClicked(std::string()); - s_ui->clearItems(); + s_ui->closeSettingsUIClicked(); } } -void SettingsUI::hide() -{ - evas_object_hide(elm_layout_content_get(m_settings_layout, "action_bar_swallow")); - evas_object_hide(elm_layout_content_get(m_settings_layout, "settings_scroller_swallow")); - evas_object_hide(m_settings_layout); -} - void SettingsUI::_del_selected_data_clicked_cb(void *data, Evas_Object*, void*) { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); @@ -301,7 +285,7 @@ void SettingsUI::_reset_mv_clicked_cb(void *data, Evas_Object*, void*) BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); if (data) { ItemData* itemData = static_cast(data); - itemData->settingsUI->resetMostVisitedClicked(std::string()); + itemData->settingsUI->resetMostVisitedClicked(); } } @@ -310,15 +294,9 @@ void SettingsUI::_reset_browser_clicked_cb(void *data, Evas_Object*, void*) BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); if (data) { ItemData* itemData = static_cast(data); - itemData->settingsUI->resetBrowserClicked(std::string()); + itemData->settingsUI->resetBrowserClicked(); } } -void SettingsUI::clearItems() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - hide(); -} - } } diff --git a/services/SettingsUI/SettingsUI.h b/services/SettingsUI/SettingsUI.h index d07c9d4..2561000 100644 --- a/services/SettingsUI/SettingsUI.h +++ b/services/SettingsUI/SettingsUI.h @@ -43,13 +43,11 @@ public: virtual std::string getName(); Evas_Object* createActionBar(Evas_Object* settings_layout); Evas_Object* createSettingsPage(Evas_Object* settings_layout); - void clearItems(); - void hide(); - boost::signals2::signal resetBrowserClicked; - boost::signals2::signal resetMostVisitedClicked; - boost::signals2::signal deleteSelectedDataClicked; - boost::signals2::signal closeSettingsUIClicked; + boost::signals2::signal resetBrowserClicked; + boost::signals2::signal resetMostVisitedClicked; + boost::signals2::signal deleteSelectedDataClicked; + boost::signals2::signal closeSettingsUIClicked; private: Evas_Object* createSettingsUILayout(Evas_Object* parent); diff --git a/services/SimpleUI/CMakeLists.txt b/services/SimpleUI/CMakeLists.txt index 9771495..fe55ea3 100644 --- a/services/SimpleUI/CMakeLists.txt +++ b/services/SimpleUI/CMakeLists.txt @@ -82,6 +82,7 @@ set(edcFiles AuthenticationPopup.edc BookmarksManager.edc Tooltip.edc + ViewManager.edc ) foreach(edec ${edcFiles}) diff --git a/services/SimpleUI/SimpleUI.cpp b/services/SimpleUI/SimpleUI.cpp index 310cf54..c5b7ad3 100644 --- a/services/SimpleUI/SimpleUI.cpp +++ b/services/SimpleUI/SimpleUI.cpp @@ -76,12 +76,17 @@ SimpleUI::SimpleUI() BROWSER_LOGE("Failed to create main window"); setMainWindow(main_window); + m_viewManager = new ViewManager(main_window); + evas_object_size_hint_weight_set(main_window, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set (main_window, EVAS_HINT_FILL, EVAS_HINT_FILL); + + elm_win_resize_object_add(main_window, m_viewManager->getContent()); + evas_object_show(main_window); } SimpleUI::~SimpleUI() { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); m_sessionService->getStorage()->deleteSession(m_currentSession); - /// \todo Auto-generated destructor stub evas_object_del(m_window.get()); ewk_context_delete(m_ewkContext); } @@ -124,18 +129,6 @@ int SimpleUI::exec(const std::string& _url) m_tabLimit = boost::any_cast (config.get("TAB_LIMIT")); m_favoritesLimit = boost::any_cast (config.get("FAVORITES_LIMIT")); - // Set up main window - //TODO: These functions seems redundant. Check if these functions are neccessary. - int width = 0; - int height = 0; - ecore_wl_screen_size_get(&width, &height); - evas_object_move(m_window.get(), 0, 0); - evas_object_resize(m_window.get(), width, height); - - elm_win_focus_highlight_style_set(m_window.get(), "invisible"); - - //set global show tooltip timeout - elm_config_tooltip_delay_set( boost::any_cast (config.get("TOOLTIP_DELAY"))); loadUIServices(); loadModelServices(); @@ -145,16 +138,13 @@ int SimpleUI::exec(const std::string& _url) initUIServices(); initModelServices(); - // create view layouts - elm_win_resize_object_add(m_window.get(), m_webPageUI->getContent()); connectModelSignals(); connectUISignals(); connectActions(); - // show main layout and window - evas_object_show(m_webPageUI->getContent()); - evas_object_show(m_window.get()); + //Push first view to stack. + m_viewManager->pushViewToStack(m_webPageUI.get()); } m_initialised = true; } @@ -169,7 +159,6 @@ int SimpleUI::exec(const std::string& _url) } else { openNewTab(url); } - m_webPageUI->getURIEntry().setFocus(); BROWSER_LOGD("[%s]:%d url=%s", __func__, __LINE__, url.c_str()); return 0; @@ -205,6 +194,31 @@ void SimpleUI::loadUIServices() std::dynamic_pointer_cast (tizen_browser::core::ServiceManager::getInstance().getService("org.tizen.browser.mainui")); + + m_tabUI = + std::dynamic_pointer_cast + + (tizen_browser::core::ServiceManager::getInstance().getService("org.tizen.browser.tabui")); + + m_historyUI = + std::dynamic_pointer_cast + + (tizen_browser::core::ServiceManager::getInstance().getService("org.tizen.browser.historyui")); + + m_settingsUI = + std::dynamic_pointer_cast + + (tizen_browser::core::ServiceManager::getInstance().getService("org.tizen.browser.settingsui")); + + m_moreMenuUI = + std::dynamic_pointer_cast + + (tizen_browser::core::ServiceManager::getInstance().getService("org.tizen.browser.moremenuui")); + + m_bookmarkManagerUI = + std::dynamic_pointer_cast + + (tizen_browser::core::ServiceManager::getInstance().getService("org.tizen.browser.bookmarkmanagerui")); } void SimpleUI::connectUISignals() @@ -213,14 +227,61 @@ void SimpleUI::connectUISignals() M_ASSERT(m_webPageUI.get()); m_webPageUI->getURIEntry().uriChanged.connect(boost::bind(&SimpleUI::filterURL, this, _1)); + m_webPageUI->backPage.connect(boost::bind(&SimpleUI::switchViewToWebPage, this)); + m_webPageUI->backPage.connect(boost::bind(&tizen_browser::basic_webengine::AbstractWebEngine::back, m_webEngine.get())); + m_webPageUI->reloadPage.connect(boost::bind(&SimpleUI::switchViewToWebPage, this)); + m_webPageUI->showTabUI.connect(boost::bind(&SimpleUI::showTabUI, this)); + m_webPageUI->showMoreMenu.connect(boost::bind(&SimpleUI::showMoreMenu, this)); + m_webPageUI->forwardPage.connect(boost::bind(&tizen_browser::basic_webengine::AbstractWebEngine::forward, m_webEngine.get())); + m_webPageUI->stopLoadingPage.connect(boost::bind(&tizen_browser::basic_webengine::AbstractWebEngine::stopLoading, m_webEngine.get())); + m_webPageUI->reloadPage.connect(boost::bind(&tizen_browser::basic_webengine::AbstractWebEngine::reload, m_webEngine.get())); + m_webPageUI->showMainUI.connect(boost::bind(&SimpleUI::showMainUI, this)); + m_webPageUI->hideMainUI.connect(boost::bind(&MainUI::hideUI, m_mainUI)); + M_ASSERT(m_mainUI.get()); m_mainUI->getDetailPopup().openURLInNewTab.connect(boost::bind(&SimpleUI::onOpenURLInNewTab, this, _1, _2)); m_mainUI->openURLInNewTab.connect(boost::bind(&SimpleUI::onOpenURLInNewTab, this, _1, _2)); m_mainUI->mostVisitedTileClicked.connect(boost::bind(&SimpleUI::onMostVisitedTileClicked, this, _1, _2)); - m_mainUI->mostVisitedClicked.connect(boost::bind(&SimpleUI::onMostVisitedClicked, this,_1)); - m_mainUI->bookmarkClicked.connect(boost::bind(&SimpleUI::onBookmarkButtonClicked, this,_1)); - m_mainUI->bookmarkManagerClicked.connect(boost::bind(&SimpleUI::onBookmarkManagerButtonClicked, this,_1)); + m_mainUI->mostVisitedClicked.connect(boost::bind(&SimpleUI::onMostVisitedClicked, this)); + m_mainUI->bookmarkClicked.connect(boost::bind(&SimpleUI::onBookmarkButtonClicked, this)); + m_mainUI->bookmarkManagerClicked.connect(boost::bind(&SimpleUI::showBookmarkManagerUI, this)); + + M_ASSERT(m_tabUI.get()); + m_tabUI->closeTabUIClicked.connect(boost::bind(&SimpleUI::closeTabUI, this)); + m_tabUI->newTabClicked.connect(boost::bind(&SimpleUI::newTabClicked, this)); + m_tabUI->tabClicked.connect(boost::bind(&SimpleUI::tabClicked, this,_1)); + m_tabUI->closeTabsClicked.connect(boost::bind(&SimpleUI::closeTabsClicked, this,_1)); + m_tabUI->newIncognitoTabClicked.connect(boost::bind(&SimpleUI::newTabClicked, this)); + m_tabUI->tabsCount.connect(boost::bind(&SimpleUI::tabsCount, this)); + + M_ASSERT(m_historyUI.get()); + m_historyUI->clearHistoryClicked.connect(boost::bind(&SimpleUI::onClearHistoryClicked, this)); + m_historyUI->closeHistoryUIClicked.connect(boost::bind(&SimpleUI::closeHistoryUI, this)); + // desktop mode as default + m_historyUI->historyItemClicked.connect(boost::bind(&SimpleUI::onOpenURLInNewTab, this, _1, true)); + + M_ASSERT(m_settingsUI.get()); + m_settingsUI->closeSettingsUIClicked.connect(boost::bind(&SimpleUI::closeSettingsUI, this)); + m_settingsUI->deleteSelectedDataClicked.connect(boost::bind(&SimpleUI::settingsDeleteSelectedData, this,_1)); + m_settingsUI->resetMostVisitedClicked.connect(boost::bind(&SimpleUI::settingsResetMostVisited, this)); + m_settingsUI->resetBrowserClicked.connect(boost::bind(&SimpleUI::settingsResetBrowser, this)); + + M_ASSERT(m_moreMenuUI.get()); + m_moreMenuUI->bookmarkManagerClicked.connect(boost::bind(&SimpleUI::showBookmarkManagerUI, this)); + m_moreMenuUI->historyUIClicked.connect(boost::bind(&SimpleUI::showHistoryUI, this)); + m_moreMenuUI->settingsClicked.connect(boost::bind(&SimpleUI::showSettingsUI, this)); + m_moreMenuUI->closeMoreMenuClicked.connect(boost::bind(&SimpleUI::closeMoreMenu, this)); + m_moreMenuUI->switchToMobileMode.connect(boost::bind(&SimpleUI::switchToMobileMode, this)); + m_moreMenuUI->switchToDesktopMode.connect(boost::bind(&SimpleUI::switchToDesktopMode, this)); + m_moreMenuUI->addToBookmarkClicked.connect(boost::bind(&SimpleUI::addToBookmarks, this, _1)); + m_moreMenuUI->isBookmark.connect(boost::bind(&SimpleUI::checkBookmark, this)); + m_moreMenuUI->deleteBookmark.connect(boost::bind(&SimpleUI::deleteBookmark, this)); + + M_ASSERT(m_bookmarkManagerUI.get()); + m_bookmarkManagerUI->closeBookmarkManagerClicked.connect(boost::bind(&SimpleUI::closeBookmarkManagerUI, this)); + m_bookmarkManagerUI->bookmarkItemClicked.connect(boost::bind(&SimpleUI::onBookmarkClicked, this, _1)); + } void SimpleUI::loadModelServices() @@ -247,15 +308,37 @@ void SimpleUI::loadModelServices() (tizen_browser::core::ServiceManager::getInstance().getService("org.tizen.browser.platforminputmanager")); - m_sessionService = std::dynamic_pointer_cast + m_sessionService = + std::dynamic_pointer_cast (tizen_browser::core::ServiceManager::getInstance().getService("org.tizen.browser.sessionStorageService")); } void SimpleUI::initUIServices() { - m_webPageUI->init(m_window.get()); + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + M_ASSERT (m_viewManager); + + M_ASSERT(m_webPageUI.get()); + m_webPageUI->init(m_viewManager->getContent()); + + M_ASSERT(m_mainUI.get()); m_mainUI->init(m_webPageUI->getContent()); + + M_ASSERT(m_tabUI.get()); + m_tabUI->init(m_viewManager->getContent()); + + M_ASSERT(m_historyUI.get()); + m_historyUI->init(m_viewManager->getContent()); + + M_ASSERT(m_moreMenuUI.get()); + m_moreMenuUI->init(m_viewManager->getContent()); + + M_ASSERT(m_settingsUI.get()); + m_settingsUI->init(m_viewManager->getContent()); + + M_ASSERT(m_bookmarkManagerUI.get()); + m_bookmarkManagerUI->init(m_viewManager->getContent()); } void SimpleUI::initModelServices() @@ -282,8 +365,8 @@ void SimpleUI::connectModelSignals() m_webEngine->uriChanged.connect(boost::bind(&URIEntry::changeUri, &m_webPageUI->getURIEntry(), _1)); m_webEngine->uriOnTabChanged.connect(boost::bind(&SimpleUI::checkTabId,this,_1)); m_webEngine->webViewClicked.connect(boost::bind(&URIEntry::clearFocus, &m_webPageUI->getURIEntry())); - m_webEngine->backwardEnableChanged.connect(boost::bind(&SimpleUI::backEnable, this, _1)); - m_webEngine->forwardEnableChanged.connect(boost::bind(&SimpleUI::forwardEnable, this, _1)); + m_webEngine->backwardEnableChanged.connect(boost::bind(&WebPageUI::setBackButtonEnabled, m_webPageUI.get(), _1)); + m_webEngine->forwardEnableChanged.connect(boost::bind(&WebPageUI::setForwardButtonEnabled, m_webPageUI.get(), _1)); m_webEngine->loadStarted.connect(boost::bind(&SimpleUI::loadStarted, this)); m_webEngine->loadProgress.connect(boost::bind(&SimpleUI::progressChanged,this,_1)); m_webEngine->loadFinished.connect(boost::bind(&SimpleUI::loadFinished, this)); @@ -293,6 +376,9 @@ void SimpleUI::connectModelSignals() m_webEngine->tabCreated.connect(boost::bind(&SimpleUI::tabCreated, this)); m_webEngine->tabClosed.connect(boost::bind(&SimpleUI::tabClosed,this,_1)); m_webEngine->IMEStateChanged.connect(boost::bind(&SimpleUI::setwvIMEStatus, this, _1)); + m_webEngine->favIconChanged.connect(boost::bind(&MoreMenuUI::setFavIcon, m_moreMenuUI.get(), _1)); + m_webEngine->titleChanged.connect(boost::bind(&MoreMenuUI::setWebTitle, m_moreMenuUI.get(), _1)); + m_webEngine->uriChanged.connect(boost::bind(&MoreMenuUI::setURL, m_moreMenuUI.get(), _1)); m_favoriteService->bookmarkAdded.connect(boost::bind(&SimpleUI::onBookmarkAdded, this,_1)); m_favoriteService->bookmarkDeleted.connect(boost::bind(&SimpleUI::onBookmarkRemoved, this, _1)); @@ -333,27 +419,17 @@ void SimpleUI::connectActions() { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); m_settingPrivateBrowsing->toggled.connect(boost::bind(&SimpleUI::settingsPrivateModeSwitch, this, _1)); - - //left bar - m_webPageUI->backPage.connect(boost::bind(&tizen_browser::basic_webengine::AbstractWebEngine::back, m_webEngine.get())); - m_webPageUI->backPage.connect(boost::bind(&SimpleUI::switchViewToWebPage, this)); - m_webPageUI->forwardPage.connect(boost::bind(&tizen_browser::basic_webengine::AbstractWebEngine::forward, m_webEngine.get())); - m_webPageUI->stopLoadingPage.connect(boost::bind(&tizen_browser::basic_webengine::AbstractWebEngine::stopLoading, m_webEngine.get())); - m_webPageUI->reloadPage.connect(boost::bind(&tizen_browser::basic_webengine::AbstractWebEngine::reload, m_webEngine.get())); - m_webPageUI->reloadPage.connect(boost::bind(&SimpleUI::switchViewToWebPage, this)); - - //right bar - m_webPageUI->showTabUI.connect(boost::bind(&SimpleUI::showTabUI, this)); - m_webPageUI->showMoreMenu.connect(boost::bind(&SimpleUI::showMoreMenu, this)); } void SimpleUI::switchViewToWebPage() { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - M_ASSERT(m_webPageUI); - M_ASSERT(m_mainUI); + M_ASSERT(m_mainUI.get()); + M_ASSERT(m_viewManager); + if(m_webPageUI->isHomePageActive()) - m_mainUI->hide(); + m_mainUI->hideUI(); + m_webPageUI->switchViewToWebPage(m_webEngine->getLayout(), m_webEngine->getURI()); } @@ -378,19 +454,25 @@ bool SimpleUI::isErrorPageActive() return m_webPageUI->isErrorPageActive(); } +void SimpleUI::showMainUI() +{ + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + m_mainUI->showMostVisited(getMostVisitedItems()); + m_mainUI->showUI(); +} + void SimpleUI::switchViewToQuickAccess() { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if(m_webPageUI->isHomePageActive()) - return; + M_ASSERT(m_viewManager); + m_viewManager->popStackTo(m_webPageUI.get()); m_webPageUI->switchViewToQuickAccess(m_mainUI->getContent()); m_webEngine->disconnectCurrentWebViewSignals(); - m_mainUI->showMostVisited(getMostVisitedItems()); } void SimpleUI::checkTabId(const tizen_browser::basic_webengine::TabId& id){ - BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__); + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); if(m_webEngine->currentTabId() != id || isErrorPageActive()){ BROWSER_LOGD("URL changed on non-visible tab, updating browser view"); switchToTab(id); @@ -399,18 +481,20 @@ void SimpleUI::checkTabId(const tizen_browser::basic_webengine::TabId& id){ void SimpleUI::openNewTab(const std::string &uri, bool desktopMode) { + BROWSER_LOGD("[%s:%d] uri =%s", __PRETTY_FUNCTION__, __LINE__, uri.c_str()); switchToTab(m_webEngine->addTab(uri, nullptr, desktopMode)); } -void SimpleUI::closeTab(){ - BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__); +void SimpleUI::closeTab() +{ + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); auto tabId = m_webEngine->currentTabId(); closeTab(tabId); } void SimpleUI::closeTab(const tizen_browser::basic_webengine::TabId& id) { - BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__); + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); m_currentSession.removeItem(id.toString()); m_webEngine->closeTab(id); updateView(); @@ -418,6 +502,7 @@ void SimpleUI::closeTab(const tizen_browser::basic_webengine::TabId& id) bool SimpleUI::checkBookmark() { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); if (m_webPageUI->isHomePageActive()) return false; @@ -455,16 +540,8 @@ void SimpleUI::onHistoryAdded(std::shared_ptr historyItem, bool desktopMode) { BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__); + m_viewManager->popStackTo(m_webPageUI.get()); std::string historyAddress = historyItem->getUrl(); - if(m_historyUI) { // TODO: remove this section when naviframes will be available - m_historyUI->clearItems(); - closeHistoryUI(); - } - - if(m_moreMenuUI) { // TODO: remove this section when naviframes will be available - m_moreMenuUI->clearItems(); - closeMoreMenu(std::string()); - } openNewTab(historyAddress, desktopMode); } @@ -474,53 +551,33 @@ void SimpleUI::onMostVisitedTileClicked(std::shared_ptr< services::HistoryItem > m_mainUI->openDetailPopup(historyItem, m_historyService->getHistoryItemsByURL(historyItem->getUrl(), itemsNumber)); } -void SimpleUI::onClearHistoryClicked(const std::string&) +void SimpleUI::onClearHistoryClicked() { BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__); m_historyService->clearAllHistory(); - m_historyUI.reset(); } -void SimpleUI::onMostVisitedClicked(const std::string&) +void SimpleUI::onMostVisitedClicked() { - BROWSER_LOGD("[%s]", __func__); + BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__); m_mainUI->showMostVisited(getMostVisitedItems()); } -void SimpleUI::onBookmarkButtonClicked(const std::string&) +void SimpleUI::onBookmarkButtonClicked() { - BROWSER_LOGD("[%s]", __func__); + BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__); m_mainUI->showBookmarks(getBookmarks()); } -void SimpleUI::onBookmarkManagerButtonClicked(const std::string&) -{ - BROWSER_LOGD("[%s]", __func__); - m_mainUI->hide(); - - if(m_moreMenuUI) { // TODO: remove this section when naviframes will be available - m_moreMenuUI->clearItems(); - } - - showBookmarkManagerMenu(); -} - void SimpleUI::onBookmarkClicked(std::shared_ptr bookmarkItem) { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + M_ASSERT(m_viewManager); + m_viewManager->popStackTo(m_webPageUI.get()); std::string bookmarkAddress = bookmarkItem->getAddress(); - if(m_bookmarkManagerUI) { // TODO: remove this section when naviframes will be available - m_bookmarkManagerUI->clearItems(); - closeBookmarkManagerMenu(std::string()); - } - - if(m_moreMenuUI) { // TODO: remove this section when naviframes will be available - m_moreMenuUI->clearItems(); - closeMoreMenu(std::string()); - } openNewTab(bookmarkAddress); } -// Consider removing these functions void SimpleUI::onHistoryRemoved(const std::string& uri) { @@ -532,7 +589,6 @@ void SimpleUI::onReturnPressed(MenuButton *m) BROWSER_LOGD("[%s]", __func__); m_platformInputManager->returnPressed.disconnect_all_slots(); m_platformInputManager->returnPressed.connect(boost::bind(&elm_exit)); - hidePopup.disconnect_all_slots(); m->hidePopup(); } @@ -549,16 +605,6 @@ void SimpleUI::onBackPressed() m_webEngine->backButtonClicked(); } -void SimpleUI::backEnable(bool enable) -{ - m_webPageUI->setBackButtonEnabled(enable); -} - -void SimpleUI::forwardEnable(bool enable) -{ - m_webPageUI->setForwardButtonEnabled(enable); -} - void SimpleUI::reloadEnable(bool enable) { m_webPageUI->setReloadButtonEnabled(enable); @@ -655,40 +701,35 @@ void SimpleUI::webEngineURLChanged(const std::string url) void SimpleUI::showTabUI() { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - m_tabUI = std::dynamic_pointer_cast - (tizen_browser::core::ServiceManager::getInstance().getService("org.tizen.browser.tabui")); - M_ASSERT(m_tabUI); - m_tabUI->closeTabUIClicked.connect(boost::bind(&SimpleUI::closeTabUI, this,_1)); - m_tabUI->newTabClicked.connect(boost::bind(&SimpleUI::newTabClicked, this,_1)); - m_tabUI->tabClicked.connect(boost::bind(&SimpleUI::tabClicked, this,_1)); - m_tabUI->closeTabsClicked.connect(boost::bind(&SimpleUI::closeTabsClicked, this,_1)); - m_tabUI->newIncognitoTabClicked.connect(boost::bind(&SimpleUI::newTabClicked, this,_1)); - m_tabUI->tabsCount.connect(boost::bind(&SimpleUI::tabsCount, this)); - m_tabUI->show(m_window.get()); + M_ASSERT(m_viewManager); + m_viewManager->pushViewToStack(m_tabUI.get()); m_tabUI->addTabItems(m_webEngine->getTabContents()); } -void SimpleUI::closeTabUI(const std::string& str) +void SimpleUI::closeTabUI() { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - m_tabUI = nullptr; + M_ASSERT(m_viewManager); + if (m_viewManager->topOfStack() == m_tabUI.get()) + m_viewManager->popTheStack(); } -void SimpleUI::newTabClicked(const std::string& str) +void SimpleUI::newTabClicked() { - BROWSER_LOGD("%s", __func__); + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); switchViewToQuickAccess(); } void SimpleUI::tabClicked(const tizen_browser::basic_webengine::TabId& tabId) { - BROWSER_LOGD("%s", __func__); + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + m_viewManager->popStackTo(m_webPageUI.get()); switchToTab(tabId); } void SimpleUI::closeTabsClicked(const tizen_browser::basic_webengine::TabId& tabId) { - BROWSER_LOGD("%s", __func__); + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); m_webEngine->closeTab(tabId); } @@ -710,7 +751,7 @@ void SimpleUI::handleConfirmationRequest(basic_webengine::WebConfirmationPtr web std::string edjFilePath = EDJE_DIR; edjFilePath.append("SimpleUI/AuthenticationPopup.edj"); Eina_Bool layoutSetResult = elm_layout_file_set(popup_content, edjFilePath.c_str(), "authentication_popup"); - if(!layoutSetResult) + if (!layoutSetResult) throw std::runtime_error("Layout file not found: " + edjFilePath); #if PLATFORM(TIZEN) @@ -782,127 +823,65 @@ void SimpleUI::authPopupButtonClicked(PopupButtons button, std::shared_ptr - (tizen_browser::core::ServiceManager::getInstance().getService("org.tizen.browser.historyui")); - M_ASSERT(m_historyUI); - m_historyUI->clearHistoryClicked.connect(boost::bind(&SimpleUI::onClearHistoryClicked, this,_1)); - m_historyUI->closeHistoryUIClicked.connect(boost::bind(&SimpleUI::closeHistoryUI, this)); - m_historyUI->historyItemClicked.connect(boost::bind(&SimpleUI::onOpenURLInNewTab, this, _1, true)); // desktop mode as default - m_historyUI->addHistoryItems(getHistory()); - m_historyUI->show(m_window.get()); - } + M_ASSERT(m_viewManager); + m_viewManager->pushViewToStack(m_historyUI.get()); + m_historyUI->addHistoryItems(getHistory()); } void SimpleUI::closeHistoryUI() { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - m_historyUI->clearHistoryClicked.disconnect(boost::bind(&SimpleUI::onClearHistoryClicked, this,_1)); - m_historyUI->closeHistoryUIClicked.disconnect(boost::bind(&SimpleUI::closeHistoryUI, this)); - m_historyUI->historyItemClicked.disconnect(boost::bind(&SimpleUI::onOpenURLInNewTab, this, _1, true)); // desktop mode as default - m_historyUI.reset(); - m_moreMenuUI->setFocus(EINA_TRUE); + M_ASSERT(m_viewManager); + if (m_viewManager->topOfStack() == m_historyUI.get()) + m_viewManager->popTheStack(); } -void SimpleUI::showSettingsUI(const std::string& str) +void SimpleUI::showSettingsUI() { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if(!m_settingsUI){ - m_settingsUI = - std::dynamic_pointer_cast - - (tizen_browser::core::ServiceManager::getInstance().getService("org.tizen.browser.settingsui")); - M_ASSERT(m_settingsUI); - m_settingsUI->closeSettingsUIClicked.disconnect_all_slots(); - m_settingsUI->closeSettingsUIClicked.connect(boost::bind(&SimpleUI::closeSettingsUI, this,_1)); - m_settingsUI->deleteSelectedDataClicked.disconnect_all_slots(); - m_settingsUI->deleteSelectedDataClicked.connect(boost::bind(&SimpleUI::settingsDeleteSelectedData, this,_1)); - m_settingsUI->resetMostVisitedClicked.disconnect_all_slots(); - m_settingsUI->resetMostVisitedClicked.connect(boost::bind(&SimpleUI::settingsResetMostVisited, this,_1)); - m_settingsUI->resetBrowserClicked.disconnect_all_slots(); - m_settingsUI->resetBrowserClicked.connect(boost::bind(&SimpleUI::settingsResetBrowser, this,_1)); - m_settingsUI->show(m_window.get()); - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - } + M_ASSERT(m_viewManager); + m_viewManager->pushViewToStack(m_settingsUI.get()); } -void SimpleUI::closeSettingsUI(const std::string& str) +void SimpleUI::closeSettingsUI() { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - m_settingsUI.reset(); - m_moreMenuUI->setFocus(EINA_TRUE); + M_ASSERT(m_viewManager); + if (m_viewManager->topOfStack() == m_settingsUI.get()) + m_viewManager->popTheStack(); } void SimpleUI::showMoreMenu() { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - bool desktopMode = m_webPageUI->isHomePageActive() ? m_mainUI->isDesktopMode() : m_webEngine->isDesktopMode(); - if(!m_moreMenuUI){ - m_moreMenuUI = - std::dynamic_pointer_cast - - (tizen_browser::core::ServiceManager::getInstance().getService("org.tizen.browser.moremenuui")); - M_ASSERT(m_moreMenuUI); - m_webEngine->favIconChanged.connect(boost::bind(&MoreMenuUI::setFavIcon, m_moreMenuUI.get(), _1)); - m_webEngine->titleChanged.connect(boost::bind(&MoreMenuUI::setWebTitle, m_moreMenuUI.get(), _1)); - m_webEngine->uriChanged.connect(boost::bind(&MoreMenuUI::setURL, m_moreMenuUI.get(), _1)); - m_moreMenuUI->bookmarkManagerClicked.connect(boost::bind(&SimpleUI::onBookmarkManagerButtonClicked, this, _1)); - m_moreMenuUI->historyUIClicked.connect(boost::bind(&SimpleUI::showHistoryUI, this,_1)); - m_moreMenuUI->settingsClicked.connect(boost::bind(&SimpleUI::showSettingsUI, this,_1)); - m_moreMenuUI->closeMoreMenuClicked.connect(boost::bind(&SimpleUI::closeMoreMenu, this,_1)); - m_moreMenuUI->switchToMobileMode.connect(boost::bind(&SimpleUI::switchToMobileMode, this)); - m_moreMenuUI->switchToDesktopMode.connect(boost::bind(&SimpleUI::switchToDesktopMode, this)); - m_moreMenuUI->addToBookmarkClicked.connect(boost::bind(&SimpleUI::addToBookmarks, this, _1)); - m_moreMenuUI->isBookmark.connect(boost::bind(&SimpleUI::checkBookmark, this)); - m_moreMenuUI->deleteBookmark.connect(boost::bind(&SimpleUI::deleteBookmark, this)); - - m_moreMenuUI->show(m_window.get(), desktopMode); - m_moreMenuUI->showCurrentTab(); - - if(!m_webPageUI->isHomePageActive()) { - m_moreMenuUI->setFavIcon(m_webEngine->getFavicon()); - m_moreMenuUI->setWebTitle(m_webEngine->getTitle()); - m_moreMenuUI->setURL(m_webEngine->getURI()); - } - else { - m_moreMenuUI->setHomePageInfo(); - } + M_ASSERT(m_viewManager); - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + bool desktopMode = m_webPageUI->isHomePageActive() ? m_mainUI->isDesktopMode() : m_webEngine->isDesktopMode(); + m_moreMenuUI->setDesktopMode(desktopMode); + m_viewManager->pushViewToStack(m_moreMenuUI.get()); + m_moreMenuUI->showCurrentTab(); + + if(!m_webPageUI->isHomePageActive()) { + m_moreMenuUI->setFavIcon(m_webEngine->getFavicon()); + m_moreMenuUI->setWebTitle(m_webEngine->getTitle()); + m_moreMenuUI->setURL(m_webEngine->getURI()); + } + else { + m_moreMenuUI->setHomePageInfo(); } } -void SimpleUI::closeMoreMenu(const std::string& str) +void SimpleUI::closeMoreMenu() { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - m_webEngine->favIconChanged.disconnect(boost::bind(&MoreMenuUI::setFavIcon, m_moreMenuUI.get(), _1)); - m_webEngine->titleChanged.disconnect(boost::bind(&MoreMenuUI::setWebTitle, m_moreMenuUI.get(), _1)); - m_webEngine->uriChanged.disconnect(boost::bind(&MoreMenuUI::setURL, m_moreMenuUI.get(), _1)); - m_moreMenuUI->bookmarkManagerClicked.disconnect(boost::bind(&SimpleUI::onBookmarkManagerButtonClicked, this, _1)); - m_moreMenuUI->historyUIClicked.disconnect(boost::bind(&SimpleUI::showHistoryUI, this,_1)); - m_moreMenuUI->settingsClicked.disconnect(boost::bind(&SimpleUI::showSettingsUI, this,_1)); - m_moreMenuUI->closeMoreMenuClicked.disconnect(boost::bind(&SimpleUI::closeMoreMenu, this,_1)); - m_moreMenuUI->switchToMobileMode.disconnect(boost::bind(&SimpleUI::switchToMobileMode, this)); - m_moreMenuUI->switchToDesktopMode.disconnect(boost::bind(&SimpleUI::switchToDesktopMode, this)); - m_moreMenuUI->addToBookmarkClicked.disconnect(boost::bind(&SimpleUI::addToBookmarks, this, _1)); - m_moreMenuUI->isBookmark.disconnect(boost::bind(&SimpleUI::checkBookmark, this)); - m_moreMenuUI->deleteBookmark.disconnect(boost::bind(&SimpleUI::deleteBookmark, this)); - m_moreMenuUI.reset(); - - // TODO: temporary showing proper view untin VieManger will be available - if (m_webPageUI->isHomePageActive()) { - m_webPageUI->switchViewToQuickAccess(m_mainUI->getContent()); - m_webEngine->disconnectCurrentWebViewSignals(); - m_mainUI->showMostVisited(getMostVisitedItems()); - } - else { - switchViewToWebPage(); - } + M_ASSERT(m_viewManager); + if (m_viewManager->topOfStack() == m_moreMenuUI.get()) + m_viewManager->popTheStack(); + else + BROWSER_LOGD("[%s:%d] WARNING!!! closeMoreMenu is not topOfStack", __PRETTY_FUNCTION__, __LINE__); } void SimpleUI::switchToMobileMode() @@ -910,6 +889,7 @@ void SimpleUI::switchToMobileMode() BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); if (!m_webPageUI->isHomePageActive()) { m_webEngine->switchToMobileMode(); + m_viewManager->popStackTo(m_webPageUI.get()); m_webEngine->reload(); } else { m_mainUI->setDesktopMode(false); @@ -927,45 +907,20 @@ void SimpleUI::switchToDesktopMode() } } -void SimpleUI::showBookmarkManagerMenu() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if(!m_bookmarkManagerUI){ - m_bookmarkManagerUI = - std::dynamic_pointer_cast - - (tizen_browser::core::ServiceManager::getInstance().getService("org.tizen.browser.bookmarkmanagerui")); - M_ASSERT(m_bookmarkManagerUI); - m_bookmarkManagerUI->closeBookmarkManagerClicked.connect(boost::bind(&SimpleUI::closeBookmarkManagerMenu, this,_1)); - m_bookmarkManagerUI->bookmarkItemClicked.connect(boost::bind(&SimpleUI::onBookmarkClicked, this, _1)); - m_bookmarkManagerUI->show(m_window.get()); - m_bookmarkManagerUI->addBookmarkItems(getBookmarks(ROOT_FOLDER)); - m_bookmarkManagerUI->showTopContent(); - } -} - -void SimpleUI::closeBookmarkManagerMenu(const std::string& str) +void SimpleUI::showBookmarkManagerUI() { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - m_bookmarkManagerUI->closeBookmarkManagerClicked.disconnect(boost::bind(&SimpleUI::closeBookmarkManagerMenu, this,_1)); - m_bookmarkManagerUI->bookmarkItemClicked.disconnect(boost::bind(&SimpleUI::onBookmarkClicked, this, _1)); - m_bookmarkManagerUI.reset(); - - if(m_moreMenuUI) { - closeMoreMenu(std::string()); - showMoreMenu(); - } - - if(m_mainUI) { - m_mainUI->showBookmarks(getBookmarks()); - } - m_moreMenuUI->setFocus(EINA_TRUE); + M_ASSERT(m_viewManager); + m_viewManager->pushViewToStack(m_bookmarkManagerUI.get()); + m_bookmarkManagerUI->addBookmarkItems(getBookmarks(ROOT_FOLDER)); } -void SimpleUI::hideHistory() +void SimpleUI::closeBookmarkManagerUI() { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - hidePopup(); + M_ASSERT(m_viewManager); + if (m_viewManager->topOfStack() == m_bookmarkManagerUI.get()) + m_viewManager->popTheStack(); } void SimpleUI::settingsPointerModeSwitch(bool newState) @@ -997,7 +952,7 @@ void SimpleUI::settingsDeleteSelectedData(const std::string& str) void SimpleUI::onDeleteSelectedDataButton(PopupButtons button, std::shared_ptr< PopupData > popupData) { - if(button == OK){ + if (button == OK) { BROWSER_LOGD("[%s]: OK", __func__); std::string dataText = std::static_pointer_cast(popupData)->text; BROWSER_LOGD("[%s]: TYPE : %s", __func__, dataText.c_str()); @@ -1010,7 +965,7 @@ void SimpleUI::onDeleteSelectedDataButton(PopupButtons button, std::shared_ptr< } } -void SimpleUI::settingsResetMostVisited(const std::string& str) +void SimpleUI::settingsResetMostVisited() { BROWSER_LOGD("[%s]: Deleting Hisory", __func__); SimplePopup *popup = SimplePopup::createPopup(); @@ -1024,13 +979,13 @@ void SimpleUI::settingsResetMostVisited(const std::string& str) void SimpleUI::onDeleteMostVisitedButton(PopupButtons button, std::shared_ptr< PopupData > /*popupData*/) { - if(button == OK){ + if (button == OK) { BROWSER_LOGD("[%s]: OK", __func__); BROWSER_LOGD("[%s]: Deleting most visited", __func__); } } -void SimpleUI::settingsResetBrowser(const std::string& str) +void SimpleUI::settingsResetBrowser() { BROWSER_LOGD("[%s]: Deleting Hisory", __func__); SimplePopup *popup = SimplePopup::createPopup(); @@ -1044,7 +999,7 @@ void SimpleUI::settingsResetBrowser(const std::string& str) void SimpleUI::onResetBrowserButton(PopupButtons button, std::shared_ptr< PopupData > /*popupData*/) { - if(button == OK){ + if (button == OK) { BROWSER_LOGD("[%s]: OK", __func__); BROWSER_LOGD("[%s]: Resetting browser", __func__); } @@ -1052,7 +1007,7 @@ void SimpleUI::onResetBrowserButton(PopupButtons button, std::shared_ptr< PopupD void SimpleUI::tabLimitPopupButtonClicked(PopupButtons button, std::shared_ptr< PopupData > /*popupData*/) { - if(button == CLOSE_TAB){ + if (button == CLOSE_TAB) { BROWSER_LOGD("[%s]: CLOSE TAB", __func__); closeTab(); } @@ -1062,7 +1017,7 @@ void SimpleUI::tabCreated() { int tabs = m_webEngine->tabsCount(); - if(tabs > m_tabLimit) + if (tabs > m_tabLimit) { SimplePopup *popup = SimplePopup::createPopup(); popup->setTitle("Too many tabs open"); @@ -1093,7 +1048,7 @@ void SimpleUI::tabClosed(const tizen_browser::basic_webengine::TabId& id) { void SimpleUI::onNetworkError() { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if(!m_networkErrorPopup){ + if (!m_networkErrorPopup) { m_networkErrorPopup = SimplePopup::createPopup(); m_networkErrorPopup->setTitle("Network Error"); m_networkErrorPopup->addButton(CONNECT); @@ -1109,14 +1064,6 @@ void SimpleUI::onNetErrorButtonPressed(PopupButtons, std::shared_ptr< PopupData m_networkErrorPopup = 0; } -void SimpleUI::onNetworkConnected() -{ - if(m_networkErrorPopup){ - delete m_networkErrorPopup; - m_networkErrorPopup = 0; - } -} - void SimpleUI::searchWebPage(std::string &text, int flags) { m_webEngine->searchOnWebsite(text, flags); @@ -1127,7 +1074,7 @@ void SimpleUI::addToBookmarks(int folder_id) BROWSER_LOGD("[%s,%d],", __func__, __LINE__); if (m_favoriteService) { - if( m_webEngine && !m_webEngine->getURI().empty()) + if (m_webEngine && !m_webEngine->getURI().empty()) { m_favoriteService->addToBookmarks(m_webEngine->getURI(), m_webEngine->getTitle(), std::string(), m_webEngine->getSnapshotData(373, 240), diff --git a/services/SimpleUI/SimpleUI.h b/services/SimpleUI/SimpleUI.h index a889e3f..251ed47 100644 --- a/services/SimpleUI/SimpleUI.h +++ b/services/SimpleUI/SimpleUI.h @@ -52,6 +52,7 @@ #include "WebConfirmation.h" #include "BookmarksManager.h" #include "Config.h" +#include "ViewManager.h" namespace tizen_browser{ namespace base_ui{ @@ -86,7 +87,6 @@ private: Evas_Object* createErrorLayout(Evas_Object* parent); - void backEnable(bool enable); void forwardEnable(bool enable); void stopEnable(bool enable); void reloadEnable(bool enable); @@ -107,13 +107,14 @@ private: void bookmarkAdded(); void bookmarkDeleted(); + void showMainUI(); void switchViewToQuickAccess(); void switchViewToWebPage(); void updateView(); void openNewTab(const std::string &uri, bool desktopMode = true); void switchToTab(const tizen_browser::basic_webengine::TabId& tabId); - void newTabClicked(const std::string &); + void newTabClicked(); void tabClicked(const tizen_browser::basic_webengine::TabId& tabId); void closeTabsClicked(const tizen_browser::basic_webengine::TabId& tabId); void tabCreated(); @@ -133,11 +134,10 @@ private: void onHistoryRemoved(const std::string& uri); void onOpenURLInNewTab(std::shared_ptr historyItem, bool desktopMode); void onMostVisitedTileClicked(std::shared_ptr historyItem, int itemsNumber); - void onClearHistoryClicked(const std::string&); + void onClearHistoryClicked(); - void onMostVisitedClicked(const std::string&); - void onBookmarkButtonClicked(const std::string&); - void onBookmarkManagerButtonClicked(const std::string&); + void onMostVisitedClicked(); + void onBookmarkButtonClicked(); void handleConfirmationRequest(basic_webengine::WebConfirmationPtr webConfirmation); void authPopupButtonClicked(PopupButtons button, std::shared_ptr popupData); @@ -199,25 +199,21 @@ private: */ void deleteBookmark(void); - void showHistory(); - void hideHistory(); - void showTabUI(); - void closeTabUI(const std::string& str); + void closeTabUI(); void showMoreMenu(); - void closeMoreMenu(const std::string& str); + void closeMoreMenu(); void switchToMobileMode(); void switchToDesktopMode(); - void showHistoryUI(const std::string& str); + void showHistoryUI(); void closeHistoryUI(); void showURIBar(); void hideURIBar(); void hideSettingsMenu(); - void showSettingsUI(const std::string&); - void closeSettingsUI(const std::string&); - - void closeBookmarkManagerMenu(const std::string& str); - void showBookmarkManagerMenu(); + void showSettingsUI(); + void closeSettingsUI(); + void closeBookmarkManagerUI(); + void showBookmarkManagerUI(); void showPopup(Evas_Object *content, char* btn1_text, char* btn2_text); @@ -229,8 +225,8 @@ private: void settingsDeleteData(); void settingsDeleteFavorite(); void settingsDeleteSelectedData(const std::string& str); - void settingsResetMostVisited(const std::string& str); - void settingsResetBrowser(const std::string& str); + void settingsResetMostVisited(); + void settingsResetBrowser(); void onDeleteSelectedDataButton(PopupButtons button, std::shared_ptr popupData); void onDeleteMostVisitedButton(PopupButtons button, std::shared_ptr popupData); void onResetBrowserButton(PopupButtons button, std::shared_ptr popupData); @@ -241,14 +237,11 @@ private: int tabsCount(); void onNetworkError(); - void onNetworkConnected(); void onNetErrorButtonPressed(PopupButtons, std::shared_ptr); void onReturnPressed(MenuButton *m); void onBackPressed(); - boost::signals2::signal hidePopup; - std::string edjePath(const std::string &); Evas_Object *m_popup; @@ -274,6 +267,10 @@ private: int m_tabLimit; int m_favoritesLimit; bool m_wvIMEStatus; + + //helper object used to view management + ViewManager* m_viewManager; + // This context object is used to implicitly init internal ewk data used by opengl to create the first and // consecutive webviews in the application, otherwise we would encounter a crash after creating // the first web view diff --git a/services/SimpleUI/ViewManager.cpp b/services/SimpleUI/ViewManager.cpp index ca45d1a..2ccb448 100644 --- a/services/SimpleUI/ViewManager.cpp +++ b/services/SimpleUI/ViewManager.cpp @@ -22,6 +22,9 @@ */ #include +#include +#include +#include #include "ViewManager.h" #include "core/BrowserLogger.h" @@ -31,16 +34,22 @@ namespace tizen_browser{ namespace base_ui{ ViewManager::ViewManager(Evas_Object* parentWindow) - :m_mainLayout(nullptr) - ,m_previousTop(nullptr) + : m_mainLayout(nullptr) + , m_parentWindow(parentWindow) { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); M_ASSERT(parentWindow); m_mainLayout = elm_layout_add(parentWindow); evas_object_size_hint_weight_set(m_mainLayout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set (m_mainLayout, EVAS_HINT_FILL, EVAS_HINT_FILL); - if(!elm_object_style_set (m_mainLayout,"content-back")) - BROWSER_LOGD("[%s:%d] elm_object_style_set falied.",__PRETTY_FUNCTION__, __LINE__); + + Eina_Bool ret = elm_layout_file_set(m_mainLayout, + (std::string(EDJE_DIR) + + std::string("SimpleUI/ViewManager.edj")).c_str(), + "main_layout"); + if (!ret) + BROWSER_LOGD("[%s:%d] elm_layout_file_set falied !!!",__PRETTY_FUNCTION__, __LINE__); + elm_win_resize_object_add(parentWindow, m_mainLayout); evas_object_show(m_mainLayout); } @@ -49,17 +58,14 @@ void ViewManager::popStackTo(interfaces::AbstractUIComponent* view) { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); M_ASSERT(view); + interfaces::AbstractUIComponent* previousView = m_viewStack.top(); - if(!m_viewStack.empty()) - m_previousTop = m_viewStack.top(); - - while(!m_viewStack.empty()) + while(!m_viewStack.empty() && m_viewStack.top() != view) { - if (m_viewStack.top() == view) - break; m_viewStack.pop(); } - updateLayout(); + updateLayout(previousView); + BROWSER_LOGD("[%s:%d] new top: %p", __PRETTY_FUNCTION__, __LINE__, topOfStack()); } void ViewManager::popTheStack() @@ -67,26 +73,35 @@ void ViewManager::popTheStack() BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); if(!m_viewStack.empty()) { - m_previousTop = m_viewStack.top(); + interfaces::AbstractUIComponent* previousView = m_viewStack.top(); m_viewStack.pop(); - updateLayout(); + updateLayout(previousView); } + BROWSER_LOGD("[%s:%d] new top: %p", __PRETTY_FUNCTION__, __LINE__, topOfStack()); } void ViewManager::pushViewToStack(interfaces::AbstractUIComponent* view) { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + M_ASSERT(view); + if (topOfStack() == view) + { + BROWSER_LOGD("[%s:%d] View %p is already on stack !!!", + __PRETTY_FUNCTION__, __LINE__, view); + return; + } + interfaces::AbstractUIComponent* previousView = topOfStack(); m_viewStack.push(view); - updateLayout(); + updateLayout(previousView); + BROWSER_LOGD("[%s:%d] new top: %p", __PRETTY_FUNCTION__, __LINE__, topOfStack()); } -void ViewManager::updateLayout() +void ViewManager::updateLayout(interfaces::AbstractUIComponent* previousView) { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - Evas_Object* swallowed = elm_layout_content_get(m_mainLayout, "elm.swallow.content"); - + Evas_Object* swallowed = elm_layout_content_get(m_mainLayout, "content"); if (!m_viewStack.empty()) { if (m_viewStack.top()->getContent() == swallowed) @@ -95,20 +110,21 @@ void ViewManager::updateLayout() __PRETTY_FUNCTION__, __LINE__); return; } - if(m_previousTop) - m_previousTop->hideUI(); - elm_layout_content_unset(m_mainLayout, "elm.swallow.content"); - elm_layout_content_set(m_mainLayout, "elm.swallow.content", m_viewStack.top()->getContent()); + if(previousView) + previousView->hideUI(); + elm_layout_content_unset(m_mainLayout, "content"); + elm_layout_content_set(m_mainLayout, "content", m_viewStack.top()->getContent()); + m_viewStack.top()->showUI(); } else { BROWSER_LOGD("[%s:%d] Stack is empty!!!",__PRETTY_FUNCTION__, __LINE__); - if(m_previousTop) - m_previousTop->hideUI(); + if(previousView) + previousView->hideUI(); - elm_layout_content_unset(m_mainLayout, "elm.swallow.content"); - elm_layout_content_set(m_mainLayout, "elm.swallow.content", nullptr); + elm_layout_content_unset(m_mainLayout, "content"); + elm_layout_content_set(m_mainLayout, "content", nullptr); } } @@ -118,5 +134,14 @@ Evas_Object* ViewManager::getContent() return m_mainLayout; } + +interfaces::AbstractUIComponent* ViewManager::topOfStack() +{ + if(!m_viewStack.empty()) + return m_viewStack.top(); + else + return nullptr; +} + }//namespace base_ui }//names1pace tizen_browser diff --git a/services/SimpleUI/ViewManager.h b/services/SimpleUI/ViewManager.h index 06d385d..e97fa24 100644 --- a/services/SimpleUI/ViewManager.h +++ b/services/SimpleUI/ViewManager.h @@ -79,12 +79,20 @@ public: */ Evas_Object* getContent(); +/** + * @brief Returns actual top of stack which is dispalyed. It stack is empty + * returns null. + * + * @return actual dispalyed view + */ + interfaces::AbstractUIComponent* topOfStack(); + private: - void updateLayout(); + void updateLayout(interfaces::AbstractUIComponent* previousView); private: Evas_Object* m_mainLayout; + Evas_Object* m_parentWindow; std::stack m_viewStack; - interfaces::AbstractUIComponent* m_previousTop; }; }//namespace base_ui diff --git a/services/SimpleUI/edc/ViewManager.edc b/services/SimpleUI/edc/ViewManager.edc new file mode 100644 index 0000000..9365225 --- /dev/null +++ b/services/SimpleUI/edc/ViewManager.edc @@ -0,0 +1,44 @@ + +######################################################################### +# Copyright (c) 2015 Samsung Electronics Co., Ltd. +# +# Licensed under the Apache License, Version 2.0 (the License); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an AS IS BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +########################################################################## + +# +# ViewManager.cpp +# +# Created on: Sep 22, 2015 +# Author: m.lapinski@samsung.com +# + +collections { + group { + name: "main_layout"; + parts { + part { + name: "content"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + visible: 1; + fixed: 1 1; + align: 0.0 0.0; + rel1 { relative: 0.0 0.0; } + rel2 { relative: 1.0 1.0; } + } + } + } + } +} diff --git a/services/TabUI/TabUI.cpp b/services/TabUI/TabUI.cpp index a3e0916..1024bc7 100644 --- a/services/TabUI/TabUI.cpp +++ b/services/TabUI/TabUI.cpp @@ -58,6 +58,7 @@ TabUI::~TabUI() { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); elm_gengrid_item_class_free(m_item_class); + evas_object_del(m_gengrid); } void TabUI::createTabItemClass() @@ -73,24 +74,11 @@ void TabUI::createTabItemClass() } } -void TabUI::show(Evas_Object* parent) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - init(parent); - m_tab_layout = createTabUILayout(m_parent); - showUI(); -} - void TabUI::showUI() { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); M_ASSERT(m_tab_layout); evas_object_show(m_tab_layout); - //regenerate gengrid - m_gengrid = createGengrid(m_tab_layout); - elm_object_part_content_set(m_tab_layout, "tab_gengrid", m_gengrid); - evas_object_show(m_gengrid); - evas_object_show(elm_layout_content_get(m_tab_layout, "action_bar")); evas_object_show(elm_layout_content_get(m_tab_layout, "top_bar")); } @@ -99,12 +87,10 @@ void TabUI::hideUI() { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); M_ASSERT(m_tab_layout); - evas_object_hide(m_tab_layout); - - //delete gengrid - evas_object_del(m_gengrid); - m_gengrid = nullptr; + elm_gengrid_clear(m_gengrid); + m_map_tab_views.clear(); + evas_object_hide(m_tab_layout); evas_object_hide(elm_layout_content_get(m_tab_layout, "action_bar")); evas_object_hide(elm_layout_content_get(m_tab_layout, "top_bar")); } @@ -121,26 +107,29 @@ Evas_Object* TabUI::getContent() BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); M_ASSERT(m_parent); if(!m_tab_layout) - m_tab_layout = createTabUILayout(m_parent); + createTabUILayout(); return m_tab_layout; } -Evas_Object* TabUI::createTabUILayout(Evas_Object* parent) +void TabUI::createTabUILayout() { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + M_ASSERT(m_parent); - Evas_Object* tab_layout = elm_layout_add(parent); - elm_layout_file_set(tab_layout, m_edjFilePath.c_str(), "tab-layout"); - evas_object_size_hint_weight_set(tab_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(tab_layout, EVAS_HINT_FILL, EVAS_HINT_FILL); + m_tab_layout = elm_layout_add(m_parent); + elm_layout_file_set(m_tab_layout, m_edjFilePath.c_str(), "tab-layout"); + evas_object_size_hint_weight_set(m_tab_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(m_tab_layout, EVAS_HINT_FILL, EVAS_HINT_FILL); //Create button bars and put them to layout's swallows - Evas_Object* buttonBar = createTopButtons(tab_layout); - elm_object_part_content_set(tab_layout, "top_bar", buttonBar); + Evas_Object* buttonBar = createTopButtons(m_tab_layout); + elm_object_part_content_set(m_tab_layout, "top_bar", buttonBar); - buttonBar = createActionBar(tab_layout); - elm_object_part_content_set(tab_layout, "action_bar", buttonBar); - return tab_layout; + buttonBar = createActionBar(m_tab_layout); + elm_object_part_content_set(m_tab_layout, "action_bar", buttonBar); + + m_gengrid = createGengrid(m_tab_layout); + elm_object_part_content_set(m_tab_layout, "tab_gengrid", m_gengrid); } Evas_Object* TabUI::createGengrid(Evas_Object* parent) @@ -206,22 +195,12 @@ void TabUI::_close_clicked(void* data, Evas_Object*, void*) BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); if (data) { TabUI * tabUI = static_cast(data); - tabUI->closeTabUIClicked(std::string()); - tabUI->clearItems(); + tabUI->closeTabUIClicked(); tabUI->editMode = false; tabUI->onOtherDevicesSwitch = false; } } -void TabUI::hide() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - evas_object_hide(elm_layout_content_get(m_tab_layout, "action_bar")); - evas_object_hide(elm_layout_content_get(m_tab_layout, "top_bar")); - evas_object_hide(elm_layout_content_get(m_tab_layout, "tab_gengrid")); - evas_object_hide(m_tab_layout); -} - Evas_Object* TabUI::createTopButtons(Evas_Object* parent) { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); @@ -252,8 +231,7 @@ void TabUI::_newtab_clicked(void * data, Evas_Object*, void*) BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); if (data) { TabUI* tabUI = static_cast(data); - tabUI->clearItems(); - tabUI->newTabClicked(std::string()); + tabUI->newTabClicked(); tabUI->editMode = false; tabUI->onOtherDevicesSwitch = false; } @@ -292,14 +270,13 @@ void TabUI::_newincognitotab_clicked(void* data, Evas_Object*, void*) BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); if (data) { TabUI* tabUI = static_cast(data); - tabUI->clearItems(); - tabUI->newIncognitoTabClicked(std::string()); + tabUI->newIncognitoTabClicked(); tabUI->editMode = false; tabUI->onOtherDevicesSwitch = false; } } -void TabUI::_closetabs_clicked(void* data, Evas_Object* obj, void*) +void TabUI::_closetabs_clicked(void* data, Evas_Object*, void*) { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); if (data) { @@ -366,8 +343,6 @@ Evas_Object * TabUI::_tab_grid_content_get(void *data, Evas_Object *obj, const c TabItemData *itemData = static_cast(data); const char *part_name1 = "tab_thumbnail"; static const int part_name1_len = strlen(part_name1); - const char *part_name2 = "tab_thumbButton"; - static const int part_name2_len = strlen(part_name2); if (!strncmp(part_name1, part, part_name1_len)) { if (itemData->item->getThumbnail()) { @@ -389,7 +364,6 @@ void TabUI::_thumbSelected(void *data, Evas_Object*, void*) if (data) { TabItemData *itemData = static_cast(data); if (!itemData->tabUI->editMode) { - itemData->tabUI->clearItems(); itemData->tabUI->tabClicked(itemData->item->getId()); } else { itemData->tabUI->closeTabsClicked(itemData->item->getId()); @@ -398,20 +372,10 @@ void TabUI::_thumbSelected(void *data, Evas_Object*, void*) elm_gengrid_realized_items_update(itemData->tabUI->m_gengrid); int tabsNumber = *(itemData->tabUI->tabsCount()); BROWSER_LOGD("%s:%d %s, items: %d", __FILE__, __LINE__, __func__, tabsNumber); - if (!tabsNumber) - itemData->tabUI->hide(); } } } -void TabUI::clearItems() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - hide(); - elm_gengrid_clear(m_gengrid); - m_map_tab_views.clear(); -} - Evas_Object* TabUI::createNoHistoryLabel() { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); @@ -431,9 +395,10 @@ void TabUI::closeAllTabs() item->tabUI->closeTabsClicked(item->item->getId()); it = elm_gengrid_item_next_get(it); } - hide(); + closeTabUIClicked(); } + void TabUI::setEmptyGengrid(bool setEmpty) { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); @@ -444,7 +409,7 @@ void TabUI::setEmptyGengrid(bool setEmpty) } } -void TabUI::_focus_in(void * data, Evas*, Evas_Object * obj, void * event_info) +void TabUI::_focus_in(void* data, Evas*, Evas_Object*, void* event_info) { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); Evas_Event_Mouse_In* ee = (Evas_Event_Mouse_In*)event_info; diff --git a/services/TabUI/TabUI.h b/services/TabUI/TabUI.h index d650052..7ee21a6 100644 --- a/services/TabUI/TabUI.h +++ b/services/TabUI/TabUI.h @@ -42,21 +42,17 @@ public: void init(Evas_Object *parent); Evas_Object* getContent(); - void show(Evas_Object *parent); virtual std::string getName(); - void clearItems(); - void hide(); - void addTabItem(std::shared_ptr); void addTabItems(std::vector > items); boost::signals2::signal tabClicked; - boost::signals2::signal newTabClicked; - boost::signals2::signal newIncognitoTabClicked; + boost::signals2::signal newTabClicked; + boost::signals2::signal newIncognitoTabClicked; boost::signals2::signal closeTabsClicked; boost::signals2::signal openedTabsClicked; boost::signals2::signal onOtherDevicesClicked; - boost::signals2::signal closeTabUIClicked; + boost::signals2::signal closeTabUIClicked; boost::signals2::signal tabsCount; private: @@ -77,13 +73,14 @@ private: static void _onotherdevices_clicked(void * data, Evas_Object * obj, void * event_info); static void _focus_in(void * data, Evas*, Evas_Object * obj, void * event_info); - Evas_Object* createTabUILayout(Evas_Object* parent); + void createTabUILayout(); Evas_Object* createActionBar(Evas_Object* parent); Evas_Object* createGengrid(Evas_Object* parent); Evas_Object* createTopButtons(Evas_Object* parent); Evas_Object* createNoHistoryLabel(); void createTabItemClass(); void closeAllTabs(); + void addTabItem(std::shared_ptr); Evas_Object *m_tab_layout; Evas_Object *m_gengrid; diff --git a/services/WebPageUI/URIEntry.h b/services/WebPageUI/URIEntry.h index 691701e..b0e8b93 100644 --- a/services/WebPageUI/URIEntry.h +++ b/services/WebPageUI/URIEntry.h @@ -78,6 +78,7 @@ public: bool hasFocus() const; void setDisabled(bool disabled); + void editingCanceled(); private: static void activated(void* data, Evas_Object* obj, void* event_info); @@ -90,8 +91,6 @@ private: static void _uriEntryBtnClicked(void* data, Evas_Object* obj, void* event_info); void editingCompleted(); - void editingCanceled(); - void selectWholeText(); /** diff --git a/services/WebPageUI/WebPageUI.cpp b/services/WebPageUI/WebPageUI.cpp index f80a2e6..38f2bb3 100644 --- a/services/WebPageUI/WebPageUI.cpp +++ b/services/WebPageUI/WebPageUI.cpp @@ -63,12 +63,45 @@ Evas_Object* WebPageUI::getContent() void WebPageUI::showUI() { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + M_ASSERT(m_mainLayout); + evas_object_show(m_mainLayout); + + evas_object_show(elm_object_part_content_get(m_mainLayout, "web_view")); + evas_object_show(m_URIEntry->getContent()); + evas_object_show(elm_object_part_content_get(m_mainLayout, "uri_bar_buttons_left")); + evas_object_show(elm_object_part_content_get(m_mainLayout, "uri_bar_buttons_right")); + + // set custom focus chain + elm_object_focus_custom_chain_unset(m_mainLayout); + elm_object_focus_custom_chain_append(m_mainLayout, m_rightButtonBar->getContent(), NULL); + if (!isHomePageActive()) + elm_object_focus_custom_chain_append(m_mainLayout, m_leftButtonBar->getContent(), NULL); + elm_object_focus_custom_chain_append(m_mainLayout, m_URIEntry->getContent(), NULL); + + if (m_homePageActive) { + m_URIEntry->setFocus(); + showMainUI(); + } else { + elm_object_focus_set(elm_object_part_content_get(m_mainLayout, "web_view"), EINA_TRUE); + } } + void WebPageUI::hideUI() { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + M_ASSERT(m_mainLayout); elm_object_focus_custom_chain_unset(m_mainLayout); + evas_object_hide(m_mainLayout); + + if (m_homePageActive) + hideMainUI(); + + evas_object_hide(elm_object_part_content_get(m_mainLayout, "web_view")); + m_URIEntry->editingCanceled(); + evas_object_hide(m_URIEntry->getContent()); + evas_object_hide(elm_object_part_content_get(m_mainLayout, "uri_bar_buttons_left")); + evas_object_hide(elm_object_part_content_get(m_mainLayout, "uri_bar_buttons_right")); } void WebPageUI::loadStarted() @@ -109,13 +142,6 @@ void WebPageUI::setMainContent(Evas_Object* content) hideWebView(); elm_object_part_content_set(m_mainLayout, "web_view", content); evas_object_show(content); - - // set custom focus chain - elm_object_focus_custom_chain_unset(m_mainLayout); - elm_object_focus_custom_chain_append(m_mainLayout, m_rightButtonBar->getContent(), NULL); - if (!isHomePageActive()) - elm_object_focus_custom_chain_append(m_mainLayout, m_leftButtonBar->getContent(), NULL); - elm_object_focus_custom_chain_append(m_mainLayout, m_URIEntry->getContent(), NULL); } void WebPageUI::switchViewToErrorPage() @@ -130,7 +156,11 @@ void WebPageUI::switchViewToErrorPage() void WebPageUI::switchViewToWebPage(Evas_Object* content, const std::string uri) { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - m_homePageActive = false; + if (m_homePageActive) + { + hideMainUI(); + m_homePageActive = false; + } setMainContent(content); evas_object_show(m_leftButtonBar->getContent()); updateURIBar(uri); @@ -140,8 +170,13 @@ void WebPageUI::switchViewToWebPage(Evas_Object* content, const std::string uri) void WebPageUI::switchViewToQuickAccess(Evas_Object* content) { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + + if (m_homePageActive) + return; + m_homePageActive = true; setMainContent(content); + showMainUI(); m_URIEntry->changeUri(""); m_leftButtonBar->setActionForButton("refresh_stop_button", m_reload); @@ -149,6 +184,7 @@ void WebPageUI::switchViewToQuickAccess(Evas_Object* content) elm_object_signal_emit(m_mainLayout, "shiftback_uri", "ui"); elm_object_signal_emit(m_URIEntry->getContent(), "shiftback_uribg", "ui"); hideProgressBar(); + m_URIEntry->setFocus(); } void WebPageUI::faviconClicked(void* data, Evas_Object*, const char*, const char*) @@ -280,6 +316,7 @@ void WebPageUI::hideProgressBar() void WebPageUI::hideWebView() { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + evas_object_hide(elm_object_part_content_get(m_mainLayout, "web_view")); elm_object_part_content_unset(m_mainLayout, "web_view"); } @@ -322,4 +359,4 @@ void WebPageUI::showMoreMenuConnect() } } // namespace tizen_browser -} // namespace base_ui \ No newline at end of file +} // namespace base_ui diff --git a/services/WebPageUI/WebPageUI.h b/services/WebPageUI/WebPageUI.h index 2a71239..d9fd563 100644 --- a/services/WebPageUI/WebPageUI.h +++ b/services/WebPageUI/WebPageUI.h @@ -60,8 +60,11 @@ public: boost::signals2::signal reloadPage; boost::signals2::signal showTabUI; boost::signals2::signal showMoreMenu; + boost::signals2::signal hideMainUI; + boost::signals2::signal showMainUI; static void faviconClicked(void* data, Evas_Object* obj, const char* emission, const char* source); + private: void createLayout(); void createErrorLayout(); -- 2.7.4 From 3989dbed143eef75c6ca4a9ffbfb05bb8b7693c1 Mon Sep 17 00:00:00 2001 From: Maciej Skrzypkowski Date: Mon, 28 Sep 2015 08:54:23 +0200 Subject: [PATCH 11/16] Removed dead code from SimpleUI [Issue#:] https://bugs.tizen.org/jira/browse/TT-157 [Problem:] SimpleUI contains dead code. Lots of unimplemented and unused methods in class definition. [Cause:] N/A [Solution:] Remove dead code and unused method definitions. [Verify:] Changes builds and doesn't breaks anything. Change-Id: Id1e0df1abe445d8c2575b915e1a906d70bb1b741 --- services/SimpleUI/SimpleUI.cpp | 69 +++++------------------------------------- services/SimpleUI/SimpleUI.h | 60 ++++++++---------------------------- 2 files changed, 20 insertions(+), 109 deletions(-) diff --git a/services/SimpleUI/SimpleUI.cpp b/services/SimpleUI/SimpleUI.cpp index c5b7ad3..4827b3d 100644 --- a/services/SimpleUI/SimpleUI.cpp +++ b/services/SimpleUI/SimpleUI.cpp @@ -56,16 +56,18 @@ EXPORT_SERVICE(SimpleUI, "org.tizen.browser.simpleui") const std::string HomePageURL = "about:home"; const int ROOT_FOLDER = 0; + SimpleUI::SimpleUI() : AbstractMainWindow() , m_popup(nullptr) + , m_webPageUI() , m_moreMenuUI() - , m_tabUI() , m_bookmarkManagerUI() , m_mainUI() + , m_historyUI() + , m_settingsUI() + , m_tabUI() , m_initialised(false) - , items_vector() - , m_networkErrorPopup(0) , m_wvIMEStatus(false) , m_ewkContext(ewk_context_new()) { @@ -383,7 +385,6 @@ void SimpleUI::connectModelSignals() m_favoriteService->bookmarkAdded.connect(boost::bind(&SimpleUI::onBookmarkAdded, this,_1)); m_favoriteService->bookmarkDeleted.connect(boost::bind(&SimpleUI::onBookmarkRemoved, this, _1)); - m_historyService->historyAdded.connect(boost::bind(&SimpleUI::onHistoryAdded, this,_1)); m_historyService->historyDeleted.connect(boost::bind(&SimpleUI::onHistoryRemoved, this,_1)); m_platformInputManager->returnPressed.connect(boost::bind(&elm_exit)); @@ -401,18 +402,6 @@ void SimpleUI::createActions() m_settingPrivateBrowsing->setCheckable(true); m_settingPrivateBrowsing->setChecked(m_webEngine->isPrivateMode()); m_settingPrivateBrowsing->setEnabled(true); - - m_settingDeleteHistory = sharedAction(new Action("Delete history")); - m_settingDeleteHistory->setToolTip("Delete History"); - - m_settingDeleteData = sharedAction(new Action("Delete data")); - m_settingDeleteData->setToolTip("Delete Data"); - - m_settingDeleteFavorite = sharedAction(new Action("Delete favorite site")); - m_settingDeleteFavorite->setToolTip("Delete favorite site"); - - m_bookmarks_manager_BookmarkBar = sharedAction(new Action("Bookmark Bar")); - m_bookmarks_manager_BookmarkBar->setToolTip("show Bookmark bar"); } void SimpleUI::connectActions() @@ -516,7 +505,7 @@ bool SimpleUI::checkBookmark() } } // Consider removing these functions -void SimpleUI::onBookmarkAdded(std::shared_ptr bookmarkItem) +void SimpleUI::onBookmarkAdded(std::shared_ptr) { if (m_moreMenuUI) { m_moreMenuUI->changeBookmarkStatus(true); @@ -533,10 +522,6 @@ void SimpleUI::onBookmarkRemoved(const std::string& uri) } } -void SimpleUI::onHistoryAdded(std::shared_ptr historyItem) -{ -} - void SimpleUI::onOpenURLInNewTab(std::shared_ptr historyItem, bool desktopMode) { BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__); @@ -615,27 +600,9 @@ void SimpleUI::stopEnable(bool enable) m_webPageUI->setStopButtonEnabled(enable); } -void SimpleUI::addBookmarkEnable(bool enable) -{ -} - -void SimpleUI::removeBookmarkEnable(bool enable) -{ -} -void SimpleUI::zoomEnable(bool enable) -{ - m_zoom_in->setEnabled(enable); -} - -void SimpleUI::settingsButtonEnable(bool enable) -{ - m_webPageUI->setMoreMenuButtonEnabled(enable); -} - void SimpleUI::loadStarted() { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - addBookmarkEnable(false); if(!m_webEngine->isPrivateMode()){ m_currentSession.updateItem(m_webEngine->currentTabId().toString(), m_webEngine->getURI()); } @@ -651,8 +618,6 @@ void SimpleUI::loadFinished() { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - addBookmarkEnable(m_favoriteService->countBookmarks() < m_favoritesLimit); - if(!m_webEngine->isPrivateMode()){ m_historyService->addHistoryItem(std::make_shared (m_webEngine->getURI(), m_webEngine->getTitle(), @@ -689,7 +654,6 @@ void SimpleUI::filterURL(const std::string& url) m_webEngine->setURI(url); } m_webPageUI->getURIEntry().clearFocus(); - //addBookmarkEnable(false); } void SimpleUI::webEngineURLChanged(const std::string url) @@ -1041,29 +1005,10 @@ void SimpleUI::updateView() { m_webPageUI->setTabsNumber(tabs); } -void SimpleUI::tabClosed(const tizen_browser::basic_webengine::TabId& id) { +void SimpleUI::tabClosed(const tizen_browser::basic_webengine::TabId&) { updateView(); } -void SimpleUI::onNetworkError() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (!m_networkErrorPopup) { - m_networkErrorPopup = SimplePopup::createPopup(); - m_networkErrorPopup->setTitle("Network Error"); - m_networkErrorPopup->addButton(CONNECT); - m_networkErrorPopup->addButton(CANCEL); - m_networkErrorPopup->setMessage("Network is disconnected. Please check the connection."); - m_networkErrorPopup->buttonClicked.connect(boost::bind(&SimpleUI::onNetErrorButtonPressed, this, _1, _2)); - m_networkErrorPopup->show(); - } -} - -void SimpleUI::onNetErrorButtonPressed(PopupButtons, std::shared_ptr< PopupData >) -{ - m_networkErrorPopup = 0; -} - void SimpleUI::searchWebPage(std::string &text, int flags) { m_webEngine->searchOnWebsite(text, flags); diff --git a/services/SimpleUI/SimpleUI.h b/services/SimpleUI/SimpleUI.h index 251ed47..40d836d 100644 --- a/services/SimpleUI/SimpleUI.h +++ b/services/SimpleUI/SimpleUI.h @@ -86,15 +86,9 @@ private: Evas_Object* createWebLayout(Evas_Object* parent); Evas_Object* createErrorLayout(Evas_Object* parent); - void forwardEnable(bool enable); void stopEnable(bool enable); void reloadEnable(bool enable); - void addBookmarkEnable(bool enable); - void removeBookmarkEnable(bool enable); - void zoomEnable(bool enable); - - void settingsButtonEnable(bool enable); void loadFinished(); void progressChanged(double progress); @@ -130,7 +124,6 @@ private: void onBookmarkClicked(std::shared_ptr bookmarkItem); void onBookmarkRemoved(const std::string& uri); - void onHistoryAdded(std::shared_ptr historyItem); void onHistoryRemoved(const std::string& uri); void onOpenURLInNewTab(std::shared_ptr historyItem, bool desktopMode); void onMostVisitedTileClicked(std::shared_ptr historyItem, int itemsNumber); @@ -145,17 +138,8 @@ private: void onActionTriggered(const Action& action); void setwvIMEStatus(bool status); - sharedAction m_share; - sharedAction m_zoom_in; sharedAction m_showBookmarkManagerUI; - sharedAction m_settingPointerMode; sharedAction m_settingPrivateBrowsing; - sharedAction m_settingDeleteHistory; - sharedAction m_settingDeleteData; - sharedAction m_settingDeleteFavorite; - sharedAction m_mostvisited; - sharedAction m_bookmarksvisited; - sharedAction m_bookmarks_manager_BookmarkBar; /** * \brief filters URL before it is passed to WebEngine. @@ -207,14 +191,10 @@ private: void switchToDesktopMode(); void showHistoryUI(); void closeHistoryUI(); - void showURIBar(); - void hideURIBar(); - void hideSettingsMenu(); void showSettingsUI(); void closeSettingsUI(); void closeBookmarkManagerUI(); void showBookmarkManagerUI(); - void showPopup(Evas_Object *content, char* btn1_text, char* btn2_text); void closeTab(); @@ -222,46 +202,37 @@ private: void settingsPointerModeSwitch(bool newState); void settingsPrivateModeSwitch(bool newState); - void settingsDeleteData(); - void settingsDeleteFavorite(); void settingsDeleteSelectedData(const std::string& str); void settingsResetMostVisited(); void settingsResetBrowser(); void onDeleteSelectedDataButton(PopupButtons button, std::shared_ptr popupData); void onDeleteMostVisitedButton(PopupButtons button, std::shared_ptr popupData); void onResetBrowserButton(PopupButtons button, std::shared_ptr popupData); - void onDeleteDataButton(PopupButtons button, std::shared_ptr popupData); - void onDeleteFavoriteButton(PopupButtons button, std::shared_ptr popupData); void tabLimitPopupButtonClicked(PopupButtons button, std::shared_ptr< PopupData > /*popupData*/); - void disableHistoryButton(bool flag); int tabsCount(); - void onNetworkError(); - void onNetErrorButtonPressed(PopupButtons, std::shared_ptr); - void onReturnPressed(MenuButton *m); void onBackPressed(); + void searchWebPage(std::string &text, int flags); + std::string edjePath(const std::string &); Evas_Object *m_popup; - Evas_Object *m_entry; - Evas_Object *m_errorLayout; std::shared_ptr m_webPageUI; std::shared_ptr> m_webEngine; -// std::shared_ptr m_simpleURI; - std::shared_ptr m_favoriteService; - std::shared_ptr m_historyService; - std::shared_ptr m_moreMenuUI; - std::shared_ptr m_bookmarkManagerUI; - std::shared_ptr m_mainUI; - std::shared_ptr m_historyUI; - std::shared_ptr m_settingsUI; - std::shared_ptr m_tabUI; - std::shared_ptr m_platformInputManager; - std::shared_ptr m_sessionService; - tizen_browser::Session::Session m_currentSession; + std::shared_ptr m_favoriteService; + std::shared_ptr m_historyService; + std::shared_ptr m_moreMenuUI; + std::shared_ptr m_bookmarkManagerUI; + std::shared_ptr m_mainUI; + std::shared_ptr m_historyUI; + std::shared_ptr m_settingsUI; + std::shared_ptr m_tabUI; + std::shared_ptr m_platformInputManager; + std::shared_ptr m_sessionService; + Session::Session m_currentSession; std::shared_ptr m_bookmarks_manager; bool m_initialised; int m_tabLimit; @@ -275,11 +246,6 @@ private: // consecutive webviews in the application, otherwise we would encounter a crash after creating // the first web view Ewk_Context *m_ewkContext; - - std::vector> items_vector; - SimplePopup* m_networkErrorPopup; - - void searchWebPage(std::string &text, int flags); }; } -- 2.7.4 From d6dcb966ee2159dc44c380851737074b7adc3f0f Mon Sep 17 00:00:00 2001 From: Maciej Skrzypkowski Date: Thu, 1 Oct 2015 10:45:19 +0200 Subject: [PATCH 12/16] Changed ordering of hiding Detail Popup. [Issue] https://bugs.tizen.org/jira/browse/TT-199 [Problem] Clicking on history link in detail popup caused openig gray, empty page. [Cause] Wrong order of opening new web page caused referencing to deleted object. [Solution] Changed order, now popup hiding is after opening new URL. [Verify] Launch browser > Open few web pages > open Quick Access view, click on thumbnail, check if history links work. Change-Id: I519e023592bc5870ab1330ec0157c06836eb154c Signed-off-by: Maciej Skrzypkowski --- services/MainUI/DetailPopup.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/services/MainUI/DetailPopup.cpp b/services/MainUI/DetailPopup.cpp index a058691..d60d020 100644 --- a/services/MainUI/DetailPopup.cpp +++ b/services/MainUI/DetailPopup.cpp @@ -115,8 +115,8 @@ void DetailPopup::_url_click(void* data, Evas_Object*, const char*, const char*) { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); DetailPopup *dp = reinterpret_cast(data); - dp->hide(); dp->openURLInNewTab(dp->m_item, dp->m_mainUI->isDesktopMode()); + dp->hide(); } void DetailPopup::_history_url_click(void* data, Evas_Object*, void* event_info) @@ -134,8 +134,8 @@ void DetailPopup::_history_url_click(void* data, Evas_Object*, void* event_info) { return i.get() == item; } ); std::shared_ptr itemPtr= *it; - dp->hide(); dp->openURLInNewTab(itemPtr, dp->m_mainUI->isDesktopMode()); + dp->hide(); } char* DetailPopup::_get_history_link_text(void* data, Evas_Object*, const char* part) -- 2.7.4 From d7a94f9f7ccbb80138acfb913a7c0a854d407d93 Mon Sep 17 00:00:00 2001 From: Kamil Nowac Date: Mon, 5 Oct 2015 12:28:47 +0200 Subject: [PATCH 13/16] [PointerMode] Pointer Mode removal [Issue] https://bugs.tizen.org/jira/browse/TT-130 [Problem] Not needed feature [Solution] N/A Change-Id: Id3e2df1abe346d1c2575b915e1a906d73bb1b722 Signed-off-by: Kamil Nowac --- .../images/ic_more_pointermode_foc.png | Bin 3180 -> 0 bytes .../images/ic_more_pointermode_nor.png | Bin 3346 -> 0 bytes services/MoreMenuUI/MoreMenuUI.cpp | 8 - services/MoreMenuUI/MoreMenuUI.h | 1 - services/MoreMenuUI/edc/MoreMenu.edc | 2 - .../MoreMenuUI/images/ic_more_pointermode_foc.png | Bin 3180 -> 0 bytes .../MoreMenuUI/images/ic_more_pointermode_nor.png | Bin 3346 -> 0 bytes .../PlatformInputManager/PlatformInputManager.cpp | 184 +-------------------- .../PlatformInputManager/PlatformInputManager.h | 40 ----- services/SimpleUI/BookmarksManager.cpp | 9 +- services/SimpleUI/BookmarksManager.h | 2 - services/SimpleUI/SimpleUI.cpp | 5 - services/SimpleUI/SimpleUI.h | 1 - 13 files changed, 2 insertions(+), 250 deletions(-) delete mode 100644 services/BookmarkManagerUI/images/ic_more_pointermode_foc.png delete mode 100644 services/BookmarkManagerUI/images/ic_more_pointermode_nor.png delete mode 100644 services/MoreMenuUI/images/ic_more_pointermode_foc.png delete mode 100644 services/MoreMenuUI/images/ic_more_pointermode_nor.png diff --git a/services/BookmarkManagerUI/images/ic_more_pointermode_foc.png b/services/BookmarkManagerUI/images/ic_more_pointermode_foc.png deleted file mode 100644 index 8785d75a32e56194cfad14a628c2d55bf920e36e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3180 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 diff --git a/services/MoreMenuUI/MoreMenuUI.cpp b/services/MoreMenuUI/MoreMenuUI.cpp index 633f1bf..4b46641 100644 --- a/services/MoreMenuUI/MoreMenuUI.cpp +++ b/services/MoreMenuUI/MoreMenuUI.cpp @@ -376,9 +376,6 @@ char* MoreMenuUI::_grid_text_get(void* data, Evas_Object*, const char* part) item_name = "Start Mini Browser"; break; #endif - case FOCUS_MODE: - item_name = "Focus Mode"; - break; case VIEW_MOBILE_WEB: item_name = "View Mobile Web"; break; @@ -426,9 +423,6 @@ static const char* getImageFileNameForType(ItemType type, bool focused) file_name = focused ? "ic_more_minibrowser_foc.png" : "ic_more_minibrowser_nor.png"; break; #endif - case FOCUS_MODE: - file_name = focused ? "ic_more_focusmode_foc.png" : "ic_more_focusmode_nor.png"; - break; case VIEW_MOBILE_WEB: file_name = focused ? "ic_more_mobileview_foc.png" : "ic_more_mobileview_nor.png"; break; @@ -534,8 +528,6 @@ void MoreMenuUI::_thumbSelected(void* data, Evas_Object*, void*) //TODO: Implement minibrowser launching break; #endif - case FOCUS_MODE: - break; case VIEW_MOBILE_WEB: itemData->moreMenuUI->switchToMobileMode(); itemData->moreMenuUI->m_desktopMode = false; diff --git a/services/MoreMenuUI/MoreMenuUI.h b/services/MoreMenuUI/MoreMenuUI.h index c8ed824..e9edc23 100644 --- a/services/MoreMenuUI/MoreMenuUI.h +++ b/services/MoreMenuUI/MoreMenuUI.h @@ -44,7 +44,6 @@ enum ItemType { #ifdef START_MINIBROWSER_ENABLED START_MINIBROWSER, #endif - FOCUS_MODE, VIEW_MOBILE_WEB, VIEW_DESKTOP_WEB, SHARE, diff --git a/services/MoreMenuUI/edc/MoreMenu.edc b/services/MoreMenuUI/edc/MoreMenu.edc index 4863286..05e9568 100644 --- a/services/MoreMenuUI/edc/MoreMenu.edc +++ b/services/MoreMenuUI/edc/MoreMenu.edc @@ -36,7 +36,6 @@ RESOURCE_IMAGE_LOSSY("ic_more_bookmark_nor.png") RESOURCE_IMAGE_LOSSY("ic_more_history_nor.png") RESOURCE_IMAGE_LOSSY("ic_more_zoom_nor.png") RESOURCE_IMAGE_LOSSY("ic_more_minibrowser_nor.png") -RESOURCE_IMAGE_LOSSY("ic_more_focusmode_nor.png") RESOURCE_IMAGE_LOSSY("ic_more_mobileview_nor.png") RESOURCE_IMAGE_LOSSY("ic_more_desktopview_nor.png") RESOURCE_IMAGE_LOSSY("ic_more_share_nor.png") @@ -49,7 +48,6 @@ RESOURCE_IMAGE_LOSSY("ic_more_bookmark_foc.png") RESOURCE_IMAGE_LOSSY("ic_more_history_foc.png") RESOURCE_IMAGE_LOSSY("ic_more_zoom_foc.png") RESOURCE_IMAGE_LOSSY("ic_more_minibrowser_foc.png") -RESOURCE_IMAGE_LOSSY("ic_more_focusmode_foc.png") RESOURCE_IMAGE_LOSSY("ic_more_mobileview_foc.png") RESOURCE_IMAGE_LOSSY("ic_more_desktopview_foc.png") RESOURCE_IMAGE_LOSSY("ic_more_share_foc.png") diff --git a/services/MoreMenuUI/images/ic_more_pointermode_foc.png b/services/MoreMenuUI/images/ic_more_pointermode_foc.png deleted file mode 100644 index 8785d75a32e56194cfad14a628c2d55bf920e36e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3180 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 diff --git a/services/PlatformInputManager/PlatformInputManager.cpp b/services/PlatformInputManager/PlatformInputManager.cpp index 4fc5fbc..c163b32 100644 --- a/services/PlatformInputManager/PlatformInputManager.cpp +++ b/services/PlatformInputManager/PlatformInputManager.cpp @@ -17,8 +17,6 @@ #include "PlatformInputManager.h" -//#include -//#include #include #include #include @@ -40,11 +38,7 @@ namespace services EXPORT_SERVICE(PlatformInputManager, "org.tizen.browser.platforminputmanager") -PlatformInputManager::PlatformInputManager() : - m_mouseMoveTimer(NULL), - m_moveMousePointer(false), - m_lastPressedKey(OTHER_KEY), - m_pointerModeEnabled(true) +PlatformInputManager::PlatformInputManager() { } @@ -53,14 +47,6 @@ void PlatformInputManager::init(Evas_Object* mainWindow) { M_ASSERT(mainWindow); ecore_event_filter_add(NULL, __filter, NULL, this); - m_xWindow = elm_win_xwindow_get(mainWindow); - - // This snippet is needed to show mouse pointer all the time, because by default it is hidden after few seconds - //m_atomDevicemgrInputWindow = ecore_x_atom_get(E_PROP_DEVICEMGR_INPUTWIN); - //m_atomAlwaysCursorOn = ecore_x_atom_get(E_PROP_NOT_CURSOR_HIDE); - //if(!ecore_x_window_prop_window_get(ecore_x_window_root_first_get(), m_atomDevicemgrInputWindow, &m_devicemgr_win, 1)) - // BROWSER_LOGD("Failed to get device manager input window!"); - //ecore_event_handler_add(ECORE_X_EVENT_WINDOW_FOCUS_IN, __handler_FOCUS_IN, this); } Eina_Bool PlatformInputManager::__filter(void *data, void */*loop_data*/, int type, void *event) @@ -77,63 +63,6 @@ Eina_Bool PlatformInputManager::__filter(void *data, void */*loop_data*/, int ty BROWSER_LOGD("Pressed key: %s", ev->keyname); const std::string keyName = ev->keyname; - bool wasArrow = false; - /** - * In pointer mode arrow key events cause mouse pointer to move. - * For that each arrow key is handled by us. - * Pointer movement is realized in timer to achieve smooth animation of pointer's move. - */ -/* - if(self->m_pointerModeEnabled) { - wasArrow = true; - if (!keyName.compare("KEY_LEFT")) { - self->m_currentMouseMovementParams.xMod = -1; - self->m_currentMouseMovementParams.yMod = 0; - } - else if (!keyName.compare("KEY_RIGHT")) { - self->m_currentMouseMovementParams.xMod = 1; - self->m_currentMouseMovementParams.yMod = 0; - } - else if (!keyName.compare("KEY_UP")) { - self->m_currentMouseMovementParams.xMod = 0; - self->m_currentMouseMovementParams.yMod = -1; - } - else if (!keyName.compare("KEY_DOWN")) { - self->m_currentMouseMovementParams.xMod = 0; - self->m_currentMouseMovementParams.yMod = 1; - } - else - wasArrow = false; -*/ - /** - * If last pressed key was arrow we would like to convert Return key to mouse click - * assuming that user was moving cursor and now want to "click" chosen element. - * In other cases Return key is handled normally allowing for example to accecpt typed url. - */ -/* - if(!keyName.compare("KEY_ENTER")) { - if(self->m_lastPressedKey == ARROW) { - self->m_lastPressedKey = RETURN; - self->mouseButtonManipulate(Button1, ButtonPress); - return EINA_FALSE; - } - } - - if(wasArrow) { - self->m_lastPressedKey = ARROW; - if(!(self->m_mouseMoveTimer)) { - self->m_currentMouseMovementParams.moveMousePointer = true; - self->m_currentMouseMovementParams.counter = 0; - self->m_currentMouseMovementParams.speed = 1; - self->m_mouseMoveTimer = ecore_timer_add(MOUSE_POINTER_MOVE_DELAY, &PlatformInputManager::mouseMove, self); - } - return EINA_FALSE; - } - } -*/ - - self->m_lastPressedKey= OTHER_KEY; - /** * Because MENU button launches org.tizen.menu * we use blue 'D' button on remote control or F4 on keyboard as substitution of MENU button @@ -143,25 +72,6 @@ Eina_Bool PlatformInputManager::__filter(void *data, void */*loop_data*/, int ty return EINA_FALSE; } -// if(!keyName.compare("KEY_CHANNELUP")){ - /** - * Converting ChannelUp Button on remote control and Page Up key on keyboard to mouse's wheel up move. - * This is used to achieve same effect of scrolling web page using mouse, remote control and keyboard. - */ -// self->mouseButtonManipulate(Button4, ButtonPress); // Simulate mouse wheel up movement -// self->mouseButtonManipulate(Button4, ButtonRelease); -// return EINA_FALSE; -// } - -// if(!keyName.compare("KEY_CHANNELDOWN")){ - /** - * Same as above ChannelDown and Page Down are replaced by mouse's wheel down movement. - */ -// self->mouseButtonManipulate(Button5, ButtonPress); // Simulate mouse wheel down movement -// self->mouseButtonManipulate(Button5, ButtonRelease); -// return EINA_FALSE; -// } - if(!keyName.compare("KEY_RETURN")) self->returnPressed(); else if(!keyName.compare("KEY_LEFT")) @@ -181,101 +91,9 @@ Eina_Bool PlatformInputManager::__filter(void *data, void */*loop_data*/, int ty return EINA_TRUE; BROWSER_LOGD("Released key: %s", ev->keyname); - const std::string keyName = ev->keyname; - - /** - * When arrow key is released thread realizing pointer movement is stopped. - */ -// if(self->m_pointerModeEnabled && (!keyName.compare("KEY_LEFT")||!keyName.compare("KEY_UP") -// || !keyName.compare("KEY_RIGHT")||!keyName.compare("KEY_DOWN"))) { -// if(self->m_mouseMoveTimer) { -// self->m_currentMouseMovementParams.moveMousePointer = false; -// ecore_timer_del(self->m_mouseMoveTimer); -// self->m_mouseMoveTimer = NULL; -// } -// return EINA_FALSE; -// } - /** - * If Return key is being released we send event that mouse button was released (in pointer mode). - */ -// if(self->m_lastPressedKey == RETURN && self->m_pointerModeEnabled && !keyName.compare("KEY_ENTER")) { -// self->m_lastPressedKey = OTHER_KEY; -// self->mouseButtonManipulate(Button1, ButtonRelease); -// return EINA_FALSE; -// } } return EINA_TRUE; } -/* -Eina_Bool PlatformInputManager::mouseMove(void *data) -{ - int x, y; - PlatformInputManager *self = static_cast(data); - - if(self->m_currentMouseMovementParams.moveMousePointer) { - ecore_x_pointer_xy_get(self->m_xWindow, &x, &y); - x += self->m_currentMouseMovementParams.xMod * self->m_currentMouseMovementParams.speed; - y += self->m_currentMouseMovementParams.yMod * self->m_currentMouseMovementParams.speed; - ecore_x_pointer_warp(self->m_xWindow, x, y); - ecore_x_flush(); - - ++(self->m_currentMouseMovementParams.counter); - if(self->m_currentMouseMovementParams.counter == MOUSE_POINTER_STEPS) { - self->m_currentMouseMovementParams.counter = 0; - ++(self->m_currentMouseMovementParams.speed); - } - return EINA_TRUE; - } - return EINA_FALSE; -} -*/ -//Eina_Bool PlatformInputManager::__handler_FOCUS_IN(void *data, int /*type*/, void */*event*/) -//{ -// PlatformInputManager * self = reinterpret_cast(data); -// ecore_x_window_prop_window_set(self->m_devicemgr_win, self->m_atomAlwaysCursorOn, &(self->m_xWindow), 1); -// return EINA_TRUE; -//} -/* -void PlatformInputManager::mouseButtonManipulate(int button, int event_type) -{ - XEvent event; - - Display *display = static_cast(ecore_x_display_get()); - - memset(&event, 0x00, sizeof(event)); - - event.type = event_type; - - if (event_type == ButtonRelease) - event.xbutton.state = 0x100; - - event.xbutton.button = button; - event.xbutton.same_screen = True; - - XQueryPointer(display, RootWindow(display, DefaultScreen(display)), &event.xbutton.root, &event.xbutton.window, &event.xbutton.x_root, &event.xbutton.y_root, &event.xbutton.x, &event.xbutton.y, &event.xbutton.state); - - event.xbutton.subwindow = event.xbutton.window; - - while (event.xbutton.subwindow) { - event.xbutton.window = event.xbutton.subwindow; - - XQueryPointer(display, event.xbutton.window, &event.xbutton.root, &event.xbutton.subwindow, &event.xbutton.x_root, &event.xbutton.y_root, &event.xbutton.x, &event.xbutton.y, &event.xbutton.state); - } - - XSendEvent(display, PointerWindow, True, 0xfff, &event); - - XFlush(display); -} -*/ -void PlatformInputManager::setPointerModeEnabled(bool enabled) -{ - m_pointerModeEnabled = enabled; -} - -bool PlatformInputManager::getPointerModeEnabled() const -{ - return m_pointerModeEnabled; -} } } diff --git a/services/PlatformInputManager/PlatformInputManager.h b/services/PlatformInputManager/PlatformInputManager.h index 63bbec2..0dc980e 100644 --- a/services/PlatformInputManager/PlatformInputManager.h +++ b/services/PlatformInputManager/PlatformInputManager.h @@ -20,7 +20,6 @@ #include #include #include -//#include #include #include @@ -61,19 +60,7 @@ public: */ virtual std::string getName(); - /** - * @brief Enables/disables pointer mode. - */ - void setPointerModeEnabled(bool enabled); - - /** - * @brief Returns if poiner mode is enabled. - */ - bool getPointerModeEnabled() const; - private: - enum LastPressedKey {ARROW, RETURN, OTHER_KEY}; - /** * @brief Struct holding parameters of mouse movement. * It is used in pointer mode to simulate mouse move after pressing arrows. @@ -88,33 +75,6 @@ private: * @brief It process every input event and handles it if necessary. */ static Eina_Bool __filter(void */*data*/, void */*loop_data*/, int /*type*/, void */*event*/); - - /** - * @brief This callback prevent mouse cursor from disappearing. - */ - static Eina_Bool __handler_FOCUS_IN(void *data, int type, void *event); - - /** - * @brief Moves mouse cursor on screen according to passed params. Called in timer. - */ - static Eina_Bool mouseMove(void *data); - - /** - * @brief Allows to simulate mouse button presses and releases. - * @param button Button identifier from Xlib.h - * @param event_type Event identifier from Xlib.h - */ - void mouseButtonManipulate(int button, int event_type); - - Ecore_X_Window m_xWindow; - Ecore_X_Window m_devicemgr_win; - Ecore_X_Atom m_atomDevicemgrInputWindow; - Ecore_X_Atom m_atomAlwaysCursorOn; - MouseMovementParams m_currentMouseMovementParams; - Ecore_Timer *m_mouseMoveTimer; - bool m_moveMousePointer; - LastPressedKey m_lastPressedKey; - bool m_pointerModeEnabled; }; } diff --git a/services/SimpleUI/BookmarksManager.cpp b/services/SimpleUI/BookmarksManager.cpp index 8d82016..0f08b41 100644 --- a/services/SimpleUI/BookmarksManager.cpp +++ b/services/SimpleUI/BookmarksManager.cpp @@ -64,7 +64,6 @@ BookmarksManager::BookmarksManager(std::shared_ptr< Evas_Object > mainWindow, Ev , m_itemClass(nullptr) , m_internalPopup(nullptr) , m_internalPopupVisible(false) - , m_pointerModeEnabled(true) { std::string edjFilePath = EDJE_DIR; edjFilePath.append("SimpleUI/BookmarksManager.edj"); @@ -342,8 +341,7 @@ void BookmarksManager::showInternalPopup(Elm_Object_Item* listItem) elm_object_style_set(m_internalPopup, "bookmarks_manager_button"); evas_object_show(m_internalPopup); - if(!m_pointerModeEnabled) - elm_object_focus_set(radioOn, EINA_TRUE); + elm_object_focus_set(radioOn, EINA_TRUE); elm_object_item_signal_emit(m_trackedItem, "selected", "BookmarksManagerModel"); elm_object_signal_emit(m_genlist, "show_popup", "BookmarksManagerModel"); } @@ -390,11 +388,6 @@ void BookmarksManager::unFocusItem(void* /*data*/, Evas_Object* /*obj*/, void* e elm_object_item_signal_emit( item, "mouse,out", "option*"); } -void BookmarksManager::setPointerModeEnabled (bool enabled) -{ - m_pointerModeEnabled = enabled; -} - bool BookmarksManager::canBeDismissed() { BROWSER_LOGD("[%s]", __func__); diff --git a/services/SimpleUI/BookmarksManager.h b/services/SimpleUI/BookmarksManager.h index b2dbde0..6ebe1e0 100644 --- a/services/SimpleUI/BookmarksManager.h +++ b/services/SimpleUI/BookmarksManager.h @@ -54,7 +54,6 @@ public: void addAction(sharedAction action); void onEnabledChanged(sharedAction action); void refreshAction(sharedAction action); - void setPointerModeEnabled (bool enabled); void showPopup(); void hidePopup(); bool isPopupShown(); @@ -76,7 +75,6 @@ private: Elm_Object_Item *m_trackedItem; Elm_Genlist_Item_Class *m_itemClass; bool m_internalPopupVisible; - bool m_pointerModeEnabled; std::map> m_bookmarks_managerItemsMap; std::map m_actionButtonMap; enum CheckState{ diff --git a/services/SimpleUI/SimpleUI.cpp b/services/SimpleUI/SimpleUI.cpp index 4827b3d..d0a29f6 100644 --- a/services/SimpleUI/SimpleUI.cpp +++ b/services/SimpleUI/SimpleUI.cpp @@ -887,11 +887,6 @@ void SimpleUI::closeBookmarkManagerUI() m_viewManager->popTheStack(); } -void SimpleUI::settingsPointerModeSwitch(bool newState) -{ - BROWSER_LOGD("%s: Setting Pointer mode to:%s", __func__, (newState ? "true" : "false")); -} - void SimpleUI::settingsPrivateModeSwitch(bool newState) { BROWSER_LOGD("%s: Setting Private mode to: %s", __func__, (newState ? "true" : "false")); diff --git a/services/SimpleUI/SimpleUI.h b/services/SimpleUI/SimpleUI.h index 40d836d..5b62197 100644 --- a/services/SimpleUI/SimpleUI.h +++ b/services/SimpleUI/SimpleUI.h @@ -200,7 +200,6 @@ private: void closeTab(); void closeTab(const tizen_browser::basic_webengine::TabId& id); - void settingsPointerModeSwitch(bool newState); void settingsPrivateModeSwitch(bool newState); void settingsDeleteSelectedData(const std::string& str); void settingsResetMostVisited(); -- 2.7.4 From d5affe368a740f9dd263acfa54235c32b5bbf723 Mon Sep 17 00:00:00 2001 From: Maciej Skrzypkowski Date: Mon, 5 Oct 2015 09:29:48 +0200 Subject: [PATCH 14/16] Focus mode for DetailPopup. [Issue] https://bugs.tizen.org/jira/browse/TT-196 [Problem] Keyboard navigation for Detail Popup was not implemented. [Cause] N/A [Solution] Added links to focus chain. [Verify] Launch browser > Open few web pages > open Quick Access > navigate using keyboard, open Detail Popup, navigate there using keyboard, try choosing main link and history links. Change-Id: Ia78b68f364220232359ec1583c3e32c8aa191924 Signed-off-by: Maciej Skrzypkowski --- services/MainUI/DetailPopup.cpp | 43 ++++++++++++++++++++++++++++--------- services/MainUI/DetailPopup.h | 21 ++++++++++++------ services/MainUI/MainUI.cpp | 23 +++++++++++++++----- services/MainUI/MainUI.h | 2 ++ services/MainUI/edc/DetailPopup.edc | 10 ++++++++- services/SimpleUI/SimpleUI.cpp | 9 ++++++-- 6 files changed, 83 insertions(+), 25 deletions(-) diff --git a/services/MainUI/DetailPopup.cpp b/services/MainUI/DetailPopup.cpp index d60d020..1d4695c 100644 --- a/services/MainUI/DetailPopup.cpp +++ b/services/MainUI/DetailPopup.cpp @@ -32,9 +32,12 @@ const char * DetailPopup::URL_SEPARATOR = " - "; const int DetailPopup::HISTORY_ITEMS_NO = 5; DetailPopup::DetailPopup(MainUI *mainUI) - : m_layout(nullptr) + : m_main_view(nullptr) + , m_parent(nullptr) + , m_layout(nullptr) , m_historyList(nullptr) , m_mainUI(mainUI) + , m_urlButton(nullptr) { edjFilePath = EDJE_DIR; edjFilePath.append("MainUI/DetailPopup.edj"); @@ -53,16 +56,24 @@ DetailPopup::~DetailPopup() elm_genlist_item_class_free(m_history_item_class); } -void DetailPopup::createLayout(Evas_Object *parent) +void DetailPopup::createLayout() { - m_layout = elm_layout_add(parent); + m_layout = elm_layout_add(m_parent); elm_layout_file_set(m_layout, edjFilePath.c_str(), "popup"); evas_object_size_hint_weight_set(m_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(m_layout, EVAS_HINT_FILL, EVAS_HINT_FILL); // TODO: add following (or simillar) callback for hardware back button when it will be available //evas_object_event_callback_add(m_layout, EVAS_CALLBACK_KEY_DOWN, _back, this); edje_object_signal_callback_add(elm_layout_edje_get(m_layout), "mouse,clicked,1", "bg", _bg_click, this); - edje_object_signal_callback_add(elm_layout_edje_get(m_layout), "mouse,clicked,1", "url_over", _url_click, this); + m_urlButton = elm_button_add(m_layout); // add button to receive focus + elm_object_style_set(m_urlButton, "invisible_button"); + evas_object_smart_callback_add(m_urlButton, "clicked", _url_click_button, this); + evas_object_show(m_urlButton); + elm_layout_content_set(m_layout, "url_over", m_urlButton); + elm_object_focus_custom_chain_unset(m_main_view); + elm_object_focus_custom_chain_append(m_main_view, m_urlButton, NULL); + elm_object_focus_set(m_urlButton, EINA_TRUE); + edje_object_signal_callback_add(elm_layout_edje_get(m_layout), "mouse,clicked,1", "thumbnail", _url_click, this); elm_layout_text_set(m_layout, "history_title", "History"); elm_layout_text_set(m_layout, "url", tools::clearURL(m_item->getUrl())); @@ -70,9 +81,10 @@ void DetailPopup::createLayout(Evas_Object *parent) m_historyList = elm_genlist_add(m_layout); evas_object_size_hint_weight_set(m_historyList, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(m_historyList, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_smart_callback_add(m_historyList, "pressed", _history_url_click, this); + elm_genlist_select_mode_set(m_historyList, ELM_OBJECT_SELECT_MODE_ALWAYS); + elm_object_focus_custom_chain_append(m_main_view, m_historyList, NULL); for (auto it = m_prevItems->begin(); it != m_prevItems->end(); ++it) { - elm_genlist_item_append(m_historyList, m_history_item_class, it->get(), nullptr, ELM_GENLIST_ITEM_NONE, nullptr, this); + elm_genlist_item_append(m_historyList, m_history_item_class, it->get(), nullptr, ELM_GENLIST_ITEM_NONE, _history_url_click, this); } evas_object_show(m_historyList); elm_object_part_content_set(m_layout, "history_list", m_historyList); @@ -85,23 +97,26 @@ void DetailPopup::createLayout(Evas_Object *parent) evas_object_show(m_layout); } -void DetailPopup::show(Evas_Object *parent, std::shared_ptr currItem, std::shared_ptr prevItems) +void DetailPopup::show(Evas_Object *parent, Evas_Object *main_view, std::shared_ptr currItem, std::shared_ptr prevItems) { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + m_main_view = main_view; + m_parent = parent; m_item = currItem; m_prevItems = prevItems; - createLayout(parent); + createLayout(); } void DetailPopup::hide() { edje_object_signal_callback_del(elm_layout_edje_get(m_layout), "mouse,clicked,1", "bg", _bg_click); - edje_object_signal_callback_del(elm_layout_edje_get(m_layout), "mouse,clicked,1", "url_over", _url_click); + elm_object_focus_custom_chain_unset(m_main_view); + evas_object_smart_callback_del(m_urlButton, "clicked", _url_click_button); edje_object_signal_callback_del(elm_layout_edje_get(m_layout), "mouse,clicked,1", "thumbnail", _url_click); - evas_object_smart_callback_del(m_historyList, "pressed", _history_url_click); elm_genlist_clear(m_historyList); evas_object_hide(m_layout); evas_object_del(m_layout); + refreshQuicAccessFocusChain(); } void DetailPopup::_bg_click(void* data, Evas_Object*, const char*, const char*) @@ -119,6 +134,14 @@ void DetailPopup::_url_click(void* data, Evas_Object*, const char*, const char*) dp->hide(); } +void DetailPopup::_url_click_button(void* data, Evas_Object*, void*) +{ + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + DetailPopup *dp = reinterpret_cast(data); + dp->openURLInNewTab(dp->m_item, dp->m_mainUI->isDesktopMode()); + dp->hide(); +} + void DetailPopup::_history_url_click(void* data, Evas_Object*, void* event_info) { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); diff --git a/services/MainUI/DetailPopup.h b/services/MainUI/DetailPopup.h index 953e9b8..1761d80 100644 --- a/services/MainUI/DetailPopup.h +++ b/services/MainUI/DetailPopup.h @@ -36,9 +36,17 @@ namespace base_ui{ /** * @brief Show popup window */ - void show(Evas_Object *parent, std::shared_ptr currItem, std::shared_ptr prevItems); + void show(Evas_Object *parent, Evas_Object *main_view, std::shared_ptr currItem, std::shared_ptr prevItems); + + /** + * @brief Hide popup + */ + void hide(); + + bool isVisible() { return m_layout; } boost::signals2::signal, bool)> openURLInNewTab; + boost::signals2::signal refreshQuicAccessFocusChain; static const int HISTORY_ITEMS_NO; private: @@ -51,6 +59,7 @@ namespace base_ui{ * @brief URL rectangle click callback */ static void _url_click(void *data, Evas_Object *obj, const char *emission, const char *source); + static void _url_click_button(void *data, Evas_Object *obj, void *event_info); /** * @brief History genlist item click callback @@ -58,22 +67,20 @@ namespace base_ui{ static void _history_url_click(void *data, Evas_Object *o, void *event_info); /** - * @brief Hide popup - */ - void hide(); - - /** * @brief Create main layout and all compnents. */ - void createLayout(Evas_Object *parent); + void createLayout(); /** * @brief Provide texts for history genlist */ static char* _get_history_link_text(void *data, Evas_Object *obj, const char *part); + Evas_Object* m_main_view; + Evas_Object* m_parent; Evas_Object *m_layout; Evas_Object *m_historyList; + Evas_Object* m_urlButton; Elm_Gengrid_Item_Class * m_history_item_class; MainUI *m_mainUI; std::string edjFilePath; diff --git a/services/MainUI/MainUI.cpp b/services/MainUI/MainUI.cpp index 6e64eae..b53c39f 100644 --- a/services/MainUI/MainUI.cpp +++ b/services/MainUI/MainUI.cpp @@ -101,9 +101,6 @@ void MainUI::showMostVisited(std::shared_ptr< services::HistoryItemVector > vec) { addHistoryItems(vec); showHistory(); - // update focus chain - elm_object_focus_custom_chain_append(m_parent, m_mostVisitedButton, NULL); - elm_object_focus_custom_chain_append(m_parent, m_bookmarksButton, NULL); } void MainUI::showBookmarks(std::vector< std::shared_ptr< tizen_browser::services::BookmarkItem > > vec) @@ -292,7 +289,6 @@ void MainUI::addHistoryItem(std::shared_ptr hi) Evas_Object * thumb = tizen_browser::tools::EflTools::getEvasImage(hi->getThumbnail(), m_parent); elm_object_part_content_set(tile, "elm.thumbnail", thumb); evas_object_smart_callback_add(tile, "clicked", _thumbClicked, itemData); - elm_object_focus_custom_chain_append(m_parent, tile, NULL); m_historyItems.push_back(hi); } @@ -450,6 +446,7 @@ void MainUI::showUI() } else { evas_object_show(m_mostVisitedView); } + refreshFocusChain(); } void MainUI::hideUI() @@ -464,7 +461,7 @@ void MainUI::hideUI() void MainUI::openDetailPopup(std::shared_ptr currItem, std::shared_ptr prevItems) { - m_detailPopup.show(m_layout, currItem, prevItems); + m_detailPopup.show(m_layout, m_parent, currItem, prevItems); } void MainUI::showNoHistoryLabel() @@ -498,5 +495,21 @@ DetailPopup& MainUI::getDetailPopup() return m_detailPopup; } +void MainUI::backButtonClicked() +{ + if (m_detailPopup.isVisible()) { + m_detailPopup.hide(); + } +} + +void MainUI::refreshFocusChain() +{ + elm_object_focus_custom_chain_append(m_parent, m_mostVisitedButton, NULL); + elm_object_focus_custom_chain_append(m_parent, m_bookmarksButton, NULL); + for (auto tile = m_tiles.begin(); tile != m_tiles.end(); ++tile) { + elm_object_focus_custom_chain_append(m_parent, *tile, NULL); + } +} + } } diff --git a/services/MainUI/MainUI.h b/services/MainUI/MainUI.h index 1b9e43f..d18eeec 100644 --- a/services/MainUI/MainUI.h +++ b/services/MainUI/MainUI.h @@ -50,6 +50,7 @@ public: bool isDesktopMode() const; void setDesktopMode(bool mode); DetailPopup & getDetailPopup(); + void backButtonClicked(); boost::signals2::signal, int)> mostVisitedTileClicked; boost::signals2::signal, bool)> openURLInNewTab; @@ -71,6 +72,7 @@ private: Evas_Object* createBookmarkGengrid(Evas_Object *parent); void showHistory(); void showBookmarks(); + void refreshFocusChain(); Evas_Object* createQuickAccessLayout(Evas_Object *parent); Evas_Object* createMostVisitedView(Evas_Object *parent); diff --git a/services/MainUI/edc/DetailPopup.edc b/services/MainUI/edc/DetailPopup.edc index dd291d8..9640f04 100644 --- a/services/MainUI/edc/DetailPopup.edc +++ b/services/MainUI/edc/DetailPopup.edc @@ -141,7 +141,7 @@ collections { } part { name: "url_over"; - type: RECT; + type: SWALLOW; mouse_events: 1; repeat_events: 1; description { state: "default" 0.0; @@ -236,6 +236,14 @@ collections { target: "url_bg"; target: "url"; } + program { + name: "mouse_click"; + signal: "mouse,clicked,1"; + source: "url_over"; + script { + emit("elm,action,click", ""); + } + } } } diff --git a/services/SimpleUI/SimpleUI.cpp b/services/SimpleUI/SimpleUI.cpp index d0a29f6..b797ac6 100644 --- a/services/SimpleUI/SimpleUI.cpp +++ b/services/SimpleUI/SimpleUI.cpp @@ -243,6 +243,7 @@ void SimpleUI::connectUISignals() M_ASSERT(m_mainUI.get()); m_mainUI->getDetailPopup().openURLInNewTab.connect(boost::bind(&SimpleUI::onOpenURLInNewTab, this, _1, _2)); + m_mainUI->getDetailPopup().refreshQuicAccessFocusChain.connect(boost::bind(&WebPageUI::showUI, m_webPageUI.get())); m_mainUI->openURLInNewTab.connect(boost::bind(&SimpleUI::onOpenURLInNewTab, this, _1, _2)); m_mainUI->mostVisitedTileClicked.connect(boost::bind(&SimpleUI::onMostVisitedTileClicked, this, _1, _2)); m_mainUI->mostVisitedClicked.connect(boost::bind(&SimpleUI::onMostVisitedClicked, this)); @@ -586,8 +587,12 @@ void SimpleUI::setwvIMEStatus(bool status) void SimpleUI::onBackPressed() { BROWSER_LOGD("[%s]", __func__); - if (!m_webPageUI->getURIEntry().hasFocus() && !m_wvIMEStatus && !m_webPageUI->isHomePageActive()) - m_webEngine->backButtonClicked(); + if (m_webPageUI->isHomePageActive()) { + m_mainUI->backButtonClicked(); + } else { + if (!m_webPageUI->getURIEntry().hasFocus() && !m_wvIMEStatus) + m_webEngine->backButtonClicked(); + } } void SimpleUI::reloadEnable(bool enable) -- 2.7.4 From f739be2f00610911f11c98306fd2f3c0602f25ef Mon Sep 17 00:00:00 2001 From: Dariusz Frankiewicz Date: Mon, 5 Oct 2015 11:00:32 +0200 Subject: [PATCH 15/16] Fix reset most visited sites functionality. [Issue] https://bugs.tizen.org/jira/browse/TT-175 [Problem] Reset most visited sites isn't working. [Cause] Not implemented. [Solution] Implemented setting site visit counter to 0 and displaying only sites with counter grater then 0. [Verify] Visit some sites, go to settings, press Reset Most Visted Sites button, check if on new tab most visited sites are empty. Change-Id: I05d44043744a1b7859b23df282dfb53745fb894d Signed-off-by: Dariusz Frankiewicz --- services/HistoryService/HistoryService.cpp | 42 +++++++++++++++++++++++++----- services/HistoryService/HistoryService.h | 1 + services/SimpleUI/SimpleUI.cpp | 4 +++ 3 files changed, 40 insertions(+), 7 deletions(-) diff --git a/services/HistoryService/HistoryService.cpp b/services/HistoryService/HistoryService.cpp index c60d669..f641b85 100644 --- a/services/HistoryService/HistoryService.cpp +++ b/services/HistoryService/HistoryService.cpp @@ -159,19 +159,20 @@ std::shared_ptr HistoryService::getMostVisitedHistoryItems() int *ids=nullptr; int count=-1; bp_history_rows_cond_fmt conds; - conds.limit = 20; //no of rows to get negative means no limitation + conds.limit = 5; //no of rows to get negative means no limitation conds.offset = -1; //the first row's index - conds.order_offset =BP_HISTORY_O_DATE_CREATED; // property to sort + conds.order_offset = BP_HISTORY_O_FREQUENCY; // property to sort conds.ordering = 1; //way of ordering 0 asc 1 desc conds.period_offset = BP_HISTORY_O_DATE_CREATED; - conds.period_type = BP_HISTORY_DATE_TODAY; + //TODO: consider to change below line to BP_HISTORY_DATE_LAST_MONTH + conds.period_type = BP_HISTORY_DATE_ALL; // set from which period most visited sites are generated int ret = bp_history_adaptor_get_cond_ids_p(&ids ,&count, &conds, 0, nullptr, 0); if (ret<0){ BROWSER_LOGD("Error! Could not get ids!"); } - bp_history_offset offset = (BP_HISTORY_O_URL | BP_HISTORY_O_TITLE | BP_HISTORY_O_FAVICON | BP_HISTORY_O_DATE_CREATED | BP_HISTORY_O_THUMBNAIL); + bp_history_offset offset = (BP_HISTORY_O_URL | BP_HISTORY_O_TITLE | BP_HISTORY_O_FREQUENCY | BP_HISTORY_O_FAVICON | BP_HISTORY_O_DATE_CREATED | BP_HISTORY_O_THUMBNAIL); int freq_arr[1000]; for(int i = 0; i< count; i++){ @@ -213,7 +214,7 @@ std::shared_ptr HistoryService::getMostVisitedHistoryItems() history->setUrl(std::string(history_info.url ? history_info.url : "")); history->setTitle(std::string(history_info.title ? history_info.title : "")); - //thumbail + //thumbnail if (history_info.thumbnail_length != -1) { std::shared_ptr hi = std::make_shared(); hi->imageType = tools::BrowserImage::ImageTypePNG; @@ -226,13 +227,40 @@ std::shared_ptr HistoryService::getMostVisitedHistoryItems() } else { BROWSER_LOGD("history thumbnail lenght is -1"); } - - ret_history_list->push_back(history); + if(history_info.frequency > 0) + ret_history_list->push_back(history); } + free(ids); return ret_history_list; } +void HistoryService::cleanMostVisitedHistoryItems() +{ + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + + int *ids=nullptr; + int count=-1; + bp_history_rows_cond_fmt conds; + conds.limit = -1; // no of rows to get negative means no limitation + conds.offset = -1; // the first row's index + conds.order_offset = BP_HISTORY_O_ALL; // property to sort + conds.ordering = 1; // way of ordering 0 asc 1 desc + conds.period_offset = BP_HISTORY_O_DATE_CREATED; + conds.period_type = BP_HISTORY_DATE_ALL; // set from which period most visited sites are generated + + int ret = bp_history_adaptor_get_cond_ids_p(&ids ,&count, &conds, 0, nullptr, 0); + if (ret<0){ + BROWSER_LOGD("Error! Could not get ids!"); + return; + } + + for(int i = 0; i < count; i++){ + bp_history_adaptor_set_frequency(ids[i], 0); + } + BROWSER_LOGD("Deleted Most Visited Sites!"); +} + std::shared_ptr HistoryService::getHistoryItemsByURL(const std::string& url, int maxItems) { std::string search("%" + tools::extractDomain(url) + "%"); // add SQL 'any character' signs diff --git a/services/HistoryService/HistoryService.h b/services/HistoryService/HistoryService.h index 7764bd3..fc5b7eb 100644 --- a/services/HistoryService/HistoryService.h +++ b/services/HistoryService/HistoryService.h @@ -55,6 +55,7 @@ public: std::shared_ptr getHistoryOlder(); std::shared_ptr getCurrentTab(); std::shared_ptr getMostVisitedHistoryItems(); + void cleanMostVisitedHistoryItems(); std::shared_ptr getHistoryItemsByURL(const std::string & url, int maxItems); int getHistoryItemsCount(); void setStorageServiceTestMode(bool testmode = true); diff --git a/services/SimpleUI/SimpleUI.cpp b/services/SimpleUI/SimpleUI.cpp index b797ac6..56a99f2 100644 --- a/services/SimpleUI/SimpleUI.cpp +++ b/services/SimpleUI/SimpleUI.cpp @@ -946,6 +946,10 @@ void SimpleUI::onDeleteMostVisitedButton(PopupButtons button, std::shared_ptr< P if (button == OK) { BROWSER_LOGD("[%s]: OK", __func__); BROWSER_LOGD("[%s]: Deleting most visited", __func__); + + //TODO: display notification popup + + m_historyService->cleanMostVisitedHistoryItems(); } } -- 2.7.4 From 55a7b59d934b8a715a44c2d6528fce1fb7c2f001 Mon Sep 17 00:00:00 2001 From: sungwon2han Date: Tue, 6 Oct 2015 10:42:04 +0900 Subject: [PATCH 16/16] Remove dead code from WebView class Change-Id: I112affb7ce2924388cc7fb701a66671111d2c047 Signed-off-by: sungwon2han --- services/WebKitEngineService/WebView.cpp | 4 ---- 1 file changed, 4 deletions(-) diff --git a/services/WebKitEngineService/WebView.cpp b/services/WebKitEngineService/WebView.cpp index 3355e32..60d7a4e 100644 --- a/services/WebKitEngineService/WebView.cpp +++ b/services/WebKitEngineService/WebView.cpp @@ -612,10 +612,6 @@ void WebView::__urlChanged(void * data, Evas_Object * /* obj */, void * event_in WebView * self = reinterpret_cast(data); BROWSER_LOGD("URL changed for tab: %s", self->getTabId().toString().c_str()); - std::shared_ptr> m_webEngine; - m_webEngine = std::dynamic_pointer_cast, tizen_browser::core::AbstractService>( - tizen_browser::core::ServiceManager::getInstance().getService("org.tizen.browser.webkitengineservice")); - M_ASSERT(m_webEngine); self->uriChanged(self->getURI()); self->tabIdChecker(self->m_tabId); } -- 2.7.4