From: Dariusz Frankiewicz Date: Wed, 28 Sep 2016 14:20:12 +0000 (+0200) Subject: Most visited delete mode implementation X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F28%2F90628%2F3;p=profile%2Fcommon%2Fapps%2Fweb%2Fbrowser.git Most visited delete mode implementation [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 --- diff --git a/services/HistoryService/HistoryService.cpp b/services/HistoryService/HistoryService.cpp index 1daebd7d..f33113f1 100755 --- a/services/HistoryService/HistoryService.cpp +++ b/services/HistoryService/HistoryService.cpp @@ -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 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); diff --git a/services/HistoryService/HistoryService.h b/services/HistoryService/HistoryService.h index 83b24f02..a937be72 100644 --- a/services/HistoryService/HistoryService.h +++ b/services/HistoryService/HistoryService.h @@ -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 getHistoryItem(const std::string & url); std::shared_ptr getHistoryAll(); std::shared_ptr getHistoryToday(); diff --git a/services/QuickAccess/QuickAccess.cpp b/services/QuickAccess/QuickAccess.cpp index af12af48..e71119ad 100644 --- a/services/QuickAccess/QuickAccess.cpp +++ b/services/QuickAccess/QuickAccess.cpp @@ -311,8 +311,6 @@ void QuickAccess::setMostVisitedItems(std::shared_ptrbegin(); it != items->end(); ++it) addMostVisitedItem(*it); @@ -339,7 +337,6 @@ void QuickAccess::clearMostVisitedGengrid() void QuickAccess::setQuickAccessItems(std::vector > 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(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(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(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(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(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) diff --git a/services/QuickAccess/QuickAccess.h b/services/QuickAccess/QuickAccess.h index 6d715d86..b484f13a 100644 --- a/services/QuickAccess/QuickAccess.h +++ b/services/QuickAccess/QuickAccess.h @@ -20,6 +20,7 @@ #include #include #include +#include #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 vec); void setQuickAccessItems(std::vector > vec); void hideUI(); @@ -65,14 +68,21 @@ public: void showMostVisited(); void showQuickAccess(); void editQuickAccess(); + void deleteMostVisited(); + void deleteSelectedMostVisitedItems(); void editingFinished(); - boost::signals2::signal, bool)> openURL; + boost::signals2::signal, bool)> + openURL; boost::signals2::signal getMostVisitedItems; boost::signals2::signal getQuickAccessItems; boost::signals2::signal addQuickAccessClicked; boost::signals2::signal switchViewToWebPage; - boost::signals2::signal)> deleteQuickAccessItem; + boost::signals2::signal)> + deleteQuickAccessItem; + boost::signals2::signal, int)> + removeMostVisitedItem; + boost::signals2::signal 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 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 > m_QuickAccessItems; + std::list> m_mv_delete_list; bool m_landscapeView; static const int MOST_VISITED_PAGE = 1; static const int QUICKACCESS_PAGE = 0; diff --git a/services/QuickAccess/edc/QuickAccess_mob.edc b/services/QuickAccess/edc/QuickAccess_mob.edc index 8c8e30d2..70ff9310 100644 --- a/services/QuickAccess/edc/QuickAccess_mob.edc +++ b/services/QuickAccess/edc/QuickAccess_mob.edc @@ -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"; diff --git a/services/SimpleUI/SimpleUI.cpp b/services/SimpleUI/SimpleUI.cpp index bafeb93e..1dee727e 100755 --- a/services/SimpleUI/SimpleUI.cpp +++ b/services/SimpleUI/SimpleUI.cpp @@ -160,6 +160,12 @@ std::shared_ptr SimpleUI::getMostVisitedItems() return m_historyService->getMostVisitedHistoryItems(); } +void SimpleUI::setMostVisitedFrequencyValue( + std::shared_ptr historyItem, int visitFrequency) +{ + m_historyService->setMostVisitedFrequency(historyItem->getId(), visitFrequency); +} + std::shared_ptr 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__); diff --git a/services/SimpleUI/SimpleUI.h b/services/SimpleUI/SimpleUI.h index a26afcae..3ee969e3 100644 --- a/services/SimpleUI/SimpleUI.h +++ b/services/SimpleUI/SimpleUI.h @@ -144,6 +144,8 @@ private: std::shared_ptr getHistory(); std::shared_ptr getMostVisitedItems(); + void setMostVisitedFrequencyValue(std::shared_ptr historyItem, + int visitFrequency); void onBookmarkClicked(std::shared_ptr 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(); diff --git a/services/WebPageUI/EditQuickAccessUI.cpp b/services/WebPageUI/EditQuickAccessUI.cpp index f2958887..5716de3e 100644 --- a/services/WebPageUI/EditQuickAccessUI.cpp +++ b/services/WebPageUI/EditQuickAccessUI.cpp @@ -17,17 +17,20 @@ #include "EditQuickAccessUI.h" #include +#include #include #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(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(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 diff --git a/services/WebPageUI/EditQuickAccessUI.h b/services/WebPageUI/EditQuickAccessUI.h index 6dd1e921..6ed513dc 100644 --- a/services/WebPageUI/EditQuickAccessUI.h +++ b/services/WebPageUI/EditQuickAccessUI.h @@ -42,19 +42,24 @@ public: void init(Evas_Object *parent); Evas_Object* getContent(); void backPressed(); + void setMVSelectedItems(int count); boost::signals2::signal requestQuickAccessGengrid; + boost::signals2::signal requestMostVisitedGengrid; + boost::signals2::signal requestQuickAccessState; boost::signals2::signal editingFinished; + boost::signals2::signal 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 m_quickAccess; + QuickAccessState m_editState; }; } // namespace tizen_browser diff --git a/services/WebPageUI/WebPageUI.cpp b/services/WebPageUI/WebPageUI.cpp index fd5f478a..a617ced8 100755 --- a/services/WebPageUI/WebPageUI.cpp +++ b/services/WebPageUI/WebPageUI.cpp @@ -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(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__); diff --git a/services/WebPageUI/WebPageUI.h b/services/WebPageUI/WebPageUI.h index 29f5dced..17fec4bc 100755 --- a/services/WebPageUI/WebPageUI.h +++ b/services/WebPageUI/WebPageUI.h @@ -112,6 +112,7 @@ public: void switchViewToQuickAccess(Evas_Object* content); URIEntry& getURIEntry() const { return *m_URIEntry.get(); } std::shared_ptr 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 switchToMobileMode; boost::signals2::signal switchToDesktopMode; boost::signals2::signal quickAccessEdit; + boost::signals2::signal deleteMostVisited; boost::signals2::signal addToQuickAccess; boost::signals2::signal 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*);