Added action on clear history button clicked. 56/45956/4
authorMarcin Lapinski <m.lapinski@samsung.com>
Wed, 12 Aug 2015 13:31:53 +0000 (15:31 +0200)
committerMarcin Lapinski <m.lapinski@samsung.com>
Wed, 12 Aug 2015 14:00:18 +0000 (07:00 -0700)
[Issue#]   https://bugs.tizen.org/jira/browse/TT-99
[Problem]  'Clear History' button does not work.
[Cause]    Buttons callback was empty.
[Solution] Trigger history clear on button click.
[Verify]   1. (History is not empty)
           2. Open More menu -> history.
           3. Click 'Clear History' button.
           4. History should be deleted.

Change-Id: I7d9b5d40451398d21ef88359f37660261ce1e6e6

services/HistoryUI/HistoryUI.cpp
services/HistoryUI/HistoryUI.h
services/SimpleUI/SimpleUI.cpp
services/SimpleUI/SimpleUI.h

index c2724dadaf90f14ccaf9aacf9953a9371052770b..c562a18fac1c6db4eeef34ea917c93e9a0d0506a 100644 (file)
@@ -125,28 +125,14 @@ void HistoryUI::showActionBar()
     m_itemClassActionBar->func.state_get = nullptr;
     m_itemClassActionBar->func.del = nullptr;
 
-    ItemData *id = new ItemData;
-    id->historyUI = this;
     Elm_Object_Item *elmItem = elm_genlist_item_append(m_genListActionBar,    //genlist
                                                        m_itemClassActionBar,  //item Class
-                                                       id,
+                                                       this,
                                                        nullptr,               //parent item
                                                        ELM_GENLIST_ITEM_NONE, //item type
                                                        nullptr,
                                                        nullptr                //data passed to above function
                                                       );
-    id->e_item = elmItem;
-    ItemData *id2 = new ItemData;
-    id2->historyUI = this;
-    Elm_Object_Item *elmItem2 = elm_genlist_item_append(m_genListActionBar,    //genlist
-                                                        m_itemClassActionBar,  //item Class
-                                                        id2,
-                                                        nullptr,               //parent item
-                                                        ELM_GENLIST_ITEM_NONE, //item type
-                                                        nullptr,
-                                                        nullptr                //data passed to above function
-                                                       );
-    id2->e_item = elmItem2;
 }
 
 Evas_Object* HistoryUI::_listActionBarContentGet(void* data, Evas_Object* obj , const char* part)
@@ -161,7 +147,7 @@ Evas_Object* HistoryUI::_listActionBarContentGet(void* data, Evas_Object* obj ,
         if (!strncmp(part_name1, part, part_name1_len)) {
             Evas_Object *clearHistoryButton = elm_button_add(obj);
             elm_object_style_set(clearHistoryButton, "history_button");
-            evas_object_smart_callback_add(clearHistoryButton, "clicked", tizen_browser::base_ui::HistoryUI::_clearhistory_clicked, data);
+            evas_object_smart_callback_add(clearHistoryButton, "clicked", HistoryUI::_clearHistory_clicked, data);
             return clearHistoryButton;
         }
         if (!strncmp(part_name2, part, part_name2_len)) {
@@ -178,9 +164,9 @@ void HistoryUI::_close_clicked_cb(void * data, Evas_Object*, void*)
 {
     BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
     if (data) {
-        ItemData *id = static_cast<ItemData*>(data);
-        id->historyUI->closeHistoryUIClicked(std::string());
-        id->historyUI->clearItems();
+        HistoryUI *historyUI = static_cast<HistoryUI*>(data);
+        historyUI->closeHistoryUIClicked(std::string());
+        historyUI->clearItems();
     }
 }
 
@@ -202,12 +188,13 @@ char* HistoryUI::_listTodayTextGet(void* data, Evas_Object*, const char* part)
     return nullptr;
 }
 
-void HistoryUI::_clearhistory_clicked(void*, Evas_Object*, void*)
+void HistoryUI::_clearHistory_clicked(void* data, Evas_Object*, void*)
 {
     BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
-//    ItemData *itemData = static_cast<ItemData*>(data);
-//    itemData->tabUI->clearItems();
-//    itemData->tabUI->newTabClicked(std::string());
+
+    HistoryUI *historyUI = static_cast<HistoryUI*>(data);
+    historyUI->clearHistoryClicked(std::string());
+    historyUI->clearItems();
 }
 
 void HistoryUI::addItems()
index 20bcc535f7065b5c52d65a416d1bb2021348a711..4556327dfbf5a4b4f1e84485178ee8c70686a98f 100644 (file)
@@ -43,18 +43,19 @@ public:
     void removeHistoryItem(const std::string& uri);
     void clearItems();
     void hide();
-    void showActionBar();  
+    void showActionBar();
     void show(Evas_Object *main_layout);
     void addItems();
     boost::signals2::signal<void (const std::string&)> closeHistoryUIClicked;
+    boost::signals2::signal<void (const std::string&)> clearHistoryClicked;
     boost::signals2::signal<void (std::shared_ptr<tizen_browser::services::HistoryItem>)> historyItemClicked;
     boost::signals2::signal<void (std::shared_ptr<tizen_browser::services::HistoryItem>)> historyDeleteClicked;
 private:
     static char* _grid_text_get(void *data, Evas_Object *obj, const char *part);
-    static Evas_Object * _history_grid_content_get(void *data, Evas_Object *obj, const char *part); 
+    static Evas_Object * _history_grid_content_get(void *data, Evas_Object *obj, const char *part);
     static Evas_Object * _grid_content_get(void *data, Evas_Object *obj, const char *part);
     static Evas_Object* _listActionBarContentGet(void *data, Evas_Object *obj, const char *part);
-    static void _clearhistory_clicked(void *data, Evas_Object *obj, void *event_info);
+    static void _clearHistory_clicked(void *data, Evas_Object *obj, void *event_info);
     static char* _listTodayTextGet(void* data, Evas_Object* obj , const char* part);
     static void _close_clicked_cb(void *data, Evas_Object *obj, void *event_info);
 
index 0ccc4d0429003e4bf8cb7e9a8f2c7d2e1271db44..4aa6931fffd6515705db987aebd8275d1ccd6680 100644 (file)
@@ -588,6 +588,12 @@ void SimpleUI::onHistoryClicked(std::shared_ptr<tizen_browser::services::History
     openNewTab(historyAddress);
 }
 
+void SimpleUI::onClearHistoryClicked(const std::string&)
+{
+  BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__);
+  m_historyService->clearAllHistory();
+}
+
 void SimpleUI::onMostVisitedClicked(const std::string&)
 {
    BROWSER_LOGD("[%s]", __func__);
@@ -1057,6 +1063,7 @@ void SimpleUI::showHistoryUI(const std::string& str)
     std::dynamic_pointer_cast<tizen_browser::base_ui::HistoryUI,tizen_browser::core::AbstractService>
         (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->historyItemClicked.connect(boost::bind(&SimpleUI::onHistoryClicked, this,_1));
     m_historyUI->addHistoryItems(getHistory());
index 31bd390419175788dc04bf6381aaf74468a44082..482fcded68ab176585e216b34a272108c435a258 100644 (file)
@@ -132,6 +132,8 @@ private:
     void onHistoryAdded(std::shared_ptr<tizen_browser::services::HistoryItem> historyItem);
     void onHistoryRemoved(const std::string& uri);
     void onHistoryClicked(std::shared_ptr<tizen_browser::services::HistoryItem> historyItem);
+    void onClearHistoryClicked(const std::string&);
+
     void onMostVisitedClicked(const std::string&);
     void onBookmarkButtonClicked(const std::string&);
     void onBookmarkManagerButtonClicked(const std::string&);
@@ -225,7 +227,7 @@ private:
     void showMoreMenu();
     void closeMoreMenu(const std::string& str);
     void showHistoryUI(const std::string& str);
-    void closeHistoryUI(const std::string& str);
+    void closeHistoryUI(const std::string&);
     void showMainUI();
     void hideMainUI();
     void showURIBar();