Refactored TabUI service 90/45690/2
authorJanusz Majnert <j.majnert@samsung.com>
Fri, 7 Aug 2015 17:01:24 +0000 (19:01 +0200)
committerJanusz Majnert <j.majnert@samsung.com>
Mon, 10 Aug 2015 14:47:07 +0000 (16:47 +0200)
[Issue#]   https://bugs.tizen.org/jira/browse/TT-72
[Problem]  Lots of style fixes, several fixes for build warnings
[Cause]    n/a
[Solution] Reformat code, fix casting and remove unused variables
[Verify]   1. Check that there are no build problems caused by this change
           2. Run the browser and explore the tab functionality to see if nothing's broken

List of changes:
* tabs -> spaces
* proper indentation
* other minor style fixes
* removing unused variables' declarations
* renaming a few class members to better express their use
* replacing reinterpret_cast with static_cast where appropriate
* adding null-checks in callback functions

Change-Id: Ib2a5731683c99aa5b89acf9f00417a41d207c579

services/TabUI/TabUI.cpp
services/TabUI/TabUI.h

index 5646f26..d004b0b 100644 (file)
@@ -17,6 +17,8 @@
 #include <Elementary.h>
 #include <boost/concept_check.hpp>
 #include <vector>
+#include <string>
+#include <string.h>
 #include <AbstractMainWindow.h>
 
 #include "TabUI.h"
@@ -25,7 +27,6 @@
 #include "Tools/EflTools.h"
 #include "../Tools/BrowserImage.h"
 
-#define efl_scale       (elm_config_scale_get() / elm_app_base_scale_get())
 
 namespace tizen_browser{
 namespace base_ui{
@@ -34,28 +35,29 @@ EXPORT_SERVICE(TabUI, "org.tizen.browser.tabui")
 
 typedef struct _TabItemData
 {
-       std::shared_ptr<tizen_browser::basic_webengine::TabContent> item;
-        std::shared_ptr<tizen_browser::base_ui::TabUI> tabUI;
+    std::shared_ptr<tizen_browser::basic_webengine::TabContent> item;
+    std::shared_ptr<tizen_browser::base_ui::TabUI> tabUI;
 } TabItemData;
 
-struct ItemData{
-        tizen_browser::base_ui::TabUI* tabUI;
-        Elm_Object_Item * e_item;
+struct ItemData
+{
+    tizen_browser::base_ui::TabUI* tabUI;
+    Elm_Object_Item * e_item;
 };
 
 TabUI::TabUI()
-    : m_gengrid(NULL)
-    , m_tab_layout(NULL)
-    , m_genListTop(NULL)
-    , m_genListActionBar(NULL)
-    , m_parent(NULL)
-    , m_itemClassActionBar(NULL)
-    , m_itemClassTop(NULL)
-    , m_item_class(NULL)
+    : m_tab_layout(nullptr)
+    , m_genListActionBar(nullptr)
+    , m_itemClassActionBar(nullptr)
+    , m_genListTop(nullptr)
+    , m_itemClassTop(nullptr)
+    , m_gengrid(nullptr)
+    , m_parent(nullptr)
+    , m_item_class(nullptr)
 {
     BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
-    edjFilePath = EDJE_DIR;
-    edjFilePath.append("TabUI/TabUI.edj");
+    m_edjFilePath = EDJE_DIR;
+    m_edjFilePath.append("TabUI/TabUI.edj");
 }
 
 TabUI::~TabUI()
@@ -67,9 +69,9 @@ void TabUI::show(Evas_Object* parent)
 {
     BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
     //m_parent = p;
-    elm_theme_extension_add(NULL, edjFilePath.c_str());
+    elm_theme_extension_add(nullptr, m_edjFilePath.c_str());
     m_tab_layout = elm_layout_add(parent);
-    elm_layout_file_set(m_tab_layout, edjFilePath.c_str(), "tab-layout");
+    elm_layout_file_set(m_tab_layout, m_edjFilePath.c_str(), "tab-layout");
     evas_object_size_hint_weight_set(m_tab_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
     evas_object_size_hint_align_set(m_tab_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
     evas_object_show(m_tab_layout);
@@ -80,31 +82,32 @@ void TabUI::show(Evas_Object* parent)
     m_gengrid = elm_gengrid_add(m_tab_layout);
     elm_object_part_content_set(m_tab_layout, "tab_gengird", 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, "item,focused", focusItem, nullptr);
+    evas_object_smart_callback_add(m_gengrid, "item,unfocused", unFocusItem, nullptr);
     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 = "tab_item";
-            m_item_class->func.text_get = _grid_text_get;
-            m_item_class->func.content_get =  _tab_grid_content_get;
-            m_item_class->func.state_get = NULL;
-            m_item_class->func.del = NULL;
-        }
-    
-    M_ASSERT(m_parent);
-        elm_gengrid_align_set(m_gengrid, 0, 0);
-        elm_gengrid_select_mode_set(m_gengrid, ELM_OBJECT_SELECT_MODE_ALWAYS);
-        elm_gengrid_multi_select_set(m_gengrid, EINA_FALSE);
-        elm_gengrid_horizontal_set(m_gengrid, EINA_FALSE);
-        elm_gengrid_highlight_mode_set(m_gengrid, EINA_TRUE);
-        elm_scroller_policy_set(m_gengrid, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
-        elm_scroller_page_size_set(m_gengrid, 0, 327);
-
-        evas_object_size_hint_weight_set(m_gengrid, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-        evas_object_size_hint_align_set(m_gengrid, EVAS_HINT_FILL, EVAS_HINT_FILL);
+    if (!m_item_class) {
+        m_item_class = elm_gengrid_item_class_new();
+        m_item_class->item_style = "tab_item";
+        m_item_class->func.text_get = _grid_text_get;
+        m_item_class->func.content_get =  _tab_grid_content_get;
+        m_item_class->func.state_get = nullptr;
+        m_item_class->func.del = nullptr;
+    }
 
+    M_ASSERT(m_parent);
+    elm_gengrid_align_set(m_gengrid, 0, 0);
+    elm_gengrid_select_mode_set(m_gengrid, ELM_OBJECT_SELECT_MODE_ALWAYS);
+    elm_gengrid_multi_select_set(m_gengrid, EINA_FALSE);
+    elm_gengrid_horizontal_set(m_gengrid, EINA_FALSE);
+    elm_gengrid_highlight_mode_set(m_gengrid, EINA_TRUE);
+    elm_scroller_policy_set(m_gengrid, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
+    elm_scroller_page_size_set(m_gengrid, 0, 327);
+
+    evas_object_size_hint_weight_set(m_gengrid, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+    evas_object_size_hint_align_set(m_gengrid, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+    double efl_scale = elm_config_scale_get() / elm_app_base_scale_get();
     elm_gengrid_item_size_set(m_gengrid, 364 * efl_scale, 320 * efl_scale);
 }
 
@@ -112,7 +115,7 @@ void TabUI::show(Evas_Object* parent)
 void TabUI::showActionBar()
 {
     BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
-    elm_theme_extension_add(NULL, edjFilePath.c_str());
+    elm_theme_extension_add(nullptr, m_edjFilePath.c_str());
     m_genListActionBar = elm_genlist_add(m_tab_layout);
     elm_object_part_content_set(m_tab_layout, "action_bar_genlist", m_genListActionBar);
     elm_genlist_homogeneous_set(m_genListActionBar, EINA_FALSE);
@@ -122,124 +125,118 @@ void TabUI::showActionBar()
     elm_genlist_decorate_mode_set(m_genListActionBar, EINA_TRUE);
     evas_object_size_hint_weight_set(m_genListActionBar, 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);*/
+//  evas_object_smart_callback_add(m_genList, "item,focused", focusItem, this);
+//  evas_object_smart_callback_add(m_genList, "item,unfocused", unFocusItem, nullptr);*/
 
     m_itemClassActionBar = elm_genlist_item_class_new();
     m_itemClassActionBar->item_style = "action_bar_items";
-    m_itemClassActionBar->func.text_get = NULL; // &listTopItemTextGet;
+    m_itemClassActionBar->func.text_get = nullptr; // &listTopItemTextGet;
     m_itemClassActionBar->func.content_get = &listActionBarContentGet;
-    m_itemClassActionBar->func.state_get = 0;
-    m_itemClassActionBar->func.del = 0;
+    m_itemClassActionBar->func.state_get = nullptr;
+    m_itemClassActionBar->func.del = nullptr;
 
-    ItemData * id = new ItemData;
+    ItemData *id = new ItemData;
     id->tabUI = this;
-    Elm_Object_Item* elmItem = elm_genlist_item_append(m_genListActionBar,            //genlist
-                                                       m_itemClassActionBar,          //item Class
-                                                      id,
-                                                      NULL,                    //parent item
-                                                      ELM_GENLIST_ITEM_NONE,//item type
-                                                      NULL,
-                                                      NULL                  //data passed to above function
-                                                     );
+    Elm_Object_Item* elmItem = elm_genlist_item_append(m_genListActionBar,    //genlist
+                                                       m_itemClassActionBar,  //item Class
+                                                       id,
+                                                       nullptr,               //parent item
+                                                       ELM_GENLIST_ITEM_NONE, //item type
+                                                       nullptr,
+                                                       nullptr                //data passed to above function
+                                                      );
     id->e_item = elmItem;
-    ItemData * id2 = new ItemData;
+
+    ItemData *id2 = new ItemData;
     id2->tabUI = this;
-    Elm_Object_Item* elmItem2 = elm_genlist_item_append(m_genListActionBar,            //genlist
-                                                       m_itemClassActionBar,          //item Class
-                                                      id2,
-                                                      NULL,                    //parent item
-                                                      ELM_GENLIST_ITEM_NONE,//item type
-                                                      NULL,
-                                                      NULL                  //data passed to above function
-                                                     );
+    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;
 
-    ItemData * id3 = new ItemData;
+    ItemData *id3 = new ItemData;
     id3->tabUI = this;
-    Elm_Object_Item* elmItem3 = elm_genlist_item_append(m_genListActionBar,            //genlist
-                                                       m_itemClassActionBar,          //item Class
-                                                      id3,
-                                                      NULL,                    //parent item
-                                                      ELM_GENLIST_ITEM_NONE,//item type
-                                                      NULL,
-                                                      NULL                  //data passed to above function
-                                                     );
+    Elm_Object_Item* elmItem3 = elm_genlist_item_append(m_genListActionBar  ,  //genlist
+                                                        m_itemClassActionBar,  //item Class
+                                                        id3,
+                                                        nullptr,               //parent item
+                                                        ELM_GENLIST_ITEM_NONE, //item type
+                                                        nullptr,
+                                                        nullptr                //data passed to above function
+                                                       );
     id3->e_item = elmItem3;
 
-    /*ItemData * id4 = new ItemData;
-    id4->tabUI = this;
-    Elm_Object_Item* elmItem4 = elm_genlist_item_append(m_genListActionBar,            //genlist
-                                                       m_itemClassActionBar,          //item Class
-                                                      //id.get(),        //item data
-                                                      id4,
-                                                      NULL,                    //parent item
-                                                      ELM_GENLIST_ITEM_NONE,//item type
-                                                      NULL,
-                                                      NULL                  //data passed to above function
-                                                     );
-    id4->e_item = elmItem4;*/
-
     BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
-
 }
 
 Evas_Object* TabUI::listActionBarContentGet(void* data, Evas_Object* obj , const char* part)
 {
-        //ItemData *itemData = reinterpret_cast<ItemData*>(data);
-        BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
-        if(!strcmp(part, "newtab_click"))
-        {
-                BROWSER_LOGD("############in new tab button part##################");
-                Evas_Object *newtabButton = elm_button_add(obj);
-                elm_object_style_set(newtabButton, "tab_button");
-                evas_object_smart_callback_add(newtabButton, "clicked", tizen_browser::base_ui::TabUI::_newtab_clicked, data);
-                return newtabButton;
+    BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+    if (obj && part) {
+        const char *part_name1 = "newtab_click";
+        static const int part_name1_len = strlen(part_name1);
+        const char *part_name2 = "newincognitotab_clic";
+        static const int part_name2_len = strlen(part_name2);
+        const char *part_name3 = "closetabs_click";
+        static const int part_name3_len = strlen(part_name3);
+        const char *part_name4 = "close_click";
+        static const int part_name4_len = strlen(part_name4);
+
+        if (!strncmp(part_name1, part, part_name1_len)) {
+            Evas_Object *newtabButton = elm_button_add(obj);
+            elm_object_style_set(newtabButton, "tab_button");
+            evas_object_smart_callback_add(newtabButton, "clicked", tizen_browser::base_ui::TabUI::_newtab_clicked, data);
+            return newtabButton;
         }
-        else if(!strcmp(part, "newincognitotab_click"))
-        {
-                Evas_Object *newincognitotabButton = elm_button_add(obj);
-                elm_object_style_set(newincognitotabButton, "tab_button");
-                evas_object_smart_callback_add(newincognitotabButton, "clicked", tizen_browser::base_ui::TabUI::_newincognitotab_clicked, data);
-                return newincognitotabButton;
+        if (!strncmp(part_name2, part, part_name2_len)) {
+            Evas_Object *newincognitotabButton = elm_button_add(obj);
+            elm_object_style_set(newincognitotabButton, "tab_button");
+            evas_object_smart_callback_add(newincognitotabButton, "clicked", tizen_browser::base_ui::TabUI::_newincognitotab_clicked, data);
+            return newincognitotabButton;
         }
-        else if(!strcmp(part, "closetabs_click"))
-        {
-                Evas_Object *closetabsButton = elm_button_add(obj);
-                elm_object_style_set(closetabsButton, "tab_button");
-                evas_object_smart_callback_add(closetabsButton, "clicked", tizen_browser::base_ui::TabUI::_closetabs_clicked, data);
-                return closetabsButton;
+        if (!strncmp(part_name3, part, part_name3_len)) {
+            Evas_Object *closetabsButton = elm_button_add(obj);
+            elm_object_style_set(closetabsButton, "tab_button");
+            evas_object_smart_callback_add(closetabsButton, "clicked", tizen_browser::base_ui::TabUI::_closetabs_clicked, data);
+            return closetabsButton;
         }
-        else if(!strcmp(part, "close_click"))
-       {
-               Evas_Object *close_click = elm_button_add(obj);
-               elm_object_style_set(close_click, "tab_button");
-               evas_object_smart_callback_add(close_click, "clicked", TabUI::close_clicked_cb, data);
-               return close_click;
-       }
-        return NULL;
+        if (!strncmp(part_name4, part, part_name4_len)) {
+            Evas_Object *close_click = elm_button_add(obj);
+            elm_object_style_set(close_click, "tab_button");
+            evas_object_smart_callback_add(close_click, "clicked", TabUI::close_clicked_cb, data);
+            return close_click;
+        }
+    }
+    return nullptr;
 }
 
-void TabUI::close_clicked_cb(void* data, Evas_Object* /* obj */, void* /* event_info */)
+void TabUI::close_clicked_cb(void* data, Evas_Object*, void*)
 {
     BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
-    ItemData * id = static_cast<ItemData *>(data);
-    id->tabUI->closeTabUIClicked(std::string());
-    id->tabUI->clearItems();
+    if (data) {
+        ItemData * id = static_cast<ItemData*>(data);
+        id->tabUI->closeTabUIClicked(std::string());
+        id->tabUI->clearItems();
+    }
 }
 
 void TabUI::hide()
 {
-        evas_object_hide(elm_layout_content_get(m_tab_layout, "action_bar_genlist"));
-        evas_object_hide(elm_layout_content_get(m_tab_layout, "top_bar_genlist"));
-        evas_object_hide(elm_layout_content_get(m_tab_layout, "tab_gengird"));
-        evas_object_hide(m_tab_layout);
+    evas_object_hide(elm_layout_content_get(m_tab_layout, "action_bar_genlist"));
+    evas_object_hide(elm_layout_content_get(m_tab_layout, "top_bar_genlist"));
+    evas_object_hide(elm_layout_content_get(m_tab_layout, "tab_gengird"));
+    evas_object_hide(m_tab_layout);
 }
 
 void TabUI::showTopButtons()
 {
     BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
-    elm_theme_extension_add(NULL, edjFilePath.c_str());
+    elm_theme_extension_add(nullptr, m_edjFilePath.c_str());
     m_genListTop = elm_genlist_add(m_tab_layout);
     elm_object_part_content_set(m_tab_layout, "top_bar_genlist", m_genListTop);
     elm_genlist_homogeneous_set(m_genListTop, EINA_FALSE);
@@ -249,37 +246,37 @@ void TabUI::showTopButtons()
     elm_genlist_decorate_mode_set(m_genListTop, EINA_TRUE);
     evas_object_size_hint_weight_set(m_genListTop, 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);*/
+//  evas_object_smart_callback_add(m_genList, "item,focused", focusItem, this);
+//  evas_object_smart_callback_add(m_genList, "item,unfocused", unFocusItem, nullptr);
 
     m_itemClassTop = elm_genlist_item_class_new();
     m_itemClassTop->item_style = "top_buttons";
-    m_itemClassTop->func.text_get = NULL;// &listTapTopItemTextGet;
+    m_itemClassTop->func.text_get = nullptr;
     m_itemClassTop->func.content_get = &listTopButtonItemsContentGet;
-    m_itemClassTop->func.state_get = 0;
-    m_itemClassTop->func.del = 0;
+    m_itemClassTop->func.state_get = nullptr;
+    m_itemClassTop->func.del = nullptr;
 
-    ItemData * id = new ItemData;
+    ItemData *id = new ItemData;
     id->tabUI = this;
-    Elm_Object_Item* elmItem = elm_genlist_item_append(m_genListTop,            //genlist
-                                                       m_itemClassTop,          //item Class
-                                                      id,
-                                                      NULL,                    //parent item
-                                                      ELM_GENLIST_ITEM_NONE,//item type
-                                                      NULL,
-                                                      NULL                  //data passed to above function
-                                                     );
+    Elm_Object_Item *elmItem = elm_genlist_item_append(m_genListTop,          //genlist
+                                                       m_itemClassTop,        //item Class
+                                                       id,
+                                                       nullptr,               //parent item
+                                                       ELM_GENLIST_ITEM_NONE, //item type
+                                                       nullptr,
+                                                       nullptr                //data passed to above function
+                                                      );
     id->e_item = elmItem;
-    ItemData * id2 = new ItemData;
+    ItemData *id2 = new ItemData;
     id2->tabUI = this;
-    Elm_Object_Item* elmItem2 = elm_genlist_item_append(m_genListTop,            //genlist
-                                                       m_itemClassTop,          //item Class
-                                                      id2,
-                                                      NULL,                    //parent item
-                                                      ELM_GENLIST_ITEM_NONE,//item type
-                                                      NULL,
-                                                      NULL                  //data passed to above function
-                                                     );
+    Elm_Object_Item *elmItem2 = elm_genlist_item_append(m_genListTop,          //genlist
+                                                        m_itemClassTop,        //item Class
+                                                        id2,
+                                                        nullptr,               //parent item
+                                                        ELM_GENLIST_ITEM_NONE, //item type
+                                                        nullptr,
+                                                        nullptr                //data passed to above function
+                                                       );
     id2->e_item = elmItem2;
 
     BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
@@ -287,92 +284,77 @@ void TabUI::showTopButtons()
 
 Evas_Object* TabUI::listTopButtonItemsContentGet(void* data, Evas_Object* obj , const char* part)
 {
-        //ItemData *itemData = reinterpret_cast<ItemData*>(data);
-        BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
-        if(!strcmp(part, "openedtabs_button"))
-        {
-                Evas_Object *openedtabsButton = elm_button_add(obj);
-                elm_object_style_set(openedtabsButton, "tab_button");
-                evas_object_smart_callback_add(openedtabsButton, "clicked", tizen_browser::base_ui::TabUI::_openedtabs_clicked, data);
-                return openedtabsButton;
+    BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+    if (data && obj && part) {
+        const char *part_name1 = "openedtabs_button";
+        static const int part_name1_len = strlen(part_name1);
+        const char *part_name2 = "onotherdevices_button";
+        static const int part_name2_len = strlen(part_name2);
+
+        if (!strncmp(part_name1, part, part_name1_len)) {
+            Evas_Object *openedtabsButton = elm_button_add(obj);
+            elm_object_style_set(openedtabsButton, "tab_button");
+            evas_object_smart_callback_add(openedtabsButton, "clicked", tizen_browser::base_ui::TabUI::_openedtabs_clicked, data);
+            return openedtabsButton;
         }
-        else if(!strcmp(part, "onotherdevices_button"))
-        {
-               Evas_Object *onotherdevicesButton = elm_button_add(obj);
-                elm_object_style_set(onotherdevicesButton, "tab_button");
-                evas_object_smart_callback_add(onotherdevicesButton, "clicked", tizen_browser::base_ui::TabUI::_onotherdevices_clicked, data);
-               return onotherdevicesButton;
-       }
-        return NULL;
+        if (!strncmp(part_name2, part, part_name2_len)) {
+            Evas_Object *onotherdevicesButton = elm_button_add(obj);
+            elm_object_style_set(onotherdevicesButton, "tab_button");
+            evas_object_smart_callback_add(onotherdevicesButton, "clicked", tizen_browser::base_ui::TabUI::_onotherdevices_clicked, data);
+            return onotherdevicesButton;
+        }
+    }
+    return nullptr;
 }
 
-void TabUI::_newtab_clicked(void * data, Evas_Object * /* obj */, void * event_info)
+void TabUI::_newtab_clicked(void * data, Evas_Object*, void*)
 {
-        BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
-       ItemData* itemData = reinterpret_cast<ItemData *>(data);
-       itemData->tabUI->clearItems();
-       itemData->tabUI->newTabClicked(std::string());
+    BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+    if (data) {
+        ItemData* itemData = static_cast<ItemData*>(data);
+        itemData->tabUI->clearItems();
+        itemData->tabUI->newTabClicked(std::string());
+    }
 
 }
-void TabUI::_openedtabs_clicked(void * data, Evas_Object * /* obj */, void * event_info)
+void TabUI::_openedtabs_clicked(void*, Evas_Object*, void*)
 {
         BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
-        /*ItemData* itemData = reinterpret_cast<ItemData *>(data);
-        itemData->tabUI->newTabClicked(std::string());*/
 }
 
-void TabUI::_onotherdevices_clicked(void * data, Evas_Object * /* obj */, void * event_info)
+void TabUI::_onotherdevices_clicked(void*, Evas_Object*, void*)
 {
         BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
-        /*ItemData* itemData = reinterpret_cast<ItemData *>(data);
-        itemData->tabUI->newTabClicked(std::string());*/
 }
 
-void TabUI::_newincognitotab_clicked(void * data, Evas_Object * /* obj */, void * event_info)
+void TabUI::_newincognitotab_clicked(void* data, Evas_Object*, void*)
 {
-        BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
-       ItemData* itemData = reinterpret_cast<ItemData *>(data);
-       itemData->tabUI->clearItems();
-       itemData->tabUI->newIncognitoTabClicked(std::string());
-}
-
-void TabUI::_closetabs_clicked(void * data, Evas_Object * /* obj */, void * event_info)
-{
-        BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
-        ItemData* itemData = reinterpret_cast<ItemData *>(data);
-        itemData->tabUI->closeTabsClicked(std::string());
+    BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+    if (data) {
+        ItemData* itemData = static_cast<ItemData*>(data);
+        itemData->tabUI->clearItems();
+        itemData->tabUI->newIncognitoTabClicked(std::string());
+    }
 }
 
-/*
-char* TabUI::listItemTopTextGet(void* data, Evas_Object* obj , const char* part)
+void TabUI::_closetabs_clicked(void* data, Evas_Object*, void*)
 {
     BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
-    ItemData * id = static_cast<ItemData *>(data);
-    if(!strcmp(part, "Tabmanager"))
-    {
-        if(!id->h_item->getTitle().empty()){
-            return strdup(id->h_item->getTitle().c_str());
-        }
-    }
-    else if(!strcmp(part, "tab_url"))
-        {
-        if(!id->h_item->getUrl().empty()){
-            return strdup(id->h_item->getUrl().c_str());
-        }
+    if (data) {
+        ItemData* itemData = static_cast<ItemData*>(data);
+        itemData->tabUI->closeTabsClicked(std::string());
     }
-    return strdup("");
 }
-*/
 
 void TabUI::addTabItem(std::shared_ptr<tizen_browser::basic_webengine::TabContent> hi)
 {
     BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__);
     if (m_map_tab_views.size() >= 10)
-       return;
+        return;
     TabItemData *itemData = new TabItemData();
     itemData->item = hi;
-        itemData->tabUI = std::shared_ptr<tizen_browser::base_ui::TabUI>(this);
-    Elm_Object_Item* tabView = elm_gengrid_item_append(m_gengrid, m_item_class, itemData, NULL, this);
+    itemData->tabUI = std::shared_ptr<tizen_browser::base_ui::TabUI>(this);
+    Elm_Object_Item* tabView = elm_gengrid_item_append(m_gengrid, m_item_class, itemData, nullptr, this);
     m_map_tab_views.insert(std::pair<std::string,Elm_Object_Item*>(hi->getTitle(),tabView));
 
     // unselect by default
@@ -382,70 +364,74 @@ void TabUI::addTabItem(std::shared_ptr<tizen_browser::basic_webengine::TabConten
 
 void TabUI::addTabItems(std::vector<std::shared_ptr<tizen_browser::basic_webengine::TabContent>>items)
 {
-         BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__);
-        int i = 0;
-         for (auto it = items.begin(); it != items.end(); ++it) {
-                i++;
-                if (i > 10) break;
-                 addTabItem(*it);
-         }
+    BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__);
+    //limiting number of added items to 10
+    auto eit = std::min(items.end(), items.begin() + 10);
+    for (auto it = items.begin(); it != eit; ++it) {
+        addTabItem(*it);
+    }
 }
 
-
-char* TabUI::_grid_text_get(void *data, Evas_Object *obj, const char *part)
+char* TabUI::_grid_text_get(void *data, Evas_Object*, const char *part)
 {
-       TabItemData *itemData = reinterpret_cast<TabItemData*>(data);
-       if (!strcmp(part, "tab_title")) {
-               return strdup(itemData->item->getTitle().c_str());
-       }
-       if (!strcmp(part, "tab_url")) {
-               //return strdup(itemData->item->getUrl().c_str());
-               return strdup("");
-       }
-
-       return strdup("");
-}      
+    BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__);
+    if (data && part) {
+        TabItemData *itemData = static_cast<TabItemData*>(data);
+        const char *part_name1 = "tab_title";
+        static const int part_name1_len = strlen(part_name1);
+        const char *part_name2 = "tab_url";
+        static const int part_name2_len = strlen(part_name2);
+
+        if (!strncmp(part_name1, part, part_name1_len)) {
+            return strdup(itemData->item->getTitle().c_str());
+        }
+        if (!strncmp(part_name2, part, part_name2_len)) {
+            //return strdup(itemData->item->getUrl().c_str());
+            return strdup("");
+        }
+    }
+    return strdup("");
+}
 
 Evas_Object * TabUI::_tab_grid_content_get(void *data, Evas_Object *obj, const char *part)
 {
-
     BROWSER_LOGD("%s:%d %s part=%s", __FILE__, __LINE__, __func__, part);
-    TabItemData *itemData = reinterpret_cast<TabItemData*>(data);
-
-    if (!strcmp(part, "tab_thumbnail")) {
-       if (itemData->item->getThumbnail()) {
-                Evas_Object * thumb = tizen_browser::tools::EflTools::getEvasImage(itemData->item->getThumbnail(), itemData->tabUI->m_parent);
-                return thumb;
+    if (data && obj && part) {
+        TabItemData *itemData = static_cast<TabItemData*>(data);
+        const char *part_name1 = "tab_thumbnail";
+        static const int part_name1_len = strlen(part_name1);
+        const char *part_name2 = "tab_thumbButton";
+        static const int part_name2_len = strlen(part_name2);
+
+        if (!strncmp(part_name2, part, part_name2_len)) {
+            Evas_Object *thumbButton = elm_button_add(obj);
+            elm_object_style_set(thumbButton, "tab_thumbButton");
+            evas_object_smart_callback_add(thumbButton, "clicked", tizen_browser::base_ui::TabUI::_thumbSelected, data);
+            return thumbButton;
         }
-        else {
-                return NULL;
+        if (!strncmp(part_name1, part, part_name1_len)) {
+            if (itemData->item->getThumbnail()) {
+                return tizen_browser::tools::EflTools::getEvasImage(itemData->item->getThumbnail(), itemData->tabUI->m_parent);
+            }
         }
     }
-    else if (!strcmp(part, "tab_thumbButton")) {
-               Evas_Object *thumbButton = elm_button_add(obj);
-               elm_object_style_set(thumbButton, "tab_thumbButton");
-               evas_object_smart_callback_add(thumbButton, "clicked", tizen_browser::base_ui::TabUI::_thumbSelected, data);
-               return thumbButton;
-    }
-    return NULL;
-
+    return nullptr;
 }
 
-void TabUI::_itemSelected(void * data, Evas_Object * /* obj */, void * event_info)
+void TabUI::_itemSelected(void*, Evas_Object*, void*)
 {
-       Elm_Object_Item * selected = reinterpret_cast<Elm_Object_Item *>(event_info);
-       TabItemData * itemData = reinterpret_cast<TabItemData *>(elm_object_item_data_get(selected));
-       TabUI * self = reinterpret_cast<TabUI *>(data);
-
-//     self->historyClicked(itemData->item);
+    BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__);
+//  self->historyClicked(itemData->item);
 }
 
-void TabUI::_thumbSelected(void * data, Evas_Object * /* obj */, void * /* event_info */ )
+void TabUI::_thumbSelected(void *data, Evas_Object*, void*)
 {
-        BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__);
-       TabItemData * itemData = reinterpret_cast<TabItemData *>(data);
-       itemData->tabUI->clearItems();
-       itemData->tabUI->tabClicked(itemData->item->getId());
+    BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__);
+    if (data) {
+        TabItemData *itemData = static_cast<TabItemData*>(data);
+        itemData->tabUI->clearItems();
+        itemData->tabUI->tabClicked(itemData->item->getId());
+    }
 }
 
 void TabUI::clearItems()
@@ -469,31 +455,35 @@ Evas_Object* TabUI::createNoHistoryLabel()
 
 void TabUI::setEmptyGengrid(bool setEmpty)
 {
-    if(setEmpty) {
+    if (setEmpty) {
         elm_object_part_content_set(m_gengrid, "elm.swallow.empty", createNoHistoryLabel());
     } else {
-        elm_object_part_content_set(m_gengrid, "elm.swallow.empty", NULL);
+        elm_object_part_content_set(m_gengrid, "elm.swallow.empty", nullptr);
     }
 }
 
-void TabUI::focusItem(void* /*data*/, Evas_Object* /*obj*/, void* event_info)
+void TabUI::focusItem(void*, Evas_Object*, void* event_info)
 {
     BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
-    Elm_Object_Item *item = reinterpret_cast<Elm_Object_Item*>(event_info);
-    elm_object_item_signal_emit( item, "mouse,in", "over2");
+    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);
+        // selected manually
+        elm_gengrid_item_selected_set(item, EINA_TRUE);
+    }
 }
 
-void TabUI::unFocusItem(void* /*data*/, Evas_Object* /*obj*/, void* event_info)
+void TabUI::unFocusItem(void*, Evas_Object*, void* event_info)
 {
     BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
-    Elm_Object_Item *item = reinterpret_cast<Elm_Object_Item*>(event_info);
-    elm_object_item_signal_emit( item, "mouse,out", "over2");
+    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);
+        // unselected manually
+        elm_gengrid_item_selected_set(item, EINA_FALSE);
+    }
 }
 
 }
index 505ca5a..9694132 100644 (file)
@@ -45,8 +45,6 @@ public:
 
     void addTabItem(std::shared_ptr<tizen_browser::basic_webengine::TabContent>);
     void addTabItems(std::vector<std::shared_ptr<tizen_browser::basic_webengine::TabContent> > items);
-//    void addBookmarkItem(std::shared_ptr<tizen_browser::services::BookmarkItem>);
-//    void addbookmarkItems(std::vector<std::shared_ptr<tizen_browser::services::BookmarkItem> >);
 
     boost::signals2::signal<void (const tizen_browser::basic_webengine::TabId&)> tabClicked;
     boost::signals2::signal<void (const std::string & )> newTabClicked;
@@ -58,7 +56,6 @@ public:
 private:
     static Evas_Object* listActionBarContentGet(void *data, Evas_Object *obj, const char *part);
     static Evas_Object* listTopButtonItemsContentGet(void *data, Evas_Object *obj, const char *part);
-    //static char*        listItemTextGet(void *data, Evas_Object *obj, const char *part);
 
     static char* _grid_text_get(void *data, Evas_Object *obj, const char *part);
     static Evas_Object * _tab_grid_content_get(void *data, Evas_Object *obj, const char *part);
@@ -86,7 +83,7 @@ private:
     Elm_Gengrid_Item_Class * m_item_class;
     std::map<std::string,Elm_Object_Item*> m_map_tab_views;
     bool m_gengridSetup;
-    std::string edjFilePath;
+    std::string m_edjFilePath;
     Evas_Object *createNoHistoryLabel();
 
     static void focusItem(void* data, Evas_Object* obj, void* event_info);