std::shared_ptr<tizen_browser::tools::BrowserImage> favicon = std::shared_ptr<tizen_browser::tools::BrowserImage>(),
unsigned int dirId = 0) = 0;
/**
- * @brief Creates a new folder with name "title" in a folder with id and order
- * @return folder_id of created folder
+ * @brief Counts bookmarks
+ * @return Number of bookmarks
*/
- virtual int save_folder(const char *title, int *saved_bookmark_id, int by_operator = 0) = 0;
-
- /**
- * @brief get folder id of a folder with name "title" in folder with id, parent_id
- * @return true if found, false otherwise
- */
- virtual bool get_folder_id(const char *title, int parent_id, int *folder_id) = 0 ;
-
- /**
- * @brief Count bookmarks and subfolders
- * @return Number of bookmarks and subfolders
- */
- virtual int countBookmarksAndSubFolders() = 0;
+ virtual int countBookmarks() = 0;
/** \todo Need to change this callback function for finding stored bookmark, check getBookmarkId function
* @brief Check if bookmark exists
*/
virtual std::vector<std::shared_ptr<tizen_browser::services::BookmarkItem> > getBookmarks(int folder_id = -1)= 0;
- /**
- * @brief Get bookmark folders from platform service and store it in private m_bookmarkFoldersList
- *
- * @return list of bookmark folders
- */
- virtual std::vector<std::shared_ptr<tizen_browser::services::BookmarkItem> > getBookmarkFolders(int folder_id) = 0;
-
/**
* @brief Delete all bookmarks
*
+++ /dev/null
-
-
-#include <Elementary.h>
-#include <boost/concept_check.hpp>
-#include <vector>
-
-#include "Tools/EflTools.h"
-#include "BrowserLogger.h"
-
-#include "AddNewFolderPopup.h"
-#include "BrowserLogger.h"
-#include "ServiceManager.h"
-#include "AbstractMainWindow.h"
-
-
-namespace tizen_browser{
-namespace base_ui{
-
-AddNewFolderPopup::AddNewFolderPopup(Evas_Object* main_layout) :
- m_popup(nullptr),
- m_cancel_button(nullptr),
- m_editfield_entry(nullptr),
- m_ok_button(nullptr),
- m_mainLayout(main_layout)
-{
-}
-
-AddNewFolderPopup::AddNewFolderPopup(Evas_Object *main_layout
- , Evas_Object *content
- , const std::string& message
- , const std::string& title
- , const std::string& okButtonText
- , const std::string& cancelButtonText) :
- m_popup(nullptr),
- m_cancel_button(nullptr),
- m_editfield_entry(nullptr),
- m_ok_button(nullptr),
- m_content(content),
- m_message(message),
- m_title(title),
- m_okButtonText(okButtonText),
- m_cancelButtonText(cancelButtonText),
- m_mainLayout(main_layout)
-{
-
-}
-
-void AddNewFolderPopup::setTitle(const std::string& title)
-{
- m_title = title;
-}
-
-void AddNewFolderPopup::setMessage(const std::string& message)
-{
- m_message = message;
-}
-
-void AddNewFolderPopup::setContent(Evas_Object* content)
-{
- m_content = content;
-}
-
-void AddNewFolderPopup::setOkButtonText(const std::string& okButtonText)
-{
- m_okButtonText = okButtonText;
-}
-
-void AddNewFolderPopup::setCancelButtonText(const std::string& cancelButtonText)
-{
- m_cancelButtonText = cancelButtonText;
-}
-
-void AddNewFolderPopup::show()
-{
- std::string edjePath = std::string(EDJE_DIR);
- edjePath.append("BookmarkManagerUI/AddNewFolderPopup.edj");
- elm_theme_extension_add(0, edjePath.c_str());
- m_popup = elm_popup_add(m_mainLayout);
- evas_object_size_hint_weight_set(m_popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-
- /* for margins */
- Evas_Object *layout = elm_layout_add(m_popup);
- elm_layout_file_set(layout, edjePath.c_str() , "popup_input_text");
- evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- elm_object_content_set(m_popup, layout);
- elm_object_part_text_set(m_popup, "title,text", m_title.c_str());
-
- m_editfield_entry = elm_entry_add(layout);
- elm_object_style_set(m_editfield_entry, "uri_entry_popup");
- evas_object_size_hint_weight_set(m_editfield_entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_size_hint_align_set(m_editfield_entry, EVAS_HINT_FILL, EVAS_HINT_FILL);
- elm_entry_editable_set(m_editfield_entry, EINA_TRUE);
- elm_entry_cnp_mode_set(m_editfield_entry, ELM_CNP_MODE_PLAINTEXT);
- elm_entry_scrollable_set(m_editfield_entry, EINA_TRUE);
- elm_entry_autocapital_type_set(m_editfield_entry, ELM_AUTOCAPITAL_TYPE_NONE);
- elm_entry_prediction_allow_set(m_editfield_entry, EINA_FALSE);
- elm_entry_single_line_set(m_editfield_entry, EINA_TRUE);
-
- elm_entry_input_panel_layout_set(m_editfield_entry, ELM_INPUT_PANEL_LAYOUT_URL);
- elm_entry_input_panel_return_key_type_set(m_editfield_entry, ELM_INPUT_PANEL_RETURN_KEY_TYPE_DONE);
- elm_object_part_content_set(layout, "elm.swallow.content" , m_editfield_entry);
- elm_entry_cursor_end_set(m_editfield_entry);
-
- m_cancel_button = elm_button_add(m_popup);
- elm_object_style_set(m_cancel_button, "popup");
- elm_object_part_content_set(m_popup, "button1",m_cancel_button);
- elm_object_part_text_set(m_cancel_button, "elm.text", m_cancelButtonText.c_str());
- evas_object_smart_callback_add(m_cancel_button, "clicked", popup_cancel_cb, this);
-
- m_ok_button = elm_button_add(m_popup);
- elm_object_style_set(m_ok_button, "popup");
- elm_object_part_content_set(m_popup, "button2", m_ok_button);
- elm_object_part_text_set(m_ok_button, "elm.text", m_okButtonText.c_str());
- evas_object_smart_callback_add(m_ok_button, "clicked", popup_ok_cb, this);
-
- evas_object_show(m_popup);
-}
-
-void AddNewFolderPopup::hide()
-{
- evas_object_hide(m_popup);
- elm_object_signal_emit(m_mainLayout, "elm,state,hide", "elm");
-}
-
-void AddNewFolderPopup::popup_ok_cb(void *data, Evas_Object *, void*)
-{
- BROWSER_LOGD("[%s],", __func__);
- if (data != nullptr)
- {
- AddNewFolderPopup *ownPopup = static_cast<AddNewFolderPopup*>(data);
- ownPopup->on_ok(ownPopup->m_editfield_entry);
- }
-}
-void AddNewFolderPopup::popup_cancel_cb(void *data, Evas_Object *, void*)
-{
- BROWSER_LOGD("[%s],", __func__);
- if (data != nullptr)
- {
- AddNewFolderPopup *ownPopup = static_cast<AddNewFolderPopup*>(data);
- ownPopup->on_cancel(ownPopup->m_editfield_entry);
- }
-}
-
-}
-}
+++ /dev/null
-#ifndef ADDNEWFOLDERPOPUP_H
-#define ADDNEWFOLDERPOPUP_H
-
-#include <Elementary.h>
-#include <boost/signals2.hpp>
-
-#include "AbstractUIComponent.h"
-#include "AbstractService.h"
-#include "ServiceFactory.h"
-#include "service_macros.h"
-#include "BookmarkItem.h"
-
-
-
-namespace tizen_browser{
-namespace base_ui{
-
-class AddNewFolderPopup{
-
-public:
- AddNewFolderPopup(Evas_Object *main_layout);
- AddNewFolderPopup(Evas_Object *main_layout
- , Evas_Object *content
- , const std::string& message
- , const std::string& title
- , const std::string& okButtonText
- , const std::string& cancelButtonText);
-
- /*
- * These setters should be called before showing popup.
- */
- void setContent(Evas_Object *content);
- void setMessage(const std::string &message);
- void setTitle(const std::string &title);
- void setOkButtonText(const std::string &okButtonText);
- void setCancelButtonText(const std::string &cancelButtonText);
-
- void show();
- void hide();
- boost::signals2::signal<void (Evas_Object *)> on_ok;
- boost::signals2::signal<void (Evas_Object *)> on_cancel;
-
-
-private:
- static void popup_ok_cb(void *data, Evas_Object *, void*);
- static void popup_cancel_cb(void *data, Evas_Object *, void*);
- Evas_Object *m_popup;
- Evas_Object *m_cancel_button;
- Evas_Object *m_editfield_entry;
- Evas_Object *m_ok_button;
- Evas_Object *m_content;
- std::string m_message;
- std::string m_title;
- std::string m_okButtonText;
- std::string m_cancelButtonText;
-
-protected:
- Evas_Object *m_mainLayout;
-};
-
-}
-}
-#endif
#include <vector>
#include <AbstractMainWindow.h>
-#include "AddNewFolderPopup.h"
#include "BookmarkManagerUI.h"
#include "ServiceManager.h"
#include "BrowserLogger.h"
{
std::shared_ptr<tizen_browser::services::BookmarkItem> item;
std::shared_ptr<tizen_browser::base_ui::BookmarkManagerUI> bookmarkManagerUI;
-} BookmarkItemData, BookmarkFolderItemData;
+} BookmarkItemData;
BookmarkManagerUI::BookmarkManagerUI()
: m_genList(nullptr)
- , popup_content(nullptr)
, b_mm_layout(nullptr)
, m_itemClass(nullptr)
, m_gengrid(nullptr)
, m_parent(nullptr)
- , m_folder_item_class(nullptr)
, m_bookmark_item_class(nullptr)
, m_gengridSetup(false)
{
BookmarkManagerUI::~BookmarkManagerUI()
{
BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- if(m_folder_item_class)
- elm_gengrid_item_class_free(m_folder_item_class);
if(m_bookmark_item_class)
elm_gengrid_item_class_free(m_bookmark_item_class);
}
void BookmarkManagerUI::createGengridItemClasses()
{
BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- m_folder_item_class = elm_gengrid_item_class_new();
- m_folder_item_class->item_style = "grid_bm_item";
- m_folder_item_class->func.text_get = _grid_folder_text_get;
- m_folder_item_class->func.content_get = _grid_folder_content_get;
- m_folder_item_class->func.state_get = nullptr;
- m_folder_item_class->func.del = nullptr;
-
m_bookmark_item_class = elm_gengrid_item_class_new();
m_bookmark_item_class->item_style = "grid_ds_item";
m_bookmark_item_class->func.text_get = _grid_bookmark_text_get;
Evas_Object* BookmarkManagerUI::createBookmarksLayout(Evas_Object* parent)
{
- m_folder.clear();
elm_theme_extension_add(nullptr, edjFilePath.c_str());
b_mm_layout = elm_layout_add(parent);
elm_layout_file_set(b_mm_layout, edjFilePath.c_str(), "bookmarkmanager-layout");
BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
if ((data != nullptr) && (obj != nullptr) && (part != nullptr))
{
- const char *part_name1 = "new_folder_click";
- const char *part_name2 = "close_click";
- static const int part_name1_len = strlen(part_name1);
- static const int part_name2_len = strlen(part_name2);
+ const char *part_name = "close_click";
+ static const int part_name_len = strlen(part_name);
ItemData * id = static_cast<ItemData *>(data);
- if(!strncmp(part_name1, part, part_name1_len))
- {
- Evas_Object *new_folder_click = elm_button_add(obj);
- elm_object_style_set(new_folder_click, "hidden_button");
- evas_object_smart_callback_add(new_folder_click, "clicked", BookmarkManagerUI::new_folder_clicked_cb, id);
- return new_folder_click;
- }
- if(!strncmp(part_name2, part, part_name2_len))
+
+ if(!strncmp(part_name, part, part_name_len))
{
Evas_Object *close_click = elm_button_add(obj);
elm_object_style_set(close_click, "hidden_button");
}
}
-void BookmarkManagerUI::new_folder_clicked_cb(void* data, Evas_Object*, void*)
-{
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- if (data != nullptr)
- {
- ItemData * id = static_cast<ItemData *>(data);
- id->m_bookmarkManager->newFolderPopup();
- }
-}
-
-void BookmarkManagerUI::newFolderPopup()
-{
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- m_popup.reset(new AddNewFolderPopup(m_parent, nullptr,"Add New Folder?","New Folder","Ok","Cancel"));
- m_popup->on_ok.disconnect_all_slots();
- m_popup->on_ok.connect(boost::bind(&BookmarkManagerUI::newFolderCreate, this, _1));
- m_popup->on_cancel.disconnect_all_slots();
- m_popup->on_cancel.connect(boost::bind(&BookmarkManagerUI::CancelClicked, this, _1));
- m_popup->show();
-}
-
-void BookmarkManagerUI::newFolderCreate(Evas_Object * popup_content)
-{
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- if (popup_content != nullptr)
- {
- m_folderName = elm_entry_entry_get(popup_content);
- saveFolderClicked(m_folderName.c_str(), 0);
- m_popup->hide();
- }
-}
-
-void BookmarkManagerUI::CancelClicked(Evas_Object * popup)
-{
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- if (popup != nullptr)
- {
- m_popup->hide();
- }
-}
-
char* BookmarkManagerUI::listItemTextGet(void* data, Evas_Object*, const char* part)
{
BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- if ((data != nullptr) && (part != nullptr))
- {
- const char *part_name = "folder_text";
- static const int part_name_len = strlen(part_name);
- ItemData * id = static_cast<ItemData *>(data);
- if(!strncmp(part_name, part, part_name_len))
- {
- if(!id->m_bookmarkManager->m_folder.empty())
- {
- std::string s = std::string("Bookmark > ") + id->m_bookmarkManager->m_folder;
- return strdup(s.c_str());
- }
- }
- }
return strdup("Bookmark");
}
return label;
}
-void BookmarkManagerUI::addBookmarkFolderItem(std::shared_ptr<tizen_browser::services::BookmarkItem> hi)
-{
- BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__);
- BookmarkFolderItemData *itemData = new BookmarkFolderItemData();
- itemData->item = hi;
- itemData->bookmarkManagerUI.reset(this);
- Elm_Object_Item* BookmarkFolderView = elm_gengrid_item_append(m_gengrid, m_folder_item_class, itemData, _folderItemClicked, itemData);
- m_map_bookmark_folder_views.insert(std::pair<std::string,Elm_Object_Item*>(hi->getAddress(),BookmarkFolderView));
- elm_gengrid_item_selected_set(BookmarkFolderView, EINA_FALSE);
- setEmptyGengrid(false);
-}
-
-void BookmarkManagerUI::addBookmarkFolderItems(std::vector<std::shared_ptr<tizen_browser::services::BookmarkItem> > items)
-{
- BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__);
- for (auto it = items.begin(); it != items.end(); ++it)
- {
- addBookmarkFolderItem(*it);
- }
- elm_object_part_content_set(b_mm_layout, "elm.swallow.grid",getGenGrid());
- evas_object_show(getGenGrid());
-}
-
-
void BookmarkManagerUI::addBookmarkItem(std::shared_ptr<tizen_browser::services::BookmarkItem> hi)
{
BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__);
itemData->item = hi;
itemData->bookmarkManagerUI.reset(this);
Elm_Object_Item* BookmarkView = elm_gengrid_item_append(m_gengrid, m_bookmark_item_class, itemData, _bookmarkItemClicked, itemData);
- m_map_bookmark_folder_views.insert(std::pair<std::string,Elm_Object_Item*>(hi->getAddress(),BookmarkView));
+ m_map_bookmark.insert(std::pair<std::string,Elm_Object_Item*>(hi->getAddress(),BookmarkView));
elm_gengrid_item_selected_set(BookmarkView, EINA_FALSE);
setEmptyGengrid(false);
}
evas_object_show(getGenGrid());
}
-char* BookmarkManagerUI::_grid_folder_text_get(void *data, Evas_Object *, const char *part)
-{
- if ((data != nullptr) && (part != nullptr))
- {
- BROWSER_LOGD("%s:%d %s part=%s", __FILE__, __LINE__, __func__, part);
- BookmarkFolderItemData *itemData = static_cast<BookmarkFolderItemData*>(data);
- const char *part_name1 = "page_title";
- const char *part_name2 = "page_url";
- static const int part_name1_len = strlen(part_name1);
- static const int part_name2_len = strlen(part_name2);
- if (!strncmp(part_name1, part, part_name1_len) && !itemData->item->getTittle().empty())
- {
- return strdup(itemData->item->getTittle().c_str());
- }
- if (!strncmp(part_name2, part, part_name2_len) && !itemData->item->getAddress().empty())
- {
- return strdup(itemData->item->getAddress().c_str());
- }
- }
- return strdup("");
-}
-
-Evas_Object * BookmarkManagerUI::_grid_folder_content_get(void *data, Evas_Object *obj, const char *part)
-{
- if ((data != nullptr) && (obj != nullptr) && (part != nullptr))
- {
- BROWSER_LOGD("%s:%d %s part=%s", __FILE__, __LINE__, __func__, part);
- BookmarkFolderItemData *itemData = static_cast<BookmarkFolderItemData*>(data);
- const char *part_name1 = "elm.thumbnail";
- const char *part_name2 = "elm.thumbButton";
- static const int part_name1_len = strlen(part_name1);
- static const int part_name2_len = strlen(part_name2);
- if (!strncmp(part_name1, part, part_name1_len))
- {
- Evas_Object * thumb = nullptr;
- std::shared_ptr<tools::BrowserImage> image = itemData->item->getThumbnail();
- if (image)
- {
- thumb = tools::EflTools::getEvasImage(image, itemData->bookmarkManagerUI->m_parent);
- }
- return thumb;
- }
- else if (!strncmp(part_name2, part, part_name2_len))
- {
- Evas_Object *thumbButton = elm_button_add(obj);
- if (thumbButton != nullptr)
- {
- elm_object_style_set(thumbButton, "thumbButton");
- }
- return thumbButton;
- }
- }
- return nullptr;
-}
-
char* BookmarkManagerUI::_grid_bookmark_text_get(void *data, Evas_Object *, const char *part)
{
if ((data != nullptr) && (part != nullptr))
BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__);
if (data != nullptr)
{
- BookmarkFolderItemData * itemData = static_cast<BookmarkFolderItemData*>(data);
+ BookmarkItemData * itemData = static_cast<BookmarkItemData*>(data);
BROWSER_LOGD("Bookmark URL: %s" , itemData->item->getAddress().c_str());
itemData->bookmarkManagerUI->bookmarkItemClicked(itemData->item);
}
}
-void BookmarkManagerUI::_folderItemClicked(void * data, Evas_Object *, void *)
-{
- BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__);
- if (data != nullptr)
- {
- BookmarkFolderItemData * itemData = static_cast<BookmarkFolderItemData *>(data);
- BROWSER_LOGD("Folder ID: %d" , itemData->item->getId());
- itemData->bookmarkManagerUI->set_folder(itemData->item->getTittle().c_str());
- itemData->bookmarkManagerUI->folderItemClicked(itemData->item->getId());
- }
-}
-
-void BookmarkManagerUI::_bookmark_thumbSelected(void * data, Evas_Object *, void *)
-{
- (void)data;
-#if 0
- if (data != nullptr)
- {
- HistoryItemData * itemData = static_cast<HistoryItemData *>(data);
- itemData->bookmarkManagerUI->bookmarkClicked(itemData->item);
- }
-#endif
-}
-
void BookmarkManagerUI::clearItems()
{
hide();
BROWSER_LOGD("Deleting all items from gengrid");
elm_gengrid_clear(m_gengrid);
elm_genlist_clear(m_genList);
- m_map_bookmark_folder_views.clear();
+ m_map_bookmark.clear();
elm_theme_extension_del(nullptr, edjFilePath.c_str());
elm_theme_full_flush();
elm_cache_all_flush();
//elm_gengrid_clear(m_gengrid);
//remove 'createGenGrid' if the elm_gengrid_clear() will be valid again
createGenGrid();
- m_map_bookmark_folder_views.clear();
+ m_map_bookmark.clear();
}
}
}
#include "service_macros.h"
#include "services/HistoryService/HistoryItem.h"
#include "BookmarkItem.h"
-#include "AddNewFolderPopup.h"
namespace tizen_browser{
namespace base_ui{
//TODO: make it private;
void showTopContent();
virtual std::string getName();
- void addBookmarkFolderItem(std::shared_ptr<tizen_browser::services::BookmarkItem>);
- void addBookmarkFolderItems(std::vector<std::shared_ptr<tizen_browser::services::BookmarkItem> >);
void addBookmarkItem(std::shared_ptr<tizen_browser::services::BookmarkItem>);
void addBookmarkItems(std::vector<std::shared_ptr<tizen_browser::services::BookmarkItem> >);
void hide();
void clearItems();
- void set_folder(const std::string &name) {m_folder = name;};
void updateGengrid();
- void newFolderPopup();
Evas_Object* createNoHistoryLabel();
void setEmptyGengrid(bool setEmpty);
boost::signals2::signal<void (std::string)> closeBookmarkManagerClicked;
- boost::signals2::signal<void (std::string)> addNewFolderClicked;
- boost::signals2::signal<void (const char*, int)> saveFolderClicked;
boost::signals2::signal<void (std::shared_ptr<tizen_browser::services::BookmarkItem>)> bookmarkItemClicked;
- boost::signals2::signal<void (int)> folderItemClicked;
private:
Evas_Object* createBookmarksLayout(Evas_Object* parent);
void createGengridItemClasses();
Evas_Object *getGenList();
Evas_Object *getGenGrid();
- static char* _grid_folder_text_get(void *data, Evas_Object *obj, const char *part);
- static Evas_Object * _grid_folder_content_get(void *data, Evas_Object *obj, const char *part);
- static char* _grid_bookmark_text_get(void *data, Evas_Object *obj, const char *part);
+
+ static char* _grid_bookmark_text_get(void *data, Evas_Object *obj, const char *part);
static Evas_Object * _grid_bookmark_content_get(void *data, Evas_Object *obj, const char *part);
static void _bookmarkItemClicked(void * data, Evas_Object * obj, void * event_info);
- static void _folderItemClicked(void * data, Evas_Object * obj, void * event_info);
static void _bookmark_thumbSelected(void * data, Evas_Object *, void *);
- void newFolderCreate(Evas_Object * popup_content);
- void CancelClicked(Evas_Object * popup_content);
-
static Evas_Object* listItemContentGet(void *data, Evas_Object *obj, const char *part);
static char* listItemTextGet(void *data, Evas_Object *, const char *part);
static void item_clicked_cb(void *, Evas_Object *, void *);
static void close_clicked_cb(void *data, Evas_Object *, void *);
- static void new_folder_clicked_cb(void *data, Evas_Object *, void *);
private:
- std::string m_folderName;
Evas_Object *m_genList;
- Evas_Object *popup_content;
- std::shared_ptr<tizen_browser::base_ui::AddNewFolderPopup > m_popup;
Evas_Object *b_mm_layout;
Elm_Genlist_Item_Class *m_itemClass;
Evas_Object *m_gengrid;
Evas_Object *m_parent;
Elm_Gengrid_Item_Class * m_bookmark_item_class;
- Elm_Gengrid_Item_Class * m_folder_item_class;
- std::map<std::string,Elm_Object_Item*> m_map_bookmark_folder_views;
+ std::map<std::string,Elm_Object_Item*> m_map_bookmark;
std::string edjFilePath;
- std::string m_folder;
bool m_gengridSetup;
};
set(BookmarkManagerUI_SRCS
BookmarkManagerUI.cpp
- AddNewFolderPopup.cpp
)
set(BookmarkManagerUI_HEADERS
BookmarkManagerUI.h
- AddNewFolderPopup.h
)
include(Coreheaders)
#please do not add edc/ directory
set(edcFiles
BookmarkManagerUI.edc
- AddNewFolderPopup.edc
)
foreach(edec ${edcFiles})
+++ /dev/null
-#define POPUP_EDITFIELD_LAYOUT_MINMAX_HEIGHT_INC 40
-#define POPUP_CONTENT_DEFAULT_PADDING_LEFT_MIN_INC 65
-#define POPUP_CONTENT_DEFAULT_PADDING_RIGHT_MIN_INC 65
-
-collections {
-
-group { name: "elm/entry/selection/browser_entry";
- parts {
- part { name: "bg";
- scale:1;
- type: RECT;
- mouse_events: 0;
- description { state: "default" 0.0;
- color: 255 255 255 255;
- }
- }
- }
-}
-group { name: "elm/entry/cursor/browser_entry";
- parts {
- part { name: "bg";
- scale:1;
- type: RECT;
- mouse_events: 0;
- description { state: "default" 0.0;
- color: 22 120 237 255;
- min: 2 36;
- max: 2 36;
- visible: 0;
- }
- description {
- state: "focused" 0.0;
- inherit: "default" 0.0;
- visible: 1;
- }
- }
- }
- programs {
- program { name: "focused";
- signal: "elm,action,focus";
- source: "elm";
- action: STATE_SET "focused" 0.0;
- target: "bg";
- }
- program { name: "unfocused";
- signal: "elm,action,unfocus";
- source: "elm";
- action: STATE_SET "default" 0.0;
- target: "bg";
- }
- }
-}
-group {
- name: "popup_input_text";
- parts {
- part {
- name: "elm.text.message";
- type: TEXT;
- scale: 1;
- description {
- state: "default" 0.0;
- min: 0 0 ;
- max: 670 80 ;
- align: 0.0 0.5;
- rel1 {
- relative: 0.0 0.0; offset: 65 0;
- }
- rel2 {
- relative: 1.0 1.0;
- }
- color: 0 0 0 255;
- text
- { text: "Add a New Folder?";
- font: "Sans,Edje-Vera";
- size: 34;
- min: 0 1;
- align: 0.0 0.5;
- }
- }
- }
- part {
- name: "elm.swallow.content";
- type: SWALLOW;
- scale: 1;
- description {
- state: "default" 0.0;
- min: 0 POPUP_EDITFIELD_LAYOUT_MINMAX_HEIGHT_INC;
- max: -1 POPUP_EDITFIELD_LAYOUT_MINMAX_HEIGHT_INC;
- align: 0.0 0.5;
- min: 0 0 ;
- max: 540 100 ;
- rel1 {
- relative: 0.0 1.0 ;
- to: "elm.text.message";
- }
- rel2 {
- relative: 1.0 1.0;
- }
- }
- }
- }
- }
- group {
- name: "elm/entry/base-single/uri_entry_popup";
- styles {
- style {
- name: "browser-entry-uri-style-unselected";
- base: "font=Sans:style=SVD_Medium font_size="34" wrap=none color=#515151";
- }
- style {
- name: "browser-entry-uri-style-selected";
- base: "font=Sans:style=SVD_Medium font_size="34" wrap=none color=#dddddd";
- }
- }
- data {
- item: focus_highlight "off";
- }
- parts {
-
- part { name: "bg";
- scale:1;
- type: RECT;
- mouse_events: 0;
- description { state: "default" 0.0;
- color: 255 255 255 255;
- }
- }
-
- part {
- name: "elm.guide";
- scale:1;
- type: TEXTBLOCK;
- mouse_events: 0;
- description { state: "default" 0.0;
- rel1.relative: 0.0 0.0;
- rel2.relative: 1.0 1.0;
- align: 0.0 0.0;
- text {
- style: "browser-entry-uri-style-unselected";
- min: 0 1;
- }
- }
- description { state: "hidden" 0.0;
- inherit: "default" 0.0;
- visible: 0;
- }
- }
- part { name: "label.text.clip";
- scale:1;
- type: RECT;
- description {
- state: "default" 0.0;
- }
- }
- part {
- name: "elm.text";
- scale:1;
- multiline: 0;
- entry_mode: EDITABLE;
- select_mode: DEFAULT;
- cursor_mode: BEFORE;
- type: TEXTBLOCK;
- clip_to: "label.text.clip";
- source: "elm/entry/selection/browser_entry";
- source4: "elm/entry/cursor/browser_entry";
- description { state: "default" 0.0;
- rel1.relative: 0.0 0.0;
- rel2.relative: 1.0 1.0;
- align: 0.0 0.0;
- text {
- style: "browser-entry-uri-style-unselected";
- min: 0 1;
- }
- }
- }
- }
- programs {
- program { name: "focus";
- signal: "load";
- source: "";
- action: FOCUS_SET;
- target: "elm.text";
- }
- program { name: "gdisabled";
- signal: "elm,guide,disabled";
- source: "elm";
- action: STATE_SET "hidden" 0.0;
- target: "elm.guide";
- }
- program { name: "genabled";
- signal: "elm,guide,enabled";
- source: "elm";
- action: STATE_SET "default" 0.0;
- target: "elm.guide";
- }
- }
-}//group
-}
collections {
RESOURCE_IMAGE_LOSSY("ic_more_exit_nor.png")
-RESOURCE_IMAGE_LOSSY("btn_bar_new_nor.png")
-RESOURCE_IMAGE_LOSSY("btn_bar_new_foc.png")
-RESOURCE_IMAGE_LOSSY("ic_thumbnail_folder.png")
-RESOURCE_IMAGE_LOSSY("ic_thumbnail_folder_all.png")
-RESOURCE_IMAGE_LOSSY("ic_thumbnail_folder_mark.png")
#define WIDTH 1920
#define HEIGHT 181
#define ITEM_WIDTH 1200
+
group {
name: "elm/genlist/item/topContent/default";
min: WIDTH HEIGHT;
image: "thumbnail.png" COMP;
image: "btn_bar_stop_nor.png" COMP;
}
- data.item: "texts" "webpage_title webpage_url folder_text";
- data.item: "contents" "favicon star_click close_click new_folder_click";
+ data.item: "texts" "webpage_title webpage_url bookmark_group_text";
+ data.item: "contents" "favicon star_click close_click";
color_classes{
color_class{
name: "defaultBgColor";
rel2 { relative: 1.0 1.0; }
}
}
- part {
- name: "new_folder_bg";
- scale:1;
- mouse_events: 1;
- type: RECT;
- description {
- state: "default" 0.0;
- visible: 1;
- fixed: 1 1;
- align: 0 0;
- min: 82 102;
- max: 82 102;
- rel1 { relative: 0.0 0.0; to: "action_bar_bg"; offset: 10 0;}
- rel2 { relative: 1.0 1.0; to: "action_bar_bg";}
- color_class: transparent;
- }
- description {
- state: "highlight" 0.0;
- inherit: "default" 0.0;
- color_class: focusBgColor;
- visible: 1;
- }
- description {
- state: "focus" 0.0;
- inherit: "default" 0.0;
- color_class: focusDelBgColor;
- visible: 1;
- }
- }
- part {
- name: "new_folder_icon";
- type: IMAGE;
- scale: 1;
- description { state: "default" 0.0;
- visible: 1;
- fixed: 1 1;
- align: 0 0;
- min: 82 102;
- max: 82 102;
- rel1 { relative: 0.0 0.0; to: "new_folder_bg";}
- rel2 { relative: 1.0 1.0; to: "new_folder_bg";}
- image.normal: "btn_bar_new_nor.png";
- }
- description { state: "highlight" 0.0;
- inherit: "default" 0.0;
- visible: 1;
- }
- description { state: "focus" 0.0;
- inherit: "highlight" 0.0;
- image.normal: btn_bar_new_foc.png;
- }
- }
- part {
- name: "new_folder_over";
- scale:1;
- type: RECT;
- mouse_events :1;
- description {
- state: "default" 0.0;
- visible: 1;
- align: 0 0;
- fixed: 1 1;
- min: 82 102;
- max: 82 102;
- rel1 { relative: 0.0 0.0; to: "new_folder_bg";}
- rel2 { relative: 1.0 1.0; to: "new_folder_bg";}
- color_class: transparent;
- }
- }
- part {
- name: "new_folder_click";
- scale:1;
- type: SWALLOW;
- mouse_events :1;
- description {
- state: "default" 0.0;
- visible: 1;
- align: 0 0;
- fixed: 1 1;
- min: 82 102;
- max: 82 102;
- rel1 { relative: 0.0 0.0; to: "new_folder_over";}
- rel2 { relative: 1.0 1.0; to: "new_folder_over";}
- color_class: transparent;
- }
- }
part {
name: "title_text";
scale: 1;
}
part {
- name: "folder_bg";
+ name: "bookmark_group_bg";
scale:1;
mouse_events: 1;
type: RECT;
}
}
part {
- name: "folder_text";
+ name: "bookmark_group_text";
scale: 1;
type: TEXT;
description { state: "default" 0.0;
visible: 1;
fixed: 1 1;
- rel1 { relative: 0.0 0.0;to: "folder_bg"; offset : 62 104; }
- rel2 { relative: 1.0 1.0;to: "folder_bg";}
+ rel1 { relative: 0.0 0.0;to: "bookmark_group_bg"; offset : 62 104; }
+ rel2 { relative: 1.0 1.0;to: "bookmark_group_bg";}
color: 116 116 116 255;
text {
text: "Bookmark";
script {
emit("mouse_out_close_click", "");
}
- }
- program {
- name: "mouse_in_new_folder_click";
- signal: "mouse,in";
- source: "new_folder_*";
- script {
- emit("mouse_in_new_folder_click", "");
- }
- }
- program {
- name: "mouse_out_new_folder_click";
- signal: "mouse,out";
- source: "new_folder_*";
- script {
- emit("mouse_out_new_folder_click", "");
- }
}
program {
name: "mouse_in_close";
target: "close_bg";
target: "close_icon";
}
- program {
- name: "mouse_in_new_folder";
- signal: "mouse_in_new_folder_click";
- source: "";
- action: STATE_SET "highlight" 0.0;
- target: "new_folder_over";
- target: "new_folder_bg";
- target: "new_folder_icon";
- }
- program {
- name: "mouse_out_new_folder";
- signal: "mouse_out_new_folder_click";
- source: "";
- action: STATE_SET "default" 0.0;
- target: "new_folder_over";
- target: "new_folder_bg";
- target: "new_folder_icon";
- }
-
}
}
}
}
- part { name: "folder_image";
- type: IMAGE;
- scale: 1;
- repeat_events: 1;
- description {
- state: "default" 0.0;
- visible: 1;
- align: 0.5 0.5;
- fixed: 0 0;
- min: 140 140;
- max: 140 140;
- image.normal: "ic_thumbnail_folder.png";
- rel1 { relative: 0.0 0.0; to: "bg"; }
- rel2 { relative: 1.0 1.0; to: "bg"; }
- }
- }
-
part { name: "elm.thumbnail";
type: SWALLOW;
description { state: "default" 0.0;
BookmarkService::~BookmarkService()
{
bp_bookmark_adaptor_deinitialize();
- free_path_history();
}
/*private*/ std::shared_ptr<tizen_browser::services::StorageService> BookmarkService::getStorageManager() {
return true;
}
-int BookmarkService::countBookmarksAndSubFolders()
+int BookmarkService::countBookmarks()
{
return m_bookmarks.size();
}
std::vector<std::shared_ptr<BookmarkItem> > BookmarkService::getBookmarks(int folder_id)
{
BROWSER_LOGD("[%s:%d] folder_id = %d", __func__, __LINE__, folder_id);
- set_current_folder_id(folder_id);
int *ids = nullptr;
int ids_count = 0;
int ret = bp_bookmark_adaptor_get_ids_p(&ids, &ids_count, -1, 0, folder_id, BOOKMARK_TYPE, -1, -1, BP_BOOKMARK_O_SEQUENCE, 0);
return m_bookmarks;
}
-std::vector<std::shared_ptr<BookmarkItem> > BookmarkService::getBookmarkFolders(int folder_id)
-{
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- set_current_folder_id(folder_id);
- int *ids = nullptr;
- int ids_count = 0;
- int ret = bp_bookmark_adaptor_get_ids_p(&ids, &ids_count, -1, 0, folder_id, FOLDER_TYPE, -1, -1, BP_BOOKMARK_O_SEQUENCE, 0);
- if (ret<0){
- BROWSER_LOGE("Error! Could not get ids!");
- return std::vector<std::shared_ptr<BookmarkItem>>();
- }
-
- m_bookmarks.clear();
- BROWSER_LOGD("Bookmark folders: %d", ids_count);
-
- for(int i = 0; i<ids_count; i++)
- {
- bp_bookmark_info_fmt bookmark_info;
- bp_bookmark_adaptor_get_easy_all(ids[i], &bookmark_info);
-
- std::shared_ptr<BookmarkItem> bookmark = std::make_shared<BookmarkItem>(std::string(bookmark_info.url ? bookmark_info.url : ""),std::string(bookmark_info.title ? bookmark_info.title : ""), std::string(""),(int) bookmark_info.parent, ids[i]);
- std::shared_ptr<tizen_browser::tools::BrowserImage> bi = std::make_shared<tizen_browser::tools::BrowserImage>();
- bi->imageType = tizen_browser::tools::BrowserImage::ImageType::ImageTypePNG;
- bi->width = bookmark_info.thumbnail_width;
- bi->height = bookmark_info.thumbnail_height;
- bi->dataSize = bookmark_info.thumbnail_length;
- bi->imageData = (void*)malloc(bookmark_info.thumbnail_length);
- memcpy(bi->imageData, (void*)bookmark_info.thumbnail, bookmark_info.thumbnail_length);
- bookmark->setThumbnail(bi);
-
- std::shared_ptr<tizen_browser::tools::BrowserImage> fav = std::make_shared<tizen_browser::tools::BrowserImage>();
- unsigned char *image_bytes;
- bp_bookmark_adaptor_get_icon(ids[i], &fav->width, &fav->height, &image_bytes, &fav->dataSize);
- fav->imageType = tizen_browser::tools::BrowserImage::ImageType::ImageTypePNG;
-
- fav->imageData = (void*)malloc(bookmark_info.favicon_length);
- memcpy(fav->imageData, (void*)image_bytes, bookmark_info.favicon_length);
- bookmark->setFavicon(fav);
- if(!bookmark_info.is_operator)
- m_bookmarks.push_back(bookmark);
- else
- m_bookmarks.insert(m_bookmarks.begin(),bookmark);
- }
- free(ids);
- return m_bookmarks;
-}
-
-
bool BookmarkService::deleteAllBookmarks()
{
BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
return true;
}
-int BookmarkService::get_root_folder_id(void)
-{
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- int root_id = 0;
- bp_bookmark_adaptor_get_root(&root_id);
- return root_id;
-}
-
-int BookmarkService::save_folder(const char *title, int *saved_folder_id, int by_operator)
-{
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- bp_bookmark_property_cond_fmt properties;
- properties.parent = get_current_folder_id();
- properties.type = 1;
- properties.is_operator = -1;
- properties.is_editable = -1;
- //conditions for querying
- bp_bookmark_rows_cond_fmt conds;
- conds.limit = 1;
- conds.offset = 0;
- conds.order_offset = BP_BOOKMARK_O_SEQUENCE;
- conds.ordering = 0;
- conds.period_offset = BP_BOOKMARK_O_DATE_CREATED;
- conds.period_type = BP_BOOKMARK_DATE_ALL;
- int id = -1;
- int *ids = nullptr;
- int ids_count = -1;
- int ret = bp_bookmark_adaptor_get_cond_ids_p(&ids, &ids_count, &properties, &conds, BP_BOOKMARK_O_TITLE, title, 0);
- free(ids);
-
- if (ret < 0)
- return -1;
-
- if (ids_count > 0) {
- return 0;
- }
-
- bp_bookmark_info_fmt info;
- std::memset(&info, 0, sizeof(bp_bookmark_info_fmt));
-
- info.type = 1;
- info.parent = get_current_folder_id();
- info.sequence = -1;
- info.is_operator = by_operator;
- info.access_count = -1;
- info.editable = 1;
-
- if (title != nullptr && strlen(title) > 0)
- {
- info.title = (char *)title;
- }
- ret = bp_bookmark_adaptor_easy_create(&id, &info);
-
- if (ret == 0) {
- ret = bp_bookmark_adaptor_set_sequence(id, -1); // max sequence
- if (ret == 0) {
- *saved_folder_id = id;
- BROWSER_LOGD("bmsvc_add_bookmark is success(id:%d)", *saved_folder_id);
- bp_bookmark_adaptor_publish_notification();
- return id;
- }
- }
- BROWSER_LOGD("bmsvc_add_bookmark is failed");
- return -1;
-}
-
bool BookmarkService::delete_by_id(int id)
{
BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
if (ret < 0)
return -1;
}
- //This is a bookmark folder so check for any such folder with same title already exists
- else if (is_title_exist) {
- ret = bp_bookmark_adaptor_get_cond_ids_p(&ids, &ids_count, &properties, &conds, BP_BOOKMARK_O_TITLE, title, 0);
- free(ids);
- if (ret < 0)
- return -1;
- }
if (ids_count > 0) {
BROWSER_LOGD("same bookmark already exist");
return get_id(uri, &id);
}
-bool BookmarkService::is_in_folder(int parent_folder, const char *title)
-{
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- BROWSER_LOGD("");
-
- bp_bookmark_property_cond_fmt properties;
- properties.parent = parent_folder;
- properties.type = 1;
- properties.is_operator = -1;
- properties.is_editable = -1;
- //conditions for querying
- bp_bookmark_rows_cond_fmt conds;
- conds.limit = 1;
- conds.offset = 0;
- conds.order_offset = BP_BOOKMARK_O_SEQUENCE;
- conds.ordering = 0;
- conds.period_offset = BP_BOOKMARK_O_DATE_CREATED;
- conds.period_type = BP_BOOKMARK_DATE_ALL;
-
- int *ids = nullptr;
- int ids_count = -1;
- int ret = bp_bookmark_adaptor_get_cond_ids_p(&ids, &ids_count, &properties, &conds, BP_BOOKMARK_O_TITLE, title, 0);
- free(ids);
- return ((ret >= 0) && (ids_count > 0));
-}
-
bool BookmarkService::get_id(const char *uri, int *bookmark_id)
{
BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
return result;
}
-bool BookmarkService::get_folder_id(const char *title, int parent_id, int *folder_id)
-{
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
-
- bp_bookmark_property_cond_fmt properties;
- properties.parent = parent_id;
- properties.type = 1;
- properties.is_operator = -1;
- properties.is_editable = -1;
- //conditions for querying
- bp_bookmark_rows_cond_fmt conds;
- conds.limit = 1;
- conds.offset = 0;
- conds.order_offset = BP_BOOKMARK_O_SEQUENCE;
- conds.ordering = 0;
- conds.period_offset = BP_BOOKMARK_O_DATE_CREATED;
- conds.period_type = BP_BOOKMARK_DATE_ALL;
-
- int *ids = nullptr;
- int ids_count = -1;
- int ret = bp_bookmark_adaptor_get_cond_ids_p(&ids, &ids_count, &properties, &conds, BP_BOOKMARK_O_TITLE, title, 0);
- free(ids);
- bool result = ((ret >= 0) && (ids_count > 0));
- if (result) {
- *folder_id = ids[0];
- }
- return false;
-}
-
bool BookmarkService::get_item_by_id(int id, BookmarkItem *item)
{
BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
return false;
}
- if (id == get_root_folder_id()) {
+ if (id == 0) {
item->setTittle("Bookmarks");
item->setAddress("");
item->setId(id);
- item->set_folder_flag(1);
- item->set_editable_flag(1);
item->setDir(-1);
return true;
}
if (bp_bookmark_adaptor_get_info(id, (BP_BOOKMARK_O_TYPE | BP_BOOKMARK_O_PARENT | BP_BOOKMARK_O_SEQUENCE |
BP_BOOKMARK_O_IS_EDITABLE | BP_BOOKMARK_O_URL |BP_BOOKMARK_O_TITLE), &info) == 0) {
item->setId(id);
- item->set_folder_flag(static_cast<bool>(info.type));
item->setDir(info.parent);
- item->set_editable_flag(static_cast<bool>(info.editable));
if (info.url != nullptr && strlen(info.url) > 0)
item->setAddress(info.url);
return false;
}
-std::vector<BookmarkItem *> BookmarkService::get_list_by_folder(const int folder_id)
-{
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- std::vector<BookmarkItem *> list;
- BROWSER_LOGD("folder ID: %d", folder_id);
- int *ids = nullptr;
- int ids_count = -1;
-
- if (bp_bookmark_adaptor_get_ids_p(&ids, &ids_count, -1, 0, folder_id, -1, -1, -1, BP_BOOKMARK_O_SEQUENCE, 1) < 0) {
- BROWSER_LOGD("bp_bookmark_adaptor_get_sequence_child_ids_p is failed");
- return list;
- }
-
- if (ids_count <= 0) {
- BROWSER_LOGD("bookmark list is empty");
- free(ids);
- return list;
- }
-
- bp_bookmark_info_fmt info;
- for(int i = 0; i < ids_count; i++) {
- if (bp_bookmark_adaptor_get_info(ids[i], (BP_BOOKMARK_O_TYPE |
- BP_BOOKMARK_O_SEQUENCE |
- BP_BOOKMARK_O_IS_EDITABLE | BP_BOOKMARK_O_URL |
- BP_BOOKMARK_O_TITLE | BP_BOOKMARK_O_IS_OPERATOR), &info) == 0) {
- BookmarkItem *item = new BookmarkItem();
- item->setId(ids[i]);
-
- item->set_folder_flag(static_cast<bool>(info.type));
- item->setDir(folder_id);
- item->set_editable_flag(static_cast<bool>(info.editable));
-
- if (info.url != nullptr && strlen(info.url) > 0)
- item->setAddress(info.url);
-
- if (info.title != nullptr && strlen(info.title) > 0)
- item->setTittle(info.title);
-
- list.push_back(item);
- bp_bookmark_adaptor_easy_free(&info);
- }
- }
- free(ids);
- return list;
-}
-
-bool BookmarkService::get_list_users_by_folder(const int folder_id, std::vector<BookmarkItem *> &list)
-{
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- BROWSER_LOGD("folder ID: %d", folder_id);
- int *ids = nullptr;
- int ids_count = -1;
- if (bp_bookmark_adaptor_get_ids_p(&ids, &ids_count, -1, 0, folder_id, -1, 0, -1, BP_BOOKMARK_O_SEQUENCE, 1) < 0) {
- BROWSER_LOGD("bp_bookmark_adaptor_get_ids_p is failed");
- return false;
- }
-
- if (ids_count <= 0) {
- BROWSER_LOGD("bookmark list is empty");
- free(ids);
- return false;
- }
-
- bp_bookmark_info_fmt info;
- for(int i = 0; i < ids_count; i++) {
- if (bp_bookmark_adaptor_get_info(ids[i], (BP_BOOKMARK_O_TYPE |
- BP_BOOKMARK_O_SEQUENCE |
- BP_BOOKMARK_O_IS_EDITABLE | BP_BOOKMARK_O_URL |
- BP_BOOKMARK_O_TITLE |
- BP_BOOKMARK_O_IS_OPERATOR), &info) == 0) {
- BookmarkItem *item = new BookmarkItem();
- item->setId(ids[i]);
- item->set_folder_flag(static_cast<bool>(info.type));
- item->setDir(folder_id);
- item->set_editable_flag(static_cast<bool>(info.editable));
-
- if (info.url != nullptr && strlen(info.url) > 0)
- item->setAddress(info.url);
-
- if (info.title != nullptr && strlen(info.title) > 0)
- item->setTittle(info.title);
-
- if (info.is_operator > 0) {
- delete item;
- } else {
- list.push_back(item);
- }
- bp_bookmark_adaptor_easy_free(&info);
- }
- }
- free(ids);
- return (list.empty() == false);
-}
-
-bool BookmarkService::get_list_by_dividing(const int folder_id, std::vector<BookmarkItem *> &list, int *list_item_count, int genlist_block_size)
-{
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- BROWSER_LOGD("folder ID: %d", folder_id);
-
- int *ids = nullptr;
- int ids_count = -1;
- if (bp_bookmark_adaptor_get_ids_p(&ids, &ids_count, genlist_block_size, *list_item_count, folder_id, -1, -1, -1,
- BP_BOOKMARK_O_SEQUENCE, 1) < 0) {
- BROWSER_LOGD("bp_bookmark_adaptor_get_ids_p is failed");
- return false;
- }
-
- if (ids_count <= 0) {
- BROWSER_LOGD("bookmark list is empty");
- free(ids);
- return false;
- }
-
- bp_bookmark_info_fmt info;
- for(int i = 0; i < ids_count; i++) {
- if (bp_bookmark_adaptor_get_info(ids[i], (BP_BOOKMARK_O_TYPE |
- BP_BOOKMARK_O_SEQUENCE |
- BP_BOOKMARK_O_IS_EDITABLE | BP_BOOKMARK_O_URL |
- BP_BOOKMARK_O_TITLE | BP_BOOKMARK_O_IS_OPERATOR), &info) == 0) {
- BookmarkItem *item = new BookmarkItem();
- item->setId(ids[i]);
- item->set_folder_flag(static_cast<bool>(info.type));
- item->setDir(folder_id);
- item->set_editable_flag(static_cast<bool>(info.editable));
-
- if (info.url != nullptr && strlen(info.url) > 0)
- item->setAddress(info.url);
-
- if (info.title != nullptr && strlen(info.title) > 0)
- item->setTittle(info.title);
-
- list.push_back(item);
- bp_bookmark_adaptor_easy_free(&info);
- }
- }
- free(ids);
- return true;
-}
-
-bool BookmarkService::get_list_users_by_dividing(const int folder_id, std::vector<BookmarkItem *> &list, int *list_item_count, int genlist_block_size)
-{
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- BROWSER_LOGD("folder ID: %d", folder_id);
- int *ids = nullptr;
- int ids_count = -1;
- if (bp_bookmark_adaptor_get_ids_p(&ids, &ids_count, genlist_block_size, *list_item_count, folder_id, -1, 0, 1,
- BP_BOOKMARK_O_SEQUENCE, 1) < 0) {
- BROWSER_LOGD("bp_bookmark_adaptor_get_ids_p is failed");
- return false;
- }
-
- if (ids_count <= 0) {
- BROWSER_LOGD("bookmark list is empty");
- free(ids);
- return false;
- }
-
- bp_bookmark_info_fmt info;
- BROWSER_LOGD("list.size() before : %d", list.size());
- BROWSER_LOGD("ids_count: %d", ids_count);
- for(int i = 0; i < ids_count; i++) {
- BROWSER_LOGD("list.size(): %d", list.size());
- BROWSER_LOGD("index : %d", i);
- if (bp_bookmark_adaptor_get_info(ids[i], (BP_BOOKMARK_O_TYPE |
- BP_BOOKMARK_O_SEQUENCE |
- BP_BOOKMARK_O_IS_EDITABLE | BP_BOOKMARK_O_URL |
- BP_BOOKMARK_O_TITLE |
- BP_BOOKMARK_O_IS_OPERATOR), &info) == 0) {
- BookmarkItem *item = new BookmarkItem();
- item->setId(ids[i]);
- item->set_folder_flag(static_cast<bool>(info.type));
- item->setDir(folder_id);
- item->set_editable_flag(static_cast<bool>(info.editable));
-
- if (info.url != nullptr && strlen(info.url) > 0)
- item->setAddress(info.url);
-
- if (info.title != nullptr && strlen(info.title) > 0)
- item->setTittle(info.title);
-
- if (info.is_operator > 0) {
- BROWSER_LOGD("this is operator bookmark");
- delete item;
- } else {
- BROWSER_LOGD("item is pushed");
- list.push_back(item);
- }
- bp_bookmark_adaptor_easy_free(&info);
- }
- }
- BROWSER_LOGD("list.size() after: %d", list.size());
- free(ids);
- return (list.empty() == false);
-}
-
-int BookmarkService::_get_folder_count(const int folder_id)
-{
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- BROWSER_LOGD("folder ID: %d", folder_id);
-
- int *ids = nullptr;
- int ids_count = -1;
- bp_bookmark_adaptor_get_ids_p(&ids, &ids_count, -1, 0, folder_id, 1, -1, -1, BP_BOOKMARK_O_SEQUENCE, 0);
- free(ids);
- return ids_count;
-}
-
-
-int BookmarkService::_get_bookmarks_count(const int folder_id)
-{
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- BROWSER_LOGD("folder ID: %d", folder_id);
-
- int *ids = nullptr;
- int ids_count = -1;
- bp_bookmark_adaptor_get_ids_p(&ids, &ids_count, -1, 0, folder_id, 0, -1, -1, BP_BOOKMARK_O_SEQUENCE, 0);
- free(ids);
- return ids_count;
-}
-
-
-int BookmarkService::_get_total_contents_count(const int folder_id)
-{
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- BROWSER_LOGD("folder ID: %d", folder_id);
-
- int *ids = nullptr;
- int ids_count = -1;
- bp_bookmark_adaptor_get_ids_p(&ids, &ids_count, -1, 0, folder_id, 0, -1, -1, BP_BOOKMARK_O_SEQUENCE, 0);
- free(ids);
- return ids_count;
-}
-
-bool BookmarkService::get_list_operators(const int folder_id, std::vector<BookmarkItem *> &list)
-{
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- BROWSER_LOGD("folder ID: %d", folder_id);
- int *ids = nullptr;
- int ids_count = -1;
-
- if (bp_bookmark_adaptor_get_ids_p(&ids, &ids_count, -1, 0, folder_id, -1, 1, -1, BP_BOOKMARK_O_SEQUENCE, 1) < 0) {
- BROWSER_LOGD("bp_bookmark_adaptor_get_ids_p is failed");
- return false;
- }
-
- if (ids_count <= 0) {
- BROWSER_LOGD("bookmark list is empty");
- free(ids);
- return false;
- }
-
- bp_bookmark_info_fmt info;
- for(int i = 0; i < ids_count; i++) {
- if (bp_bookmark_adaptor_get_info(ids[i], (BP_BOOKMARK_O_TYPE |
- BP_BOOKMARK_O_SEQUENCE |
- BP_BOOKMARK_O_IS_EDITABLE | BP_BOOKMARK_O_URL |
- BP_BOOKMARK_O_TITLE), &info) == 0) {
- BookmarkItem *item = new BookmarkItem();
- item->setId(ids[i]);
- item->set_folder_flag(static_cast<bool>(info.type));
- item->setDir(folder_id);
- item->set_editable_flag(static_cast<bool>(info.editable));
-
- if (info.url != nullptr && strlen(info.url) > 0)
- item->setAddress(info.url);
-
- if (info.title != nullptr && strlen(info.title) > 0)
- item->setTittle(info.title);
-
- list.push_back(item);
- bp_bookmark_adaptor_easy_free(&info);
- }
- }
- free(ids);
- return (list.empty() == false);
-}
-
-bool BookmarkService::get_list_by_keyword(const char *keyword, std::vector<BookmarkItem *> &list)
-{
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- BROWSER_LOGD("");
-
- if (!keyword || (strlen(keyword) == 0)) {
- BROWSER_LOGD("keyword is nullptr");
- return false;
- }
-
- std::string buf_str(keyword);
- buf_str = "%" + buf_str + "%";
-
- bp_bookmark_property_cond_fmt properties;
- properties.parent = -1;
- properties.type = 0;
- properties.is_operator = -1;
- properties.is_editable = -1;
- //conditions for querying
- bp_bookmark_rows_cond_fmt conds;
- conds.limit = -1;
- conds.offset = 0;
- conds.order_offset = BP_BOOKMARK_O_TITLE;
- conds.ordering = -1;
- conds.period_offset = BP_BOOKMARK_O_DATE_CREATED;
- conds.period_type = BP_BOOKMARK_DATE_ALL;
-
- int *ids = nullptr;
- int ids_count = -1;
- if (bp_bookmark_adaptor_get_cond_ids_p(&ids, &ids_count, &properties, &conds,
- (BP_BOOKMARK_O_TITLE | BP_BOOKMARK_O_URL), buf_str.c_str(), 1) < 0) {
- BROWSER_LOGE("bp_bookmark_adaptor_get_cond_ids_p is failed");
- return false;
- }
-
- if (ids_count <= 0) {
- BROWSER_LOGD("bookmark list is empty");
- free(ids);
- return false;
- }
-
- bp_bookmark_info_fmt info;
- for(int i = 0; i < ids_count; i++) {
- if (bp_bookmark_adaptor_get_info(ids[i], (BP_BOOKMARK_O_TYPE |
- BP_BOOKMARK_O_PARENT | BP_BOOKMARK_O_SEQUENCE |
- BP_BOOKMARK_O_IS_EDITABLE | BP_BOOKMARK_O_URL |
- BP_BOOKMARK_O_TITLE), &info) == 0) {
- BookmarkItem *item = new BookmarkItem();
- item->setId(ids[i]);
- item->set_folder_flag(static_cast<bool>(info.type));
- item->setDir(info.parent);
- item->set_editable_flag(static_cast<bool>(info.editable));
-
- if (info.url != nullptr && strlen(info.url) > 0)
- item->setAddress(info.url);
-
- if (info.title != nullptr && strlen(info.title) > 0)
- item->setTittle(info.title);
-
- list.push_back(item);
- bp_bookmark_adaptor_easy_free(&info);
- }
- }
- free(ids);
- return true;
-}
-
-void BookmarkService::destroy_list(std::vector<BookmarkItem *> &list)
-{
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- BROWSER_LOGD("");
-
- for(unsigned int i = 0 ; i < list.size() ; i++) {
- delete list[i];
- }
- list.clear();
-}
-
-bool BookmarkService::get_folder_depth_count(int *depth_count)
-{
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- BROWSER_LOGD("depth_count: %d", *depth_count);
- return _get_depth_count_recursive(get_root_folder_id(), 0, depth_count);
-}
-
-bool BookmarkService::_get_depth_count_recursive(int folder_id, int cur_depth, int *depth_count)
-{
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- BROWSER_LOGD("current_depth: %d, depth_count:%d", cur_depth, *depth_count);
-
- std::vector<BookmarkItem *> bookmark_list = get_list_by_folder(folder_id);
- if (!bookmark_list.empty()) {
- BROWSER_LOGE("get_list_by_folder is failed(folder id:%d)",folder_id);
- return false;
- }
-
- for(unsigned int j = 0 ; j < bookmark_list.size() ; j++) {
- if (bookmark_list[j]->is_folder()) {
- /* Folder item is found. get sub list */
- if ((cur_depth+1) > *depth_count)
- *depth_count = cur_depth+1;
-
- _get_depth_count_recursive(bookmark_list[j]->getId(), cur_depth+1, depth_count);
- }
- }
- destroy_list(bookmark_list);
- return true;
-}
-
-bool BookmarkService::set_thumbnail(int id, Evas_Object *thumbnail)
-{
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- BROWSER_LOGD("id : %d", id);
-
- int w = 0;
- int h = 0;
- int stride = 0;
- int len = 0;
-
- //platform_Service ps.
- //ps.evas_image_size_get(thumbnail, &w, &h, &stride);
- len = stride * h;
- BROWSER_LOGD("thumbnail w=[%d], h=[%d], stride=[%d], len=[%d]", w, h, stride, len);
-
- if (len == 0)
- return false;
-
- void *thumbnail_data = evas_object_image_data_get(thumbnail, true);
- int ret = bp_bookmark_adaptor_set_snapshot(id, w, h, (const unsigned char *)thumbnail_data, len);
- if (ret < 0) {
- BROWSER_LOGE("bp_bookmark_adaptor_set_thumbnail is failed");
- return false;
- }
- return true;
-}
-
-Evas_Object *BookmarkService::get_thumbnail(int id, Evas_Object *parent)
-{
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- BROWSER_LOGD("id : %d", id);
- void *thumbnail_data = nullptr;
- int w = 0;
- int h = 0;
- int len = 0;
- Evas_Object *icon = nullptr;
-
- int ret = bp_bookmark_adaptor_get_snapshot(id, &w, &h, (unsigned char **)&thumbnail_data, &len);
- BROWSER_LOGE("len: %d, w:%d, h:%d", len, w, h);
- if (len > 0){
- /* gengrid event area has scaled with original image if it is evas image.
- therefore use elm_image*/
- icon = elm_image_add(parent);
- Evas_Object *icon_object = elm_image_object_get(icon);
- evas_object_image_colorspace_set(icon_object, EVAS_COLORSPACE_ARGB8888);
- evas_object_image_size_set(icon_object, w, h);
- evas_object_image_fill_set(icon_object, 0, 0, w, h);
- evas_object_image_filled_set(icon_object, true);
- evas_object_image_alpha_set(icon_object,true);
-
- void *target_image_data = evas_object_image_data_get(icon_object, true);
- memcpy(target_image_data, thumbnail_data, len);
- evas_object_image_data_set(icon_object, target_image_data);
- }
-
- return icon;
-}
-
-bool BookmarkService::set_favicon(int id, Evas_Object *favicon)
-{
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- BROWSER_LOGD("id : %d", id);
-
- int w = 0;
- int h = 0;
- int stride = 0;
- int len = 0;
-
- //platform_Service ps.
- //ps.evas_image_size_get(favicon, &w, &h, &stride);
- len = stride * h;
- BROWSER_LOGD("favicon w=[%d], h=[%d], stride=[%d], len=[%d]", w, h, stride, len);
-
- if (len == 0)
- return false;
-
- void *favicon_data = evas_object_image_data_get(favicon, true);
- int ret = bp_bookmark_adaptor_set_icon(id, w, h, (const unsigned char *)favicon_data, len);
- if (ret < 0) {
- BROWSER_LOGE("bp_bookmark_adaptor_set_favicon is failed");
- return false;
- }
- return true;
-}
-
-Evas_Object *BookmarkService::get_favicon(int id, Evas_Object *parent)
-{
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- BROWSER_LOGD("id : %d", id);
- void *favicon_data = nullptr;
- int w = 0;
- int h = 0;
- int len = 0;
-
- Evas *e = nullptr;
- e = evas_object_evas_get(parent);
- if (!e) {
- BROWSER_LOGE("canvas is nullptr");
- return nullptr;
- }
- int ret = bp_bookmark_adaptor_get_icon(id, &w, &h, (unsigned char **)&favicon_data, &len);
- if (ret < 0) {
- BROWSER_LOGE("bp_bookmark_adaptor_set_favicon is failed");
- return nullptr;
- }
-
- Evas_Object *icon = nullptr;
- BROWSER_LOGE("len: %d, w:%d, h:%d", len, w, h);
- if (len > 0){
- icon = evas_object_image_filled_add(e);
- if (w == 0 || h == 0) {
- // Android bookmark.
- evas_object_image_memfile_set(icon, favicon_data, len, nullptr, nullptr);
- } else {
- // Tizen bookmark.
- evas_object_image_colorspace_set(icon, EVAS_COLORSPACE_ARGB8888);
- evas_object_image_size_set(icon, w, h);
- evas_object_image_fill_set(icon, 0, 0, w, h);
- evas_object_image_filled_set(icon, true);
- evas_object_image_alpha_set(icon,true);
-
- void *target_image_data = evas_object_image_data_get(icon, true);
- memcpy(target_image_data, favicon_data, len);
- evas_object_image_data_set(icon, target_image_data);
- }
- }
- return icon;
-}
-
-bool BookmarkService::set_webicon(int id, Evas_Object *webicon)
-{
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- BROWSER_LOGD("id : %d", id);
-
- int w = 0;
- int h = 0;
- int stride = 0;
- int len = 0;
-
- //platform_Service ps;
- //ps.evas_image_size_get(webicon, &w, &h, &stride);
- len = stride * h;
- BROWSER_LOGD("webicon w=[%d], h=[%d], stride=[%d], len=[%d]", w, h, stride, len);
-
- if (len == 0)
- return false;
-
- void *webicon_data = evas_object_image_data_get(webicon, true);
- int ret = bp_bookmark_adaptor_set_webicon(id, w, h, (const unsigned char *)webicon_data, len);
- if (ret != 0)
- BROWSER_LOGE("set webicon is failed");
- return false;
-}
-
-Evas_Object *BookmarkService::get_webicon(int id, Evas_Object *parent)
-{
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- BROWSER_LOGD("id : %d", id);
- void *webicon_data = nullptr;
- int w = 0;
- int h = 0;
- int len = 0;
-
- int ret = bp_bookmark_adaptor_get_webicon(id, &w, &h, (unsigned char **)&webicon_data, &len);
- if (ret != 0) {
- BROWSER_LOGE("bp_bookmark_adaptor_set_webicon is failed");
- return nullptr;
- }
-
- Evas_Object *icon = nullptr;
- BROWSER_LOGE("len: %d, w:%d, h:%d", len, w, h);
- if (len > 0){
- Evas *e = evas_object_evas_get(parent);
- icon = evas_object_image_filled_add(e);
-
- evas_object_image_colorspace_set(icon, EVAS_COLORSPACE_ARGB8888);
- evas_object_image_size_set(icon, w, h);
- evas_object_image_fill_set(icon, 0, 0, w, h);
- evas_object_image_filled_set(icon, true);
- evas_object_image_alpha_set(icon,true);
-
- void *target_image_data = evas_object_image_data_get(icon, true);
- memcpy(target_image_data, webicon_data, len);
- evas_object_image_data_set(icon, target_image_data);
- }
-
- return icon;
-}
-
-bool BookmarkService::set_access_count(int id, int count)
-{
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- BROWSER_LOGD("");
- return !bp_bookmark_adaptor_set_access_count(id, count);
-}
-
-bool BookmarkService::get_access_count(int id, int *count)
-{
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- BROWSER_LOGD("");
- return !bp_bookmark_adaptor_get_access_count(id, count);
-}
-
-bool BookmarkService::increase_access_count(int id)
-{
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- BROWSER_LOGD("");
- int count;
- if(get_access_count(id, &count) == false) {
- BROWSER_LOGD("get_access_count is failed");
- return false;
- }
-
- if(set_access_count(id, count + 1) == false) {
- BROWSER_LOGD("set_access_count is failed");
- return false;
- }
-
- return true;
-}
-
-bool BookmarkService::set_last_sequence(int id)
-{
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- BROWSER_LOGD("");
- return (bp_bookmark_adaptor_set_sequence(id, -1) == -1);
-}
-
-const char* BookmarkService::get_path_info(void)
-{
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- BROWSER_LOGD("%s", m_path_string.c_str());
- return m_path_string.c_str();
-}
-
-BookmarkService::folder_info *BookmarkService::get_path_by_index(unsigned int index)
-{
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- BROWSER_LOGD("%s", m_path_history[index]->folder_name);
- return m_path_history[index];
-}
-
-int BookmarkService::get_path_size(void)
-{
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- BROWSER_LOGD("%d", m_path_history.size());
- return m_path_history.size();
-}
-
-void BookmarkService::push_back_path(folder_info *item)
-{
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- BROWSER_LOGD("path size before push: %d", m_path_history.size());
- m_path_history.push_back(item);
-}
-
-void BookmarkService::pop_back_path(void)
-{
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- BROWSER_LOGD("path size before pop: %d", m_path_history.size());
- m_path_history.pop_back();
-}
-
-void BookmarkService::clear_path_history(void)
-{
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- BROWSER_LOGD("");
- free_path_history();
- m_path_history.clear();
-}
-
-void BookmarkService::free_path_history(void)
-{
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- BROWSER_LOGD("");
- for(unsigned int i = 0 ; i < m_path_history.size() ; i++) {
- if (m_path_history[i]) {
- if (m_path_history[i]->folder_name)
- free(m_path_history[i]->folder_name);
-
- free(m_path_history[i]);
- }
- }
-}
-
-void BookmarkService::change_path_lang(void)
-{
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- BROWSER_LOGD("");
- m_path_string.clear();
-
- char *old_str = m_path_history[0]->folder_name;
- m_path_history[0]->folder_name = strdup("Bookmarks");
- free(old_str);
-
- for(int i = 0 ; i < get_path_size(); i++) {
- if (get_path_by_index(i)) {
- if (m_path_string.empty()) {
- m_path_string = m_path_history[0]->folder_name;
- } else {
- m_path_string += "/";
- m_path_string += get_path_by_index(i)->folder_name;
- }
- }
- }
- BROWSER_LOGD("str: %s", m_path_string.c_str());
-}
-
-void BookmarkService::path_into_sub_folder(int folder_id, const char *folder_name)
-{
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- BROWSER_LOGD("");
-
- folder_info *item = (folder_info *)calloc(1, sizeof(folder_info));
-
- item->folder_id = folder_id;
- if (folder_id == get_root_folder_id()) {
- item->folder_name = strdup("Bookmarks");
- } else
- item->folder_name = strdup(folder_name);
- push_back_path(item);
-
- m_path_string.clear();
- for(int i = 0 ; i < get_path_size() ; i++) {
- if (get_path_by_index(i)) {
- if (m_path_string.empty()) {
- m_path_string = get_path_by_index(i)->folder_name;
- } else {
- m_path_string += "/";
- m_path_string += get_path_by_index(i)->folder_name;
- }
- }
- }
- char *path_string = (elm_entry_utf8_to_markup(m_path_string.c_str()));
- m_path_string = path_string;
- free(path_string);
- BROWSER_LOGD("m_path_string: %s", m_path_string.c_str());
-
- set_current_folder_id(folder_id);
-}
-
-bool BookmarkService::path_to_upper_folder(int *curr_folder)
-{
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- BROWSER_LOGD("");
-
- int current_depth = get_path_size();
- BROWSER_LOGD("current_depth: %d", current_depth);
-
- if (current_depth <= 0) {
- BROWSER_LOGE("[ERROR] top folder is not valid");
- return true;
- }
-
- int curr_depth = current_depth - 1;
- if (curr_depth > 0) {
- *curr_folder = get_path_by_index(curr_depth - 1)->folder_id;
- if (get_path_by_index(curr_depth) && get_path_by_index(curr_depth)->folder_name) {
- free(get_path_by_index(curr_depth)->folder_name);
- free(get_path_by_index(curr_depth));
- }
- pop_back_path();
- } else {
- /* Current folder is root folder */
- if (*curr_folder != get_root_folder_id()) {
- BROWSER_LOGE("[ERROR] top folder is not root folder");
- return true;
- }
- if (get_path_by_index(curr_depth) && get_path_by_index(curr_depth)->folder_name) {
- free(get_path_by_index(curr_depth)->folder_name);
- free(get_path_by_index(curr_depth));
- }
- pop_back_path();
- m_path_string.clear();
- return false;
- }
-
- m_path_string.clear();
- for(int i = 0 ; i < get_path_size() ; i++) {
- if (get_path_by_index(i)) {
- if (m_path_string.empty()) {
- m_path_string = get_path_by_index(i)->folder_name;
- } else {
- m_path_string += "/";
- m_path_string += get_path_by_index(i)->folder_name;
- }
- }
- }
- BROWSER_LOGD("m_path_string: %s", m_path_string.c_str());
-
- set_current_folder_id(*curr_folder);
- return true;
-}
-
} /* end of namespace services*/
} /* end of namespace tizen_browser */
std::shared_ptr<tizen_browser::tools::BrowserImage> thumbnail=std::shared_ptr<tizen_browser::tools::BrowserImage>(),
std::shared_ptr<tizen_browser::tools::BrowserImage> favicon = std::shared_ptr<tizen_browser::tools::BrowserImage>(),
unsigned int dirId = 0);
- /**
- * @brief Count bookmarks and subfolders
- * @return Number of bookmarks and subfolders
- */
- int countBookmarksAndSubFolders();
+ int countBookmarks();
/** \todo Need to change this callback function for finding stored bookmark, check getBookmarkId function
* @brief Check if bookmark exists
* @return list of bookmark items, bookmark items in a folder & bookmark folders
*/
std::vector<std::shared_ptr<BookmarkItem> > getBookmarks(int folder_id = -1);
- std::vector<std::shared_ptr<BookmarkItem> > getBookmarkFolders(int folder_id);
/**
* @brief Delete all bookmarks
*/
bool deleteBookmark(const std::string & url);
-
void synchronizeBookmarks();
- typedef struct _folder_info {
- int folder_id;
- char *folder_name;
- } folder_info;
-
- int get_root_folder_id(void);
- int save_folder(const char *title, int *saved_bookmark_id, int by_operator = 0);
bool delete_by_id(int id);
bool delete_by_id_notify(int id);
bool delete_by_uri(const char *uri);
bool is_duplicate_check_needed = false, bool is_URI_check_needed = false);
bool delete_all(void);
bool get_item_by_id(int id, BookmarkItem *item);
- std::vector<BookmarkItem *> get_list_by_folder(const int folder_id);
- bool get_list_users_by_folder(const int folder_id, std::vector<BookmarkItem *> &list);
- bool get_list_by_dividing(const int folder_id, std::vector<BookmarkItem *> &list, int *last_item, int genlist_block_size);
- bool get_list_users_by_dividing(const int folder_id, std::vector<BookmarkItem *> &list, int *last_item, int genlist_block_size);
- int _get_folder_count(const int folder_id);
- int _get_bookmarks_count(const int folder_id);
- int _get_total_contents_count(const int folder_id);
- bool get_list_operators(const int folder_id, std::vector<BookmarkItem *> &list);
- bool get_list_by_keyword(const char *keyword, std::vector<BookmarkItem *> &list);
- void destroy_list(std::vector<BookmarkItem *> &list);
int get_count(void);
bool get_id(const char *uri, int *bookmark_id);
- bool get_folder_id(const char *title, int parent_id, int *folder_id);
bool is_in_bookmark(const char *uri);
- bool is_in_folder(int parent_folder, const char *title);
- bool get_folder_depth_count(int *depth_count);
- bool set_thumbnail(int id, Evas_Object *thumbnail);
- Evas_Object *get_thumbnail(int id, Evas_Object *parent);
- bool set_favicon(int id, Evas_Object *favicon);
- Evas_Object *get_favicon(int id, Evas_Object *parent);
- bool set_webicon(int id, Evas_Object *webicon);
- Evas_Object *get_webicon(int id, Evas_Object *parent);
- bool set_access_count(int id, int count);
- bool get_access_count(int id, int *count);
- bool increase_access_count(int id);
- bool set_last_sequence(int id);
- const char* get_path_info(void);
- folder_info *get_path_by_index(unsigned int index);
- int get_path_size(void);
- void push_back_path(folder_info *item);
- void pop_back_path(void);
- void clear_path_history(void);
- void free_path_history(void);
- void change_path_lang(void);
- void path_into_sub_folder(int folder_id, const char *folder_name);
- bool path_to_upper_folder(int *curr_folder);
-
bool get_memory_full(void) { return m_memory_full; }
- int get_current_folder_id(void) { return m_curr_folder; }
- void set_current_folder_id(int folder_id) { m_curr_folder = folder_id; }
private:
enum ItemType{
BOOKMARK_TYPE = 0
- , FOLDER_TYPE = 1
, ALL_TYPE = -1
};
- bool _get_depth_count_recursive(int folder_id, int cur_depth, int *depth_count);
std::vector<BookmarkItem *> m_bookmark_list;
- std::vector<folder_info *> m_path_history;
- std::string m_path_string;
bool m_memory_full;
bool m_bookmark_adaptor_initialize;
- int m_curr_folder;
std::shared_ptr<tizen_browser::services::StorageService> m_storageManager;
std::vector<std::shared_ptr<BookmarkItem> > m_bookmarks;
/// \todo Need to change getBookmarkId function for finding stored bookmark - check getBookmarkExists function
+++ /dev/null
-/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <Elementary.h>
-#include <boost/concept_check.hpp>
-#include <vector>
-
-#include "Tools/EflTools.h"
-#include "AddBookmarkPopup.h"
-#include "BrowserLogger.h"
-
-namespace tizen_browser{
-namespace base_ui{
-
-typedef struct _BookmarkFolderItemData
-{
- int index;
- std::shared_ptr<tizen_browser::services::BookmarkItem> item;
- std::shared_ptr<tizen_browser::base_ui::AddBookmarkPopup> addBookmarkPopup;
-} BookmarkFolderItemData;
-
-
-AddBookmarkPopup::AddBookmarkPopup(Evas_Object* main_layout):
- m_mainLayout(main_layout),
- m_popup(nullptr),
- m_gengrid(nullptr),
- m_itemClass(nullptr)
-{
-}
-
-AddBookmarkPopup::~AddBookmarkPopup ()
-{}
-
-void AddBookmarkPopup::show()
-{
- BROWSER_LOGD("[%s],", __func__);
- m_edjFilePath = EDJE_DIR;
- m_edjFilePath.append("MoreMenuUI/AddBookmarkPopup.edj");
- elm_theme_extension_add(0, m_edjFilePath.c_str());
- m_popup = elm_layout_add(m_mainLayout);
- if (m_popup != nullptr)
- {
- elm_object_signal_emit(m_mainLayout, "elm,state,show", "elm");
- elm_layout_file_set(m_popup, m_edjFilePath.c_str(), "bookmark_popup");
- BROWSER_LOGI("PATH: %s", m_edjFilePath.c_str());
-
- m_gengrid = elm_gengrid_add(m_popup);
-
- if (m_gengrid != nullptr)
- {
- 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_itemClass) {
- m_itemClass = elm_gengrid_item_class_new();
- m_itemClass->item_style = "folder_grid_item";
- m_itemClass->func.text_get = _grid_text_get;
- m_itemClass->func.content_get = _grid_content_get;
- m_itemClass->func.state_get = nullptr;
- m_itemClass->func.del = nullptr;
- }
-
- 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_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, 226 * efl_scale, 226 * efl_scale);
-
- elm_object_part_content_set(m_popup, "elm.swallow.gengrid", m_gengrid);
- elm_object_part_content_set(m_mainLayout, "popup", m_popup);
- evas_object_show(m_gengrid);
- }
- }
-}
-
-void AddBookmarkPopup::hide()
-{
- BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__);
- elm_object_signal_emit(m_mainLayout, "elm,state,hide", "elm");
- evas_object_hide(elm_layout_content_get(m_popup, "elm.swallow.gengrid"));
- evas_object_hide(elm_layout_content_get(m_mainLayout, "popup"));
- evas_object_hide(m_gengrid);
- evas_object_hide(m_popup);
- clearItems();
-}
-
-Evas_Object * AddBookmarkPopup::getContent()
-{
- return m_gengrid;
-}
-
-void AddBookmarkPopup::setEmptyGengrid(bool 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", nullptr);
- }
-}
-
-Evas_Object* AddBookmarkPopup::createNoHistoryLabel()
-{
- Evas_Object *label = elm_label_add(m_popup);
- if (label != nullptr)
- {
- elm_object_text_set(label, "No favorite websites.");
- evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_size_hint_align_set(label, EVAS_HINT_FILL, EVAS_HINT_FILL);
- }
- return label;
-}
-
-void AddBookmarkPopup::addBookmarkFolderItem(std::shared_ptr<tizen_browser::services::BookmarkItem> hi , int ind)
-{
- BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__);
- BookmarkFolderItemData *itemData = new BookmarkFolderItemData();
- if (itemData != nullptr)
- {
- itemData->item = hi;
- itemData->index = ind;
- itemData->addBookmarkPopup = std::shared_ptr<tizen_browser::base_ui::AddBookmarkPopup>(this);
- Elm_Object_Item* BookmarkFolderView = elm_gengrid_item_append(m_gengrid, m_itemClass, itemData, nullptr, this);
- if (BookmarkFolderView)
- {
- if(ind == 1)
- {
- BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__);
- m_map_bookmark_folder_views.insert(std::pair<std::string,Elm_Object_Item*>("new_folder_button",BookmarkFolderView));
- }
- else
- m_map_bookmark_folder_views.insert(std::pair<std::string,Elm_Object_Item*>(hi->getAddress(),BookmarkFolderView));
-
- elm_gengrid_item_selected_set(BookmarkFolderView, EINA_FALSE);
- setEmptyGengrid(false);
- }
- }
-}
-
-void AddBookmarkPopup::addBookmarkFolderItems(std::vector<std::shared_ptr<tizen_browser::services::BookmarkItem> > items)
-{
- BROWSER_LOGD("%s:%d %s Bookmark Folder Items: %d", __FILE__, __LINE__, __func__, items.size());
- int i = 1;
- addBookmarkFolderItem(nullptr, i++);
- for (auto it = items.begin(); it != items.end(); ++it, ++i) {
- addBookmarkFolderItem(*it, i);
- }
- elm_object_part_content_set(m_popup, "elm.swallow.gengrid",getContent());
- evas_object_show(getContent());
-}
-
-char* AddBookmarkPopup::_grid_text_get(void *data, Evas_Object *, const char *part)
-{
- BROWSER_LOGD("%s:%d %s part=%s", __FILE__, __LINE__, __func__, part);
- if ((data != nullptr) && (part != nullptr))
- {
- static const char* part_name = "page_title";
- static const int part_len = strlen(part_name);
-
- BookmarkFolderItemData *itemData = static_cast<BookmarkFolderItemData*>(data);
- if (!strncmp(part, part_name, part_len)) {
- if(itemData->item)
- return strdup(itemData->item->getTittle().c_str());
- }
- }
- return strdup("");
-}
-
-const char* AddBookmarkPopup::getImageFileNameForType(int index, bool focused)
-{
- static const char *file_name = "";
- if (index == 1) {
- file_name = focused ? "btn_bar_new_foc.png" : "btn_bar_new_nor.png";
- }
- return file_name;
-}
-
-Evas_Object * AddBookmarkPopup::_grid_content_get(void *data, Evas_Object *obj, const char *part)
-{
- BROWSER_LOGD("%s:%d %s part=%s", __FILE__, __LINE__, __func__, part);
- if ((data != nullptr) && (obj != nullptr) && (part != nullptr))
- {
- BookmarkFolderItemData *itemData = static_cast<BookmarkFolderItemData*>(data);
-
- static const char* part1_name = "elm.thumbnail";
- static const char* part2_name = "elm.thumbButton";
- static const int part1_len = strlen(part1_name);
- static const int part2_len = strlen(part2_name);
-
- if (!strncmp(part, part1_name, part1_len) && (itemData->index == 1)) {
- BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__);
- Evas_Object* thumb_nail = elm_icon_add(obj);
- const char* file_name = getImageFileNameForType(itemData->index, false);
- BROWSER_LOGD("%s:%d %s file=%s", __FILE__, __LINE__, __func__, file_name);
- if (thumb_nail != nullptr)
- {
- elm_image_file_set(thumb_nail, itemData->addBookmarkPopup->m_edjFilePath.c_str(), file_name);
- }
- return thumb_nail;
- }
- if (!strncmp(part, part2_name, part2_len)) {
- Evas_Object *thumbButton = elm_button_add(obj);
- if (thumbButton != nullptr)
- {
- elm_object_style_set(thumbButton, part2_name);
- if(itemData->index == 1)
- {
- evas_object_smart_callback_add(thumbButton, "clicked", tizen_browser::base_ui::AddBookmarkPopup::_newFolderButton, data);
- evas_object_event_callback_add(thumbButton, EVAS_CALLBACK_MOUSE_IN, __cb_mouse_in, data);
- evas_object_event_callback_add(thumbButton, EVAS_CALLBACK_MOUSE_OUT, __cb_mouse_out, data);
- }
- else
- evas_object_smart_callback_add(thumbButton, "clicked", tizen_browser::base_ui::AddBookmarkPopup::_thumbSelected, data);
- }
- return thumbButton;
- }
-
- }
- return nullptr;
-}
-
-void AddBookmarkPopup::__cb_mouse_in(void * data, Evas *, Evas_Object *obj, void *)
-{
- BROWSER_LOGD("[%s:%d]", __PRETTY_FUNCTION__, __LINE__);
- if ((data != nullptr) && (obj != nullptr))
- {
- elm_object_focus_set(obj, EINA_TRUE);
- BookmarkFolderItemData *itemData = static_cast<BookmarkFolderItemData*>(data);
-
- const char* file_name = getImageFileNameForType(itemData->index, true);
- Elm_Object_Item * selected = itemData->addBookmarkPopup->m_map_bookmark_folder_views["new_folder_button"];
- if (selected != nullptr)
- {
- Evas_Object *thumb_nail = elm_object_item_part_content_get(selected, "elm.thumbnail");
- if (thumb_nail != nullptr)
- {
- elm_image_file_set(thumb_nail, itemData->addBookmarkPopup->m_edjFilePath.c_str(), file_name);
- }
- }
- }
-}
-
-void AddBookmarkPopup::__cb_mouse_out(void * data, Evas *, Evas_Object *obj, void* )
-{
- BROWSER_LOGD("[%s:%d]", __PRETTY_FUNCTION__, __LINE__);
- if (data && obj){
- BookmarkFolderItemData *itemData = static_cast<BookmarkFolderItemData*>(data);
- elm_object_focus_set(obj, EINA_FALSE);
- const char* file_name = getImageFileNameForType(itemData->index, false);
- Elm_Object_Item * selected = itemData->addBookmarkPopup->m_map_bookmark_folder_views["new_folder_button"];
- Evas_Object *thumb_nail = elm_object_item_part_content_get(selected, "elm.thumbnail");
- elm_image_file_set(thumb_nail, itemData->addBookmarkPopup->m_edjFilePath.c_str(), file_name);
- }
-}
-
-//void AddBookmarkPopup::_itemSelected(void* , Evas_Object* , void*)
-//{
-// BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__);
-// if (data && event_info) {
-// Elm_Object_Item * selected = static_cast<Elm_Object_Item *>(event_info);
-// HistoryItemData * itemData = static_cast<HistoryItemData *>(elm_object_item_data_get(selected));
-// AddBookmarkPopup * self = static_cast<AddBookmarkPopup *>(data);
-//
-// self->bookmarkClicked(itemData->item);
-// }
-//}
-
-
-void AddBookmarkPopup::_newFolderButton(void* data, Evas_Object*, void*)
-{
- BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__);
- if (data) {
- BookmarkFolderItemData * itemData = static_cast<BookmarkFolderItemData *>(data);
- itemData->addBookmarkPopup->addNewFolderClicked(std::string());
- }
-}
-
-void AddBookmarkPopup::_thumbSelected(void* data, Evas_Object*, void*)
-{
- BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__);
- if (data) {
- BookmarkFolderItemData * itemData = static_cast<BookmarkFolderItemData *>(data);
- itemData->addBookmarkPopup->folderSelected(itemData->item->getId());
- }
-}
-
-void AddBookmarkPopup::clearItems()
-{
- BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__);
- elm_gengrid_clear(m_gengrid);
- m_map_bookmark_folder_views.clear();
- elm_theme_extension_del(nullptr, m_edjFilePath.c_str());
- elm_theme_full_flush();
- elm_cache_all_flush();
-}
-
-
-void AddBookmarkPopup::updateGengrid()
-{
- BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__);
- elm_gengrid_clear(m_gengrid);
- m_map_bookmark_folder_views.clear();
-}
-
-void AddBookmarkPopup::focusItem(void*, Evas_Object*, void* event_info)
-{
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- if (event_info) {
- Elm_Object_Item *item = static_cast<Elm_Object_Item*>(event_info);
- elm_object_item_signal_emit(item, "mouse,in", "over2");
-
- // selected manually
- elm_gengrid_item_selected_set(item, EINA_TRUE);
- }
-}
-
-void AddBookmarkPopup::unFocusItem(void*, Evas_Object*, void* event_info)
-{
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- if (event_info) {
- Elm_Object_Item *item = static_cast<Elm_Object_Item*>(event_info);
- elm_object_item_signal_emit(item, "mouse,out", "over2");
-
- // unselected manually
- elm_gengrid_item_selected_set(item, EINA_FALSE);
- }
-}
-
-}
-}
+++ /dev/null
-#ifndef ADDBOOKMARKPOPUP_H
-#define ADDBOOKMARKPOPUP_H
-
-#include <Elementary.h>
-#include <boost/signals2.hpp>
-
-#include "AbstractUIComponent.h"
-#include "AbstractService.h"
-#include "ServiceFactory.h"
-#include "service_macros.h"
-#include "BookmarkItem.h"
-
-namespace tizen_browser{
-namespace base_ui{
-
-class AddBookmarkPopup{
-
-public:
- AddBookmarkPopup(Evas_Object *main_layout);
- ~AddBookmarkPopup();
-
- Evas_Object *getContent();
- void addBookmarkFolderItem(std::shared_ptr<tizen_browser::services::BookmarkItem> , int);
- void addBookmarkFolderItems(std::vector<std::shared_ptr<tizen_browser::services::BookmarkItem> >);
- void clearItems();
- void updateGengrid();
- Evas_Object* createNoHistoryLabel();
- void setEmptyGengrid(bool setEmpty);
-
- boost::signals2::signal<void (std::string)> blockClicked;
- boost::signals2::signal<void (int)> folderSelected;
- boost::signals2::signal<void (std::string)> addNewFolderClicked;
- /**
- * Theese setters should be called before showing popup.
- */
- void show();
- void hide();
-
-private:
- static char* _grid_text_get(void *data, Evas_Object *, const char *part);
- static Evas_Object * _grid_content_get(void *data, Evas_Object *obj, const char *part);
- //static void _itemSelected(void * data, Evas_Object * obj, void * event_info);
- static void _thumbSelected(void * data, Evas_Object * obj, void * event_info);
- static void _newFolderButton(void *data, Evas_Object *obj, void *event_info);
- static Evas_Object* listItemContentGet(void *data, Evas_Object *obj, const char *part);
- static char* listItemTextGet(void *data, Evas_Object *obj, const char *part);
-
- static void item_clicked_cb(void *data, Evas_Object *obj, void *event_info);
- static void close_clicked_cb(void *data, Evas_Object *obj, void *event_info);
-
- static const char* getImageFileNameForType(int index, bool focused);
-
- Evas_Object *m_mainLayout;
- Evas_Object *m_popup;
- Evas_Object *m_gengrid;
-
- Elm_Gengrid_Item_Class * m_itemClass;
- std::map<std::string,Elm_Object_Item*> m_map_bookmark_folder_views;
- std::string m_edjFilePath;
- bool m_gengridSetup;
-
- static void __cb_mouse_in(void *data, Evas *e, Evas_Object *obj, void *event_info);
- static void __cb_mouse_out(void *data, Evas *e, Evas_Object *obj, void *event_info);
-
- static void focusItem(void* data, Evas_Object* obj, void* event_info);
- static void unFocusItem(void* data, Evas_Object* obj, void* event_info);
-};
-}
-}
-#endif
set(MoreMenuUI_SRCS
MoreMenuUI.cpp
- AddBookmarkPopup.cpp
- NewFolderPopup.cpp
)
set(MoreMenuUI_HEADERS
MoreMenuUI.h
- AddBookmarkPopup.h
- NewFolderPopup.h
)
include(Coreheaders)
#please do not add edc/ directory
set(edcFiles
MoreMenu.edc
- AddBookmarkPopup.edc
- NewFolderPopup.edc
)
foreach(edec ${edcFiles})
MoreMenuUI *moreMenuUI = static_cast<MoreMenuUI*>(data);
if (EINA_FALSE == moreMenuUI->m_isBookmark) {
- moreMenuUI->addToBookmarkClicked();
- moreMenuUI->AddBookmarkPopupCalled();
+ moreMenuUI->addToBookmarkClicked(0);
}
else {
moreMenuUI->m_isBookmark = EINA_FALSE;
}
}
-void MoreMenuUI::AddBookmarkPopupCalled()
-{
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- m_add_bookmark_popup = std::make_shared<tizen_browser::base_ui::AddBookmarkPopup>(m_mm_layout);
- m_add_bookmark_popup->show();
- m_add_bookmark_popup->addBookmarkFolderItems(m_map_bookmark_folder_list);
- m_add_bookmark_popup->folderSelected.disconnect_all_slots();
- m_add_bookmark_popup->folderSelected.connect(boost::bind(&MoreMenuUI::addToBookmarks, this, _1));
- m_add_bookmark_popup->addNewFolderClicked.disconnect_all_slots();
- m_add_bookmark_popup->addNewFolderClicked.connect(boost::bind(&MoreMenuUI::newFolderPopup, this,_1));
-}
-
-void MoreMenuUI::newFolderPopup(std::string)
-{
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- m_new_folder_popup =
- std::make_shared<tizen_browser::base_ui::NewFolderPopup>(m_mm_layout
- , nullptr
- , "Add New Folder for adding to Bookmark"
- , "New Folder"
- , "Add to bookmark"
- , "Cancel");
- m_new_folder_popup->on_ok.disconnect_all_slots();
- m_new_folder_popup->on_ok.connect(boost::bind(&MoreMenuUI::NewFolderCreate, this, _1));
- m_new_folder_popup->on_cancel.disconnect_all_slots();
- m_new_folder_popup->on_cancel.connect(boost::bind(&MoreMenuUI::CancelClicked, this, _1));
- m_add_bookmark_popup->hide();
- m_new_folder_popup->show();
-}
-
-void MoreMenuUI::NewFolderCreate(Evas_Object* popup_content)
-{
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- if (popup_content) {
- m_folderName = elm_entry_entry_get(popup_content);
- BookmarkFolderCreated(m_folderName.c_str(), 0);
- m_new_folder_popup->hide();
- }
-}
-
-void MoreMenuUI::CancelClicked(Evas_Object*)
-{
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- m_new_folder_popup->hide();
-}
-
-void MoreMenuUI::addToBookmarks(int folder_id)
-{
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- AddBookmarkInput(folder_id);
- m_add_bookmark_popup->hide();
- m_add_bookmark_popup.reset();
-}
-
void MoreMenuUI::hide()
{
evas_object_hide(elm_layout_content_get(m_mm_layout, "elm.swallow.grid"));
}
}
-void MoreMenuUI::getBookmarkFolderList(std::vector<std::shared_ptr<tizen_browser::services::BookmarkItem> > folderList)
-{
- m_map_bookmark_folder_list = folderList;
-}
-
void MoreMenuUI::clearItems()
{
hide();
BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
elm_gengrid_clear(m_gengrid);
m_map_menu_views.clear();
- m_map_bookmark_folder_list.clear();
evas_object_del(m_current_tab_bar);
elm_theme_extension_del(NULL, m_edjFilePath.c_str());
elm_theme_full_flush();
#include "service_macros.h"
#include "BookmarkItem.h"
-#include "AddBookmarkPopup.h"
-#include "NewFolderPopup.h"
-#include "../BookmarkManagerUI/AddNewFolderPopup.h"
#include "services/HistoryService/HistoryItem.h"
namespace tizen_browser{
//TODO: remove this function after new view managment introduction.
void hide();
void clearItems();
- void getBookmarkFolderList(std::vector<std::shared_ptr<tizen_browser::services::BookmarkItem> > );
void setFavIcon(std::shared_ptr<tizen_browser::tools::BrowserImage> favicon);
void setWebTitle(const std::string& title);
void setURL(const std::string& url);
void changeBookmarkStatus(bool data);
void createToastPopup(const char* text);
- boost::signals2::signal<void ()> addToBookmarkClicked;
- boost::signals2::signal<void (int)> AddBookmarkInput;
- boost::signals2::signal<void (const char*, int)> BookmarkFolderCreated;
+ boost::signals2::signal<void (int)> addToBookmarkClicked;
//TODO: remove redundant argument from this signal.
boost::signals2::signal<void (std::string)> bookmarkManagerClicked;
- boost::signals2::signal<void (std::string)> BookmarkFoldersListImport;
boost::signals2::signal<void (std::string)> historyUIClicked;
boost::signals2::signal<void (const std::string&)> settingsClicked;
//TODO: remove redundant argument from this signal.
static void _exitClicked();
void setDocIcon();
- void newFolderPopup(std::string);
- void NewFolderCreate(Evas_Object * popup_content);
- void CancelClicked(Evas_Object * popup_content);
-
- void AddBookmarkPopupCalled();
- void addToBookmarks(int folder_id);
static void _star_clicked(void *data, Evas_Object *obj, void *event_info);
static void _close_clicked(void *data, Evas_Object *obj, void *event_info);
static void __cb_mouse_out(void *data, Evas *e, Evas_Object *obj, void *event_info);
Evas_Object *m_current_tab_bar;
- std::shared_ptr<tizen_browser::base_ui::NewFolderPopup> m_new_folder_popup;
Evas_Object *m_mm_layout;
- std::shared_ptr<tizen_browser::base_ui::AddBookmarkPopup> m_add_bookmark_popup;
Evas_Object *m_gengrid;
Evas_Object *m_parent;
Evas_Object *m_toastPopup;
Evas_Object *m_bookmarkIcon;
Elm_Gengrid_Item_Class * m_item_class;
std::map<ItemType,Elm_Object_Item*> m_map_menu_views;
- std::vector<std::shared_ptr<tizen_browser::services::BookmarkItem> > m_map_bookmark_folder_list;
std::string m_edjFilePath;
- std::string m_folderName;
bool m_gengridSetup;
bool m_desktopMode;
Eina_Bool m_isBookmark;
+++ /dev/null
-/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <Elementary.h>
-#include <boost/concept_check.hpp>
-#include <vector>
-
-#include "Tools/EflTools.h"
-#include "NewFolderPopup.h"
-#include "BrowserLogger.h"
-
-#define efl_scale (elm_config_scale_get() / elm_app_base_scale_get())
-
-namespace tizen_browser{
-namespace base_ui{
-
-NewFolderPopup::NewFolderPopup(Evas_Object* main_layout) :
- m_popup(nullptr),
- m_content(nullptr),
- m_mainLayout(main_layout)
-{
-
-}
-
-NewFolderPopup::NewFolderPopup(Evas_Object *main_layout
- , Evas_Object *content
- , const char *message
- , const char *title
- , const char *okButtonText
- , const char *cancelButtonText) :
- m_popup(nullptr),
- m_content(content),
- m_message(message),
- m_title(title),
- m_okButtonText(okButtonText),
- m_cancelButtonText(cancelButtonText),
- m_mainLayout(main_layout)
-{
-
-}
-
-void NewFolderPopup::setTitle(const std::string& title)
-{
- m_title = title;
-}
-
-void NewFolderPopup::setMessage(const std::string& message)
-{
- m_message = message;
-}
-
-void NewFolderPopup::setContent(Evas_Object* content)
-{
- m_content = content;
-}
-
-void NewFolderPopup::setOkButtonText(const std::string& okButtonText)
-{
- m_okButtonText = okButtonText;
-}
-
-void NewFolderPopup::setCancelButtonText(const std::string& cancelButtonText)
-{
- m_cancelButtonText = cancelButtonText;
-}
-
-void NewFolderPopup::show()
-{
- BROWSER_LOGD("[%si %d],", __func__, __LINE__);
- std::string edjePath = std::string(EDJE_DIR);
- edjePath.append("MoreMenuUI/NewFolderPopup.edj");
- elm_theme_extension_add(0, edjePath.c_str());
- m_popup = elm_layout_add(m_mainLayout);
- elm_layout_file_set(m_popup, edjePath.c_str(), "new_folder_popup");
- elm_object_part_text_set(m_popup, "title_text", m_title.c_str());
-
- Evas_Object *buttonsBox = elm_box_add(m_popup);
- elm_box_horizontal_set(buttonsBox, EINA_TRUE);
-
- /* for margins */
- Evas_Object *layout = elm_layout_add(m_popup);
- elm_layout_file_set(layout, edjePath.c_str() , "popup_input_text");
- evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- elm_object_content_set(m_popup, layout);
- elm_object_part_text_set(m_popup, "title,text", m_title.c_str());
-
- m_editfield_entry = elm_entry_add(layout);
- elm_object_style_set(m_editfield_entry, "uri_entry_popup");
- evas_object_size_hint_weight_set(m_editfield_entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_size_hint_align_set(m_editfield_entry, EVAS_HINT_FILL, EVAS_HINT_FILL);
- elm_entry_editable_set(m_editfield_entry, EINA_TRUE);
- elm_entry_cnp_mode_set(m_editfield_entry, ELM_CNP_MODE_PLAINTEXT);
- elm_entry_scrollable_set(m_editfield_entry, EINA_TRUE);
- elm_entry_autocapital_type_set(m_editfield_entry, ELM_AUTOCAPITAL_TYPE_NONE);
- elm_entry_prediction_allow_set(m_editfield_entry, EINA_FALSE);
- elm_entry_single_line_set(m_editfield_entry, EINA_TRUE);
-
- elm_entry_input_panel_layout_set(m_editfield_entry, ELM_INPUT_PANEL_LAYOUT_URL);
- elm_entry_input_panel_return_key_type_set(m_editfield_entry, ELM_INPUT_PANEL_RETURN_KEY_TYPE_DONE);
- elm_object_part_content_set(layout, "elm.swallow.content" , m_editfield_entry);
- elm_entry_cursor_end_set(m_editfield_entry);
-
- if (!m_okButtonText.empty())
- {
- BROWSER_LOGD("Button1, %s", edjePath.c_str());
- Evas_Object *btn1 = elm_button_add(buttonsBox);
- evas_object_size_hint_weight_set(btn1, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_size_hint_align_set(btn1, 0.5, 0.5);
- elm_object_style_set(btn1, "bookmark_button");
- elm_object_part_text_set(btn1, "elm.text", m_okButtonText.c_str());
- elm_box_pack_end(buttonsBox, btn1);
- evas_object_smart_callback_add(btn1, "clicked", popup_ok_cb, (void*)this);
- evas_object_show(btn1);
- }
-
- if (!m_cancelButtonText.empty())
- {
- BROWSER_LOGD("Button2");
- Evas_Object *btn2 = elm_button_add(buttonsBox);
- evas_object_size_hint_weight_set(btn2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_size_hint_align_set(btn2, 0.5, 0.5);
- elm_object_style_set(btn2, "bookmark_button");
- elm_object_part_text_set(btn2, "elm.text", m_cancelButtonText.c_str());
- elm_box_pack_end(buttonsBox, btn2);
- evas_object_smart_callback_add(btn2, "clicked", popup_cancel_cb, (void*)this);
- evas_object_show(btn2);
- }
-
- if(!m_message.empty())
- elm_object_part_text_set(m_popup, "elm.text", m_message.c_str());
-
- evas_object_show(m_editfield_entry);
- evas_object_show(buttonsBox);
- evas_object_show(layout);
- elm_object_part_content_set(m_popup, "buttons", buttonsBox);
- elm_object_part_content_set(m_popup, "content", layout);
- elm_object_part_content_set(m_mainLayout, "popup", m_popup);
-
- elm_object_signal_emit(m_mainLayout, "elm,state,show", "elm");
-}
-
-void NewFolderPopup::hide()
-{
- evas_object_hide(m_popup);
- elm_object_signal_emit(m_mainLayout, "elm,state,hide", "elm");
-}
-
-void NewFolderPopup::popup_ok_cb(void *data, Evas_Object*, void*)
-{
- BROWSER_LOGD("[%s],", __func__);
- if (data) {
- NewFolderPopup *ownPopup = static_cast<NewFolderPopup*>(data);
- ownPopup->on_ok(ownPopup->m_editfield_entry);
- }
-}
-void NewFolderPopup::popup_cancel_cb(void *data, Evas_Object*, void*)
-{
- BROWSER_LOGD("[%s],", __func__);
- if (data) {
- NewFolderPopup *ownPopup = static_cast<NewFolderPopup*>(data);
- ownPopup->on_cancel(ownPopup->m_editfield_entry);
- }
-}
-
-}
-}
+++ /dev/null
-#ifndef NEWFOLDERPOPUP_H
-#define NEWFOLDERPOPUP_H
-
-#include <Elementary.h>
-#include <boost/signals2.hpp>
-
-#include "AbstractUIComponent.h"
-#include "AbstractService.h"
-#include "ServiceFactory.h"
-#include "service_macros.h"
-#include "BookmarkItem.h"
-
-namespace tizen_browser{
-namespace base_ui{
-
-class NewFolderPopup{
-
-public:
- NewFolderPopup(Evas_Object *main_layout);
- NewFolderPopup(Evas_Object *main_layout
- , Evas_Object *content
- , const char *message
- , const char *title
- , const char *okButtonText
- , const char *cancelButtonText);
-
- /**
- * Theese setters should be called before showing popup.
- */
- void setContent(Evas_Object *content);
- void setMessage(const std::string &message);
- void setTitle(const std::string &title);
- void setOkButtonText(const std::string &okButtonText);
- void setCancelButtonText(const std::string &cancelButtonText);
-
- void show();
- void hide();
- boost::signals2::signal<void (Evas_Object *)> on_ok;
- boost::signals2::signal<void (Evas_Object *)> on_cancel;
-
-private:
- static void popup_ok_cb(void *data, Evas_Object *btn, void*);
- static void popup_cancel_cb(void *data, Evas_Object *btn, void*);
- Evas_Object *m_popup;
- Evas_Object *m_editfield_entry;
- Evas_Object *m_content;
- std::string m_message, m_title, m_okButtonText, m_cancelButtonText;
-
-protected:
- Evas_Object *m_mainLayout;
-};
-
-}
-}
-#endif
+++ /dev/null
-#define CONTENT_HEIGHT 99;
-#define CONTENT_BG_HEIGHT (CONTENT_HEIGHT+294);
-
-#define DEBUG_RECT_OVER(over_part, r, g, b) \
- part { name: __CONCAT("dbg_rect_at_", __stringify(__LINE__)); \
- \
-scale:1; \
- type : RECT; \
- repeat_events: 1; \
- description { \
- state: "default" 0.0; \
- visible: 1; \
- color: r g b 128; \
- rel1 { to: over_part; relative: 0 0; } \
- rel2 { to: over_part; relative: 1 1; } \
- } \
- }
-
-#define RESOURCE_IMAGE_LOSSY( FILE_NAME ) \
- group { \
- name: FILE_NAME; \
- images.image: FILE_NAME LOSSY 100; \
- parts { \
- part { name: "image"; \
- description { \
- state: "default" 0.0; \
- image.normal: FILE_NAME; \
- min: 134 167; \
- max: 134 167; \
- aspect_preference: BOTH; \
- } \
- } \
- } \
- }
-
-
-
-collections{
- RESOURCE_IMAGE_LOSSY("btn_bar_new_foc.png")
- RESOURCE_IMAGE_LOSSY("btn_bar_new_nor.png")
-
- group { name: "bookmark_popup";
- parts{
- part{ name: "content_bg";
- type: RECT;
- scale: 1;
- description{
- state: "default" 0.0;
- visible: 1;
- fixed: 1 1;
- color: 255 255 255 255;
- align: 0.5 0.5;
- min: 740 658;
- max: 740 884;
- rel1 {relative: 0.0 0.0;}
- rel2 {relative: 1.0 1.0;}
- }
- }
- part{ name: "title_bg";
- type: RECT;
- description{
- state: "default" 0.0;
- visible: 1;
- color: 255 255 255 255;
- min: 740 144;
- max: 740 144;
- align: 0.0 0;
- rel1 {relative: 0.0 0.0; to: "content_bg"; offset: 0 0;}
- rel2 {relative: 1.0 1.0; to: "content_bg";}
- }
- }
- part{ name: "title_text_bm";
- type: TEXT;
- description{
- state: "default" 0.0;
- visible: 1;
- fixed: 1 1;
- rel1 {relative: 0.0 0.0; to: "title_bg"; offset: 40 46;}
- rel2 {relative: 1.0 1.0; to: "title_bg"; offset: -40 0;}
- color: 51 51 51 255;
- text{
- text: "Add to bookmark";
- font: "Sans";
- size: 42;
- align: 0.5 0.0;
- }
- }
- }
- part{ name: "sub_title_text_bm";
- type: TEXT;
- description{
- state: "default" 0.0;
- visible: 1;
- fixed: 1 1;
- rel1 {relative: 0.0 0.0; to: "title_bg"; offset: 40 112;}
- rel2 {relative: 1.0 1.0; to: "title_bg"; offset: -40 0;}
- color: 104 104 104 255;
- text{
- text: "Select folder for adding to bookmark";
- font: "Sans";
- size: 32;
- align: 0.5 0.0;
- }
- }
- }
- part{ name: "gengrid_bg";
- type: RECT;
- mouse_events: 0;
- description{
- state: "default" 0.0;
- visible: 1;
- color: 255 255 255 255;
- rel1 {relative: 0.0 1.0; to: "title_bg"; offset: 40 40;}
- rel2 {relative: 1.0 1.0; }
- align: 0 0;
- min: 698 452;
- max: 698 678;
- }
- }
- part{ name: "elm.swallow.gengrid";
- type: SWALLOW;
- scale: 1;
- description{
- state: "default" 0.0;
- visible: 1;
- fixed: 0 0;
- rel1 {relative: 0.0 0.0; to: "gengrid_bg";}
- rel2 {relative: 1.0 1.0; to: "gengrid_bg";}
- align: 0.0 0.0;
- min: 698 452;
- max: 698 678;
- }
- }
- }
- }
-
- /* group {
- name: "own_popup_bm_long";
- inherit: "own_popup_bm";
- parts {
- part{ name: "content";
- type: SWALLOW;
- scale: 1;
- description{
- state: "default" 0.0;
- visible: 1;
- rel1 {relative: 0.0 0.0;}
- rel2 {relative: 1.0 1.0;}
- fixed: 1 1;
- align: 0.5 0.5;
- min: 542 0;
- max: 542 450;
- }
- }
- }
- }
- */
-
-group { name: "elm/gengrid/item/folder_grid_item/default";
- data.item: "texts" "page_title";
- data.item: "contents" "elm.thumbnail elm.thumbButton";
- images {
- image: "web_frame_selected.png" COMP;
- image: "ico_bg_round_shape_37x37.png" COMP;
- image: "btn_bar_new_nor.png" COMP;
- }
- parts {
- part { name: "bg";
- type: RECT;
- mouse_events: 0;
- description { state: "default" 0.0;
- visible: 1;
- min: 226 226;
- max: 226 226;
- color: 255 255 255 255;
- rel1.offset: -18 -18;
- }
- description { state: "selected";
- inherit: "default" 0.0;
- color: 70 143 254 255;
- }
- }
-
- part { name: "thumbnail_bg";
- type: RECT;
- description { state: "default" 0.0;
- visible: 1;
- min: 208 208;
- max: 208 208;
- align: 0.0 0.0;
- color : 231 231 231 255;
- rel1 {
- relative: 0.0 0.0; to: "bg";
- }
- rel2 {
- relative: 1.0 1.0; to: "bg";
- }
- }
- description { state: "selected";
- inherit: "default" 0.0;
- color: 70 143 254 255;
- }
- }
- part { name: "elm.thumbnail";
- type: SWALLOW;
- description { state: "default" 0.0;
- fixed: 1 0;
- visible: 1;
- align: 0.0 0.0;
- color : 255 255 255 255;
- rel1 {
- relative: 0.0 0.0; to: "thumbnail_bg";
- }
- rel2 {
- relative: 1.0 1.0; to: "thumbnail_bg";
- }
- }
- description { state: "selected";
- inherit: "default" 0.0;
- }
- }
- part { name: "page_title";
- type: TEXT;
- description { state: "default" 0.0;
- align: 0.5 0.5;
- rel1 {
- to: "thumbnail_bg";
- relative: 0.0 0.0;
- offset: 0 0;
- }
- rel2 {
- to: "thumbnail_bg";
- relative: 1.0 1.0;
- }
- color: 51 51 51 255;
- text {
- text: "Web page title";
- font: "Sans";
- size: 32;
- align: 0.5 0.5;
- }
- }
- description { state: "selected" 0.0;
- inherit: "default" 0.0;
- color: 255 255 255 255;
- }
- description { state: "highlight" 0.0;
- inherit: "default" 0.0;
- //color: highlightTextColor;
- }
- }
- part { name: "elm.thumbButton";
- type: SWALLOW;
- mouse_events: 1;
- description { state: "default" 0.0;
- rel1.to: "elm.thumbnail";
- rel2.to: "elm.thumbnail";
- }
- }
- part { name: "over";
- type: RECT;
- mouse_events: 1;
- repeat_events: 1;
- description { state: "default" 0.0;
- color: 0 0 0 0;
- rel1.to: "thumbnail_bg";
- rel2.to: "thumbnail_bg";
- }
- }
- }
- programs{
- program {
- name: "mouse_click_newtab";
- signal: "mouse,clicked,1";
- source: "over";
- script {
- emit("elm,action,click", "");
- }
- }
- program {
- name: "mouse_click_thumbbutton";
- signal: "mouse,clicked";
- source: "elm.thumbButton";
- script {
- emit("clicked", "elm.thumbButton");
- }
- }
- program { name: "mouse_in";
- signal: "mouse,in";
- source: "over";
- action: STATE_SET "selected" 0.0;
- target: "thumbnail_bg";
- target: "page_title";
- }
- program { name: "mouse_out";
- signal: "mouse,out";
- source: "over";
- action: STATE_SET "default" 0.0;
- target: "thumbnail_bg";
- target: "page_title";
- }
- }
-}
-
-
-group{
- name: "elm/button/base/hidden_bm_button";
- parts{
- part{
- name: "button";
- type: RECT;
- scale: 1;
- description { state: "default" 0.0;
- visible: 1;
- fixed: 1 1;
- color: 0 0 0 0;
- }
- }
- part{
- name: "over";
- type: RECT;
- scale: 1;
- description { state: "default" 0.0;
- visible: 1;
- fixed: 1 1;
- rel1 { relative: 0.0 0.0;to: "button";}
- rel2 { relative: 1.0 1.0;to: "button";}
- color: 0 0 0 0;
- }
- }
- }
- programs{
- program {
- name: "mouse_click";
- signal: "mouse,clicked,1";
- source: "over";
- script {
- emit("elm,action,click", "");
- }
- }
- }
- }
-group { name: "elm/button/base/elm.thumbButton";
- images {
- image: "ico_delete.png" COMP;
- }
- parts {
- part { name: "elm.swallow.content";
- type: RECT;
- mouse_events: 1;
- repeat_events: 1;
- description { state: "default" 0.0;
- color: 0 0 0 0;
- visible: 1;
- rel1.relative: 0.0 0.0;
- rel2.relative: 1.0 1.0;
- align: 0.0 0.0;
- }
- }
- }
-
- programs {
- program { name: "mouse,clicked";
- signal: "mouse,down,1";
- source: "elm.swallow.content";
- action: SIGNAL_EMIT "elm,action,click" "";
- }
- }
-
-}
+++ /dev/null
-#define CONTENT_HEIGHT 99;
-#define POPUP_EDITFIELD_LAYOUT_MINMAX_HEIGHT_INC 40
-#define POPUP_CONTENT_DEFAULT_PADDING_LEFT_MIN_INC 65
-#define POPUP_CONTENT_DEFAULT_PADDING_RIGHT_MIN_INC 65
-#define CONTENT_BG_HEIGHT (CONTENT_HEIGHT+294);
-#define DEBUG_RECT_OVER(over_part, r, g, b) \
- part { name: __CONCAT("dbg_rect_at_", __stringify(__LINE__)); \
- \
-scale:1; \
- type : RECT; \
- repeat_events: 1; \
- description { \
- state: "default" 0.0; \
- visible: 1; \
- color: r g b 128; \
- rel1 { to: over_part; relative: 0 0; } \
- rel2 { to: over_part; relative: 1 1; } \
- } \
- }
-#define SPACER_ITEM_BR(spacer_name, W, H, elem) \
- part { name: spacer_name; \
- type: RECT; \
- scale:1; \
- description { \
- state: "default" 0.0; \
- visible: 1; \
- align: 0 0; \
- min: W H; \
- max: W H; \
- fixed: 1 1; \
- color: 227 227 227 255; \
- rel1 { relative: 0.0 1.0; to: elem;} \
- rel2 { relative: 1.0 1.0; } \
- } \
- description { \
- state: "focus" 0.0; \
- inherit: "default" 0.0; \
- color: 0 119 246 255; \
- } \
- }
-#define SPACER_ITEM_HOR(spacer_name, W, H, elem) \
- part { name: spacer_name; \
- type: RECT; \
- scale:1; \
- description { \
- state: "default" 0.0; \
- visible: 1; \
- align: 0 0; \
- min: W H; \
- max: W H; \
- fixed: 1 1; \
- color: 227 227 227 255; \
- rel1 { relative: 0.0 0.0; to: elem;} \
- rel2 { relative: 1.0 1.0; to: elem;} \
- } \
- description { \
- state: "focus" 0.0; \
- inherit: "default" 0.0; \
- color: 0 119 246 255; \
- } \
- } \
-
-collections{
- group { name: "new_folder_popup";
- images{
- image: "modal_dialogs_bg.png" COMP;
- image: "modal_dialogs_title_bg.png" COMP;
- }
- parts{
-part{ name: "content_bg";
- type: RECT;
- scale: 1;
- description{
- state: "default" 0.0;
- visible: 1;
- fixed: 1 1;
- color: 255 255 255 255;
- align: 0.5 0.5;
- min: 740 378;
- max: 740 378;
- rel1 {relative: 0.0 0.0;}
- rel2 {relative: 1.0 1.0;}
- }
- }
- part{ name: "title_bg";
- type: RECT;
- description{
- state: "default" 0.0;
- visible: 1;
- color: 255 255 255 255;
- min: 740 144;
- max: 740 144;
- align: 0.0 0;
- rel1 {relative: 0.0 0.0; to: "content_bg"; offset: 0 0;}
- rel2 {relative: 1.0 1.0; to: "content_bg";}
- }
- }
- part{ name: "title_text_bm";
- type: TEXT;
- description{
- state: "default" 0.0;
- visible: 1;
- fixed: 1 1;
- rel1 {relative: 0.0 0.0; to: "title_bg"; offset: 40 46;}
- rel2 {relative: 1.0 1.0; to: "title_bg"; offset: -40 0;}
- color: 51 51 51 255;
- text{
- text: "Add New Folder";
- font: "Sans";
- size: 42;
- align: 0.5 0.0;
- }
- }
- }
- part{ name: "sub_title_text_bm";
- type: TEXT;
- description{
- state: "default" 0.0;
- visible: 1;
- fixed: 1 1;
- rel1 {relative: 0.0 0.0; to: "title_bg"; offset: 40 112;}
- rel2 {relative: 1.0 1.0; to: "title_bg"; offset: -40 0;}
- color: 104 104 104 255;
- text{
- text: "Add folder for adding to bookmark";
- font: "Sans";
- size: 32;
- align: 0.5 0.0;
- }
- }
- }
- part{ name: "content";
- type: SWALLOW;
- scale: 1;
- description{
- state: "default" 0.0;
- visible: 1;
- rel1 {relative: 0.0 1.0; to: "title_bg"; offset: 100 0;}
- rel2 {relative: 1.0 1.0;}
- fixed: 1 1;
- color: 0 0 0 255;
- align: 0.0 0.0;
- min: 540 144;
- max: 540 144;
- }
- }
- SPACER_ITEM_BR("horizontal_line", 740, 1, "content")
- part{
- name: "buttons";
- type: SWALLOW;
- scale: 1;
- description{
- state: "default" 0.0;
- visible: 1;
- rel1 {relative: 0.0 1.0; to: "content"; offset: -100 1;}
- rel2 {relative: 1.0 1.0;}
- align: 0.0 0.0;
- min: 740 90;
- max: 740 90;
- }
- }
- }
- }
- /*****************************************************************/
- group {
- name: "elm/button/base/bookmark_button";
- parts {
- part {
- name: "bg";
- type: RECT;
- scale: 1;
- description { state: "default" 0.0;
- visible: 1;
- align: 0.5 0.5;
- fixed: 1 1;
- color: 225 225 225 255;
- min: 370 90;
- max: 370 90;
- }
- description { state: "focus" 0.0;
- inherit: "default" 0.0;
- color: 0 119 246 255;
- }
- description { state: "dim" 0.0;
- inherit: "default" 0.0;
- color: 225 225 225 102;
- }
- }
- SPACER_ITEM_HOR("vertical_line", 1, 90,"bg")
- part {
- name: "elm.text";
- type: TEXT;
- scale: 1;
- description { state: "default" 0.0;
- visible: 1;
- fixed: 1 1;
- align: 0.5 0.5;
- min: 360 70;
- rel1 { relative: 0.0 0.0; to: "bg"; offset: 30 0;}
- rel2 { relative: 1.0 1.0; to: "bg"; offset: -30 0;}
- color: 87 87 87 255;
- text {
- text: "dshfj";
- font: "font_name";
- size: 36;
- align: 0.5 0.5;
- min: 1 1;
- }
- }
- description { state: "focus" 0.0;
- inherit: "default" 0.0;
- color: 255 255 255 255;
- text.font: "Tizen:style=Bold";
- }
- description { state: "dim" 0.0;
- inherit: "default" 0.0;
- color: 89 89 89 102;
- }
- }
- part {
- name: "over";
- scale:1;
- mouse_events: 1;
- type: RECT;
- description {
- state: "default" 0.0;
- visible: 1;
- rel1 { relative: 0.0 0.0; to: "bg";}
- rel2 { relative: 1.0 1.0; to: "bg";}
- color: 0 0 0 0;
- }
- }
- }
- programs{
- program {
- name: "mouse_in";
- signal: "mouse,in";
- source: "over";
- action: STATE_SET "focus" 0.0;
- target: "elm.text";
- target: "bg";
- script {
- new st[31];
- new Float:vl;
- get_state(PART:"elm.text", st, 30, vl);
- if(!strcmp(st, "default")) {
- set_state(PART:"bg", "focus", 0.0);
- set_state(PART:"elm.text", "focus", 0.0);
- }
- }
- }
- program {
- name: "mouse_out";
- signal: "mouse,out";
- source: "over";
- action: STATE_SET "default" 0.0;
- target: "elm.text";
- target: "bg";
- script {
- new st[31];
- new Float:vl;
- get_state(PART:"elm.text", st, 30, vl);
- if(!strcmp(st, "focus")) {
- set_state(PART:"bg", "visible", 0.0);
- set_state(PART:"elm.text", "visible", 0.0);
- }
- }
- }
- program {
- name: "mouse_click";
- signal: "mouse,clicked,1";
- source: "over";
- script {
- emit("elm,action,click", "");
- }
- }
- program {
- name: "disable";
- signal: "elm,state,disabled";
- source: "elm";
- action: STATE_SET "dim" 0.0;
- target: "elm.text";
- target: "bg";
- }
- program {
- name: "enable";
- signal: "elm,state,enabled";
- source: "elm";
- action: STATE_SET "default" 0.0;
- target: "elm.text";
- target: "bg";
- }
- }
- }
-group { name: "elm/entry/selection/browser_entry";
- parts {
- part { name: "bg";
- scale:1;
- type: RECT;
- mouse_events: 0;
- description { state: "default" 0.0;
- color: 255 255 255 255;
- }
- }
- }
-}
-group { name: "elm/entry/cursor/browser_entry";
- parts {
- part { name: "bg";
- scale:1;
- type: RECT;
- mouse_events: 0;
- description { state: "default" 0.0;
- color: 22 120 237 255;
- min: 2 36;
- max: 2 36;
- visible: 0;
- }
- description {
- state: "focused" 0.0;
- inherit: "default" 0.0;
- visible: 1;
- }
- }
- }
- programs {
- program { name: "focused";
- signal: "elm,action,focus";
- source: "elm";
- action: STATE_SET "focused" 0.0;
- target: "bg";
- }
- program { name: "unfocused";
- signal: "elm,action,unfocus";
- source: "elm";
- action: STATE_SET "default" 0.0;
- target: "bg";
- }
- }
-}
- group {
- name: "elm/entry/base-single/uri_entry_popup";
- styles {
- style {
- name: "browser-entry-uri-style-unselected";
- base: "font=Sans:style=SVD_Medium font_size="34" wrap=none color=#515151";
- }
- style {
- name: "browser-entry-uri-style-selected";
- base: "font=Sans:style=SVD_Medium font_size="34" wrap=none color=#dddddd";
- }
- }
- data {
- item: focus_highlight "off";
- }
- parts {
-
- part { name: "bg";
- scale:1;
- type: RECT;
- mouse_events: 0;
- description { state: "default" 0.0;
- color: 255 255 255 255;
- }
- }
-
- part {
- name: "elm.guide";
- scale:1;
- type: TEXTBLOCK;
- mouse_events: 0;
- description { state: "default" 0.0;
- rel1.relative: 0.0 0.0;
- rel2.relative: 1.0 1.0;
- align: 0.0 0.0;
- text {
- style: "browser-entry-uri-style-unselected";
- min: 0 1;
- }
- }
- description { state: "hidden" 0.0;
- inherit: "default" 0.0;
- visible: 0;
- }
- }
- part { name: "label.text.clip";
- scale:1;
- type: RECT;
- description {
- state: "default" 0.0;
- }
- }
- part {
- name: "elm.text";
- scale:1;
- multiline: 0;
- entry_mode: EDITABLE;
- select_mode: DEFAULT;
- cursor_mode: BEFORE;
- type: TEXTBLOCK;
- clip_to: "label.text.clip";
- source: "elm/entry/selection/browser_entry";
- source4: "elm/entry/cursor/browser_entry";
- description { state: "default" 0.0;
- rel1.relative: 0.0 0.0;
- rel2.relative: 1.0 1.0;
- align: 0.0 0.0;
- text {
- style: "browser-entry-uri-style-unselected";
- min: 0 1;
- }
- }
- }
- }
- programs {
- program { name: "focus";
- signal: "load";
- source: "";
- action: FOCUS_SET;
- target: "elm.text";
- }
- program { name: "gdisabled";
- signal: "elm,guide,disabled";
- source: "elm";
- action: STATE_SET "hidden" 0.0;
- target: "elm.guide";
- }
- program { name: "genabled";
- signal: "elm,guide,enabled";
- source: "elm";
- action: STATE_SET "default" 0.0;
- target: "elm.guide";
- }
- }
-}//group
-
-group {
- name: "popup_input_text";
- parts {
- part {
- name: "elm.swallow.content";
- type: SWALLOW;
- scale: 1;
- description {
- state: "default" 0.0;
- min: 0 POPUP_EDITFIELD_LAYOUT_MINMAX_HEIGHT_INC;
- max: -1 POPUP_EDITFIELD_LAYOUT_MINMAX_HEIGHT_INC;
- align: 0.0 0.5;
- min: 0 0 ;
- max: 540 100 ;
- rel1 {
- relative: 0.0 0.0 ;
- }
- rel2 {
- relative: 1.0 1.0;
- }
- }
- }
- }
- }
-
-
-}
return m_historyService->getHistoryToday();
}
-std::vector<std::shared_ptr<tizen_browser::services::BookmarkItem> > SimpleUI::getBookmarkFolders(int folder_id)
-{
- return m_favoriteService->getBookmarkFolders(folder_id);
-}
-
int SimpleUI::exec(const std::string& _url)
{
BROWSER_LOGD("[%s] _url=%s, initialised=%d", __func__, _url.c_str(), m_initialised);
m_settingDeleteFavorite = sharedAction(new Action("Delete favorite site"));
m_settingDeleteFavorite->setToolTip("Delete favorite site");
- m_bookmarks_manager_Add_NewFolder = sharedAction(new Action("+ New Folder"));
- m_bookmarks_manager_Add_NewFolder->setToolTip("Add a new Folder");
-
m_bookmarks_manager_BookmarkBar = sharedAction(new Action("Bookmark Bar"));
m_bookmarks_manager_BookmarkBar->setToolTip("show Bookmark bar");
-
- m_bookmarks_manager_Folder3 = sharedAction(new Action("Folder 3"));
- m_bookmarks_manager_Folder3->setToolTip("open Folder 3");
-
- m_bookmarks_manager_Folder2 = sharedAction(new Action("Folder 2"));
- m_bookmarks_manager_Folder2->setToolTip("open Folder 2");
-
- m_bookmarks_manager_Folder1 = sharedAction(new Action("Folder 1"));
- m_bookmarks_manager_Folder1->setToolTip("open Folder 1");
}
void SimpleUI::connectActions()
{
BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- addBookmarkEnable(m_favoriteService->countBookmarksAndSubFolders() < m_favoritesLimit);
+ addBookmarkEnable(m_favoriteService->countBookmarks() < m_favoritesLimit);
if(!m_webEngine->isPrivateMode()){
m_historyService->addHistoryItem(std::make_shared<tizen_browser::services::HistoryItem> (m_webEngine->getURI(),
m_moreMenuUI->closeMoreMenuClicked.connect(boost::bind(&SimpleUI::closeMoreMenu, this,_1));
m_moreMenuUI->switchToMobileMode.connect(boost::bind(&SimpleUI::switchToMobileMode, this));
m_moreMenuUI->switchToDesktopMode.connect(boost::bind(&SimpleUI::switchToDesktopMode, this));
- m_moreMenuUI->addToBookmarkClicked.connect(boost::bind(&SimpleUI::addBookmarkFolders, this));
- m_moreMenuUI->AddBookmarkInput.connect(boost::bind(&SimpleUI::addToBookmarks, this,_1));
- m_moreMenuUI->BookmarkFolderCreated.connect(boost::bind(&SimpleUI::newFolderMoreMenu, this,_1,_2));
+ m_moreMenuUI->addToBookmarkClicked.connect(boost::bind(&SimpleUI::addToBookmarks, this, _1));
m_moreMenuUI->isBookmark.connect(boost::bind(&SimpleUI::checkBookmark, this));
m_moreMenuUI->deleteBookmark.connect(boost::bind(&SimpleUI::deleteBookmark, this));
m_moreMenuUI->closeMoreMenuClicked.disconnect(boost::bind(&SimpleUI::closeMoreMenu, this,_1));
m_moreMenuUI->switchToMobileMode.disconnect(boost::bind(&SimpleUI::switchToMobileMode, this));
m_moreMenuUI->switchToDesktopMode.disconnect(boost::bind(&SimpleUI::switchToDesktopMode, this));
- m_moreMenuUI->addToBookmarkClicked.disconnect(boost::bind(&SimpleUI::addBookmarkFolders, this));
- m_moreMenuUI->AddBookmarkInput.disconnect(boost::bind(&SimpleUI::addToBookmarks, this,_1));
- m_moreMenuUI->BookmarkFolderCreated.disconnect(boost::bind(&SimpleUI::newFolderMoreMenu, this,_1,_2));
+ m_moreMenuUI->addToBookmarkClicked.disconnect(boost::bind(&SimpleUI::addToBookmarks, this, _1));
m_moreMenuUI->isBookmark.disconnect(boost::bind(&SimpleUI::checkBookmark, this));
m_moreMenuUI->deleteBookmark.disconnect(boost::bind(&SimpleUI::deleteBookmark, this));
m_moreMenuUI.reset();
(tizen_browser::core::ServiceManager::getInstance().getService("org.tizen.browser.bookmarkmanagerui"));
M_ASSERT(m_bookmarkManagerUI);
m_bookmarkManagerUI->closeBookmarkManagerClicked.connect(boost::bind(&SimpleUI::closeBookmarkManagerMenu, this,_1));
- m_bookmarkManagerUI->saveFolderClicked.connect(boost::bind(&SimpleUI::newFolderBookmarkManager, this,_1,_2));
m_bookmarkManagerUI->bookmarkItemClicked.connect(boost::bind(&SimpleUI::onBookmarkClicked, this, _1));
- m_bookmarkManagerUI->folderItemClicked.connect(boost::bind(&SimpleUI::updateBookmarkManagerGenGrid, this,_1));
m_bookmarkManagerUI->show(m_window.get());
- m_bookmarkManagerUI->addBookmarkFolderItems(getBookmarkFolders(ROOT_FOLDER));
+ m_bookmarkManagerUI->addBookmarkItems(getBookmarks(ROOT_FOLDER));
m_bookmarkManagerUI->showTopContent();
- m_curr_folder_id = ROOT_FOLDER;
}
}
-void SimpleUI::updateBookmarkManagerGenGrid(int folder_id)
-{
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- m_bookmarkManagerUI->updateGengrid();
- m_bookmarkManagerUI->addBookmarkFolderItems(getBookmarkFolders(folder_id));
- m_bookmarkManagerUI->addBookmarkItems(getBookmarks(folder_id));
- m_bookmarkManagerUI->showTopContent();
- m_curr_folder_id = folder_id;
-}
-
void SimpleUI::closeBookmarkManagerMenu(const std::string& str)
{
BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
m_bookmarkManagerUI->closeBookmarkManagerClicked.disconnect(boost::bind(&SimpleUI::closeBookmarkManagerMenu, this,_1));
- m_bookmarkManagerUI->saveFolderClicked.disconnect(boost::bind(&SimpleUI::newFolderBookmarkManager, this,_1,_2));
m_bookmarkManagerUI->bookmarkItemClicked.disconnect(boost::bind(&SimpleUI::onBookmarkClicked, this, _1));
- m_bookmarkManagerUI->folderItemClicked.disconnect(boost::bind(&SimpleUI::updateBookmarkManagerGenGrid, this,_1));
m_bookmarkManagerUI.reset();
if(m_moreMenuUI) {
}
}
-//TODO: This probably should be replaced by direct call of m_moreMenuUI->getBookmarkFolderList
-// as it does nothing more.
-void SimpleUI::addBookmarkFolders(void)
-{
- if(m_moreMenuUI)
- m_moreMenuUI->getBookmarkFolderList(getBookmarkFolders(ROOT_FOLDER));
-}
-
-void SimpleUI::newFolderBookmarkManager(const char* title, int by_operator)
-{
- BROWSER_LOGD("[%s,%d],", __func__, __LINE__);
- int id = -1;
- if (m_favoriteService)
- m_favoriteService->save_folder(title, &id, by_operator);
- if (id >= 0 )
- {
- BROWSER_LOGD("[%s], Added New Folder", __func__);
- if(m_bookmarkManagerUI)
- {
- updateBookmarkManagerGenGrid(m_curr_folder_id); // TODO: correct folder displaying behaviour needs to be implemented
- }
- }
-}
-
-void SimpleUI::newFolderMoreMenu(const char* title, int by_operator)
-{
- int id = -1;
- if (m_favoriteService)
- m_favoriteService->save_folder(title, &id, by_operator);
- if (id >= 0)
- {
- BROWSER_LOGD("[%s], Added New Folder", __func__);
- addToBookmarks(id);
- }
-}
-
//TODO: Replace by direct call.
void SimpleUI::deleteBookmark()
{
void tabClosed(const tizen_browser::basic_webengine::TabId& id);
std::vector<std::shared_ptr<tizen_browser::services::BookmarkItem> > getBookmarks(int folder_id = -1);
- std::vector<std::shared_ptr<tizen_browser::services::BookmarkItem> > getBookmarkFolders(int folder_id);
std::shared_ptr<services::HistoryItemVector> getHistory();
std::shared_ptr<services::HistoryItemVector> getMostVisitedItems();
sharedAction m_settingDeleteFavorite;
sharedAction m_mostvisited;
sharedAction m_bookmarksvisited;
- sharedAction m_bookmarks_manager_Add_NewFolder;
sharedAction m_bookmarks_manager_BookmarkBar;
- sharedAction m_bookmarks_manager_Folder1;
- sharedAction m_bookmarks_manager_Folder2;
- sharedAction m_bookmarks_manager_Folder3;
/**
* \brief filters URL before it is passed to WebEngine.
void showHistory();
void hideHistory();
- void addBookmarkFolders();
- void newFolderBookmarkManager(const char* title, int by_user);
- void newFolderMoreMenu(const char* title, int by_user);
void showTabUI();
void closeTabUI(const std::string& str);
void showMoreMenu();
void closeSettingsUI(const std::string&);
void closeBookmarkManagerMenu(const std::string& str);
- void updateBookmarkManagerGenGrid(int folder_id);
void showBookmarkManagerMenu();
void showPopup(Evas_Object *content, char* btn1_text, char* btn2_text);
int m_tabLimit;
int m_favoritesLimit;
bool m_wvIMEStatus;
- int m_curr_folder_id;
// This context object is used to implicitly init internal ewk data used by opengl to create the first and
// consecutive webviews in the application, otherwise we would encounter a crash after creating
// the first web view