From: t.dakowicz Date: Tue, 15 Sep 2015 14:40:23 +0000 (+0200) Subject: TT-163 'Add to bookmarks' UI change X-Git-Tag: accepted/tizen/tv/20150922.001457^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F79%2F48179%2F16;p=profile%2Ftv%2Fapps%2Fweb%2Fbrowser.git TT-163 'Add to bookmarks' UI change [Issue#] https://bugs.tizen.org/jira/browse/TT-163 [Problem] N/A [Cause] 1.02 UI guideline [Solution] Added checkbox that defines current bookmark status and toast popup for info purpose Choosing folder for a new bookmark is still there. Checkbox's style 'favorite' is not available. Change-Id: I78eaf6ca94d6c0ca6605b6822ea5e5c087260d90 --- diff --git a/services/MoreMenuUI/AddBookmarkPopup.cpp b/services/MoreMenuUI/AddBookmarkPopup.cpp index a455589..13d4e8f 100644 --- a/services/MoreMenuUI/AddBookmarkPopup.cpp +++ b/services/MoreMenuUI/AddBookmarkPopup.cpp @@ -159,7 +159,7 @@ void AddBookmarkPopup::addBookmarkFolderItems(std::vector favicon) @@ -219,19 +222,75 @@ 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()); - if(!url.empty()) + char* part_name = "add_to_bookmark_text"; + + if(!url.empty()) { elm_object_part_text_set(m_current_tab_bar, "webpage_url", url.c_str()); - else + + if(true == isBookmark()) { + m_isBookmark = EINA_TRUE; + changeBookmarkStatus(true); + } + else { + m_isBookmark = EINA_FALSE; + changeBookmarkStatus(false); + } + } + else { elm_object_part_text_set(m_current_tab_bar, "webpage_url", ""); + m_isBookmark = EINA_FALSE; + changeBookmarkStatus(false); + } +} + +void MoreMenuUI::changeBookmarkStatus(bool data) +{ + if(data) { + m_isBookmark = EINA_TRUE; + elm_object_part_text_set(m_current_tab_bar, "add_to_bookmark_text", "Remove Bookmark"); + elm_image_file_set(m_bookmarkIcon, m_edjFilePath.c_str(), "ic_add_bookmark.png"); + } + else { + m_isBookmark = EINA_FALSE; + elm_object_part_text_set(m_current_tab_bar, "add_to_bookmark_text", "Add to Bookmark"); + elm_image_file_set(m_bookmarkIcon, m_edjFilePath.c_str(), "ic_add_bookmark_new.png"); + } +} + +void MoreMenuUI::createToastPopup(const char* text) +{ + m_toastPopup = elm_popup_add(m_mm_layout); + elm_object_style_set(m_toastPopup, "toast"); + evas_object_size_hint_weight_set(m_toastPopup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(m_toastPopup, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_object_part_content_set(m_current_tab_bar, "toast_popup", m_toastPopup); + elm_object_part_text_set(m_current_tab_bar, "toast_text", text); + evas_object_smart_callback_add(m_toastPopup, "timeout", _timeout, this); + elm_popup_timeout_set(m_toastPopup, 3.0); +} + +void MoreMenuUI::_timeout(void *data, Evas_Object *obj, void *event_info) +{ + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + MoreMenuUI *moreMenuUI = static_cast(data); + elm_object_part_text_set(moreMenuUI->m_current_tab_bar, "toast_text", ""); + evas_object_del(moreMenuUI->m_toastPopup); } void MoreMenuUI::_star_clicked(void* data, Evas_Object*, void*) { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (data) { + if(data) { MoreMenuUI *moreMenuUI = static_cast(data); - moreMenuUI->addToBookmarkClicked(); - moreMenuUI->AddBookmarkPopupCalled(); + + if (EINA_FALSE == moreMenuUI->m_isBookmark) { + moreMenuUI->addToBookmarkClicked(); + moreMenuUI->AddBookmarkPopupCalled(); + } + else { + moreMenuUI->m_isBookmark = EINA_FALSE; + moreMenuUI->deleteBookmark(); + } } } diff --git a/services/MoreMenuUI/MoreMenuUI.h b/services/MoreMenuUI/MoreMenuUI.h index 4b0fccb..7624b0a 100644 --- a/services/MoreMenuUI/MoreMenuUI.h +++ b/services/MoreMenuUI/MoreMenuUI.h @@ -18,6 +18,7 @@ #define MOREMENUUI_H #include +#include #include #include @@ -82,6 +83,8 @@ public: void setFavIcon(std::shared_ptr favicon); void setWebTitle(const std::string& title); void setURL(const std::string& url); + void changeBookmarkStatus(bool data); + void createToastPopup(const char* text); boost::signals2::signal addToBookmarkClicked; boost::signals2::signal AddBookmarkInput; @@ -95,8 +98,10 @@ public: 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* crateItemClass(); + Elm_Gengrid_Item_Class* createItemClass(); Evas_Object* createMoreMenuLayout(Evas_Object* parent); Evas_Object* createGengrid(Evas_Object* parent); static char* _grid_text_get(void *data, Evas_Object *obj, const char *part); @@ -114,6 +119,7 @@ private: static void _star_clicked(void *data, Evas_Object *obj, void *event_info); static void _close_clicked(void *data, Evas_Object *obj, void *event_info); + static void _timeout(void *data, Evas_Object *obj, void *event_info); static void __cb_mouse_in(void *data, Evas *e, Evas_Object *obj, void *event_info); static void __cb_mouse_out(void *data, Evas *e, Evas_Object *obj, void *event_info); @@ -124,14 +130,17 @@ private: std::shared_ptr m_add_bookmark_popup; Evas_Object *m_gengrid; Evas_Object *m_parent; + Evas_Object *m_toastPopup; + Evas_Object *m_icon; + Evas_Object *m_bookmarkIcon; Elm_Gengrid_Item_Class * m_item_class; std::map m_map_menu_views; std::vector > m_map_bookmark_folder_list; std::string m_edjFilePath; std::string m_folderName; bool m_gengridSetup; - Evas_Object *m_icon; bool m_desktopMode; + Eina_Bool m_isBookmark; }; } diff --git a/services/MoreMenuUI/edc/MoreMenu.edc b/services/MoreMenuUI/edc/MoreMenu.edc index fcfd99a..5347fd3 100644 --- a/services/MoreMenuUI/edc/MoreMenu.edc +++ b/services/MoreMenuUI/edc/MoreMenu.edc @@ -43,6 +43,7 @@ RESOURCE_IMAGE_LOSSY("ic_more_share_nor.png") RESOURCE_IMAGE_LOSSY("ic_more_setting_nor.png") RESOURCE_IMAGE_LOSSY("ic_more_exit_nor.png") RESOURCE_IMAGE_LOSSY("ic_add_bookmark.png") +RESOURCE_IMAGE_LOSSY("ic_add_bookmark_new.png") RESOURCE_IMAGE_LOSSY("ic_more_readermode_foc.png") RESOURCE_IMAGE_LOSSY("ic_more_bookmark_foc.png") RESOURCE_IMAGE_LOSSY("ic_more_history_foc.png") @@ -116,6 +117,40 @@ RESOURCE_IMAGE_LOSSY("ico_url.png") } parts { part { + name: "toast_popup"; + scale:1; + type: SWALLOW; + description { + state: "default" 0.0; + visible: 1; + align: 0 0; + fixed: 1 1; + min: 200 120; + max: 338 120; + rel1 { relative: 0.0 0.0; offset: 63 700;} + rel2 { relative: 1.0 1.0;} + } + } + part { + name: "toast_text"; + scale: 1; + type: TEXT; + description { + state: "default" 0.0; + visible: 1; + fixed: 1 1; + align: 0.5 0.5; + rel1 { relative: 0.0 0.0; to: "toast_popup";} + rel2 { relative: 1.0 1.0; to: "toast_popup";} + color_class: titleTextColor; + text { + font: "Sans"; + size: 28; + align: 0.5 0.5; + } + } + } + part { name: "bg_rect"; scale:1; mouse_events: 1; @@ -371,7 +406,6 @@ RESOURCE_IMAGE_LOSSY("ico_url.png") rel2 { relative: 1.0 1.0; to: "item_background";} color_class: urlTextColor; text { - text: "http:/onet.pl"; font: "font_name"; size: 28; align: 0 0.5; @@ -415,6 +449,21 @@ RESOURCE_IMAGE_LOSSY("ico_url.png") visible: 1; } } + part { + name: "bookmark_ico"; + type: SWALLOW; + scale: 1; + mouse_events: 1; + description { + state: "default" 0.0; + visible: 1; + min: 58 58; + max: 58 58; + fixed: 1 1; + align: 0.0 0.0; + rel1 { relative: 0.0 0.0; to: "star_bg";} + } + } part{ name: "add_to_bookmark_text"; type: TEXT; @@ -422,14 +471,14 @@ RESOURCE_IMAGE_LOSSY("ico_url.png") description { state: "default" 0.0; visible: 1; fixed: 1 1; - rel1 { relative: 0.0 0.0;to: "star_bg";} + align: 0 0; + rel1 { relative: 0.0 0.0;to: "star_bg"; offset: 56 0;} rel2 { relative: 1.0 1.0;to: "star_bg";} color: 0 0 0 255; text { - text: "Add to bookmark"; font: "Sans"; size: 28; - align: 0.5 0.5; + align: 0 0.5; } } } @@ -591,7 +640,7 @@ RESOURCE_IMAGE_LOSSY("ico_url.png") program { name: "mouse_click"; signal: "mouse,clicked,1"; - source: "over"; + source: "*"; script { emit("elm,action,click", ""); } @@ -671,17 +720,17 @@ group { } } } - part { name: "current_tab_bar"; + part { name: "elm.swallow.grid"; type : SWALLOW; scale: 1; description { state: "default" 0.0; visible: 1; - min: 1920 366; - max: 1920 366; + min: 1920 714; + max: 1920 714; align: 0.0 0.0; fixed: 0 0; - rel1 { relative: 0.0 0.0; to: "current_tab_bar_bg";} + rel1 { relative: 0.0 0.0; to: "gengrid_bg"; offset: 63 0;} rel2 { relative: 1.0 1.0; } } description { @@ -694,18 +743,18 @@ group { inherit: "default" 0.0; visible: 1; } - } - part { name: "elm.swallow.grid"; + } + part { name: "current_tab_bar"; type : SWALLOW; scale: 1; description { state: "default" 0.0; visible: 1; - min: 1920 714; - max: 1920 714; + min: 1920 366; + max: 1920 366; align: 0.0 0.0; fixed: 0 0; - rel1 { relative: 0.0 0.0; to: "gengrid_bg"; offset: 63 0;} + rel1 { relative: 0.0 0.0; to: "current_tab_bar_bg";} rel2 { relative: 1.0 1.0; } } description { @@ -718,7 +767,7 @@ group { inherit: "default" 0.0; visible: 1; } - } + } part { name: "elm.swallow.empty"; type: SWALLOW; description { state: "default" 0.0; diff --git a/services/MoreMenuUI/images/ic_add_bookmark_new.png b/services/MoreMenuUI/images/ic_add_bookmark_new.png new file mode 100644 index 0000000..dabcfd7 Binary files /dev/null and b/services/MoreMenuUI/images/ic_add_bookmark_new.png differ diff --git a/services/SimpleUI/SimpleUI.cpp b/services/SimpleUI/SimpleUI.cpp index 486ec7e..80d15a4 100644 --- a/services/SimpleUI/SimpleUI.cpp +++ b/services/SimpleUI/SimpleUI.cpp @@ -433,26 +433,36 @@ void SimpleUI::closeTab(const tizen_browser::basic_webengine::TabId& id) updateView(); } -void SimpleUI::bookmarkCheck() +bool SimpleUI::checkBookmark() { if (m_webPageUI->isHomePageActive()) - return; + return false; - if(m_favoriteService->bookmarkExists(m_webEngine->getURI())){ + if(m_favoriteService->bookmarkExists(m_webEngine->getURI())) { BROWSER_LOGD("[%s] There is bookmark for this site [%s], set indicator on!", __func__, m_webEngine->getURI().c_str()); - // MERGE_ME - //leftButtonBar->setActionForButton("bookmark_button", m_unbookmark); + return true; } - else{ + else { BROWSER_LOGD("[%s] There is no bookmark for this site [%s], set indicator off", __func__, m_webEngine->getURI().c_str()); - // MERGE_ME - //leftButtonBar->setActionForButton("bookmark_button", m_bookmark); - //addBookmarkEnable(m_favoriteService->countBookmarksAndSubFolders() < m_favoritesLimit); + return false; } } // Consider removing these functions void SimpleUI::onBookmarkAdded(std::shared_ptr bookmarkItem) { + if (m_moreMenuUI) { + m_moreMenuUI->changeBookmarkStatus(true); + m_moreMenuUI->createToastPopup( (std::string(m_webEngine->getTitle()) + std::string(" added to bookmark")).c_str() ); + } +} + +void SimpleUI::onBookmarkRemoved(const std::string& uri) +{ + BROWSER_LOGD("[%s] deleted %s", __func__, uri.c_str()); + if (m_moreMenuUI) { + m_moreMenuUI->changeBookmarkStatus(false); + m_moreMenuUI->createToastPopup( (std::string(m_webEngine->getTitle()) + std::string(" removed from bookmark")).c_str() ); + } } void SimpleUI::onHistoryAdded(std::shared_ptr historyItem) @@ -527,17 +537,7 @@ void SimpleUI::onBookmarkClicked(std::shared_ptr bookmarkItem) -{ - BROWSER_LOGD("[%s] delete %s", __func__, bookmarkItem->getAddress().c_str()); - m_favoriteService->deleteBookmark(bookmarkItem->getAddress()); -} - // Consider removing these functions -void SimpleUI::onBookmarkRemoved(const std::string& uri) -{ - BROWSER_LOGD("[%s] deleted %s", __func__, uri.c_str()); -} void SimpleUI::onHistoryRemoved(const std::string& uri) { @@ -667,7 +667,6 @@ void SimpleUI::webEngineURLChanged(const std::string url) { BROWSER_LOGD("webEngineURLChanged:%s", url.c_str()); m_webPageUI->getURIEntry().clearFocus(); - bookmarkCheck(); } void SimpleUI::showTabUI() @@ -876,6 +875,8 @@ void SimpleUI::showMoreMenu() m_moreMenuUI->addToBookmarkClicked.connect(boost::bind(&SimpleUI::addBookmarkFolders, this)); m_moreMenuUI->AddBookmarkInput.connect(boost::bind(&SimpleUI::addToBookmarks, this,_1)); m_moreMenuUI->BookmarkFolderCreated.connect(boost::bind(&SimpleUI::newFolderMoreMenu, this,_1,_2)); + 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(); @@ -901,6 +902,8 @@ void SimpleUI::closeMoreMenu(const std::string& str) m_moreMenuUI->addToBookmarkClicked.disconnect(boost::bind(&SimpleUI::addBookmarkFolders, this)); m_moreMenuUI->AddBookmarkInput.disconnect(boost::bind(&SimpleUI::addToBookmarks, this,_1)); m_moreMenuUI->BookmarkFolderCreated.disconnect(boost::bind(&SimpleUI::newFolderMoreMenu, this,_1,_2)); + m_moreMenuUI->isBookmark.disconnect(boost::bind(&SimpleUI::checkBookmark, this)); + m_moreMenuUI->deleteBookmark.disconnect(boost::bind(&SimpleUI::deleteBookmark, this)); m_moreMenuUI.reset(); } diff --git a/services/SimpleUI/SimpleUI.h b/services/SimpleUI/SimpleUI.h index 5a9ff1f..b2600c3 100644 --- a/services/SimpleUI/SimpleUI.h +++ b/services/SimpleUI/SimpleUI.h @@ -119,7 +119,6 @@ private: void tabCreated(); void tabClosed(const tizen_browser::basic_webengine::TabId& id); - void bookmarkCheck(); std::vector > getBookmarks(int folder_id = -1); std::vector > getBookmarkFolders(int folder_id); std::shared_ptr getHistory(); @@ -129,7 +128,6 @@ private: void onBookmarkAdded(std::shared_ptr bookmarkItem); void onBookmarkClicked(std::shared_ptr bookmarkItem); - void onBookmarkDeleteClicked(std::shared_ptr bookmarkItem); void onBookmarkRemoved(const std::string& uri); void onHistoryAdded(std::shared_ptr historyItem); @@ -188,7 +186,12 @@ private: void webEngineURLChanged(const std::string url); void onmostHistoryvisitedClicked(); void onBookmarkvisitedClicked(); - /** + /** + * @brief Check if the current page exists as a bookmark. + * + */ + bool checkBookmark(); + /** * @brief Adds current page to bookmarks. * */