TT-141 Added current web page info sync 82/46982/8 accepted/tizen/tv/20150901.083958 submit/tizen_tv/20150901.005232
authort.dakowicz <t.dakowicz@samsung.com>
Thu, 27 Aug 2015 14:43:15 +0000 (16:43 +0200)
committert.dakowicz <t.dakowicz@samsung.com>
Fri, 28 Aug 2015 10:28:34 +0000 (12:28 +0200)
[Issue#] https://bugs.tizen.org/jira/browse/TT-141
[Problem] Current web page info wasn't always updated and
          favicon wasn't loaded
[Cause] Lack of proper signals
[Solution] Added signals, removed genlist and used single layout instead,
           resized space for site info, removed pointless image reload
           from  WebView::getFavicon
[Verify] Open a new page -> type web url -> MoreMenu
         Check if the info is properly loaded

Change-Id: Ibe3f7cd97279470761eaa9f58c9e40b06c655eeb

services/MoreMenuUI/MoreMenuUI.cpp
services/MoreMenuUI/MoreMenuUI.h
services/MoreMenuUI/edc/MoreMenu.edc
services/SimpleUI/SimpleUI.cpp
services/WebKitEngineService/WebView.cpp

index ed361b6..fb1bcb5 100644 (file)
@@ -72,10 +72,6 @@ void MoreMenuUI::show(Evas_Object* parent)
     m_gengrid = elm_gengrid_add(m_mm_layout);
     elm_object_part_content_set(m_mm_layout, "elm.swallow.grid", m_gengrid);
 
-    /*evas_object_smart_callback_add(m_gengrid, "item,focused", focusItem, NULL);
-    evas_object_smart_callback_add(m_gengrid, "item,unfocused", unFocusItem, NULL);
-    evas_object_smart_callback_add(m_gengrid, "activated", _itemSelected, this);*/
-
       if (!m_item_class) {
             m_item_class = elm_gengrid_item_class_new();
             m_item_class->item_style = "menu_item";
@@ -98,90 +94,75 @@ void MoreMenuUI::show(Evas_Object* parent)
     addItems();
 }
 
-void MoreMenuUI::showCurrentTab(std::shared_ptr<tizen_browser::services::HistoryItem> item)
+void MoreMenuUI::showCurrentTab()
 {
     BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
-    elm_theme_extension_add(NULL, m_edjFilePath.c_str());
-    m_genList = elm_genlist_add(m_mm_layout);
-    elm_object_part_content_set(m_mm_layout, "elm.swallow.genlist", m_genList);
-    elm_genlist_homogeneous_set(m_genList, EINA_FALSE);
-    elm_genlist_multi_select_set(m_genList, EINA_FALSE);
-    elm_genlist_select_mode_set(m_genList, ELM_OBJECT_SELECT_MODE_ALWAYS);
-    elm_genlist_mode_set(m_genList, ELM_LIST_LIMIT);
-    elm_genlist_decorate_mode_set(m_genList, EINA_TRUE);
-    evas_object_size_hint_weight_set(m_genList, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-
-    /*evas_object_smart_callback_add(m_genList, "item,focused", focusItem, this);
-    evas_object_smart_callback_add(m_genList, "item,unfocused", unFocusItem, NULL);*/
-
-    m_itemClass = elm_genlist_item_class_new();
-    m_itemClass->item_style = "current_tab";
-    m_itemClass->func.text_get = &listItemTextGet;
-    m_itemClass->func.content_get = &listItemContentGet;
-    m_itemClass->func.state_get = 0;
-    m_itemClass->func.del = &listItemDel;
-
-    ItemData * id = new ItemData;
-    id->m_moreMenu = this;
-    id->h_item = item;
-    Elm_Object_Item* elmItem = elm_genlist_item_append(m_genList,            //genlist
-                                                      m_itemClass,           //item Class
-                                                      id,
-                                                      NULL,                  //parent item
-                                                      ELM_GENLIST_ITEM_NONE, //item type
-                                                      NULL,
-                                                      NULL                   //data passed to above function
-                                                     );
-    id->e_item = elmItem;
+    m_current_tab_bar = elm_layout_add(m_mm_layout);
+    elm_layout_file_set(m_current_tab_bar, m_edjFilePath.c_str(), "current_tab_layout");
+    evas_object_size_hint_weight_set(m_current_tab_bar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+    elm_object_part_content_set(m_mm_layout, "current_tab_bar", m_current_tab_bar);
+
+    Evas_Object* button = elm_button_add(m_current_tab_bar);
+    elm_object_style_set(button, "hidden_button");
+    evas_object_smart_callback_add(button, "clicked", _star_clicked, this);
+    elm_object_part_content_set(m_current_tab_bar, "star_click", button);
+
+    button = elm_button_add(m_current_tab_bar);
+    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);
     BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
 }
 
-Evas_Object* MoreMenuUI::listItemContentGet(void* data, Evas_Object* obj, const char* part)
+void MoreMenuUI::setFavIcon(std::shared_ptr<tizen_browser::tools::BrowserImage> favicon)
 {
     BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
-    if (data && obj && part) {
-        ItemData * id = static_cast<ItemData *>(data);
-        const char *part_name1 = "favicon";
-        static const int part_name1_len = strlen(part_name1);
-        const char *part_name2 = "star_click";
-        static const int part_name2_len =strlen(part_name2);
-        const char *part_name3 = "close_click";
-        static const int part_name3_len = strlen(part_name3);
-
-        if (!strncmp(part_name1, part, part_name1_len) && id->h_item.get() && id->h_item->getFavIcon()) {
-            // Currently favicon is not getting fetched from the engine,
-            // so we are showing Google's favicon by default.
-            Evas_Object *thumb_nail = elm_icon_add(obj);
-            const char *file_name = "favicon.png";
-            elm_image_file_set(thumb_nail, id->m_moreMenu->m_edjFilePath.c_str(), file_name);
-            return thumb_nail;
-            //return tizen_browser::tools::EflTools::getEvasImage(id->h_item->getFavIcon(), obj);
+    if(favicon && favicon->imageType != tools::BrowserImage::ImageTypeNoImage){
+        m_icon = tizen_browser::tools::EflTools::getEvasImage(favicon, m_current_tab_bar);
+        if(m_icon){
+            evas_object_size_hint_weight_set(m_icon, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+            evas_object_size_hint_align_set(m_icon, EVAS_HINT_FILL, EVAS_HINT_FILL);
+            elm_object_part_content_set(m_current_tab_bar, "favicon", m_icon);
+            evas_object_show(m_icon);
         }
+    }
+}
 
-        if (!strncmp(part_name2, part, part_name2_len)) {
-            Evas_Object *star_click = elm_button_add(obj);
-            elm_object_style_set(star_click, "hidden_button");
-            evas_object_smart_callback_add(star_click, "clicked", MoreMenuUI::star_clicked_cb, id);
-            return star_click;
-        }
+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");
+}
 
-        if (!strncmp(part_name3, part, part_name3_len)) {
-            Evas_Object *close_click = elm_button_add(obj);
-            elm_object_style_set(close_click, "hidden_button");
-            evas_object_smart_callback_add(close_click, "clicked", MoreMenuUI::close_clicked_cb, id);
-            return close_click;
-        }
+void MoreMenuUI::setURL(const std::string& url)
+{
+    BROWSER_LOGD("[%s:%d] %s", __PRETTY_FUNCTION__, __LINE__, url.c_str());
+    if(!url.empty())
+        elm_object_part_text_set(m_current_tab_bar, "webpage_url", url.c_str());
+    else
+        elm_object_part_text_set(m_current_tab_bar, "webpage_url", "");
+}
+
+void MoreMenuUI::_star_clicked(void* data, Evas_Object*, void*)
+{
+    BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+    if (data) {
+        MoreMenuUI *moreMenuUI = static_cast<MoreMenuUI*>(data);
+        moreMenuUI->addToBookmarkClicked();
+        moreMenuUI->AddBookmarkPopupCalled();
     }
-    return NULL;
 }
 
-void MoreMenuUI::star_clicked_cb(void* data, Evas_Object*, void*)
+void MoreMenuUI::_close_clicked(void* data, Evas_Object*, void*)
 {
     BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
     if (data) {
-        ItemData * id = static_cast<ItemData *>(data);
-        id->m_moreMenu->addToBookmarkClicked();
-        id->m_moreMenu->AddBookmarkPopupCalled();
+        MoreMenuUI *moreMenuUI = static_cast<MoreMenuUI*>(data);
+        moreMenuUI->closeMoreMenuClicked(std::string());
+        moreMenuUI->clearItems();
     }
 }
 
@@ -238,53 +219,11 @@ void MoreMenuUI::addToBookmarks(int folder_id)
      m_add_bookmark_popup->hide();
      m_add_bookmark_popup.reset();
 }
-void MoreMenuUI::close_clicked_cb(void* data, Evas_Object*, void*)
-{
-    BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
-    if (data) {
-        ItemData * id = static_cast<ItemData*>(data);
-        id->m_moreMenu->closeMoreMenuClicked(std::string());
-        id->m_moreMenu->clearItems();
-    }
-}
-
-char* MoreMenuUI::listItemTextGet(void* data, Evas_Object*, const char* part)
-{
-    BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
-    if (data && part) {
-        ItemData *id = static_cast<ItemData*>(data);
-        const char *part_name1 = "webpage_title";
-        static const int part_name1_len = strlen(part_name1);
-        const char *part_name2 = "webpage_url";
-        static const int part_name2_len = strlen(part_name2);
-
-        if (!strncmp(part_name1, part, part_name1_len)) {
-            if (!id->h_item.get()) {
-                return strdup("New Tab");
-            }
-            return strdup(id->h_item->getTitle().c_str());
-        }
-
-        if (!strncmp(part_name2, part, part_name2_len)) {
-            if(!id->h_item.get())
-                return strdup("");
-            return strdup(id->h_item->getUrl().c_str());
-        }
-    }
-    return strdup("");
-}
-
-void MoreMenuUI::listItemDel(void* data, Evas_Object* obj)
-{
-    BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
-    if(data)
-        delete (ItemData *)data;
-}
 
 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, "elm.swallow.genlist"));
+    evas_object_hide(elm_layout_content_get(m_mm_layout, "current_tab_bar"));
     evas_object_hide(m_mm_layout);
 }
 
@@ -507,9 +446,9 @@ void MoreMenuUI::clearItems()
     hide();
     BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
     elm_gengrid_clear(m_gengrid);
-    elm_genlist_clear(m_genList);
     m_map_menu_views.clear();
     m_map_bookmark_folder_list.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();
@@ -521,34 +460,5 @@ void MoreMenuUI::_exitClicked()
     elm_exit();
 }
 
-//void MoreMenuUI::focusItem(void*, Evas_Object*, void* event_info)
-//{
-//    BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
-//    if (event_info) {
-//        Elm_Object_Item *item = static_cast<Elm_Object_Item*>(event_info);
-//        elm_object_item_signal_emit(item, "mouse,in", "over2");
-//
-//        // selected manually
-//        elm_gengrid_item_selected_set(item, EINA_TRUE);
-//    }
-//}
-//
-//void MoreMenuUI::unFocusItem(void*, Evas_Object*, void* event_info)
-//{
-//    BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
-//    if (event_info) {
-//        Elm_Object_Item *item = static_cast<Elm_Object_Item*>(event_info);
-//        elm_object_item_signal_emit( item, "mouse,out", "over2");
-//
-//        // unselected manually
-//        elm_gengrid_item_selected_set(item, EINA_FALSE);
-//    }
-//}
-//
-//void MoreMenuUI::_itemSelected(void*, Evas_Object*, void *)
-//{
-//    BROWSER_LOGD("[%s:%d]", __PRETTY_FUNCTION__, __LINE__);
-//}
-
 }
 }
index 9d0b4d4..cd3d6c1 100644 (file)
@@ -25,7 +25,6 @@
 #include "AbstractService.h"
 #include "ServiceFactory.h"
 #include "service_macros.h"
-//#include "../SimpleUI/SimpleUI.h"
 
 #include "BookmarkItem.h"
 #include "AddBookmarkPopup.h"
@@ -63,12 +62,15 @@ public:
     MoreMenuUI();
     ~MoreMenuUI();
     void show(Evas_Object *main_layout);
-    void showCurrentTab(std::shared_ptr<tizen_browser::services::HistoryItem> item);
+    void showCurrentTab();
     virtual std::string getName();
     void addItems();
     void hide();
     void clearItems();
     void getBookmarkFolderList(std::vector<std::shared_ptr<tizen_browser::services::BookmarkItem> > );
+    void setFavIcon(std::shared_ptr<tizen_browser::tools::BrowserImage> favicon);
+    void setWebTitle(const std::string& title);
+    void setURL(const std::string& url);
 
     boost::signals2::signal<void ()> addToBookmarkClicked;
     boost::signals2::signal<void (int)> AddBookmarkInput;
@@ -84,10 +86,6 @@ private:
     static void _thumbSelected(void * data, Evas_Object * obj, void * event_info);
     static void _exitClicked();
 
-    static Evas_Object* listItemContentGet(void *data, Evas_Object *obj, const char *part);
-    static char*        listItemTextGet(void *data, Evas_Object *obj, const char *part);
-    static void listItemDel(void *, Evas_Object *);
-
     void newFolderPopup(std::string);
     void NewFolderCreate(Evas_Object * popup_content);
     void CancelClicked(Evas_Object * popup_content);
@@ -95,18 +93,17 @@ private:
     void AddBookmarkPopupCalled();
     void addToBookmarks(int folder_id);
 
-    static void star_clicked_cb(void *data, Evas_Object *obj, void *event_info);
-    static void close_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+    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 __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);
 
 private:
-    Evas_Object *m_genList;
+    Evas_Object *m_current_tab_bar;
     std::shared_ptr<tizen_browser::base_ui::NewFolderPopup> m_new_folder_popup;
     Evas_Object *m_mm_layout;
     std::shared_ptr<tizen_browser::base_ui::AddBookmarkPopup> m_add_bookmark_popup;
-    Elm_Genlist_Item_Class *m_itemClass;
     Evas_Object *m_gengrid;
     Evas_Object *m_parent;
     Elm_Gengrid_Item_Class * m_item_class;
@@ -115,10 +112,7 @@ private:
     std::string m_edjFilePath;
     std::string m_folderName;
     bool m_gengridSetup;
-
-    //static void focusItem(void* data, Evas_Object* obj, void* event_info);
-    //static void unFocusItem(void* data, Evas_Object* obj, void* event_info);
-    //static void _itemSelected(void * data, Evas_Object * obj, void * event_info);
+    Evas_Object *m_icon;
 };
 
 }
index e7b67a7..91dbe04 100644 (file)
@@ -52,14 +52,13 @@ RESOURCE_IMAGE_LOSSY("ic_more_mobileview_foc.png")
 RESOURCE_IMAGE_LOSSY("ic_more_share_foc.png")
 RESOURCE_IMAGE_LOSSY("ic_more_setting_foc.png")
 RESOURCE_IMAGE_LOSSY("ic_more_exit_foc.png")
-RESOURCE_IMAGE_LOSSY("favicon.png")
 
 #define WIDTH 1920
 #define HEIGHT 366
 #define ITEM_WIDTH 1200
 
     group {
-        name: "elm/genlist/item/current_tab/default";
+        name: "current_tab_layout";
         min: WIDTH HEIGHT;
         max: WIDTH HEIGHT;
         images {
@@ -332,8 +331,8 @@ RESOURCE_IMAGE_LOSSY("favicon.png")
                     state: "default" 0.0;
                     visible: 1;
                     fixed: 1 1;
-                    min: 216 36;
-                    max: 216 36;
+                    min: 1146 36;
+                    max: 1146 36;
                     align: 0 0.0;
                     rel1 { relative: 0.0 0.0; to: "item_background"; offset: 98 0;}
                     rel2 { relative: 1.0 1.0; to: "item_background";}
@@ -362,8 +361,8 @@ RESOURCE_IMAGE_LOSSY("favicon.png")
                     state: "default" 0.0;
                     visible: 1;
                     fixed: 1 1;
-                    min: 765 27;
-                    max: 765 27;
+                    min: 1146 28;
+                    max: 1146 28;
                     align: 0 0;
                     rel1 { relative: 0.0 0.0; to: "item_background"; offset: 98 51;}
                     rel2 { relative: 1.0 1.0; to: "item_background";}
@@ -371,7 +370,7 @@ RESOURCE_IMAGE_LOSSY("favicon.png")
                     text {
                         text: "http:/onet.pl";
                         font: "font_name";
-                        size: 27;
+                        size: 28;
                         align: 0 0.5;
                     }
                 }
@@ -635,7 +634,7 @@ group {
             image: "web_shadow.png" COMP;
         }
         parts {
-            part { name: "genlist_bg";
+            part { name: "current_tab_bar_bg";
                 type: RECT;
                 mouse_events: 0;
                 description { state: "default" 0.0;
@@ -662,14 +661,14 @@ group {
                                max: 1920 714;
                                         color: 231 231 231 255;
                     rel1 {
-                                                relative: 0 1; to: "genlist_bg";
+                                                relative: 0 1; to: "current_tab_bar_bg";
                     }
                     rel2{
                                                 relative: 1 1;
                     }
                 }
             }
-            part { name: "elm.swallow.genlist";
+            part { name: "current_tab_bar";
                 type : SWALLOW;
                 scale: 1;
                 description {
@@ -679,7 +678,7 @@ group {
                     max: 1920 366;
                     align: 0.0 0.0;
                     fixed: 0 0;
-                    rel1 { relative: 0.0 0.0; to: "genlist_bg";}
+                    rel1 { relative: 0.0 0.0; to: "current_tab_bar_bg";}
                     rel2 { relative: 1.0 1.0; }
                 }
                 description {
index 7d8e1fa..1bb4e66 100644 (file)
@@ -263,8 +263,6 @@ int SimpleUI::exec(const std::string& _url)
             m_webEngine->confirmationRequest.connect(boost::bind(&SimpleUI::handleConfirmationRequest, this, _1));
             m_webEngine->tabCreated.connect(boost::bind(&SimpleUI::tabCreated, this));
             m_webEngine->tabClosed.connect(boost::bind(&SimpleUI::tabClosed,this,_1));
-            m_webEngine->favIconChanged.connect(boost::bind(&SimpleURI::setFavIcon, m_simpleURI.get(), _1));
-            m_webEngine->favIconChanged.connect(boost::bind(&WebTitleBar::setFavIcon, webTitleBar.get(), _1));
             m_webEngine->titleChanged.connect(boost::bind(&WebTitleBar::show, webTitleBar.get(), _1));
             m_webEngine->IMEStateChanged.connect(boost::bind(&SimpleUI::setwvIMEStatus, this, _1));
 
@@ -776,10 +774,6 @@ void SimpleUI::loadFinished()
 
     addBookmarkEnable(m_favoriteService->countBookmarksAndSubFolders() < m_favoritesLimit);
 
-    if(m_simpleURI->getCurrentIconTyep() != SimpleURI::IconTypeFav){
-        m_simpleURI->setFavIcon(m_webEngine->getFavicon());
-        webTitleBar->setFavIcon(m_webEngine->getFavicon());
-    }
     if(m_webEngine->isLoadError()){
         loadError();
     }
@@ -1139,32 +1133,39 @@ void SimpleUI::showMoreMenu()
 {
     BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
     bool current_tab_as_new_tab = isHomePageActive() || (m_historyService->getHistoryItemsCount() == 0);
-    if (!m_moreMenuUI) {
-        m_moreMenuUI = std::dynamic_pointer_cast<tizen_browser::base_ui::MoreMenuUI, tizen_browser::core::AbstractService>
-                       (tizen_browser::core::ServiceManager::getInstance().getService("org.tizen.browser.moremenuui"));
+    if(!m_moreMenuUI){
+        m_moreMenuUI =
+                std::dynamic_pointer_cast
+                <tizen_browser::base_ui::MoreMenuUI,tizen_browser::core::AbstractService>
+                (tizen_browser::core::ServiceManager::getInstance().getService("org.tizen.browser.moremenuui"));
         M_ASSERT(m_moreMenuUI);
-
+        m_webEngine->favIconChanged.disconnect_all_slots();
+        m_webEngine->favIconChanged.connect(boost::bind(&MoreMenuUI::setFavIcon, m_moreMenuUI.get(), _1));
+        m_webEngine->titleChanged.disconnect_all_slots();
+        m_webEngine->titleChanged.connect(boost::bind(&MoreMenuUI::setWebTitle, m_moreMenuUI.get(), _1));
+        m_webEngine->uriChanged.disconnect_all_slots();
+        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.disconnect_all_slots();
-        m_moreMenuUI->closeMoreMenuClicked.connect(boost::bind(&SimpleUI::closeMoreMenu, this, _1));
-        m_moreMenuUI->addToBookmarkClicked.disconnect_all_slots();
+        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->addToBookmarkClicked.connect(boost::bind(&SimpleUI::addBookmarkFolders, this));
-        m_moreMenuUI->AddBookmarkInput.disconnect_all_slots();
-        m_moreMenuUI->AddBookmarkInput.connect(boost::bind(&SimpleUI::addToBookmarks, this, _1));
-        m_moreMenuUI->BookmarkFolderCreated.disconnect_all_slots();
-        m_moreMenuUI->BookmarkFolderCreated.connect(boost::bind(&SimpleUI::newFolderMoreMenu, this, _1, _2));
+        m_moreMenuUI->AddBookmarkInput.connect(boost::bind(&SimpleUI::addToBookmarks, this,_1));
+        m_moreMenuUI->BookmarkFolderCreated.connect(boost::bind(&SimpleUI::newFolderMoreMenu, this,_1,_2));
+
         m_moreMenuUI->show(m_window.get());
-        m_moreMenuUI->showCurrentTab(current_tab_as_new_tab ? nullptr : m_historyService->getCurrentTab());
+        m_moreMenuUI->showCurrentTab();
+        m_moreMenuUI->setFavIcon(m_webEngine->getFavicon());
+        m_moreMenuUI->setWebTitle(m_webEngine->getTitle());
+        m_moreMenuUI->setURL(m_webEngine->getURI());
         BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
     }
 }
 
 void SimpleUI::closeMoreMenu(const std::string& str)
 {
-       BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
-       m_moreMenuUI.reset() ;
+    BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+    m_moreMenuUI.reset();
 }
 
 void SimpleUI::showBookmarkManagerMenu()
index 89ef166..f634541 100644 (file)
@@ -210,7 +210,7 @@ std::string WebView::getURI(void)
 {
 #if defined(USE_EWEBKIT)
     BROWSER_LOGD("%s:%d %s uri=%s", __FILE__, __LINE__, __func__, ewk_view_url_get(m_ewkView));
-    return tizen_browser::tools::fromChar(ewk_view_url_get(m_ewkView));
+    return fromChar(ewk_view_url_get(m_ewkView));
 #else
     return std::string();
 #endif
@@ -427,14 +427,14 @@ void WebView::confirmationResult(WebConfirmationPtr confirmation)
 #endif
 }
 
-std::shared_ptr<tizen_browser::tools::BrowserImage> WebView::captureSnapshot(int targetWidth, int targetHeight)
+std::shared_ptr<BrowserImage> WebView::captureSnapshot(int targetWidth, int targetHeight)
 {
     BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__);
     M_ASSERT(m_ewkView);
     M_ASSERT(targetWidth);
     M_ASSERT(targetHeight);
     Evas_Coord vw, vh;
-    std::shared_ptr<tizen_browser::tools::BrowserImage> noImage = std::make_shared<tizen_browser::tools::BrowserImage>();
+    std::shared_ptr<BrowserImage> noImage = std::make_shared<BrowserImage>();
     evas_object_geometry_get(m_ewkView, nullptr, nullptr, &vw, &vh);
     if (vw == 0 || vh == 0)
         return noImage;
@@ -465,7 +465,7 @@ std::shared_ptr<tizen_browser::tools::BrowserImage> WebView::captureSnapshot(int
     Evas_Object *snapshot = ewk_view_screenshot_contents_get( m_ewkView, area, 1.0, evas_object_evas_get(m_ewkView));
     BROWSER_LOGD("[%s:%d] Snapshot (screenshot) catched, evas pointer: %p",__func__, __LINE__, snapshot);
     if (snapshot)
-        return tizen_browser::tools::EflTools::getBrowserImage(snapshot);
+        return EflTools::getBrowserImage(snapshot);
 #endif
 #endif
 
@@ -594,7 +594,7 @@ void WebView::__titleChanged(void * data, Evas_Object * obj, void * /* event_inf
     BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__);
 
     WebView * self = reinterpret_cast<WebView *>(data);
-    self->m_title = tizen_browser::tools::fromChar(ewk_view_title_get(obj));
+    self->m_title = fromChar(ewk_view_title_get(obj));
 
     self->titleChanged(self->m_title);
 }
@@ -609,7 +609,7 @@ void WebView::__urlChanged(void * data, Evas_Object * /* obj */, void * event_in
     m_webEngine = std::dynamic_pointer_cast<basic_webengine::AbstractWebEngine<Evas_Object>, tizen_browser::core::AbstractService>(
             tizen_browser::core::ServiceManager::getInstance().getService("org.tizen.browser.webkitengineservice"));
     M_ASSERT(m_webEngine);
-    self->uriChanged(tizen_browser::tools::fromChar(reinterpret_cast<const char *>(event_info)));
+    self->uriChanged(fromChar(reinterpret_cast<const char *>(event_info)));
     self->tabIdChecker(self->m_tabId);
 }
 
@@ -630,7 +630,7 @@ void WebView::__faviconChanged(void* data, Evas_Object*, void*)
         Evas_Object * favicon = ewk_context_icon_database_icon_object_add(ewk_view_context_get(self->m_ewkView), ewk_view_url_get(self->m_ewkView),evas_object_evas_get(self->m_ewkView));
         if (favicon) {
             BROWSER_LOGD("[%s:%d] Favicon received", __PRETTY_FUNCTION__, __LINE__);
-            self->faviconImage = tizen_browser::tools::EflTools::getBrowserImage(favicon);
+            self->faviconImage = EflTools::getBrowserImage(favicon);
             evas_object_unref(favicon);
             self->favIconChanged(self->faviconImage);
         }
@@ -653,8 +653,8 @@ void WebView::__IMEOpened(void* data, Evas_Object*, void*)
 
 std::string WebView::securityOriginToUri(const Ewk_Security_Origin *origin)
 {
-    std::string protocol = tizen_browser::tools::fromChar(ewk_security_origin_protocol_get(origin));
-    std::string uri = tizen_browser::tools::fromChar(ewk_security_origin_host_get(origin));
+    std::string protocol = fromChar(ewk_security_origin_protocol_get(origin));
+    std::string uri = fromChar(ewk_security_origin_host_get(origin));
     std::string url = (boost::format("%1%://%2%") % protocol % uri).str();
     return url;
 }
@@ -831,42 +831,21 @@ const TabId& WebView::getTabId(){
 }
 
 
-std::shared_ptr<tizen_browser::tools::BrowserImage> WebView::getFavicon() {
+std::shared_ptr<BrowserImage> WebView::getFavicon()
+{
     BROWSER_LOGD("%s:%d, TabId: %s", __PRETTY_FUNCTION__, __LINE__, m_tabId.toString().c_str());
-    M_ASSERT(m_ewkView);
-
-#if defined(USE_EWEBKIT)
-    if (faviconImage.get() == NULL) {
-
-    if (m_ewkView)
-    {
-        Ewk_Context *context = ewk_view_context_get(m_ewkView);
-        if (context)
-        {
-            Evas_Object * favicon = ewk_context_icon_database_icon_object_add(context, ewk_view_url_get(m_ewkView), evas_object_evas_get(m_ewkView));
-
-#ifndef NDEBUG
-                int w = 0, h = 0;
-                evas_object_image_size_get(favicon, &w, &h);
-                BROWSER_LOGD("[%s]: Info about favicon: w:%d h:%d, type: %s", __func__, w, h, evas_object_type_get(favicon));
-#endif
-                if (favicon) {
-                    std::shared_ptr<tizen_browser::tools::BrowserImage>
-                        image = tizen_browser::tools::EflTools::getBrowserImage(favicon);
+    if(faviconImage.get())
+        return faviconImage;
 
-                    evas_object_unref(favicon);
+    Evas_Object * favicon = ewk_context_icon_database_icon_object_add(ewk_view_context_get(m_ewkView), ewk_view_url_get(m_ewkView),evas_object_evas_get(m_ewkView));
+    faviconImage = EflTools::getBrowserImage(favicon);
+    evas_object_unref(favicon);
 
-                    return image;
-                }
-            } else {
-                return faviconImage;
-            }
-        }
-    }
-#endif
+    if(faviconImage.get())
+        return faviconImage;
 
-    BROWSER_LOGE("[%s:%d]: Returned favicon is empty!", __PRETTY_FUNCTION__, __LINE__);
-    return std::make_shared<tizen_browser::tools::BrowserImage>();
+    BROWSER_LOGD("[%s:%d] Returned favicon is empty!",  __PRETTY_FUNCTION__, __LINE__);
+    return std::make_shared<BrowserImage>();
 }
 
 void WebView::clearPrivateData()