Most visited delete mode implementation 28/90628/3
authorDariusz Frankiewicz <d.frankiewic@samsung.com>
Wed, 28 Sep 2016 14:20:12 +0000 (16:20 +0200)
committerDariusz Frankiewicz <d.frankiewic@samsung.com>
Mon, 3 Oct 2016 13:04:37 +0000 (06:04 -0700)
[Issue]    http://suprem.sec.samsung.net/jira/browse/TWF-2115
[Problem]  Most visited delete mode is not implemented.
[Solution] Implement delete mode.
[Verify]   Open most visited delet mode and check if it works correctly.

Change-Id: I9a423e7805c7e912ac65373e14f4af7493fb2172

services/HistoryService/HistoryService.cpp
services/HistoryService/HistoryService.h
services/QuickAccess/QuickAccess.cpp
services/QuickAccess/QuickAccess.h
services/QuickAccess/edc/QuickAccess_mob.edc
services/SimpleUI/SimpleUI.cpp
services/SimpleUI/SimpleUI.h
services/WebPageUI/EditQuickAccessUI.cpp
services/WebPageUI/EditQuickAccessUI.h
services/WebPageUI/WebPageUI.cpp
services/WebPageUI/WebPageUI.h

index 1daebd7d6b214b7cca8f2793b4f14851b359def6..f33113f1d06cbe76645892cb10bd1bacffec0b1d 100755 (executable)
@@ -437,6 +437,12 @@ void HistoryService::deleteHistoryItem(int id) {
     }
 }
 
+void HistoryService::setMostVisitedFrequency(int id, int frequency)
+{
+    if (bp_history_adaptor_set_frequency(id, frequency) < 0 )
+        errorPrint("bp_history_adaptor_set_frequency");
+}
+
 std::shared_ptr<HistoryItem> HistoryService::getHistoryItem(int * ids, int idNumber)
 {
     bp_history_offset offset = (BP_HISTORY_O_URL | BP_HISTORY_O_TITLE | BP_HISTORY_O_FAVICON | BP_HISTORY_O_DATE_VISITED);
index 83b24f0249ea3a2647b518428ff369a12a592583..a937be7288cafaccb99f3ba1affe84ee9fc0842e 100644 (file)
@@ -54,6 +54,7 @@ public:
     void clearAllHistory();
     void clearURLHistory(const std::string & url);
     void deleteHistoryItem(int id);
+    void setMostVisitedFrequency(int id, int frequency);
     std::shared_ptr<HistoryItem> getHistoryItem(const std::string & url);
     std::shared_ptr<HistoryItemVector> getHistoryAll();
     std::shared_ptr<HistoryItemVector> getHistoryToday();
index af12af487ee0a36fa73ceba0fdf3bff6b6c79a09..e71119ad4eb911edc8b4938a4afe41350afbff93 100644 (file)
@@ -311,8 +311,6 @@ void QuickAccess::setMostVisitedItems(std::shared_ptr<services::HistoryItemVecto
 {
     BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
     clearMostVisitedGengrid();
-    m_mostVisitedItems = items;
-
 
     for (auto it = items->begin(); it != items->end(); ++it)
          addMostVisitedItem(*it);
@@ -339,7 +337,6 @@ void QuickAccess::clearMostVisitedGengrid()
 void QuickAccess::setQuickAccessItems(std::vector<std::shared_ptr<tizen_browser::services::BookmarkItem> > items)
 {
     clearQuickAccessGengrid();
-    m_QuickAccessItems = items;
 
     for (auto it = items.begin(); it != items.end(); ++it)
          addQuickAccessItem(*it);
@@ -480,17 +477,28 @@ char *QuickAccess::_grid_mostVisited_text_get(void *data, Evas_Object *, const c
     return strdup("");
 }
 
-Evas_Object *QuickAccess::_grid_mostVisited_content_get(void *data, Evas_Object *, const char *part)
+Evas_Object *QuickAccess::_grid_mostVisited_content_get(void *data, Evas_Object *obj, const char *part)
 {
-    HistoryItemData *itemData = reinterpret_cast<HistoryItemData*>(data);
-    if (!strcmp(part, "elm.swallow.icon")) {
-        if (itemData->item->getThumbnail()) {
-                Evas_Object * thumb = itemData->item->getThumbnail()->getEvasImage(itemData->quickAccess->m_parent);
-                return thumb;
+    if (data) {
+        HistoryItemData *itemData = reinterpret_cast<HistoryItemData*>(data);
+
+        if (!strcmp(part, "elm.swallow.icon")) {
+            if (itemData->item->getThumbnail()) {
+                    Evas_Object * thumb = itemData->item->getThumbnail()->getEvasImage(itemData->quickAccess->m_parent);
+                    return thumb;
+            }
         }
-        else {
-                return nullptr;
+        if (itemData->quickAccess->m_state == QuickAccessState::DeleteMostVisited) {
+            if (!strcmp(part, "elm.check")) {
+                Evas_Object* checkbox = elm_check_add(obj);
+                evas_object_propagate_events_set(checkbox, EINA_FALSE);
+                evas_object_smart_callback_add(checkbox, "changed", _check_state_changed, data);
+                evas_object_show(checkbox);
+                return checkbox;
+            }
         }
+    } else {
+        BROWSER_LOGW("[%s] data = nullptr", __PRETTY_FUNCTION__);
     }
     return nullptr;
 }
@@ -518,8 +526,25 @@ void QuickAccess::_thumbMostVisitedClicked(void* data, Evas_Object*, void*)
 {
     BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
     HistoryItemData * itemData = reinterpret_cast<HistoryItemData *>(data);
-    itemData->quickAccess->openURL(itemData->item, false);
+    if (itemData->quickAccess->m_state == QuickAccessState::Default) {
+        itemData->quickAccess->openURL(itemData->item, false);
+    }
+}
+
+void QuickAccess::_check_state_changed(void *data, Evas_Object *obj, void *)
+{
+    BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+    if (data) {
+        HistoryItemData * itemData = reinterpret_cast<HistoryItemData *>(data);
+        if (elm_check_state_get(obj))
+            itemData->quickAccess->m_mv_delete_list.push_back(itemData->item);
+        else
+            itemData->quickAccess->m_mv_delete_list.remove(itemData->item);
 
+        itemData->quickAccess->sendSelectedMVItemsCount(static_cast<int>(itemData->quickAccess->m_mv_delete_list.size()));
+    } else {
+        BROWSER_LOGW("[%s] data = nullptr", __PRETTY_FUNCTION__);
+    }
 }
 
 void QuickAccess::showMostVisited()
@@ -531,6 +556,7 @@ void QuickAccess::showMostVisited()
     elm_object_translatable_part_text_set(m_layout, "screen_title", "Most visited websites");  //TODO: translate
     setIndexPage(QuickAccess::MOST_VISITED_PAGE);
 
+    m_mv_delete_list.clear();
 }
 
 void QuickAccess::clearQuickAccessGengrid()
@@ -553,16 +579,32 @@ void QuickAccess::editQuickAccess()
 {
     BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
     m_state = QuickAccessState::Edit;
-    showUI();
+    getQuickAccessItems();
     elm_gengrid_reorder_mode_set(m_quickAccessGengrid, EINA_TRUE);
 }
 
+void QuickAccess::deleteMostVisited()
+{
+    BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+    m_state = QuickAccessState::DeleteMostVisited;
+    getMostVisitedItems();
+}
+
+void QuickAccess::deleteSelectedMostVisitedItems()
+{
+    BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+    for (auto item : m_mv_delete_list) {
+        removeMostVisitedItem(item, 0);
+    }
+    getMostVisitedItems();
+}
+
 void QuickAccess::editingFinished()
 {
     BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
     elm_gengrid_reorder_mode_set(m_quickAccessGengrid, EINA_FALSE);
     m_state = QuickAccessState::Default;
-    showUI();
+    getQuickAccessItems();
 }
 
 void QuickAccess::showScrollerPage(int page)
index 6d715d865c7e93d8f687c79b3ddff1f05bdaabe4..b484f13a37bd7297be4423194a7d2516708ba7db 100644 (file)
@@ -20,6 +20,7 @@
 #include <Evas.h>
 #include <boost/signals2/signal.hpp>
 #include <cstdint>
+#include <list>
 
 #include "AbstractUIComponent.h"
 #include "AbstractService.h"
@@ -29,7 +30,6 @@
 #include "services/HistoryService/HistoryItem.h"
 #include "services/HistoryService/HistoryItemTypedef.h"
 #include "BookmarkItem.h"
-#include "NaviframeWrapper.h"
 #include "Tools/EflTools.h"
 
 namespace tizen_browser{
@@ -38,6 +38,7 @@ namespace base_ui{
 enum class QuickAccessState {
     Default,
     Edit,
+    DeleteMostVisited,
 };
 
 class BROWSER_EXPORT QuickAccess
@@ -50,7 +51,9 @@ public:
     void init(Evas_Object *main_layout);
     Evas_Object* getContent();
     Evas_Object* getQuickAccessGengrid() {return m_quickAccessGengrid;}
+    Evas_Object* getMostVisitedGengrid() {return m_mostVisitedGengrid;}
     void setQuickAccessState(QuickAccessState state) {m_state = state;}
+    QuickAccessState getQuickAccessState() {return m_state;}
     void setMostVisitedItems(std::shared_ptr<services::HistoryItemVector> vec);
     void setQuickAccessItems(std::vector<std::shared_ptr<tizen_browser::services::BookmarkItem> > vec);
     void hideUI();
@@ -65,14 +68,21 @@ public:
     void showMostVisited();
     void showQuickAccess();
     void editQuickAccess();
+    void deleteMostVisited();
+    void deleteSelectedMostVisitedItems();
     void editingFinished();
 
-    boost::signals2::signal<void (std::shared_ptr<tizen_browser::services::HistoryItem>, bool)> openURL;
+    boost::signals2::signal<void (std::shared_ptr<tizen_browser::services::HistoryItem>, bool)>
+        openURL;
     boost::signals2::signal<void ()> getMostVisitedItems;
     boost::signals2::signal<void ()> getQuickAccessItems;
     boost::signals2::signal<void ()> addQuickAccessClicked;
     boost::signals2::signal<void ()> switchViewToWebPage;
-    boost::signals2::signal<void (std::shared_ptr<tizen_browser::services::BookmarkItem>)> deleteQuickAccessItem;
+    boost::signals2::signal<void (std::shared_ptr<tizen_browser::services::BookmarkItem>)>
+        deleteQuickAccessItem;
+    boost::signals2::signal<void (std::shared_ptr<tizen_browser::services::HistoryItem>, int)>
+        removeMostVisitedItem;
+    boost::signals2::signal<void (int)> sendSelectedMVItemsCount;
 
 private:
     struct HistoryItemData
@@ -116,6 +126,7 @@ private:
     static void _grid_mostVisited_del(void *data, Evas_Object *obj);
     static void _thumbQuickAccessClicked(void * data, Evas_Object * obj, void * event_info);
     static void _thumbMostVisitedClicked(void * data, Evas_Object * obj, void * event_info);
+    static void _check_state_changed(void *data, Evas_Object *obj, void *);
     void setEmptyView(bool empty);
     void showNoMostVisitedLabel();
     static void setButtonColor(Evas_Object* button, int r, int b, int g, int a);
@@ -141,16 +152,14 @@ private:
     int m_currPage;
     Elm_Gengrid_Item_Class * m_quickAccess_item_class;
     Elm_Gengrid_Item_Class * m_mostVisited_item_class;
-    std::shared_ptr<services::HistoryItemVector> m_mostVisitedItems;
     std::string edjFilePath;
     bool m_desktopMode;
     QuickAccessState m_state;
-    SharedNaviframeWrapper m_naviframe;
 
     Evas_Object* m_index;
     Evas_Object* m_verticalScroller;
     Elm_Gengrid_Item_Class * m_quickAccess_tile_class;
-    std::vector<std::shared_ptr<tizen_browser::services::BookmarkItem> > m_QuickAccessItems;
+    std::list<std::shared_ptr<tizen_browser::services::HistoryItem>> m_mv_delete_list;
     bool m_landscapeView;
     static const int MOST_VISITED_PAGE = 1;
     static const int QUICKACCESS_PAGE = 0;
index 8c8e30d2cb72e7bab48634d46164e7339f91ce51..70ff93102fcf9c0d65e4cb13cbdc895b00773d6a 100644 (file)
@@ -592,7 +592,7 @@ group {
 group {
     name: "elm/gengrid/item/mostVisited/default";
     data.item: "texts" "elm.text";
-    data.item: "contents" "elm.swallow.icon";
+    data.item: "contents" "elm.swallow.icon elm.check";
     parts {
         part { name: "bg";
             type: RECT;
@@ -638,6 +638,18 @@ group {
             }
         }
 
+        swallow { "elm.check"; scale;
+            mouse_events: 1;
+            repeat_events: 0;
+            description { "default";
+                min: 50 50;
+                max: 50 50;
+                align: 1 0;
+                rel1.to: "bg";
+                rel2.to: "bg";
+            }
+        }
+
         ADD_SPACER_BELOW("title_spacer", "elm.swallow.icon", 0, 2)
 
         part { name: "text_bg";
index bafeb93e6cbbbcf27d458d47a6185f26849dee2d..1dee727e617cf0d9387b840eb7070211ae501ce2 100755 (executable)
@@ -160,6 +160,12 @@ std::shared_ptr<services::HistoryItemVector> SimpleUI::getMostVisitedItems()
     return m_historyService->getMostVisitedHistoryItems();
 }
 
+void SimpleUI::setMostVisitedFrequencyValue(
+    std::shared_ptr<services::HistoryItem> historyItem, int visitFrequency)
+{
+    m_historyService->setMostVisitedFrequency(historyItem->getId(), visitFrequency);
+}
+
 std::shared_ptr<services::HistoryItemVector> SimpleUI::getHistory()
 {
     return m_historyService->getHistoryToday();
@@ -357,9 +363,18 @@ void SimpleUI::connectWebPageSignals()
     m_webPageUI->forwardPage.connect(boost::bind(&basic_webengine::AbstractWebEngine::forward, m_webEngine.get()));
     m_webPageUI->showQuickAccess.connect(boost::bind(&SimpleUI::showQuickAccess, this));
     m_webPageUI->hideQuickAccess.connect(boost::bind(&QuickAccess::hideUI, m_quickAccess));
-    m_webPageUI->getQuickAccessEditUI()->requestQuickAccessGengrid.connect(boost::bind(&QuickAccess::getQuickAccessGengrid, m_quickAccess.get()));
-    m_webPageUI->getQuickAccessEditUI()->editingFinished.connect(boost::bind(&QuickAccess::editingFinished, m_quickAccess.get()));
-    m_webPageUI->getQuickAccessEditUI()->closeUI.connect(boost::bind(&SimpleUI::closeTopView, this));
+    m_webPageUI->getQuickAccessEditUI()->requestQuickAccessGengrid.connect(
+        boost::bind(&QuickAccess::getQuickAccessGengrid, m_quickAccess.get()));
+    m_webPageUI->getQuickAccessEditUI()->requestMostVisitedGengrid.connect(
+        boost::bind(&QuickAccess::getMostVisitedGengrid, m_quickAccess.get()));
+    m_webPageUI->getQuickAccessEditUI()->requestQuickAccessState.connect(
+        boost::bind(&QuickAccess::getQuickAccessState, m_quickAccess.get()));
+    m_webPageUI->getQuickAccessEditUI()->editingFinished.connect(
+        boost::bind(&QuickAccess::editingFinished, m_quickAccess.get()));
+    m_webPageUI->getQuickAccessEditUI()->deleteSelectedMostVisitedItems.connect(
+        boost::bind(&QuickAccess::deleteSelectedMostVisitedItems, m_quickAccess.get()));
+    m_webPageUI->getQuickAccessEditUI()->closeUI.connect(
+        boost::bind(&SimpleUI::closeTopView, this));
     m_webPageUI->focusWebView.connect(boost::bind(&basic_webengine::AbstractWebEngine::setFocus, m_webEngine.get()));
     m_webPageUI->unfocusWebView.connect(boost::bind(&basic_webengine::AbstractWebEngine::clearFocus, m_webEngine.get()));
     m_webPageUI->bookmarkManagerClicked.connect(boost::bind(&SimpleUI::showBookmarkManagerUI, this,
@@ -385,6 +400,7 @@ void SimpleUI::connectWebPageSignals()
     m_webPageUI->switchToMobileMode.connect(boost::bind(&SimpleUI::switchToMobileMode, this));
     m_webPageUI->switchToDesktopMode.connect(boost::bind(&SimpleUI::switchToDesktopMode, this));
     m_webPageUI->quickAccessEdit.connect(boost::bind(&SimpleUI::editQuickAccess, this));
+    m_webPageUI->deleteMostVisited.connect(boost::bind(&SimpleUI::deleteMostVisited, this));
     m_webPageUI->addToQuickAccess.connect(boost::bind(&SimpleUI::addQuickAccess, this));
     m_webPageUI->getEngineState.connect(boost::bind(&basic_webengine::AbstractWebEngine::getState, m_webEngine.get()));
     // WPA
@@ -404,6 +420,10 @@ void SimpleUI::connectQuickAccessSignals()
     m_quickAccess->switchViewToWebPage.connect(boost::bind(&SimpleUI::switchViewToWebPage, this));
     m_quickAccess->addQuickAccessClicked.connect(boost::bind(&SimpleUI::onNewQuickAccessClicked, this));
     m_quickAccess->deleteQuickAccessItem.connect(boost::bind(&SimpleUI::onBookmarkDeleted, this, _1));
+    m_quickAccess->removeMostVisitedItem.connect(
+        boost::bind(&SimpleUI::setMostVisitedFrequencyValue, this, _1, _2));
+    m_quickAccess->sendSelectedMVItemsCount.connect(
+        boost::bind(&WebPageUI::setMostVisitedSelectedItemsCountInEditMode, m_webPageUI.get(), _1));
     m_quickAccess->isLandscape.connect(boost::bind(&SimpleUI::isLandscape, this));
 }
 
@@ -1710,6 +1730,13 @@ void SimpleUI::editQuickAccess()
     pushViewToStack(m_webPageUI->getQuickAccessEditUI().get());
 }
 
+void SimpleUI::deleteMostVisited()
+{
+    BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+    m_quickAccess->deleteMostVisited();
+    pushViewToStack(m_webPageUI->getQuickAccessEditUI().get());
+}
+
 void SimpleUI::addQuickAccess()
 {
     BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
index a26afcae45a251457e1fc09f0110fcccdd5e6aaa..3ee969e3eba1a98135ba7c5efa6125f6db10a9d0 100644 (file)
@@ -144,6 +144,8 @@ private:
 
     std::shared_ptr<services::HistoryItemVector> getHistory();
     std::shared_ptr<services::HistoryItemVector> getMostVisitedItems();
+    void setMostVisitedFrequencyValue(std::shared_ptr<tizen_browser::services::HistoryItem> historyItem,
+        int visitFrequency);
 
     void onBookmarkClicked(std::shared_ptr<tizen_browser::services::BookmarkItem> bookmarkItem);
     void onNewQuickAccessClicked();
@@ -248,6 +250,7 @@ private:
     void switchToMobileMode();
     void switchToDesktopMode();
     void editQuickAccess();
+    void deleteMostVisited();
     void addQuickAccess();
     Evas_Object* showHistoryUI(Evas_Object* parent, SharedNaviframeWrapper naviframe, bool removeMode = false);
     void closeHistoryUI();
index f2958887c0fb8df522571fe7c4704fb740314889..5716de3e9fc75fdfb1d29aa3b5e505ccddc3337c 100644 (file)
 #include "EditQuickAccessUI.h"
 
 #include <Elementary.h>
+#include <boost/format.hpp>
 #include <AbstractMainWindow.h>
 #include "ServiceManager.h"
 #include "BrowserLogger.h"
 #include "Tools/EflTools.h"
 #include "QuickAccess.h"
+#include "app_i18n.h"
 
 namespace tizen_browser{
 namespace base_ui{
 
 EditQuickAccessUI::EditQuickAccessUI()
     : m_parent(nullptr)
+    , m_editState(QuickAccessState::Edit)
 {
     BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
 }
@@ -42,6 +45,8 @@ void EditQuickAccessUI::showUI()
     BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
     M_ASSERT(m_naviframe->getLayout());
     m_naviframe->show();
+    if (m_editState == QuickAccessState::Edit)
+        m_naviframe->setRightButtonEnabled(true);
 }
 
 void EditQuickAccessUI::hideUI()
@@ -62,15 +67,39 @@ Evas_Object *EditQuickAccessUI::getContent()
 {
     BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
     M_ASSERT(m_parent);
-    if (!m_naviframe)
-        createEditQuickAccessLayout();
 
-    auto signal = requestQuickAccessGengrid();
+    auto signal = requestQuickAccessState();
     if (signal)
-        m_naviframe->setContent(*signal);
+        m_editState = *signal;
     else
         BROWSER_LOGW("Missing signal value");
 
+    if (!m_naviframe)
+        createEditLayout();
+
+    if (m_editState == QuickAccessState::Edit) {
+        m_naviframe->setTitle(_("IDS_BR_OPT_EDIT_QUICK_ACCESS_ABB"));
+        m_naviframe->setRightButtonText(_("IDS_BR_SK_DONE"));
+        auto signal = requestQuickAccessGengrid();
+        if (signal)
+            m_naviframe->setContent(*signal);
+        else
+            BROWSER_LOGW("Missing signal value");
+    } else if (m_editState == QuickAccessState::DeleteMostVisited) {
+        //TODO: add translation IDS_BR_HEADER_SELECT_ITEMS_ABB2
+        m_naviframe->setTitle("Select items");
+        m_naviframe->setRightButtonText(_("IDS_BR_SK_DELETE_ABB"));
+        auto signal = requestMostVisitedGengrid();
+        if (signal)
+            m_naviframe->setContent(*signal);
+        else
+            BROWSER_LOGW("Missing signal value");
+    } else {
+        BROWSER_LOGE("No correct Edit state");
+    }
+    m_naviframe->setRightButtonVisible(true);
+    m_naviframe->setRightButtonEnabled(false);
+
     return m_naviframe->getLayout();
 }
 
@@ -81,6 +110,16 @@ void EditQuickAccessUI::backPressed()
     closeUI();
 }
 
+void EditQuickAccessUI::setMVSelectedItems(int count)
+{
+    if (count)
+        m_naviframe->setTitle((boost::format(_("IDS_BR_HEADER_PD_SELECTED_ABB")) % count).str());
+    else
+        //TODO: Add translation
+        m_naviframe->setTitle("Select items");
+    m_naviframe->setRightButtonEnabled(count);
+}
+
 void EditQuickAccessUI::_cancel_clicked(void *data, Evas_Object *, void *)
 {
     BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
@@ -93,25 +132,27 @@ void EditQuickAccessUI::_done_clicked(void *data, Evas_Object *, void *)
     BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
     auto self = static_cast<EditQuickAccessUI*>(data);
     self->editingFinished();
-    //TODO: save reordered items
+    if (self->m_editState == QuickAccessState::Edit) {
+        //TODO: save reordered items
+    } else if (self->m_editState == QuickAccessState::DeleteMostVisited) {
+        self->deleteSelectedMostVisitedItems();
+    }
+
     self->closeUI();
 }
 
-void EditQuickAccessUI::createEditQuickAccessLayout()
+void EditQuickAccessUI::createEditLayout()
 {
     BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
     M_ASSERT(m_parent);
 
     m_naviframe = std::make_shared<NaviframeWrapper>(m_parent);
-    m_naviframe->setTitle("Edit quick access");
 
     m_naviframe->addLeftButton(_cancel_clicked, this);
-    m_naviframe->setLeftButtonText("Cancel");
+    m_naviframe->setLeftButtonText(_("IDS_BR_SK_CANCEL_ABB"));
     m_naviframe->setLeftButtonVisible(true);
 
     m_naviframe->addRightButton(_done_clicked, this);
-    m_naviframe->setRightButtonText("Done");
-    m_naviframe->setRightButtonVisible(true);
 }
 
 }   // namespace tizen_browser
index 6dd1e921920643f15fe48a095c84c51441526690..6ed513dca28e9e8df676c9e14ed35e400455c885 100644 (file)
@@ -42,19 +42,24 @@ public:
     void init(Evas_Object *parent);
     Evas_Object* getContent();
     void backPressed();
+    void setMVSelectedItems(int count);
 
     boost::signals2::signal<Evas_Object* ()> requestQuickAccessGengrid;
+    boost::signals2::signal<Evas_Object* ()> requestMostVisitedGengrid;
+    boost::signals2::signal<QuickAccessState ()> requestQuickAccessState;
     boost::signals2::signal<void ()> editingFinished;
+    boost::signals2::signal<void ()> deleteSelectedMostVisitedItems;
 
 private:
 
     static void _cancel_clicked(void *data, Evas_Object *, void *);
     static void _done_clicked(void *data, Evas_Object *, void *);
 
-    void createEditQuickAccessLayout();
+    void createEditLayout();
     SharedNaviframeWrapper m_naviframe;
     Evas_Object *m_parent;
     std::shared_ptr<QuickAccess> m_quickAccess;
+    QuickAccessState m_editState;
 };
 
 }   // namespace tizen_browser
index fd5f478ac49b2afdce8e9c64a21cee7d68d372f1..a617ced8e0db9e3f9f1f618939db7f91dfcbb90f 100755 (executable)
@@ -266,6 +266,12 @@ void WebPageUI::switchViewToQuickAccess(Evas_Object* content)
     setQuickAccessView();
 }
 
+void WebPageUI::setMostVisitedSelectedItemsCountInEditMode(int count)
+{
+    BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+    m_editQuickAccessUI->setMVSelectedItems(count);
+}
+
 void WebPageUI::faviconClicked(void* data, Evas_Object*, const char*, const char*)
 {
     BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
@@ -385,7 +391,7 @@ void WebPageUI::showContextMenu()
             if (!isMostVisitedOpt || !(*isMostVisitedOpt))
                 elm_ctxpopup_item_append(m_ctxpopup, _("IDS_BR_OPT_EDIT_QUICK_ACCESS_ABB"), nullptr, _cm_edit_qa_clicked, this);
             else
-                elm_ctxpopup_item_append(m_ctxpopup, _("IDS_BR_OPT_DELETE"), nullptr, nullptr, nullptr);
+                elm_ctxpopup_item_append(m_ctxpopup, _("IDS_BR_OPT_DELETE"), nullptr, _cm_delete_mv_clicked, this);
         } else if (m_statesMgr->equals(WPUState::MAIN_WEB_PAGE)) {
             elm_ctxpopup_item_append(m_ctxpopup, _("IDS_BR_OPT_SHARE"), nullptr, _cm_share_clicked, this);
             elm_ctxpopup_item_append(m_ctxpopup, _("IDS_BR_OPT_FIND_ON_PAGE"), nullptr, _cm_find_on_page_clicked, this);
@@ -434,6 +440,18 @@ void WebPageUI::_cm_edit_qa_clicked(void* data, Evas_Object*, void* )
         BROWSER_LOGW("[%s] data = nullptr", __PRETTY_FUNCTION__);
 }
 
+void WebPageUI::_cm_delete_mv_clicked(void *data, Evas_Object *, void *)
+{
+    BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+    if (data) {
+        WebPageUI* webPageUI = static_cast<WebPageUI*>(data);
+        _cm_dismissed(nullptr, webPageUI->m_ctxpopup, nullptr);
+        webPageUI->deleteMostVisited();
+    } else {
+        BROWSER_LOGW("[%s] data = nullptr", __PRETTY_FUNCTION__);
+    }
+}
+
 void WebPageUI::_cm_share_clicked(void* data, Evas_Object*, void* )
 {
     BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
index 29f5dced2cb21113f51efe375fda4de02ed25968..17fec4bca1d215cfebd2d6aac1b73b109cfe42b2 100755 (executable)
@@ -112,6 +112,7 @@ public:
     void switchViewToQuickAccess(Evas_Object* content);
     URIEntry& getURIEntry() const { return *m_URIEntry.get(); }
     std::shared_ptr<EditQuickAccessUI> getQuickAccessEditUI() { return m_editQuickAccessUI; }
+    void setMostVisitedSelectedItemsCountInEditMode(int count);
     void setTabsNumber(int tabs);
     void setBackButtonEnabled(bool enabled) { m_back->setEnabled(enabled); }
     void setForwardButtonEnabled(bool enabled) { m_forward->setEnabled(enabled); }
@@ -154,6 +155,7 @@ public:
     boost::signals2::signal<void ()> switchToMobileMode;
     boost::signals2::signal<void ()> switchToDesktopMode;
     boost::signals2::signal<void ()> quickAccessEdit;
+    boost::signals2::signal<void ()> deleteMostVisited;
     boost::signals2::signal<void ()> addToQuickAccess;
     boost::signals2::signal<bool ()> isMostVisited;
 
@@ -176,6 +178,7 @@ private:
     static Evas_Event_Flags _gesture_move(void *data, void *event_info);
 #endif
     static void _cm_edit_qa_clicked(void*, Evas_Object*, void*);
+    static void _cm_delete_mv_clicked(void*, Evas_Object*, void*);
     static void _cm_share_clicked(void*, Evas_Object*, void*);
     static void _cm_find_on_page_clicked(void*, Evas_Object*, void*);
     static void _cm_delete_bookmark_clicked(void*, Evas_Object*, void*);