From: cookie Date: Thu, 14 Sep 2017 02:15:26 +0000 (+0000) Subject: Fix the Coding Rule X-Git-Tag: submit/tizen_4.0/20170914.031353^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fheads%2Ftizen_4.0;p=profile%2Fcommon%2Fapps%2Fweb%2Fbrowser.git Fix the Coding Rule Change-Id: I8b8f0590531b05ae47c9c95f1f92ee4d4e7435c0 Signed-off-by: cookie --- diff --git a/core/AbstractInterfaces/AbstractFavoriteService.h b/core/AbstractInterfaces/AbstractFavoriteService.h old mode 100644 new mode 100755 index 39a52a74..4478a1fe --- a/core/AbstractInterfaces/AbstractFavoriteService.h +++ b/core/AbstractInterfaces/AbstractFavoriteService.h @@ -54,7 +54,7 @@ public: virtual std::shared_ptr addBookmark(const std::string & address, const std::string & title, const std::string & note = std::string(), - std::shared_ptr thumbnail=std::shared_ptr(), + std::shared_ptr thumbnail = std::shared_ptr(), std::shared_ptr favicon = std::shared_ptr(), unsigned int dirId = 0) = 0; @@ -110,10 +110,9 @@ public: */ virtual bool getItem(const std::string & url, tizen_browser::services::BookmarkItem *item) = 0; - boost::signals2::signal)> bookmarkAdded; - boost::signals2::signal bookmarkDeleted; - boost::signals2::signal bookmarksDeleted; - + boost::signals2::signal)> bookmarkAdded; + boost::signals2::signal bookmarkDeleted; + boost::signals2::signal bookmarksDeleted; }; } diff --git a/core/AbstractInterfaces/AbstractPopup.h b/core/AbstractInterfaces/AbstractPopup.h old mode 100644 new mode 100755 index 9d513204..4aea93f5 --- a/core/AbstractInterfaces/AbstractPopup.h +++ b/core/AbstractInterfaces/AbstractPopup.h @@ -45,7 +45,7 @@ public: /** * @brief show notification signal */ - boost::signals2::signal popupShown; + boost::signals2::signal popupShown; /** * @brief virtual method to close popup @@ -56,7 +56,7 @@ public: /** * @brief dismiss notification signal */ - boost::signals2::signal popupDismissed; + boost::signals2::signal popupDismissed; /** * @brief virtual method to handle back key pressed diff --git a/core/AbstractInterfaces/AbstractRotatable.h b/core/AbstractInterfaces/AbstractRotatable.h old mode 100644 new mode 100755 index f8f7d164..568e2cae --- a/core/AbstractInterfaces/AbstractRotatable.h +++ b/core/AbstractInterfaces/AbstractRotatable.h @@ -40,14 +40,14 @@ public: * Class which implements AbstractRotatable has to connect this signal in SimpleUI class. * @returns True if rotation is portrait, false if rotation is landscape. */ - boost::signals2::signal isLandscape; + boost::signals2::signal isLandscape; /** * @brief Boost signal, get what is current rotation angle. * Class which implements AbstractRotatable has to connect this signal in SimpleUI class. * @returns rotation angle. */ - boost::signals2::signal getRotation; + boost::signals2::signal getRotation; }; }//namespace interfaces diff --git a/core/AbstractWebEngine/AbstractWebEngine.h b/core/AbstractWebEngine/AbstractWebEngine.h old mode 100644 new mode 100755 index f5b86dc5..b2f3aba0 --- a/core/AbstractWebEngine/AbstractWebEngine.h +++ b/core/AbstractWebEngine/AbstractWebEngine.h @@ -253,12 +253,12 @@ public: /** * \brief Sets Focus to URI entry. */ - virtual void setFocus()=0; + virtual void setFocus() = 0; /** * @brief Remove focus form URI */ - virtual void clearFocus()=0; + virtual void clearFocus() = 0; /** * @brief check if URI is focused @@ -400,7 +400,7 @@ public: /** * Ask browser to minimize itself */ - boost::signals2::signal minimizeBrowser; + boost::signals2::signal minimizeBrowser; /** * Switch fullscreenmode. @@ -410,120 +410,120 @@ public: /** * FavIcon of current page changed */ - boost::signals2::signal)> favIconChanged; + boost::signals2::signal)> favIconChanged; /** * Title of current page changed * \param new title */ - boost::signals2::signal titleChanged; + boost::signals2::signal titleChanged; /** * URI of current page changed * \param new URI */ - boost::signals2::signal uriChanged; + boost::signals2::signal uriChanged; /** * Possibility of go forward changed * \param bool true if it is possible to go forward, false otherwise */ - boost::signals2::signal forwardEnableChanged; + boost::signals2::signal forwardEnableChanged; /** * Possibility of go back changed * \param bool true if it is possible to go back, false otherwise */ - boost::signals2::signal backwardEnableChanged; + boost::signals2::signal backwardEnableChanged; /** * File downoad started */ - boost::signals2::signal downloadStarted; + boost::signals2::signal downloadStarted; /** * Page load finished */ - boost::signals2::signal loadFinished; + boost::signals2::signal loadFinished; /** * Page load started */ - boost::signals2::signal loadStarted; + boost::signals2::signal loadStarted; /** * Load progress changed * \param double 0..1 of progress */ - boost::signals2::signal loadProgress; + boost::signals2::signal loadProgress; /** * Page load stopped. */ - boost::signals2::signal loadStop; + boost::signals2::signal loadStop; /** * Page load error. */ - boost::signals2::signal loadError; + boost::signals2::signal loadError; /** * Current tab changed * \param TabId of new tab */ - boost::signals2::signal currentTabChanged; + boost::signals2::signal currentTabChanged; /** * New tab was created. It could be explicit call (by user) or tab could be opened from JavaScript. */ - boost::signals2::signal tabCreated; + boost::signals2::signal tabCreated; /** * Checks if tab can be created. */ - boost::signals2::signal checkIfCreate; + boost::signals2::signal checkIfCreate; /** * Tab closed * \param TabId of closed tab */ - boost::signals2::signal tabClosed; + boost::signals2::signal tabClosed; /** * Open find on page */ - boost::signals2::signal openFindOnPage; + boost::signals2::signal openFindOnPage; /** * Close find on page */ - boost::signals2::signal closeFindOnPage; + boost::signals2::signal closeFindOnPage; /** * Confirmation Request */ - boost::signals2::signal confirmationRequest; + boost::signals2::signal confirmationRequest; /** * All links to RSS/Atom channels were gathered from webpage. */ - boost::signals2::signal)> gotFeedLinks; + boost::signals2::signal)> gotFeedLinks; /** * Status of IME * \param bool true if IME is opened, false otherwise */ - boost::signals2::signal IMEStateChanged; + boost::signals2::signal IMEStateChanged; /** * Switch view to actual web page */ - boost::signals2::signal switchToWebPage; + boost::signals2::signal switchToWebPage; /** * Signal to switch to window after it is created */ - boost::signals2::signal windowCreated; + boost::signals2::signal windowCreated; /** * Generate id for the new tab. @@ -533,12 +533,12 @@ public: /** * Set valid certificate for host. */ - boost::signals2::signal setCertificatePem; + boost::signals2::signal setCertificatePem; /** * Set invalid certificate for host. */ - boost::signals2::signal setWrongCertificatePem; + boost::signals2::signal setWrongCertificatePem; /** * Async signal to save snapshot after it is generated. @@ -549,7 +549,7 @@ public: /** * Async signal to inform the redirection has started. */ - boost::signals2::signal redirectedWebPage; + boost::signals2::signal redirectedWebPage; /** * Switch to quick access when tere is no page to witch we can return on back keys. @@ -575,7 +575,7 @@ public: /** Async signal to inform browser to finish rotation. */ - boost::signals2::signal rotatePrepared; + boost::signals2::signal rotatePrepared; /** * Unsecure connection to https host, do not even ask to confirm, just inform. diff --git a/core/AbstractWebEngine/TabId.cpp b/core/AbstractWebEngine/TabId.cpp old mode 100644 new mode 100755 diff --git a/core/AbstractWebEngine/TabId.h b/core/AbstractWebEngine/TabId.h old mode 100644 new mode 100755 index 01440821..f88da8a5 --- a/core/AbstractWebEngine/TabId.h +++ b/core/AbstractWebEngine/TabId.h @@ -85,7 +85,6 @@ private: std::string m_title; TabOrigin m_origin; tools::BrowserImagePtr m_thumbnail; - }; } /* end of basic_webengine */ } /* end of tizen_browser */ diff --git a/core/AbstractWebEngine/TabIdTypedef.h b/core/AbstractWebEngine/TabIdTypedef.h old mode 100644 new mode 100755 diff --git a/core/AbstractWebEngine/TabOrigin.h b/core/AbstractWebEngine/TabOrigin.h old mode 100644 new mode 100755 index 513ab9c0..2d80b0fe --- a/core/AbstractWebEngine/TabOrigin.h +++ b/core/AbstractWebEngine/TabOrigin.h @@ -36,7 +36,6 @@ public: bool isFromQuickAccess() const { return m_value == QUICKACCESS; } private: int m_value; - }; diff --git a/core/BasicUI/AbstractMainWindow.h b/core/BasicUI/AbstractMainWindow.h old mode 100644 new mode 100755 index 29baf9f4..b8224021 --- a/core/BasicUI/AbstractMainWindow.h +++ b/core/BasicUI/AbstractMainWindow.h @@ -54,7 +54,7 @@ public: * \todo: * Extend API of main window placeholder class. */ - void setMainWindow(T *rawPtr){ m_window=std::shared_ptr(rawPtr);} + void setMainWindow(T *rawPtr){ m_window = std::shared_ptr(rawPtr);} virtual void destroyUI() { } virtual void suspend() = 0; diff --git a/core/BasicUI/Action.cpp b/core/BasicUI/Action.cpp old mode 100644 new mode 100755 index c440f1be..9e6981d5 --- a/core/BasicUI/Action.cpp +++ b/core/BasicUI/Action.cpp @@ -19,190 +19,186 @@ namespace tizen_browser { -namespace base_ui -{ + namespace base_ui + { -Action::Action() + Action::Action() :m_enabled(true) - ,m_checkable(false) - ,m_checked(false) - ,m_iconVisibleInMenu(true) -{ + , m_checkable(false) + , m_checked(false) + , m_iconVisibleInMenu(true) + { + } + Action::Action(const std::string & text) + : m_text(text) + , m_enabled(true) + , m_checkable(false) + , m_checked(false) + , m_iconVisibleInMenu(true) + { + } -} -Action::Action(const std::string& text) - :m_text(text) - ,m_enabled(true) - ,m_checkable(false) - ,m_checked(false) - ,m_iconVisibleInMenu(true) -{ -} - -Action::Action(const std::string& icon, const std::string& text) - :m_text(text) - ,m_icon(icon) - ,m_enabled(true) - ,m_checkable(false) - ,m_checked(false) - ,m_iconVisibleInMenu(true) -{ -} - - -Action::Action(const Action& other) - :m_iconText(other.m_iconText) - ,m_text(other.m_text) - ,m_statusTip(other.m_statusTip) - ,m_toolTip(other.m_toolTip) - ,m_icon(other.m_icon) - ,m_selIcon(other.m_selIcon) - ,m_disIcon(other.m_disIcon) - ,m_enabled(other.m_enabled) - ,m_checkable(other.m_checkable) - ,m_checked(other.m_checked) - ,m_iconVisibleInMenu(other.m_iconVisibleInMenu) -{ + Action::Action(const std::string & icon, const std::string & text) + : m_text(text) + , m_icon(icon) + , m_enabled(true) + , m_checkable(false) + , m_checked(false) + , m_iconVisibleInMenu(true) + { + } -} -Action::~Action() -{ + Action::Action(const Action & other) + : m_iconText(other.m_iconText) + , m_text(other.m_text) + , m_statusTip(other.m_statusTip) + , m_toolTip(other.m_toolTip) + , m_icon(other.m_icon) + , m_selIcon(other.m_selIcon) + , m_disIcon(other.m_disIcon) + , m_enabled(other.m_enabled) + , m_checkable(other.m_checkable) + , m_checked(other.m_checked) + , m_iconVisibleInMenu(other.m_iconVisibleInMenu) + { + } -} + Action::~Action() { + } -std::string Action::getDisIcon() const -{ - return m_disIcon; -} + std::string Action::getDisIcon()const + { + return m_disIcon; + } -std::string Action::getIcon() const -{ - return m_icon; -} + std::string Action::getIcon() const + { + return m_icon; + } -std::string Action::getIconText() const -{ - return m_iconText; -} + std::string Action::getIconText() const + { + return m_iconText; + } -std::string Action::getSelIcon() const -{ - return m_selIcon; -} + std::string Action::getSelIcon() const + { + return m_selIcon; + } -std::string Action::getStatusTip() const -{ - return m_statusTip; -} + std::string Action::getStatusTip() const + { + return m_statusTip; + } -std::string Action::getText() const -{ - return m_text; -} + std::string Action::getText() const + { + return m_text; + } -std::string Action::getToolTip() const -{ - return m_toolTip; -} + std::string Action::getToolTip() const + { + return m_toolTip; + } -void Action::setDisIcon(const std::string& disIcon) -{ - m_disIcon = disIcon; -} + void Action::setDisIcon(const std::string & disIcon) + { + m_disIcon = disIcon; + } -void Action::setIcon(const std::string& icon) -{ - m_icon = icon; -} + void Action::setIcon(const std::string & icon) + { + m_icon = icon; + } -void Action::setIconText(const std::string& iconText) -{ - m_iconText = iconText; -} + void Action::setIconText(const std::string & iconText) + { + m_iconText = iconText; + } -void Action::setSelIcon(const std::string& selIcon) -{ - m_selIcon = selIcon; -} + void Action::setSelIcon(const std::string & selIcon) + { + m_selIcon = selIcon; + } -void Action::setStatusTip(const std::string& statusTip) -{ - m_statusTip = statusTip; -} + void Action::setStatusTip(const std::string & statusTip) + { + m_statusTip = statusTip; + } -void Action::setText(const std::string& text) -{ - m_text = text; -} + void Action::setText(const std::string & text) + { + m_text = text; + } -void Action::setToolTip(const std::string& toolTip) -{ - m_toolTip = toolTip; -} + void Action::setToolTip(const std::string & toolTip) + { + m_toolTip = toolTip; + } -bool Action::isCheckable() const -{ - return m_checkable; -} + bool Action::isCheckable() const + { + return m_checkable; + } -bool Action::isEnabled() const -{ - return m_enabled; -} + bool Action::isEnabled() const + { + return m_enabled; + } -bool Action::isIconVisibleInMenu() const -{ - return m_iconVisibleInMenu; -} + bool Action::isIconVisibleInMenu() const + { + return m_iconVisibleInMenu; + } -void Action::setCheckable(bool checkable) -{ - m_checkable = checkable; -} + void Action::setCheckable(bool checkable) + { + m_checkable = checkable; + } -void Action::setEnabled(bool enabled) -{ - if(m_enabled != enabled){ - m_enabled = enabled; - enabledChanged(); - } -} + void Action::setEnabled(bool enabled) + { + if (m_enabled != enabled) { + m_enabled = enabled; + enabledChanged(); + } + } -void Action::setIconVisibleInMenu(bool visible) -{ - m_iconVisibleInMenu = visible; -} + void Action::setIconVisibleInMenu(bool visible) + { + m_iconVisibleInMenu = visible; + } -bool Action::isChecked() const -{ - return m_checked; -} + bool Action::isChecked() const + { + return m_checked; + } -void Action::setChecked(bool checked) -{ - if(m_checkable){ - if(m_checked != checked){ - m_checked = checked; - toggled(m_checkable); - } + void Action::setChecked(bool checked) + { + if (m_checkable) { + if (m_checked != checked) { + m_checked = checked; + toggled(m_checkable); + } + } } -} -void Action::toggle() -{ - if(m_checkable){ - m_checked = !m_checked; - toggled(m_checked); + void Action::toggle() + { + if (m_checkable) { + m_checked = !m_checked; + toggled(m_checked); + } } -} -void Action::trigger() -{ - if(m_enabled){ - triggered(); + void Action::trigger() + { + if (m_enabled) { + triggered(); + } } -} -} /* end of namespace base_ui */ -} /* end of namespace tizen_browser */ + } /* end of namespace base_ui */ +} /* end of namespace tizen_browser */ diff --git a/core/BasicUI/Action.h b/core/BasicUI/Action.h old mode 100644 new mode 100755 index 6e597c24..52e01fca --- a/core/BasicUI/Action.h +++ b/core/BasicUI/Action.h @@ -22,8 +22,8 @@ namespace tizen_browser { -namespace base_ui -{ + namespace base_ui + { /** * \brief Action provides an abstract user interface that can be inserted into toolbars or menubars. @@ -78,59 +78,59 @@ namespace base_ui * * ~~~ */ -class Action -{ -public: - Action(); - Action(const std::string& text); - Action(const std::string& icon, const std::string& text); - - Action(const Action& other); - ~Action(); - std::string getIconText()const; - std::string getText()const; - std::string getStatusTip()const; - std::string getToolTip()const; - std::string getIcon()const; - std::string getSelIcon()const; - std::string getDisIcon()const; - - void setIconText(const std::string& iconText); - void setText(const std::string& text); - void setStatusTip(const std::string& statusTip); - void setToolTip(const std::string& toolTip); - void setIcon(const std::string& icon); - void setSelIcon(const std::string& selIcon); - void setDisIcon(const std::string& disIcon); - - bool isEnabled()const; - bool isCheckable()const; - bool isChecked()const; - bool isIconVisibleInMenu()const; - - void setEnabled(bool enabled); - void setCheckable(bool checkable); - void setChecked(bool checked); - void setIconVisibleInMenu(bool visible); + class Action + { + public: + Action(); + Action(const std::string & text); + Action(const std::string & icon, const std::string & text); + + Action(const Action & other); + ~Action(); + std::string getIconText() const; + std::string getText() const; + std::string getStatusTip() const; + std::string getToolTip() const; + std::string getIcon() const; + std::string getSelIcon() const; + std::string getDisIcon() const; + + void setIconText(const std::string & iconText); + void setText(const std::string & text); + void setStatusTip(const std::string & statusTip); + void setToolTip(const std::string & toolTip); + void setIcon(const std::string & icon); + void setSelIcon(const std::string & selIcon); + void setDisIcon(const std::string & disIcon); + + bool isEnabled() const; + bool isCheckable() const; + bool isChecked() const; + bool isIconVisibleInMenu() const; + + void setEnabled(bool enabled); + void setCheckable(bool checkable); + void setChecked(bool checked); + void setIconVisibleInMenu(bool visible); /** * @brief Convenience function, switch state of checkable Actions. * */ - void toggle(); + void toggle(); /** * @brief Convenience function, manually call \see triggered() signal * */ - void trigger(); + void trigger(); /** * \brief Signale is emitted when the given action is activated by user. * * Action may be activated when user click a menu option, boolbar button */ - boost::signals2::signal triggered; + boost::signals2::signal < void() > triggered; /** @@ -138,30 +138,30 @@ public: * * This signal is valid only for checkable actions */ - boost::signals2::signal toggled; + boost::signals2::signal < void(bool checked) > toggled; /** * @brief Signal is emitted if Action 'enabled' state is changed. */ - boost::signals2::signal enabledChanged; - -private: - std::string m_iconText; ///< Text displayed under the icon. - std::string m_text; ///< Text displayed in menu. - std::string m_statusTip;///< Text displayed in status bar. - std::string m_toolTip; ///< Text displayed "on mouse over" in tool tip box. - std::string m_icon; ///< Path to icon path. - std::string m_selIcon; ///< Path to selected (mouse over) icon. - std::string m_disIcon; ///< Path to disabled icon. - bool m_enabled; ///< Is action enabled. - bool m_checkable; ///< Is action checkable. - bool m_checked; ///< Is action checked, only checkable Actions can be checked. By default is false. - bool m_iconVisibleInMenu; /// sharedAction; - -} /* end of namespace base_ui */ -} /* end of namespace tizen_browser */ - -#endif // ACTION_H + boost::signals2::signal < void() > enabledChanged; + + private: + std::string m_iconText; ///< Text displayed under the icon. + std::string m_text; ///< Text displayed in menu. + std::string m_statusTip; ///< Text displayed in status bar. + std::string m_toolTip; ///< Text displayed "on mouse over" in tool tip box. + std::string m_icon; ///< Path to icon path. + std::string m_selIcon; ///< Path to selected (mouse over) icon. + std::string m_disIcon; ///< Path to disabled icon. + bool m_enabled; ///< Is action enabled. + bool m_checkable; ///< Is action checkable. + bool m_checked; ///< Is action checked, only checkable Actions can be checked. By default is false. + bool m_iconVisibleInMenu; /// sharedAction; + + } /* end of namespace base_ui */ +} /* end of namespace tizen_browser */ + +#endif // ACTION_H diff --git a/core/BasicUI/MenuButton.cpp b/core/BasicUI/MenuButton.cpp old mode 100644 new mode 100755 index 7624c085..7dffc681 --- a/core/BasicUI/MenuButton.cpp +++ b/core/BasicUI/MenuButton.cpp @@ -22,120 +22,132 @@ namespace tizen_browser { -namespace base_ui -{ + namespace base_ui + { -MenuButton * MenuButton::previousPopup = 0; + MenuButton *MenuButton::previousPopup = 0; -MenuButton::MenuButton(std::shared_ptr< Evas_Object > mainWindow, Evas_Object* parentButton) + MenuButton::MenuButton(std::shared_ptr < Evas_Object > mainWindow, + Evas_Object * parentButton) : m_ctxPopup(0) - , m_window(mainWindow) - , m_parentButton(parentButton) - , m_isShown(false) -{ - -} - -MenuButton::~MenuButton() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - hidePopup(); -} - - -void MenuButton::showPopup() -{ - BROWSER_LOGD("[%s:%d] this: %x ", __PRETTY_FUNCTION__, __LINE__, this); - hidePopup(); - - if (isShown()){ - m_isShown = false; - unbindFocus(); - evas_object_hide(m_ctxPopup); - onPopupDismissed(); - return; + , m_window(mainWindow) + , m_parentButton(parentButton) + , m_isShown(false) + { } - if(!m_ctxPopup) { - m_ctxPopup = elm_ctxpopup_add(m_window.get()); - BROWSER_LOGD("[%s:%d] - new popup: %x ", __PRETTY_FUNCTION__, __LINE__, m_ctxPopup); - evas_object_smart_callback_add(m_ctxPopup, "dismissed", dismissedCtxPopup, this); - elm_object_content_set(m_ctxPopup, getContent()); - elm_ctxpopup_direction_priority_set(m_ctxPopup, ELM_CTXPOPUP_DIRECTION_DOWN, ELM_CTXPOPUP_DIRECTION_DOWN, ELM_CTXPOPUP_DIRECTION_DOWN, ELM_CTXPOPUP_DIRECTION_DOWN); - - Evas_Coord w,h,x,y; - evas_object_geometry_get(m_window.get(), &x, &y, &w, &h); - evas_object_size_hint_max_set(m_ctxPopup, w, h); - evas_object_move(m_ctxPopup, 1650, 130); - - elm_object_style_set(m_ctxPopup, "message_popup"); + MenuButton::~MenuButton() + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + hidePopup(); } - realShow(m_ctxPopup); - previousPopup = this; -} -void MenuButton::realShow(Evas_Object* popup) -{ - elm_object_focus_next_object_set(m_parentButton, getFirstFocus(), ELM_FOCUS_DOWN); - elm_object_focus_next_object_set(getFirstFocus(), m_parentButton, ELM_FOCUS_UP); - ListSize listSize = calculateSize(); - evas_object_size_hint_min_set(m_ctxPopup, listSize.width, listSize.height); - evas_object_size_hint_max_set(m_ctxPopup, listSize.width, listSize.height); + void MenuButton::showPopup() + { + BROWSER_LOGD("[%s:%d] this: %x ", __PRETTY_FUNCTION__, __LINE__, this); + hidePopup(); + + if (isShown()) { + m_isShown = false; + unbindFocus(); + evas_object_hide(m_ctxPopup); + onPopupDismissed(); + return; + } + + if (!m_ctxPopup) { + m_ctxPopup = elm_ctxpopup_add(m_window.get()); + BROWSER_LOGD("[%s:%d] - new popup: %x ", __PRETTY_FUNCTION__, + __LINE__, m_ctxPopup); + evas_object_smart_callback_add(m_ctxPopup, "dismissed", + dismissedCtxPopup, this); + elm_object_content_set(m_ctxPopup, getContent()); + elm_ctxpopup_direction_priority_set(m_ctxPopup, + ELM_CTXPOPUP_DIRECTION_DOWN, + ELM_CTXPOPUP_DIRECTION_DOWN, + ELM_CTXPOPUP_DIRECTION_DOWN, + ELM_CTXPOPUP_DIRECTION_DOWN); + + Evas_Coord w, h, x, y; + evas_object_geometry_get(m_window.get(), &x, &y, &w, &h); + evas_object_size_hint_max_set(m_ctxPopup, w, h); + evas_object_move(m_ctxPopup, 1650, 130); + + elm_object_style_set(m_ctxPopup, "message_popup"); + } + realShow(m_ctxPopup); + previousPopup = this; + } - evas_object_show(popup); - m_isShown=true; - onPopupShow(); -} + void MenuButton::realShow(Evas_Object * popup) + { + elm_object_focus_next_object_set(m_parentButton, getFirstFocus(), + ELM_FOCUS_DOWN); + elm_object_focus_next_object_set(getFirstFocus(), m_parentButton, + ELM_FOCUS_UP); + + ListSize listSize = calculateSize(); + evas_object_size_hint_min_set(m_ctxPopup, listSize.width, + listSize.height); + evas_object_size_hint_max_set(m_ctxPopup, listSize.width, + listSize.height); + + evas_object_show(popup); + m_isShown = true; + onPopupShow(); + } -void MenuButton::unbindFocus() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - elm_object_focus_next_object_set(m_parentButton, NULL, ELM_FOCUS_DOWN); -} + void MenuButton::unbindFocus() + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + elm_object_focus_next_object_set(m_parentButton, NULL, ELM_FOCUS_DOWN); + } -bool MenuButton::isShown() -{ - return m_isShown; -} + bool MenuButton::isShown() + { + return m_isShown; + } -void MenuButton::hidePopup() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if(previousPopup && previousPopup->isShown() && previousPopup->canBeDismissed()) { - elm_ctxpopup_dismiss(previousPopup->m_ctxPopup); - return; + void MenuButton::hidePopup() + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + if (previousPopup && previousPopup->isShown() + && previousPopup->canBeDismissed()) { + elm_ctxpopup_dismiss(previousPopup->m_ctxPopup); + return; + } + elm_ctxpopup_dismiss(m_ctxPopup); + m_isShown = false; } - elm_ctxpopup_dismiss(m_ctxPopup); - m_isShown = false; -} -void MenuButton::dismissedCtxPopup(void* data, Evas_Object* /*obj*/, void* /*event_info*/) -{ - BROWSER_LOGD("[%s:%d]: data*: %x", __PRETTY_FUNCTION__, __LINE__, data); - MenuButton* self = reinterpret_cast(data); - self->m_isShown = false; - self->unbindFocus(); - evas_object_hide(self->m_ctxPopup); - self->onPopupDismissed(); -} + void MenuButton::dismissedCtxPopup(void *data, Evas_Object * /*obj */ , + void * /*event_info */ ) + { + BROWSER_LOGD("[%s:%d]: data*: %x", __PRETTY_FUNCTION__, __LINE__, data); + MenuButton *self = reinterpret_cast < MenuButton * >(data); + self->m_isShown = false; + self->unbindFocus(); + evas_object_hide(self->m_ctxPopup); + self->onPopupDismissed(); + } -void MenuButton::onPopupShow() -{ - //default implementation does nothing -} + void MenuButton::onPopupShow() + { + //default implementation does nothing + } -void MenuButton::onPopupDismissed() -{ - //default implementation does nothing -} + void MenuButton::onPopupDismissed() + { + //default implementation does nothing + } -bool MenuButton::canBeDismissed() -{ - return true; -} + bool MenuButton::canBeDismissed() + { + return true; + } -} /* end of namespace base_ui */ -} /* end of namespace tizen_browser */ + } /* end of namespace base_ui */ +} /* end of namespace tizen_browser */ diff --git a/core/BasicUI/PopupButtons.h b/core/BasicUI/PopupButtons.h old mode 100644 new mode 100755 index d815745d..670f2921 --- a/core/BasicUI/PopupButtons.h +++ b/core/BasicUI/PopupButtons.h @@ -22,48 +22,40 @@ namespace tizen_browser { -namespace base_ui -{ + namespace base_ui + { enum PopupButtons { - NONE = 0 - ,OK = 1 << 1 - ,CANCEL = 1 << 2 - ,YES = 1 << 3 - ,NO = 1 << 4 - ,CLOSE = 1 << 5 - ,CONNECT = 1 << 6 - ,CONTINUE= 1 << 7 - ,CLOSE_TAB = 1 << 8 - ,RESET = 1 << 9 - ,DELETE = 1 << 10 - ,BACK_TO_SAFETY = 1 << 11 - ,VIEW_CERTIFICATE = 1 << 12 + NONE = 0, OK = 1 << 1, CANCEL = 1 << 2, YES = 1 << 3, NO = + 1 << 4, CLOSE = 1 << 5, CONNECT = 1 << 6, CONTINUE = + 1 << 7, CLOSE_TAB = 1 << 8, RESET = 1 << 9, DELETE = + 1 << 10, BACK_TO_SAFETY = 1 << 11, VIEW_CERTIFICATE = 1 << 12 }; - static std::map createTranslations() + static std::map < PopupButtons, std::string > createTranslations() { - std::map m; - m[OK] = "IDS_BR_SK_OK"; - m[CANCEL] = "IDS_BR_BUTTON_CANCEL"; - m[YES] = "IDS_BR_SK_YES"; - m[NO] = "IDS_BR_SK_NO"; - m[CLOSE] = "IDS_BR_BUTTON_CLOSE"; - m[CONNECT] = "Connect"; - m[CONTINUE] = "IDS_BR_BUTTON_CONTINUE"; - m[CLOSE_TAB] = "Close tab"; - m[RESET] = "IDS_BR_BUTTON_RESET_ABB"; - m[DELETE] = "IDS_BR_SK_DELETE_ABB"; - m[BACK_TO_SAFETY] = "Back to safety"; - m[VIEW_CERTIFICATE] = "IDS_BR_OPT_VIEW_CERTIFICATE"; - - return m; + std::map < PopupButtons, std::string > m; + m[OK] = "IDS_BR_SK_OK"; + m[CANCEL] = "IDS_BR_BUTTON_CANCEL"; + m[YES] = "IDS_BR_SK_YES"; + m[NO] = "IDS_BR_SK_NO"; + m[CLOSE] = "IDS_BR_BUTTON_CLOSE"; + m[CONNECT] = "Connect"; + m[CONTINUE] = "IDS_BR_BUTTON_CONTINUE"; + m[CLOSE_TAB] = "Close tab"; + m[RESET] = "IDS_BR_BUTTON_RESET_ABB"; + m[DELETE] = "IDS_BR_SK_DELETE_ABB"; + m[BACK_TO_SAFETY] = "Back to safety"; + m[VIEW_CERTIFICATE] = "IDS_BR_OPT_VIEW_CERTIFICATE"; + + return m; } - static std::map buttonsTranslations = createTranslations(); -} + static std::map < PopupButtons, std::string > buttonsTranslations = + createTranslations(); + } } -#endif //__POPUP_BUTTONS_H__ +#endif //__POPUP_BUTTONS_H__ diff --git a/core/BrowserLogger.h b/core/BrowserLogger.h old mode 100644 new mode 100755 index ba620f62..1b460b70 --- a/core/BrowserLogger.h +++ b/core/BrowserLogger.h @@ -33,10 +33,10 @@ #else -#define BROWSER_LOGD(fmt, args...) do { } while(0) -#define BROWSER_LOGI(fmt, args...) do { } while(0) -#define BROWSER_LOGW(fmt, args...) do { } while(0) -#define BROWSER_LOGE(fmt, args...) do { } while(0) +#define BROWSER_LOGD(fmt, args...) do { } while (0) +#define BROWSER_LOGI(fmt, args...) do { } while (0) +#define BROWSER_LOGW(fmt, args...) do { } while (0) +#define BROWSER_LOGE(fmt, args...) do { } while (0) #endif diff --git a/core/BrowserServiceManager.h b/core/BrowserServiceManager.h old mode 100644 new mode 100755 diff --git a/core/DownloadControl/DownloadControl.cpp b/core/DownloadControl/DownloadControl.cpp index c05e6f87..440861cb 100755 --- a/core/DownloadControl/DownloadControl.cpp +++ b/core/DownloadControl/DownloadControl.cpp @@ -35,8 +35,10 @@ static const char *sdp_mime = "application/sdp"; DownloadControl::DownloadControl(void) - : m_download_uri() - , m_parent(nullptr) + : +m_download_uri() + , +m_parent(nullptr) { } @@ -44,443 +46,493 @@ DownloadControl::~DownloadControl(void) { } -void DownloadControl::init(Evas_Object* parent) +void +DownloadControl::init(Evas_Object * parent) { - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - m_parent = parent; + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + m_parent = parent; } -Evas_Object *DownloadControl::brui_popup_add(Evas_Object *parent) +Evas_Object * +DownloadControl::brui_popup_add(Evas_Object * parent) { - Evas_Object *popup = NULL; - popup = elm_popup_add(parent); - elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0); - return popup; + Evas_Object *popup = NULL; + popup = elm_popup_add(parent); + elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0); + return popup; } -Eina_Bool DownloadControl::launch_streaming_player(const char *uri) +Eina_Bool +DownloadControl::launch_streaming_player(const char *uri) { - BROWSER_LOGD("[%s:%d] uri = [%s] ", __PRETTY_FUNCTION__, __LINE__, uri); - - bool vt_call_check = false; - if (app_manager_is_running(sec_vt_app, &vt_call_check) < 0) { - BROWSER_LOGE("[%s:%d] Fail to get app running information", __PRETTY_FUNCTION__, __LINE__); - return EINA_FALSE; - } - - if (vt_call_check) { - return EINA_FALSE; - } - - app_control_h app_control = NULL; - - if (app_control_create(&app_control) < 0) { - BROWSER_LOGE("[%s:%d] Fail to create app_control handle", __PRETTY_FUNCTION__, __LINE__); - return EINA_FALSE; - } - - if (!app_control) { - BROWSER_LOGE("[%s:%d] app_control handle is NULL", __PRETTY_FUNCTION__, __LINE__); - return EINA_FALSE; - } - - if (app_control_set_operation(app_control, APP_CONTROL_OPERATION_VIEW) < 0) { - BROWSER_LOGE("[%s:%d] app_control_set_operation failed", __PRETTY_FUNCTION__, __LINE__); - app_control_destroy(app_control); - return EINA_FALSE; - } - - if (app_control_set_mime(app_control, "video/") < 0) { - BROWSER_LOGE("[%s:%d] Fail to app_control_set_mime", __PRETTY_FUNCTION__, __LINE__); - app_control_destroy(app_control); - return EINA_FALSE; - } + BROWSER_LOGD("[%s:%d] uri = [%s] ", __PRETTY_FUNCTION__, __LINE__, uri); + + bool vt_call_check = false; + if (app_manager_is_running(sec_vt_app, &vt_call_check) < 0) { + BROWSER_LOGE("[%s:%d] Fail to get app running information", + __PRETTY_FUNCTION__, __LINE__); + return EINA_FALSE; + } + + if (vt_call_check) { + return EINA_FALSE; + } + + app_control_h app_control = NULL; + + if (app_control_create(&app_control) < 0) { + BROWSER_LOGE("[%s:%d] Fail to create app_control handle", + __PRETTY_FUNCTION__, __LINE__); + return EINA_FALSE; + } + + if (!app_control) { + BROWSER_LOGE("[%s:%d] app_control handle is NULL", __PRETTY_FUNCTION__, + __LINE__); + return EINA_FALSE; + } + + if (app_control_set_operation(app_control, APP_CONTROL_OPERATION_VIEW) < 0) { + BROWSER_LOGE("[%s:%d] app_control_set_operation failed", + __PRETTY_FUNCTION__, __LINE__); + app_control_destroy(app_control); + return EINA_FALSE; + } - if (app_control_add_extra_data(app_control, "path", uri) < 0) { - BROWSER_LOGE("[%s:%d] Fail to set extra data", __PRETTY_FUNCTION__, __LINE__); - app_control_destroy(app_control); - return EINA_FALSE; - } + if (app_control_set_mime(app_control, "video/") < 0) { + BROWSER_LOGE("[%s:%d] Fail to app_control_set_mime", __PRETTY_FUNCTION__, + __LINE__); + app_control_destroy(app_control); + return EINA_FALSE; + } - if (app_control_send_launch_request(app_control, NULL, NULL) < 0) { - BROWSER_LOGE("[%s:%d] Fail to launch app_control operation", __PRETTY_FUNCTION__, __LINE__); - app_control_destroy(app_control); - return EINA_FALSE; - } + if (app_control_add_extra_data(app_control, "path", uri) < 0) { + BROWSER_LOGE("[%s:%d] Fail to set extra data", __PRETTY_FUNCTION__, + __LINE__); + app_control_destroy(app_control); + return EINA_FALSE; + } + if (app_control_send_launch_request(app_control, NULL, NULL) < 0) { + BROWSER_LOGE("[%s:%d] Fail to launch app_control operation", + __PRETTY_FUNCTION__, __LINE__); app_control_destroy(app_control); + return EINA_FALSE; + } - return EINA_TRUE; + app_control_destroy(app_control); + + return EINA_TRUE; } -void DownloadControl::__sdp_download_finished_cb(const char *file_path, void *data) +void +DownloadControl::__sdp_download_finished_cb(const char *file_path, void *data) { - BROWSER_LOGD("[%s:%d]file_path = [%s]", __PRETTY_FUNCTION__, __LINE__, file_path); - BROWSER_LOGD("[%s:%d]data = [%p] ", __PRETTY_FUNCTION__, __LINE__, data); + BROWSER_LOGD("[%s:%d]file_path = [%s]", __PRETTY_FUNCTION__, __LINE__, + file_path); + BROWSER_LOGD("[%s:%d]data = [%p] ", __PRETTY_FUNCTION__, __LINE__, data); } -char *DownloadControl::get_file_size_str(const char *full_path) +char * +DownloadControl::get_file_size_str(const char *full_path) { - FILE *fp = NULL; - long size = 0; - double size_double = 0.0f; - char size_str[10 + 1] = {0, }; - std::string size_text; - - fp = fopen(full_path, "r"); - if (!fp) - return NULL; - fseek(fp, 0L, SEEK_END); - size = ftell(fp); - fclose(fp); - - if (size >= unit_size) { - size_double = (double)size / (double)unit_size; - if (size_double >= unit_size) { - size_double = (double)size_double / (double)unit_size; - if (size_double >= unit_size) { - size_double = (double)size_double / (double)unit_size; - snprintf(size_str, 10, "%.2f", size_double); - size_text = std::string(size_str) + std::string("GB"); - } else { - snprintf(size_str, 10, "%.2f", size_double); - size_text = std::string(size_str) + std::string("MB"); - } - } else { - snprintf(size_str, 10, "%.2f", size_double); - size_text = std::string(size_str) + std::string("KB"); - } + FILE *fp = NULL; + long size = 0; + double size_double = 0.0f; + char size_str[10 + 1] = { 0, }; + std::string size_text; + + fp = fopen(full_path, "r"); + if (!fp) + return NULL; + fseek(fp, 0L, SEEK_END); + size = ftell(fp); + fclose(fp); + + if (size >= unit_size) { + size_double = (double) size / (double) unit_size; + if (size_double >= unit_size) { + size_double = (double) size_double / (double) unit_size; + if (size_double >= unit_size) { + size_double = (double) size_double / (double) unit_size; + snprintf(size_str, 10, "%.2f", size_double); + size_text = std::string(size_str) + std::string("GB"); + } else { + snprintf(size_str, 10, "%.2f", size_double); + size_text = std::string(size_str) + std::string("MB"); + } } else { - snprintf(size_str, 10, "%u", (int)size); - size_text = std::string(size_str) + std::string("B"); + snprintf(size_str, 10, "%.2f", size_double); + size_text = std::string(size_str) + std::string("KB"); } + } else { + snprintf(size_str, 10, "%u", (int) size); + size_text = std::string(size_str) + std::string("B"); + } - return strdup(size_text.c_str()); + return strdup(size_text.c_str()); } -Eina_Bool DownloadControl::_check_file_exist(const char *path) +Eina_Bool +DownloadControl::_check_file_exist(const char *path) { - BROWSER_LOGD("[%s:%d] path = [%s]", __PRETTY_FUNCTION__, __LINE__, path); + BROWSER_LOGD("[%s:%d] path = [%s]", __PRETTY_FUNCTION__, __LINE__, path); - if (!strlen(path)) { - BROWSER_LOGE("[%s:%d] path has no string", __PRETTY_FUNCTION__, __LINE__); - return EINA_FALSE; - } + if (!strlen(path)) { + BROWSER_LOGE("[%s:%d] path has no string", __PRETTY_FUNCTION__, __LINE__); + return EINA_FALSE; + } - struct stat file_state; - int stat_ret = 0; + struct stat file_state; + int stat_ret = 0; - stat_ret = stat(path, &file_state); - if (stat_ret != 0){ - BROWSER_LOGE("[%s:%d] failed to stat", __PRETTY_FUNCTION__, __LINE__); - return EINA_FALSE; - } + stat_ret = stat(path, &file_state); + if (stat_ret != 0) { + BROWSER_LOGE("[%s:%d] failed to stat", __PRETTY_FUNCTION__, __LINE__); + return EINA_FALSE; + } - if (!S_ISREG(file_state.st_mode)) { - BROWSER_LOGE("[%s:%d] File does not exist", __PRETTY_FUNCTION__, __LINE__); - return EINA_FALSE; - } + if (!S_ISREG(file_state.st_mode)) { + BROWSER_LOGE("[%s:%d] File does not exist", __PRETTY_FUNCTION__, + __LINE__); + return EINA_FALSE; + } - return EINA_TRUE; + return EINA_TRUE; } -Eina_Bool DownloadControl::_save_file(const char *raw_data, const char *path) +Eina_Bool +DownloadControl::_save_file(const char *raw_data, const char *path) { - int fd = 0; - int write_len = 0; - gsize length = 0; - guchar *decoded_data = NULL; - - decoded_data = g_base64_decode((gchar *)raw_data, &length); - if (!decoded_data) { - BROWSER_LOGE("[%s:%d] failed to decode raw data", __PRETTY_FUNCTION__, __LINE__); - return EINA_FALSE; - } - - if (!strlen((char*)decoded_data)) { - BROWSER_LOGE("[%s:%d] has no data", __PRETTY_FUNCTION__, __LINE__); - g_free(decoded_data); - decoded_data = NULL; - return EINA_FALSE; - } - - if ((fd = open(path, O_CREAT | O_WRONLY, S_IRUSR|S_IWUSR | S_IRGRP | S_IROTH)) < 0) { - BROWSER_LOGE("[%s:%d] failed to file open to save raw data", __PRETTY_FUNCTION__, __LINE__); - g_free(decoded_data); - decoded_data = NULL; - return EINA_FALSE; - } - - write_len = write(fd, decoded_data, length); - close(fd); - - if (write_len != (int)length) { - BROWSER_LOGE("[%s:%d] failed to save raw data normally", __PRETTY_FUNCTION__, __LINE__); - unlink(path); - g_free(decoded_data); - decoded_data = NULL; - return EINA_FALSE; - } - - if (decoded_data){ - g_free(decoded_data); - decoded_data = NULL; - } - - return EINA_TRUE; + int fd = 0; + int write_len = 0; + gsize length = 0; + guchar *decoded_data = NULL; + + decoded_data = g_base64_decode((gchar *) raw_data, &length); + if (!decoded_data) { + BROWSER_LOGE("[%s:%d] failed to decode raw data", __PRETTY_FUNCTION__, + __LINE__); + return EINA_FALSE; + } + + if (!strlen((char *) decoded_data)) { + BROWSER_LOGE("[%s:%d] has no data", __PRETTY_FUNCTION__, __LINE__); + g_free(decoded_data); + decoded_data = NULL; + return EINA_FALSE; + } + + if ((fd = + open(path, O_CREAT | O_WRONLY, + S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH)) < 0) { + BROWSER_LOGE("[%s:%d] failed to file open to save raw data", + __PRETTY_FUNCTION__, __LINE__); + g_free(decoded_data); + decoded_data = NULL; + return EINA_FALSE; + } + + write_len = write(fd, decoded_data, length); + close(fd); + + if (write_len != (int) length) { + BROWSER_LOGE("[%s:%d] failed to save raw data normally", + __PRETTY_FUNCTION__, __LINE__); + unlink(path); + g_free(decoded_data); + decoded_data = NULL; + return EINA_FALSE; + } + + if (decoded_data) { + g_free(decoded_data); + decoded_data = NULL; + } + + return EINA_TRUE; } -Eina_Bool DownloadControl::_update_contents_on_media_db(const char *path) +Eina_Bool +DownloadControl::_update_contents_on_media_db(const char *path) { - BROWSER_LOGD("[%s:%d]", __PRETTY_FUNCTION__, __LINE__); - - if (!strlen(path)) { - BROWSER_LOGD("[%s:%d] path has no string", __PRETTY_FUNCTION__, __LINE__); - return EINA_FALSE; - } - - int ret = -1; - media_info_h info = NULL; - - ret = media_content_connect(); - if (ret != MEDIA_CONTENT_ERROR_NONE) { - BROWSER_LOGE("[%s:%d] Fail to media_content_connect", __PRETTY_FUNCTION__, __LINE__); - return EINA_FALSE; - } - - ret = media_info_insert_to_db(path, &info); - if (ret != MEDIA_CONTENT_ERROR_NONE || info == NULL) { - BROWSER_LOGE("[%s:%d] Fail to media_info_insert_to_db [%d]", __PRETTY_FUNCTION__, __LINE__, ret); - media_content_disconnect(); - if (info) - media_info_destroy(info); - return EINA_FALSE; - } - - media_info_destroy(info); - ret = media_content_disconnect(); - if (ret != MEDIA_CONTENT_ERROR_NONE) { - BROWSER_LOGE("[%s:%d] Fail to media_content_disconnect", __PRETTY_FUNCTION__, __LINE__); - } - - return EINA_TRUE; + BROWSER_LOGD("[%s:%d]", __PRETTY_FUNCTION__, __LINE__); + + if (!strlen(path)) { + BROWSER_LOGD("[%s:%d] path has no string", __PRETTY_FUNCTION__, __LINE__); + return EINA_FALSE; + } + + int ret = -1; + media_info_h info = NULL; + + ret = media_content_connect(); + if (ret != MEDIA_CONTENT_ERROR_NONE) { + BROWSER_LOGE("[%s:%d] Fail to media_content_connect", __PRETTY_FUNCTION__, + __LINE__); + return EINA_FALSE; + } + + ret = media_info_insert_to_db(path, &info); + if (ret != MEDIA_CONTENT_ERROR_NONE || info == NULL) { + BROWSER_LOGE("[%s:%d] Fail to media_info_insert_to_db [%d]", + __PRETTY_FUNCTION__, __LINE__, ret); + media_content_disconnect(); + if (info) + media_info_destroy(info); + return EINA_FALSE; + } + + media_info_destroy(info); + ret = media_content_disconnect(); + if (ret != MEDIA_CONTENT_ERROR_NONE) { + BROWSER_LOGE("[%s:%d] Fail to media_content_disconnect", + __PRETTY_FUNCTION__, __LINE__); + } + + return EINA_TRUE; } -Eina_Bool DownloadControl::_get_download_path(const char *extension, char **full_path, char **file_name) +Eina_Bool +DownloadControl::_get_download_path(const char *extension, char **full_path, + char **file_name) { - BROWSER_LOGD("[%s:%d]", __PRETTY_FUNCTION__, __LINE__); + BROWSER_LOGD("[%s:%d]", __PRETTY_FUNCTION__, __LINE__); - char temp_count_str[10] = {0}; - int count = 0; + char temp_count_str[10] = { 0 }; + int count = 0; - std::string storing_path; + std::string storing_path; - storing_path = std::string(default_device_storage_path); + storing_path = std::string(default_device_storage_path); - std::string only_file_name = std::string(default_download_item_name) + std::string(".") + std::string(extension); - std::string entire_path_name = storing_path + std::string(default_download_item_name) + std::string(".") + std::string(extension); + std::string only_file_name = + std::string(default_download_item_name) + std::string(".") + + std::string(extension); + std::string entire_path_name = + storing_path + std::string(default_download_item_name) + + std::string(".") + std::string(extension); - while(_check_file_exist((const char *)entire_path_name.c_str()) == EINA_TRUE) { - count++; - memset(temp_count_str, 0, 10); - snprintf(temp_count_str, 10, "_%d", count); + while (_check_file_exist((const char *) entire_path_name.c_str()) == + EINA_TRUE) { + count++; + memset(temp_count_str, 0, 10); + snprintf(temp_count_str, 10, "_%d", count); - only_file_name.clear(); - only_file_name = std::string(default_download_item_name) - + std::string(temp_count_str) - + std::string(".") - + std::string(extension); + only_file_name.clear(); + only_file_name = std::string(default_download_item_name) + + std::string(temp_count_str) + + std::string(".") + + std::string(extension); - entire_path_name.clear(); - entire_path_name = storing_path - + std::string(default_download_item_name) - + std::string(temp_count_str) - + std::string(".") - + std::string(extension); + entire_path_name.clear(); + entire_path_name = storing_path + std::string(default_download_item_name) + + std::string(temp_count_str) + + std::string(".") + + std::string(extension); - if (count > BROWSER_DATA_SCHEME_DOWNLOAD_ALLOW_MAX_COUNT) { - entire_path_name.clear(); - only_file_name.clear(); - break; - } + if (count > BROWSER_DATA_SCHEME_DOWNLOAD_ALLOW_MAX_COUNT) { + entire_path_name.clear(); + only_file_name.clear(); + break; } + } - Eina_Bool ok = EINA_FALSE; + Eina_Bool ok = EINA_FALSE; - if (!entire_path_name.empty()) - { - *full_path = strdup(entire_path_name.c_str()); - *file_name = strdup(only_file_name.c_str()); - ok = EINA_TRUE; - } + if (!entire_path_name.empty()) { + *full_path = strdup(entire_path_name.c_str()); + *file_name = strdup(only_file_name.c_str()); + ok = EINA_TRUE; + } - return ok; + return ok; } -void DownloadControl::handle_download_request(const char *uri, const char *content_type) +void +DownloadControl::handle_download_request(const char *uri, + const char *content_type) { - BROWSER_LOGD("[%s:%d] uri = [%s], content_type = [%s]", __PRETTY_FUNCTION__, __LINE__, uri, content_type); + BROWSER_LOGD("[%s:%d] uri = [%s], content_type = [%s]", __PRETTY_FUNCTION__, + __LINE__, uri, content_type); - m_download_uri.clear(); + m_download_uri.clear(); - m_download_uri = std::string(uri); + m_download_uri = std::string(uri); - if (!content_type) { - launch_download_app(uri); - return; - } + if (!content_type) { + launch_download_app(uri); + return; + } - if (!strcmp(content_type, sdp_mime)) { - Evas_Object *popup = brui_popup_add(m_parent); - Evas_Object *app_list = elm_list_add(popup); + if (!strcmp(content_type, sdp_mime)) { + Evas_Object *popup = brui_popup_add(m_parent); + Evas_Object *app_list = elm_list_add(popup); - elm_list_mode_set(app_list, ELM_LIST_EXPAND); - evas_object_size_hint_max_set(app_list, -1, APP_LIST_HEIGHT); - } else { - launch_download_app(uri); - } + elm_list_mode_set(app_list, ELM_LIST_EXPAND); + evas_object_size_hint_max_set(app_list, -1, APP_LIST_HEIGHT); + } else { + launch_download_app(uri); + } } -Eina_Bool DownloadControl::handle_data_scheme(const char *uri) +Eina_Bool +DownloadControl::handle_data_scheme(const char *uri) { - BROWSER_LOGD("[%s:%d]", __PRETTY_FUNCTION__, __LINE__); - - const char *encoded_str = NULL; - const char *extension = NULL; - - if (!strncmp(uri, data_scheme_jpeg_base64, strlen(data_scheme_jpeg_base64))) { - encoded_str = uri + strlen(data_scheme_jpeg_base64) + 1; // 1 is reserved for separator ',' - extension = (const char *)"jpeg"; - } else if (!strncmp(uri, data_scheme_jpg_base64, strlen(data_scheme_jpg_base64))) { - encoded_str = uri + strlen(data_scheme_jpg_base64) + 1; // 1 is reserved for separator ',' - extension = (const char *)"jpg"; - } else if (!strncmp(uri, data_scheme_png_base64, strlen(data_scheme_png_base64))) { - encoded_str = uri + strlen(data_scheme_png_base64) + 1; // 1 is reserved for separator ',' - extension = (const char *)"png"; - } else if (!strncmp(uri, data_scheme_gif_base64, strlen(data_scheme_gif_base64))) { - encoded_str = uri + strlen(data_scheme_gif_base64) + 1; // 1 is reserved for separator ',' - extension = (const char *)"gif"; - } else { - BROWSER_LOGD("[%s:%d] Un-recognizable data scheme type", __PRETTY_FUNCTION__, __LINE__); - return EINA_FALSE; - } - - char *full_path = NULL; - char *file_name = NULL; - if (_get_download_path(extension, &full_path, &file_name) == EINA_FALSE) { - BROWSER_LOGE("[%s:%d] failed to _get_download_path", __PRETTY_FUNCTION__, __LINE__); - if(full_path){ - free(full_path); - } - if(file_name){ - free(file_name); - } - return EINA_FALSE; - } - - if (!(full_path && strlen(full_path)) || !(file_name && strlen(file_name))) { - BROWSER_LOGE("[%s:%d] has problem to _get_download_path", __PRETTY_FUNCTION__, __LINE__); - if(full_path){ - free(full_path); - } - if(file_name){ - free(file_name); - } - return EINA_FALSE; - } - - if (_save_file(encoded_str, full_path) == EINA_FALSE) { - BROWSER_LOGE("[%s:%d] failed to _save_file with path [%s]", __PRETTY_FUNCTION__, __LINE__, full_path); - if(full_path){ - free(full_path); - } - if(file_name){ - free(file_name); - } - return EINA_FALSE; - } - - if (_update_contents_on_media_db(full_path) == EINA_FALSE) { - BROWSER_LOGE("[%s:%d] failed to _update_contents_on_media_db with path [%s]", __PRETTY_FUNCTION__, __LINE__, full_path); - if(full_path){ - free(full_path); - } - if(file_name){ - free(file_name); - } - return EINA_FALSE; - } - if(full_path){ - free(full_path); - } - if(file_name){ - free(file_name); - } - return EINA_TRUE; + BROWSER_LOGD("[%s:%d]", __PRETTY_FUNCTION__, __LINE__); + + const char *encoded_str = NULL; + const char *extension = NULL; + + if (!strncmp(uri, data_scheme_jpeg_base64, strlen(data_scheme_jpeg_base64))) { + encoded_str = uri + strlen(data_scheme_jpeg_base64) + 1; // 1 is reserved for separator ',' + extension = (const char *) "jpeg"; + } else if (!strncmp(uri, data_scheme_jpg_base64, strlen(data_scheme_jpg_base64))) { + encoded_str = uri + strlen(data_scheme_jpg_base64) + 1; // 1 is reserved for separator ',' + extension = (const char *) "jpg"; + } else if (!strncmp(uri, data_scheme_png_base64, strlen(data_scheme_png_base64))) { + encoded_str = uri + strlen(data_scheme_png_base64) + 1; // 1 is reserved for separator ',' + extension = (const char *) "png"; + } else if (!strncmp(uri, data_scheme_gif_base64, strlen(data_scheme_gif_base64))) { + encoded_str = uri + strlen(data_scheme_gif_base64) + 1; // 1 is reserved for separator ',' + extension = (const char *) "gif"; + } else { + BROWSER_LOGD("[%s:%d] Un-recognizable data scheme type", + __PRETTY_FUNCTION__, __LINE__); + return EINA_FALSE; + } + + char *full_path = NULL; + char *file_name = NULL; + if (_get_download_path(extension, &full_path, &file_name) == EINA_FALSE) { + BROWSER_LOGE("[%s:%d] failed to _get_download_path", __PRETTY_FUNCTION__, + __LINE__); + if (full_path) { + free(full_path); + } + if (file_name) { + free(file_name); + } + return EINA_FALSE; + } + + if (!(full_path && strlen(full_path)) || !(file_name && strlen(file_name))) { + BROWSER_LOGE("[%s:%d] has problem to _get_download_path", + __PRETTY_FUNCTION__, __LINE__); + if (full_path) { + free(full_path); + } + if (file_name) { + free(file_name); + } + return EINA_FALSE; + } + + if (_save_file(encoded_str, full_path) == EINA_FALSE) { + BROWSER_LOGE("[%s:%d] failed to _save_file with path [%s]", + __PRETTY_FUNCTION__, __LINE__, full_path); + if (full_path) { + free(full_path); + } + if (file_name) { + free(file_name); + } + return EINA_FALSE; + } + + if (_update_contents_on_media_db(full_path) == EINA_FALSE) { + BROWSER_LOGE + ("[%s:%d] failed to _update_contents_on_media_db with path [%s]", + __PRETTY_FUNCTION__, __LINE__, full_path); + if (full_path) { + free(full_path); + } + if (file_name) { + free(file_name); + } + return EINA_FALSE; + } + if (full_path) { + free(full_path); + } + if (file_name) { + free(file_name); + } + return EINA_TRUE; } -Eina_Bool DownloadControl::launch_download_app(const char *uri) +Eina_Bool +DownloadControl::launch_download_app(const char *uri) { - BROWSER_LOGD("[%s:%d] uri = [%s]", __PRETTY_FUNCTION__, __LINE__, uri); - - app_control_h app_control = NULL; - - if (app_control_create(&app_control) < 0) { - BROWSER_LOGE("[%s:%d] Fail to create app_control handle", __PRETTY_FUNCTION__, __LINE__); - return EINA_FALSE; - } - - if (!app_control) { - BROWSER_LOGE("[%s:%d] app_control handle is NULL", __PRETTY_FUNCTION__, __LINE__); - return EINA_FALSE; - } - - if (app_control_set_operation(app_control, APP_CONTROL_OPERATION_DOWNLOAD) < 0) { - BROWSER_LOGE("[%s:%d] Fail to set app_control operation", __PRETTY_FUNCTION__, __LINE__); - app_control_destroy(app_control); - return EINA_FALSE; - } + BROWSER_LOGD("[%s:%d] uri = [%s]", __PRETTY_FUNCTION__, __LINE__, uri); + + app_control_h app_control = NULL; + + if (app_control_create(&app_control) < 0) { + BROWSER_LOGE("[%s:%d] Fail to create app_control handle", + __PRETTY_FUNCTION__, __LINE__); + return EINA_FALSE; + } + + if (!app_control) { + BROWSER_LOGE("[%s:%d] app_control handle is NULL", __PRETTY_FUNCTION__, + __LINE__); + return EINA_FALSE; + } + + if (app_control_set_operation(app_control, APP_CONTROL_OPERATION_DOWNLOAD) < + 0) { + BROWSER_LOGE("[%s:%d] Fail to set app_control operation", + __PRETTY_FUNCTION__, __LINE__); + app_control_destroy(app_control); + return EINA_FALSE; + } - if (app_control_set_uri(app_control, uri) < 0) { - BROWSER_LOGE("[%s:%d] Fail to set uri", __PRETTY_FUNCTION__, __LINE__); - app_control_destroy(app_control); - return EINA_FALSE; - } + if (app_control_set_uri(app_control, uri) < 0) { + BROWSER_LOGE("[%s:%d] Fail to set uri", __PRETTY_FUNCTION__, __LINE__); + app_control_destroy(app_control); + return EINA_FALSE; + } - if (app_control_add_extra_data(app_control, "mode", "silent") < 0) { - BROWSER_LOGE("[%s:%d] Fail to set app_control extra data", __PRETTY_FUNCTION__, __LINE__); - app_control_destroy(app_control); - return EINA_FALSE; - } + if (app_control_add_extra_data(app_control, "mode", "silent") < 0) { + BROWSER_LOGE("[%s:%d] Fail to set app_control extra data", + __PRETTY_FUNCTION__, __LINE__); + app_control_destroy(app_control); + return EINA_FALSE; + } - const char *storage_type = "0"; //phone memory + const char *storage_type = "0"; //phone memory - if (app_control_add_extra_data(app_control, "default_storage", storage_type) < 0) { - BROWSER_LOGE("[%s:%d] Fail to set app_control extra data", __PRETTY_FUNCTION__, __LINE__); - app_control_destroy(app_control); - return EINA_FALSE; - } + if (app_control_add_extra_data(app_control, "default_storage", storage_type) + < 0) { + BROWSER_LOGE("[%s:%d] Fail to set app_control extra data", + __PRETTY_FUNCTION__, __LINE__); + app_control_destroy(app_control); + return EINA_FALSE; + } - if (app_control_add_extra_data(app_control, "network_bonding", "true") < 0) { - BROWSER_LOGE("[%s:%d] Fail to set app_control extra data", __PRETTY_FUNCTION__, __LINE__); - app_control_destroy(app_control); - return EINA_FALSE; - } + if (app_control_add_extra_data(app_control, "network_bonding", "true") < 0) { + BROWSER_LOGE("[%s:%d] Fail to set app_control extra data", + __PRETTY_FUNCTION__, __LINE__); + app_control_destroy(app_control); + return EINA_FALSE; + } - if ( app_control_send_launch_request(app_control, NULL, NULL) < 0) { - BROWSER_LOGE("[%s:%d] Fail to launch app_control operation", __PRETTY_FUNCTION__, __LINE__); - app_control_destroy(app_control); - return EINA_FALSE; - } + if (app_control_send_launch_request(app_control, NULL, NULL) < 0) { + BROWSER_LOGE("[%s:%d] Fail to launch app_control operation", + __PRETTY_FUNCTION__, __LINE__); app_control_destroy(app_control); + return EINA_FALSE; + } + app_control_destroy(app_control); - return EINA_TRUE; + return EINA_TRUE; } -void DownloadControl::show_noti_popup(const char *msg) +void +DownloadControl::show_noti_popup(const char *msg) { - BROWSER_LOGD("[%s:%d]", __PRETTY_FUNCTION__, __LINE__); - notification_status_message_post(msg); - elm_access_say(msg); + BROWSER_LOGD("[%s:%d]", __PRETTY_FUNCTION__, __LINE__); + notification_status_message_post(msg); + elm_access_say(msg); } - diff --git a/core/Logger/AbstractLogger.h b/core/Logger/AbstractLogger.h old mode 100644 new mode 100755 diff --git a/core/Logger/DLOGLogger.cpp b/core/Logger/DLOGLogger.cpp old mode 100644 new mode 100755 index f3c22533..fc80290f --- a/core/Logger/DLOGLogger.cpp +++ b/core/Logger/DLOGLogger.cpp @@ -41,7 +41,6 @@ DLOGLogger::~DLOGLogger() { } void DLOGLogger::init() { - } void DLOGLogger::log(const std::string & /*timeStamp*/, const std::string & tag, const std::string & msg, bool /*errorFlag*/) { @@ -70,7 +69,7 @@ void DLOGLogger::log(const std::string & /*timeStamp*/, const std::string & tag, priority = DLOG_DEFAULT; break; } - __dlog_print(LOG_ID_SYSTEM,priority, tag.c_str(), "%s", msg.c_str()); + __dlog_print(LOG_ID_SYSTEM, priority, tag.c_str(), "%s", msg.c_str()); } } /* end namespace logger */ diff --git a/core/Logger/DLOGLogger.h b/core/Logger/DLOGLogger.h old mode 100644 new mode 100755 index 78a31b91..5960c947 --- a/core/Logger/DLOGLogger.h +++ b/core/Logger/DLOGLogger.h @@ -38,7 +38,7 @@ public: ~DLOGLogger(); virtual void init(); - virtual void log(const std::string &timeStamp, const std::string &tag,const std::string &msg, bool errorFlag = false); + virtual void log(const std::string &timeStamp, const std::string &tag, const std::string &msg, bool errorFlag = false); private: }; diff --git a/core/Logger/Logger.cpp b/core/Logger/Logger.cpp index 1948e12d..0bac037d 100755 --- a/core/Logger/Logger.cpp +++ b/core/Logger/Logger.cpp @@ -150,16 +150,16 @@ int Logger::registerLogger(AbstractLogger *l) { std::string Logger::timeStamp() { time_t initializer = time(NULL); struct tm b; - if(localtime_r(&initializer,&b)==NULL){ + if (localtime_r(&initializer, &b) == NULL) { return std::string(""); } struct timeval detail_time; - gettimeofday(&detail_time,NULL); + gettimeofday(&detail_time, NULL); char buf[80]; // strftime(buf, sizeof(buf), "%d/%m/%y,%T ", brokenTime, detail_time.tv_usec/1000); - snprintf(buf, sizeof(buf),"[%d/%d/%d,%d:%d:%d.%ld]", b.tm_year, b.tm_mon, b.tm_mday, b.tm_hour, b.tm_min, b.tm_sec, detail_time.tv_usec/1000); + snprintf(buf, sizeof(buf), "[%d/%d/%d,%d:%d:%d.%ld]", b.tm_year, b.tm_mon, b.tm_mday, b.tm_hour, b.tm_min, b.tm_sec, detail_time.tv_usec/1000); return std::string(buf); } diff --git a/core/Logger/Logger.h b/core/Logger/Logger.h old mode 100644 new mode 100755 diff --git a/core/Logger/LoggerTools.cpp b/core/Logger/LoggerTools.cpp old mode 100644 new mode 100755 diff --git a/core/Logger/TextLogger.cpp b/core/Logger/TextLogger.cpp old mode 100644 new mode 100755 diff --git a/core/Logger/TextLogger.h b/core/Logger/TextLogger.h old mode 100644 new mode 100755 diff --git a/core/Logger/Useloggers.cpp b/core/Logger/Useloggers.cpp old mode 100644 new mode 100755 diff --git a/core/ServiceManager/AbstractService.h b/core/ServiceManager/AbstractService.h old mode 100644 new mode 100755 diff --git a/core/ServiceManager/Debug/BrowserAssert.cpp b/core/ServiceManager/Debug/BrowserAssert.cpp old mode 100644 new mode 100755 diff --git a/core/ServiceManager/Debug/BrowserAssert.h b/core/ServiceManager/Debug/BrowserAssert.h old mode 100644 new mode 100755 index c7459022..9d2298b4 --- a/core/ServiceManager/Debug/BrowserAssert.h +++ b/core/ServiceManager/Debug/BrowserAssert.h @@ -25,9 +25,9 @@ * \param condition - condition to be tested. * \post Normal progam flow is continued only if condition is met, otherwise EFailedAssertion exception is thrown. */ -# define M_ASSERT( condition ) do { if ( ! ( condition ) ) tizen_browser::debug::failed_assert( __FILE__, __LINE__, __PRETTY_FUNCTION__, #condition ); } while ( 0 ) +# define M_ASSERT( condition ) do { if ( !( condition ) ) tizen_browser::debug::failed_assert( __FILE__, __LINE__, __PRETTY_FUNCTION__, #condition ); } while ( 0 ) #else /* #ifndef NDEBUG */ -# define M_ASSERT( c ) /**/ +# define M_ASSERT(c) /**/ #endif /* #else #ifndef NDEBUG */ namespace tizen_browser diff --git a/core/ServiceManager/Debug/Lifecycle.h b/core/ServiceManager/Debug/Lifecycle.h old mode 100644 new mode 100755 index 34041fc7..a97ba8df --- a/core/ServiceManager/Debug/Lifecycle.h +++ b/core/ServiceManager/Debug/Lifecycle.h @@ -36,7 +36,6 @@ struct ShowLifeCycle { ~ShowLifeCycle() { BROWSER_LOGD("Destroyed object: '%s'", type().c_str()); } - }; #else diff --git a/core/ServiceManager/ServiceFactory.cpp b/core/ServiceManager/ServiceFactory.cpp old mode 100644 new mode 100755 index 5da7f611..db48505c --- a/core/ServiceManager/ServiceFactory.cpp +++ b/core/ServiceManager/ServiceFactory.cpp @@ -20,20 +20,18 @@ namespace tizen_browser { -namespace core -{ + namespace core + { //leave this functions to satisfy linker. -ServiceFactory::ServiceFactory() -{ - -} - -ServiceFactory::~ServiceFactory() -{ + ServiceFactory::ServiceFactory() + { + } -} + ServiceFactory::~ServiceFactory() + { + } -} /* end of namespace core */ -} /* end of namespace tizen_browser */ + } /* end of namespace core */ +} /* end of namespace tizen_browser */ diff --git a/core/ServiceManager/ServiceFactory.h b/core/ServiceManager/ServiceFactory.h old mode 100644 new mode 100755 index 023a09e4..26ae8ebe --- a/core/ServiceManager/ServiceFactory.h +++ b/core/ServiceManager/ServiceFactory.h @@ -25,8 +25,8 @@ namespace tizen_browser { -namespace core -{ + namespace core + { /** * @brief base service factory class @@ -34,9 +34,9 @@ namespace core * This class shouldn't be used directly. It is used internally by ServiceManager, and * user service factories inherits this class, but you shouldn't have to use it directly. */ -class ServiceFactory -{ -public: + class ServiceFactory + { + public: /** @@ -44,12 +44,12 @@ public: * * */ - ServiceFactory(); + ServiceFactory(); /** * \brief This destroys the ServiceFactory */ - virtual ~ServiceFactory(); + virtual ~ServiceFactory(); /** * \brief Returns service name. @@ -57,17 +57,16 @@ public: * You can use this method to retrieve service name. * \returns Name of the service */ - virtual std::string serviceName() const = 0; + virtual std::string serviceName() const = 0; /** * \brief Returns object instance * \returns Ready to use service object. */ - virtual AbstractService *create()=0; - -}; + virtual AbstractService *create() = 0; + }; -} /* end of namespace core */ -} /* end of namespace tizen_browser */ + } /* end of namespace core */ +} /* end of namespace tizen_browser */ -#endif //__SERVICE_FACTORY_H__ +#endif //__SERVICE_FACTORY_H__ diff --git a/core/ServiceManager/ServiceLib.cpp b/core/ServiceManager/ServiceLib.cpp old mode 100644 new mode 100755 index 0e3226b4..e6fa091d --- a/core/ServiceManager/ServiceLib.cpp +++ b/core/ServiceManager/ServiceLib.cpp @@ -21,47 +21,46 @@ namespace tizen_browser { -namespace core -{ + namespace core + { -ServiceLib::ServiceLib(const std::string& libraryFile) + ServiceLib::ServiceLib(const std::string & libraryFile) : libraryFile(libraryFile) - , pHnd(0,0) -{ - load(); -} - -ServiceLib::~ServiceLib() -{ -} - + , pHnd(0, 0) + { + load(); + } -void ServiceLib::load() -{ + ServiceLib::~ServiceLib() + { + } - int flags=0; - flags = //RTLD_NOW //resolve all symbols before dlopen returns - RTLD_LAZY //resolve sybols on ussage - fixes problem with cross linikg services. - | RTLD_GLOBAL; //export or sybols to be used by other libraries. + void ServiceLib::load() + { + int flags = 0; + flags = //RTLD_NOW //resolve all symbols before dlopen returns + RTLD_LAZY //resolve sybols on ussage - fixes problem with cross linikg services. + | RTLD_GLOBAL; //export or sybols to be used by other libraries. - pHnd = unique_library_ptr(dlopen(libraryFile.c_str(), flags), dlclose); - if(!pHnd){ - throw std::runtime_error(std::string(__PRETTY_FUNCTION__) + "Library loading error:" + dlerror()); + pHnd = unique_library_ptr(dlopen(libraryFile.c_str(), flags), dlclose); + if (!pHnd) { + throw std::runtime_error(std::string(__PRETTY_FUNCTION__) + + "Library loading error:" + dlerror()); + } } -} -FunctionPointer ServiceLib::resolveSymbol(const char* symbol) -{ - FunctionPointer address = reinterpret_cast(dlsym(pHnd.get(),symbol)); - if (!address){ - throw std::runtime_error(std::string(__PRETTY_FUNCTION__) - + "Cannot resolve symbol \"" - + symbol + "\" in " - + libraryFile - + ":" + dlerror()); + FunctionPointer ServiceLib::resolveSymbol(const char *symbol) + { + FunctionPointer address = + reinterpret_cast < FunctionPointer > (dlsym(pHnd.get(), symbol)); + if (!address) { + throw std::runtime_error(std::string(__PRETTY_FUNCTION__) + + "Cannot resolve symbol \"" + + symbol + "\" in " + + libraryFile + ":" + dlerror()); + } + return address; } - return address; -} -} /* end of namespace core */ -} /* end of namespace tizen_browser */ + } /* end of namespace core */ +} /* end of namespace tizen_browser */ diff --git a/core/ServiceManager/ServiceLib.h b/core/ServiceManager/ServiceLib.h old mode 100644 new mode 100755 diff --git a/core/ServiceManager/ServiceLoader.cpp b/core/ServiceManager/ServiceLoader.cpp old mode 100644 new mode 100755 index 51ea54fb..58d29393 --- a/core/ServiceManager/ServiceLoader.cpp +++ b/core/ServiceManager/ServiceLoader.cpp @@ -44,7 +44,7 @@ void ServiceLoaderPrivate::loadService() ServiceLoader::ServiceLoader(const std::string& serviceFileName) : d(new ServiceLoaderPrivate(serviceFileName)) { - BROWSER_LOGD( "%s %s", __PRETTY_FUNCTION__ , serviceFileName.c_str() ); + BROWSER_LOGD("%s %s", __PRETTY_FUNCTION__ , serviceFileName.c_str() ); } @@ -61,7 +61,7 @@ std::string ServiceLoader::serviceName() const ServiceFactory* ServiceLoader::getFactory() { - if(d->instance){ + if (d->instance){ return d->instance(); } else{ d->loadService(); diff --git a/core/ServiceManager/ServiceLoader.h b/core/ServiceManager/ServiceLoader.h old mode 100644 new mode 100755 diff --git a/core/ServiceManager/ServiceLoader_p.h b/core/ServiceManager/ServiceLoader_p.h old mode 100644 new mode 100755 diff --git a/core/ServiceManager/ServiceManager.cpp b/core/ServiceManager/ServiceManager.cpp old mode 100644 new mode 100755 index 09666e96..90fb1860 --- a/core/ServiceManager/ServiceManager.cpp +++ b/core/ServiceManager/ServiceManager.cpp @@ -23,91 +23,102 @@ namespace tizen_browser { -namespace core -{ - -ServiceManagerPrivate::ServiceManagerPrivate() -{ - findServiceLibs(); - loadServiceLibs(); - enumerateServices(); -} + namespace core + { -ServiceManagerPrivate::~ServiceManagerPrivate() -{} + ServiceManagerPrivate::ServiceManagerPrivate() + { + findServiceLibs(); + loadServiceLibs(); + enumerateServices(); + } -void ServiceManagerPrivate::findServiceLibs() -{ - try{ - boost::filesystem::path servicesDir(boost::any_cast(tizen_browser::config::Config::getInstance().get("services/dir"))); - for( boost::filesystem::directory_iterator it(servicesDir); - it != boost::filesystem::directory_iterator(); - ++it){ - boost::filesystem::path item(*it); - if(boost::filesystem::is_regular_file(item)){ - if( (item.extension().string() == ".so" ) - && (item.filename().string().find("lib") == 0)){ - try{ - servicesLoaderMap[item.string()] = std::shared_ptr(new ServiceLoader(item.string())); - } catch (std::runtime_error & e){ - BROWSER_LOGD(e.what() ); - } - } - } - } - } catch (const boost::filesystem::filesystem_error& ex){ - BROWSER_LOGD(ex.what() ); + ServiceManagerPrivate::~ServiceManagerPrivate() + { } -} -void ServiceManagerPrivate::loadServiceLibs() -{ - ///\todo: make shure that librareis are founded. - auto end = servicesLoaderMap.end(); - for(auto slm = servicesLoaderMap.begin(); slm !=end; slm++ ){ - try{ - ServiceFactory* factory=((*slm).second->getFactory()); - servicesMap[factory->serviceName()] = factory;//do not write to map if there's an error. - }catch (std::runtime_error& e){ - BROWSER_LOGD(e.what() ); - } + void ServiceManagerPrivate::findServiceLibs() + { + try { + boost::filesystem::path servicesDir(boost::any_cast < std::string > + (tizen_browser::config::Config:: + getInstance(). + get("services/dir"))); + for (boost::filesystem::directory_iterator it(servicesDir); + it != boost::filesystem::directory_iterator(); ++it) { + boost::filesystem::path item(*it); + if (boost::filesystem::is_regular_file(item)) { + if ((item.extension().string() == ".so") + && (item.filename().string().find("lib") == 0)) { + try { + servicesLoaderMap[item.string()] = + std::shared_ptr < ServiceLoader > + (new ServiceLoader(item.string())); + } + catch(std::runtime_error & e) { + BROWSER_LOGD(e.what()); + } + } + } + } + } + catch(const boost::filesystem::filesystem_error & ex) + { + BROWSER_LOGD(ex.what()); + } } -} -void ServiceManagerPrivate::enumerateServices(){ - auto end = servicesMap.end(); - for( auto sm = servicesMap.begin(); sm != end; sm++){ - BROWSER_LOGD("%s:%p", (*sm).first.c_str(), (*sm).second ); + void ServiceManagerPrivate::loadServiceLibs() + { + ///\todo: make shure that librareis are founded. + auto end = servicesLoaderMap.end(); + for (auto slm = servicesLoaderMap.begin(); slm != end; slm++) { + try { + ServiceFactory *factory = ((*slm).second->getFactory()); + servicesMap[factory->serviceName()] = factory; //do not write to map if there's an error. + } + catch(std::runtime_error & e) { + BROWSER_LOGD(e.what()); + } + } } -} -ServiceManager::ServiceManager() - :d(new ServiceManagerPrivate) -{ + void ServiceManagerPrivate::enumerateServices() + { + auto end = servicesMap.end(); + for (auto sm = servicesMap.begin(); sm != end; sm++) { + BROWSER_LOGD("%s:%p", (*sm).first.c_str(), (*sm).second); + } + } -} + ServiceManager::ServiceManager() + : d(new ServiceManagerPrivate) { + } -ServiceManager& ServiceManager::getInstance(void) -{ - static ServiceManager instance; - return instance; -} + ServiceManager & ServiceManager::getInstance(void) + { + static ServiceManager instance; + return instance; + } -std::shared_ptr< AbstractService > ServiceManager::getService(const std::string& service) -{ - static std::unordered_map> cache; - static std::mutex mut; + std::shared_ptr < AbstractService > + ServiceManager::getService(const std::string & service) { + static std::unordered_map < std::string, + std::shared_ptr < AbstractService >> cache; + static std::mutex mut; - std::lock_guard hold(mut); - auto sp = cache[service]; + std::lock_guard < std::mutex > hold(mut); + auto sp = cache[service]; - if(!sp){ - cache[service] = sp = std::shared_ptr(d->servicesMap[service]->create()); + if (!sp) { + cache[service] = sp = + std::shared_ptr < AbstractService > + (d->servicesMap[service]->create()); + } + return sp; } - return sp; -} -} /* end of namespace core */ -} /* end of namespace tizen_browser */ + } /* end of namespace core */ +} /* end of namespace tizen_browser */ diff --git a/core/ServiceManager/ServiceManager.h b/core/ServiceManager/ServiceManager.h old mode 100644 new mode 100755 diff --git a/core/ServiceManager/ServiceManager_p.h b/core/ServiceManager/ServiceManager_p.h old mode 100644 new mode 100755 diff --git a/core/ServiceManager/service_macros.h b/core/ServiceManager/service_macros.h old mode 100644 new mode 100755 index ea1a0481..b4c794d1 --- a/core/ServiceManager/service_macros.h +++ b/core/ServiceManager/service_macros.h @@ -48,11 +48,11 @@ #endif #ifndef EXTERN_C -# ifdef __cplusplus -# define EXTERN_C extern "C" -# else -# define EXTERN_C extern -# endif +#ifdef __cplusplus +#define EXTERN_C extern "C" +#else +#define EXTERN_C extern +#endif #endif @@ -73,15 +73,15 @@ return reinterpret_cast(&_instance); \ } -#define SERVICE_STRING_INSTANCE(IMPLCLASS,SERVICEIFACE) \ +#define SERVICE_STRING_INSTANCE(IMPLCLASS, SERVICEIFACE) \ inline std::string IMPLCLASS::getName(){return std::string(SERVICEIFACE);} #define FACTORY_NAME(name) name ## Factory -#define EXPORT_SERVICE(SERVICECLASS,SERVICE_STRING) \ +#define EXPORT_SERVICE(SERVICECLASS, SERVICE_STRING) \ SERVICE_FACTORY(FACTORY_NAME(SERVICECLASS), SERVICECLASS, SERVICE_STRING) \ SERVICE_INSTANCE(FACTORY_NAME(SERVICECLASS)) \ - SERVICE_STRING_INSTANCE(SERVICECLASS,SERVICE_STRING) + SERVICE_STRING_INSTANCE(SERVICECLASS, SERVICE_STRING) #endif // __SERVICE_MACROS_H__ diff --git a/core/Tools/Blob.cpp b/core/Tools/Blob.cpp index 6df45ada..d28c831a 100755 --- a/core/Tools/Blob.cpp +++ b/core/Tools/Blob.cpp @@ -45,11 +45,11 @@ Blob::Blob(const void* ptr, unsigned long long length) : m_length(length) { m_data = malloc(length); - if(!m_data && length > 0) { + if (!m_data && length > 0) { BROWSER_LOGE("%s - Failed to allocate %d bytes", length); throw std::bad_alloc(); } - if(m_data) + if (m_data) memcpy(m_data, ptr, length); } diff --git a/core/Tools/Blob.h b/core/Tools/Blob.h old mode 100644 new mode 100755 diff --git a/core/Tools/BookmarkFolder.cpp b/core/Tools/BookmarkFolder.cpp old mode 100644 new mode 100755 diff --git a/core/Tools/BookmarkFolder.h b/core/Tools/BookmarkFolder.h old mode 100644 new mode 100755 index 3c3f3094..a9448be4 --- a/core/Tools/BookmarkFolder.h +++ b/core/Tools/BookmarkFolder.h @@ -38,8 +38,7 @@ public: BookmarkFolder( unsigned int id, const std::string& name, - unsigned int count - ); + unsigned int count); virtual ~BookmarkFolder(); void setId(int id) { m_id = id; }; diff --git a/core/Tools/BookmarkItem.cpp b/core/Tools/BookmarkItem.cpp old mode 100644 new mode 100755 index c801ad98..2db32d05 --- a/core/Tools/BookmarkItem.cpp +++ b/core/Tools/BookmarkItem.cpp @@ -55,7 +55,6 @@ BookmarkItem::BookmarkItem( , m_note(note) , m_directory(dir) { - } BookmarkItem::~BookmarkItem() @@ -79,7 +78,6 @@ void BookmarkItem::setThumbnail(std::shared_ptr BookmarkItem::getThumbnail() const { - return m_thumbnail; }; diff --git a/core/Tools/BookmarkItem.h b/core/Tools/BookmarkItem.h old mode 100644 new mode 100755 index a5bca8ef..709e8f66 --- a/core/Tools/BookmarkItem.h +++ b/core/Tools/BookmarkItem.h @@ -38,8 +38,7 @@ public: const std::string& title, const std::string& note, unsigned int dir = 0, - unsigned int id = 0 - ); + unsigned int id = 0); virtual ~BookmarkItem(); void setAddress(const std::string & url) { m_url = url; }; diff --git a/core/Tools/BrowserImage.cpp b/core/Tools/BrowserImage.cpp old mode 100644 new mode 100755 index df9f027a..f3292177 --- a/core/Tools/BrowserImage.cpp +++ b/core/Tools/BrowserImage.cpp @@ -146,7 +146,7 @@ Evas_Object* BrowserImage::getEvas(Evas_Object* parent) const Evas_Object* BrowserImage::getPng(Evas_Object * parent) const { - if(m_dataSize && m_imageData && m_imageType == ImageType::ImageTypePNG) { + if (m_dataSize && m_imageData && m_imageType == ImageType::ImageTypePNG) { Evas * e = evas_object_evas_get(parent); Evas_Object * image = evas_object_image_filled_add(e); char png_format[] = "png"; diff --git a/core/Tools/BrowserImage.h b/core/Tools/BrowserImage.h old mode 100644 new mode 100755 diff --git a/core/Tools/BrowserImageTypedef.h b/core/Tools/BrowserImageTypedef.h old mode 100644 new mode 100755 diff --git a/core/Tools/CapiWebErrorCodes.cpp b/core/Tools/CapiWebErrorCodes.cpp old mode 100644 new mode 100755 diff --git a/core/Tools/CapiWebErrorCodes.h b/core/Tools/CapiWebErrorCodes.h old mode 100644 new mode 100755 diff --git a/core/Tools/EcoreTimerCaller.h b/core/Tools/EcoreTimerCaller.h old mode 100644 new mode 100755 diff --git a/core/Tools/EflTools.cpp b/core/Tools/EflTools.cpp old mode 100644 new mode 100755 diff --git a/core/Tools/EflTools.h b/core/Tools/EflTools.h old mode 100644 new mode 100755 diff --git a/core/Tools/FeedChannel.cpp b/core/Tools/FeedChannel.cpp old mode 100644 new mode 100755 diff --git a/core/Tools/FeedChannel.h b/core/Tools/FeedChannel.h old mode 100644 new mode 100755 diff --git a/core/Tools/FeedItem.cpp b/core/Tools/FeedItem.cpp old mode 100644 new mode 100755 diff --git a/core/Tools/FeedItem.h b/core/Tools/FeedItem.h old mode 100644 new mode 100755 diff --git a/core/Tools/FocusManager.cpp b/core/Tools/FocusManager.cpp old mode 100644 new mode 100755 index 3d1c7b8d..a7bc6cf1 --- a/core/Tools/FocusManager.cpp +++ b/core/Tools/FocusManager.cpp @@ -67,8 +67,7 @@ Eina_Bool FocusManager::_key_down_cb(void* data, int, void* event) --(fm->focusListIterator); elm_object_focus_set(*(fm->focusListIterator), EINA_TRUE); return EINA_TRUE; - } - else if (!keyName.compare("Down")) { + } else if (!keyName.compare("Down")) { BROWSER_LOGD("[%s:%d] Keyname: %s", __PRETTY_FUNCTION__, __LINE__, ev->keyname); if (fm->focusListIterator == fm->verticalFocusVector.end()-1) { elm_object_focus_set(*(fm->focusListIterator), EINA_TRUE); diff --git a/core/Tools/FocusManager.h b/core/Tools/FocusManager.h old mode 100644 new mode 100755 diff --git a/core/Tools/GeneralTools.h b/core/Tools/GeneralTools.h old mode 100644 new mode 100755 index f0b29176..9ff16d99 --- a/core/Tools/GeneralTools.h +++ b/core/Tools/GeneralTools.h @@ -23,34 +23,41 @@ namespace tizen_browser { -namespace tools -{ + namespace tools + { static const int SUFIX_CHAR_DEL = 1; - static const char * PROTCOL_BEGIN = "://"; + static const char *PROTCOL_BEGIN = "://"; static const char END_SLASH = '/'; // which protocol, when only domain is available? static const std::string PROTOCOL_DEFAULT("http://"); // declaration using 'unused' attribute because in some modules not all functions are used - static std::string fromChar(const char* c) __attribute__ ((unused)); - static std::string clearURL(const std::string & url) __attribute__ ((unused)); - static std::string extractDomain(const std::string & url) __attribute__ ((unused)); - - static std::string fromChar(const char* c) { return c ? std::string(c) : std::string(); } + static std::string fromChar(const char *c) __attribute__((unused)); + static std::string clearURL(const std::string & url) + __attribute__((unused)); + static std::string extractDomain(const std::string & url) + __attribute__((unused)); + + static std::string fromChar(const char *c) + { + return c ? std::string(c) : std::string(); + } - static std::string clearURL(const std::string & url) { - size_t beg = url.find(PROTCOL_BEGIN); + static std::string clearURL(const std::string & url) + { + size_t beg = url.find(PROTCOL_BEGIN); beg += strlen(PROTCOL_BEGIN); return url.substr(beg, url.size() - beg - SUFIX_CHAR_DEL); } - static std::string extractDomain(const std::string & url) { - size_t beg = url.find(PROTCOL_BEGIN); - beg += strlen(PROTCOL_BEGIN); - size_t end = url.find(END_SLASH, beg); - return url.substr(beg, end - beg); + static std::string extractDomain(const std::string & url) + { + size_t beg = url.find(PROTCOL_BEGIN); + beg += strlen(PROTCOL_BEGIN); + size_t end = url.find(END_SLASH, beg); + return url.substr(beg, end - beg); } -} + } } #endif diff --git a/core/Tools/SnapshotType.h b/core/Tools/SnapshotType.h old mode 100644 new mode 100755 diff --git a/core/Tools/StringTools.cpp b/core/Tools/StringTools.cpp old mode 100644 new mode 100755 diff --git a/core/Tools/StringTools.h b/core/Tools/StringTools.h old mode 100644 new mode 100755 diff --git a/core/Tools/URIschemes.h b/core/Tools/URIschemes.h old mode 100644 new mode 100755 diff --git a/core/Tools/WorkQueue.h b/core/Tools/WorkQueue.h old mode 100644 new mode 100755 diff --git a/core/main.cpp b/core/main.cpp index 8aae1ff8..0810b1a8 100755 --- a/core/main.cpp +++ b/core/main.cpp @@ -45,198 +45,273 @@ const char *engineCommandLineFlags[] = { }; ///\note Odroid platform modification -const std::string DEFAULT_URL = ""; -const std::string DEFAULT_CALLER = "org.tizen.homescreen-efl"; -const int WEB_INSPECTOR_PORT = 9222; - -using BrowserDataPtr = std::shared_ptr>; +const + std::string + DEFAULT_URL = ""; +const + std::string + DEFAULT_CALLER = "org.tizen.homescreen-efl"; +const int + WEB_INSPECTOR_PORT = 9222; + +using + BrowserDataPtr = + std::shared_ptr < tizen_browser::base_ui::AbstractMainWindow < + Evas_Object >>; #if WEB_INSPECTOR -static void start_webInspectorServer() +static void +start_webInspectorServer() { - Ewk_Context *context = ewk_context_default_get(); - unsigned int port = ewk_context_inspector_server_start(context, WEB_INSPECTOR_PORT); - if (port == 0) - BROWSER_LOGI("Failed to start WebInspector Server"); - else - BROWSER_LOGI("WebInspector server started at port: %d \n", port); + Ewk_Context * + context = ewk_context_default_get(); + unsigned int + port = ewk_context_inspector_server_start(context, WEB_INSPECTOR_PORT); + if (port == 0) + BROWSER_LOGI("Failed to start WebInspector Server"); + else + BROWSER_LOGI("WebInspector server started at port: %d \n", port); } #endif -static void set_arguments(char **argv) +static void +set_arguments(char **argv) { - std::vector browser_argv; - browser_argv.push_back(argv[0]); - for (auto arg: engineCommandLineFlags) - browser_argv.push_back(const_cast(arg)); + std::vector < char *> + browser_argv; + browser_argv.push_back(argv[0]); +for (auto arg:engineCommandLineFlags) + browser_argv.push_back(const_cast < char *>(arg)); - ewk_set_arguments(browser_argv.size(), browser_argv.data()); + ewk_set_arguments(browser_argv.size(), browser_argv.data()); } -static bool app_create(void* app_data) +static bool +app_create(void *app_data) { - elm_config_accel_preference_set("opengl:depth24:stencil8"); + elm_config_accel_preference_set("opengl:depth24:stencil8"); - elm_config_focus_move_policy_set(ELM_FOCUS_MOVE_POLICY_CLICK); - // Enabling focus + elm_config_focus_move_policy_set(ELM_FOCUS_MOVE_POLICY_CLICK); + // Enabling focus #if PROFILE_MOBILE - elm_config_focus_highlight_enabled_set(EINA_FALSE); + elm_config_focus_highlight_enabled_set(EINA_FALSE); #else - elm_config_focus_highlight_enabled_set(EINA_TRUE); + elm_config_focus_highlight_enabled_set(EINA_TRUE); #endif - elm_config_cache_flush_enabled_set(boost::any_cast (tizen_browser::config::Config::getInstance().get(CONFIG_KEY::CACHE_ENABLE_VALUE))); - elm_config_cache_flush_interval_set(boost::any_cast (tizen_browser::config::Config::getInstance().get(CONFIG_KEY::CACHE_INTERVAL_VALUE))); - elm_config_cache_font_cache_size_set(boost::any_cast (tizen_browser::config::Config::getInstance().get(CONFIG_KEY::CACHE_INTERVAL_VALUE))); - elm_config_cache_image_cache_size_set(boost::any_cast (tizen_browser::config::Config::getInstance().get(CONFIG_KEY::CACHE_IMAGE_VALUE))); - - auto bd = static_cast(app_data); - *bd = std::dynamic_pointer_cast - < - tizen_browser::base_ui::AbstractMainWindow, - tizen_browser::core::AbstractService - > - (tizen_browser::core::ServiceManager::getInstance().getService("org.tizen.browser.simpleui")); - elm_app_base_scale_set(boost::any_cast(tizen_browser::config::Config::getInstance().get("scale"))); - return true; + elm_config_cache_flush_enabled_set(boost::any_cast < Eina_Bool > + (tizen_browser::config::Config:: + getInstance(). + get(CONFIG_KEY::CACHE_ENABLE_VALUE))); + elm_config_cache_flush_interval_set(boost::any_cast < + int >(tizen_browser::config::Config:: + getInstance(). + get(CONFIG_KEY:: + CACHE_INTERVAL_VALUE))); + elm_config_cache_font_cache_size_set(boost::any_cast < + int >(tizen_browser::config::Config:: + getInstance(). + get(CONFIG_KEY:: + CACHE_INTERVAL_VALUE))); + elm_config_cache_image_cache_size_set(boost::any_cast < + int >(tizen_browser::config::Config:: + getInstance(). + get(CONFIG_KEY:: + CACHE_IMAGE_VALUE))); + + auto + bd = static_cast < BrowserDataPtr * >(app_data); + *bd = std::dynamic_pointer_cast + < + tizen_browser::base_ui::AbstractMainWindow < Evas_Object >, + tizen_browser::core::AbstractService + > + (tizen_browser::core::ServiceManager::getInstance(). + getService("org.tizen.browser.simpleui")); + elm_app_base_scale_set(boost::any_cast < + double >(tizen_browser::config::Config:: + getInstance().get("scale"))); + return true; } -static void app_terminate(void* app_data) +static void +app_terminate(void *app_data) { - BROWSER_LOGD("%s\n", __func__); - auto bd = static_cast(app_data); - (*bd)->destroyUI(); + BROWSER_LOGD("%s\n", __func__); + auto + bd = static_cast < BrowserDataPtr * >(app_data); + (*bd)->destroyUI(); } -static void app_control(app_control_h app_control, void* app_data){ - /* to test this functionality please use aul_test command on target: - * $aul_test org.tizen.browser __APP_SVC_URI__ - */ - BROWSER_LOGD("%s\n", __func__); - - char *operation = NULL; - char *request_uri = NULL; - char *request_mime_type = NULL; - char *request_caller = NULL; - - if (app_control_get_operation(app_control, &operation) != APP_CONTROL_ERROR_NONE) { - BROWSER_LOGD("get app_control operation failed"); - return; - } - - if (app_control_get_uri(app_control, &request_uri) != APP_CONTROL_ERROR_NONE) - BROWSER_LOGD("get app_control uri failed"); - - if (app_control_get_mime(app_control, &request_mime_type) != APP_CONTROL_ERROR_NONE) - BROWSER_LOGD("get app_control mime failed"); - - if (app_control_get_caller(app_control, &request_caller) != APP_CONTROL_ERROR_NONE) - BROWSER_LOGD("get app_control caller failed"); - - BROWSER_LOGD("operation = [%s], request_uri = [%s], request_caller = [%s] request_mime_type = [%s]" - , operation, request_uri, request_caller, request_mime_type); - - std::string uri = request_uri != NULL ? std::string(request_uri) : DEFAULT_URL; - std::string caller = request_caller != NULL ? std::string(request_caller) : DEFAULT_CALLER; - - if((operation && !strcmp(operation, "http://tizen.org/appcontrol/operation/view")) && (request_uri != NULL)) { - if (request_uri) { - if (!strncmp(request_uri, "/opt/", strlen("/opt/"))) { - uri = std::string("file://") + uri; - } - } +static void +app_control(app_control_h app_control, void *app_data) +{ + /* to test this functionality please use aul_test command on target: + * $aul_test org.tizen.browser __APP_SVC_URI__ + */ + BROWSER_LOGD("%s\n", __func__); + + char * + operation = NULL; + char * + request_uri = NULL; + char * + request_mime_type = NULL; + char * + request_caller = NULL; + + if (app_control_get_operation(app_control, &operation) != + APP_CONTROL_ERROR_NONE) { + BROWSER_LOGD("get app_control operation failed"); + return; + } + + if (app_control_get_uri(app_control, &request_uri) != + APP_CONTROL_ERROR_NONE) + BROWSER_LOGD("get app_control uri failed"); + + if (app_control_get_mime(app_control, &request_mime_type) != + APP_CONTROL_ERROR_NONE) + BROWSER_LOGD("get app_control mime failed"); + + if (app_control_get_caller(app_control, &request_caller) != + APP_CONTROL_ERROR_NONE) + BROWSER_LOGD("get app_control caller failed"); + + BROWSER_LOGD + ("operation = [%s], request_uri = [%s], request_caller = [%s] request_mime_type = [%s]", + operation, request_uri, request_caller, request_mime_type); + + std::string uri = + request_uri != NULL ? std::string(request_uri) : DEFAULT_URL; + std::string caller = + request_caller != NULL ? std::string(request_caller) : DEFAULT_CALLER; + + if ((operation + && !strcmp(operation, "http://tizen.org/appcontrol/operation/view")) + && (request_uri != NULL)) { + if (request_uri) { + if (!strncmp(request_uri, "/opt/", strlen("/opt/"))) { + uri = std::string("file://") + uri; + } } - - BROWSER_LOGD("[%s] uri=%s", __func__, uri.c_str()); - free(request_uri); - free(request_mime_type); - free(request_caller); - free(operation); - - auto bd = static_cast(app_data); - (*bd)->exec(uri, caller); - evas_object_show((*bd)->getMainWindow().get()); - elm_win_activate((*bd)->getMainWindow().get()); + } + + BROWSER_LOGD("[%s] uri=%s", __func__, uri.c_str()); + free(request_uri); + free(request_mime_type); + free(request_caller); + free(operation); + + auto + bd = static_cast < BrowserDataPtr * >(app_data); + (*bd)->exec(uri, caller); + evas_object_show((*bd)->getMainWindow().get()); + elm_win_activate((*bd)->getMainWindow().get()); } -static void app_pause(void* app_data){ - BROWSER_LOGD("%s", __PRETTY_FUNCTION__); +static void +app_pause(void *app_data) +{ + BROWSER_LOGD("%s", __PRETTY_FUNCTION__); - auto bd = static_cast(app_data); - (*bd)->suspend(); + auto + bd = static_cast < BrowserDataPtr * >(app_data); + (*bd)->suspend(); } -static void app_resume(void* app_data){ - BROWSER_LOGD("%s", __PRETTY_FUNCTION__); +static void +app_resume(void *app_data) +{ + BROWSER_LOGD("%s", __PRETTY_FUNCTION__); - auto bd = static_cast(app_data); - (*bd)->resume(); + auto + bd = static_cast < BrowserDataPtr * >(app_data); + (*bd)->resume(); } #if PROFILE_MOBILE -static void app_language_changed(app_event_info*, void *) +static void +app_language_changed(app_event_info *, void *) { - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - char *language; - // Retrieve the current system language - system_settings_get_value_string(SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE, &language); - if (language) { - BROWSER_LOGD("[%s:%d] new lang: %s", __PRETTY_FUNCTION__, __LINE__, language); - // Set the language in elementary - elm_language_set(language); - free(language); - } else { - BROWSER_LOGD("[%s:%d] Warning, failed to set new language!", __PRETTY_FUNCTION__, __LINE__); - } + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + char * + language; + // Retrieve the current system language + system_settings_get_value_string(SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE, + &language); + if (language) { + BROWSER_LOGD("[%s:%d] new lang: %s", __PRETTY_FUNCTION__, __LINE__, + language); + // Set the language in elementary + elm_language_set(language); + free(language); + } else { + BROWSER_LOGD("[%s:%d] Warning, failed to set new language!", + __PRETTY_FUNCTION__, __LINE__); + } } #endif -int main(int argc, char* argv[])try +int +main(int argc, char *argv[]) + try { - BEGIN() + BEGIN() ewk_init(); - set_arguments(argv); + set_arguments(argv); //#if !defined(NDEBUG) - //Initialization of logger module - tizen_browser::logger::Logger::getInstance().init(); - tizen_browser::logger::Logger::getInstance().setLogTag("browser"); + //Initialization of logger module + tizen_browser::logger::Logger::getInstance().init(); + tizen_browser::logger::Logger::getInstance().setLogTag("browser"); //#endif - BROWSER_LOGD("BROWSER IS SAYING HELLO"); - BROWSER_LOGD("BROWSER TAG: %s",tizen_browser::logger::Logger::getInstance().getLogTag().c_str()); - BROWSER_LOGD("BROWSER REGISTERED LOGGERS COUNT: %d",tizen_browser::logger::Logger::getInstance().getLoggersCount()); + BROWSER_LOGD("BROWSER IS SAYING HELLO"); + BROWSER_LOGD("BROWSER TAG: %s", + tizen_browser::logger::Logger::getInstance().getLogTag(). + c_str()); + BROWSER_LOGD("BROWSER REGISTERED LOGGERS COUNT: %d", + tizen_browser::logger::Logger::getInstance(). + getLoggersCount()); - setenv("COREGL_FASTPATH", "1", 1); + setenv("COREGL_FASTPATH", "1", 1); - ui_app_lifecycle_callback_s ops; - memset(&ops, 0x00, sizeof(ui_app_lifecycle_callback_s)); + ui_app_lifecycle_callback_s + ops; + memset(&ops, 0x00, sizeof(ui_app_lifecycle_callback_s)); - ops.create = app_create; - ops.terminate = app_terminate; - ops.app_control = app_control; - ops.pause = app_pause; - ops.resume = app_resume; + ops.create = app_create; + ops.terminate = app_terminate; + ops.app_control = app_control; + ops.pause = app_pause; + ops.resume = app_resume; - BrowserDataPtr bd; + BrowserDataPtr + bd; #if PROFILE_MOBILE - app_event_handler_h lang_changed_handler; - ui_app_add_event_handler(&lang_changed_handler, APP_EVENT_LANGUAGE_CHANGED, app_language_changed, NULL); + app_event_handler_h + lang_changed_handler; + ui_app_add_event_handler(&lang_changed_handler, APP_EVENT_LANGUAGE_CHANGED, + app_language_changed, NULL); #endif #if WEB_INSPECTOR - start_webInspectorServer(); + start_webInspectorServer(); #endif - ui_app_main(argc, argv, &ops, &bd); + ui_app_main(argc, argv, &ops, &bd); - ewk_shutdown(); - END() + ewk_shutdown(); + END() +} -} catch (std::exception & e) +catch(std::exception & e) { - std::cerr << "UNHANDLED EXCEPTION " << e.what() << std::endl; -} catch (...) + std::cerr << "UNHANDLED EXCEPTION " << e.what() << std::endl; +} + +catch( ...) { - std::cerr << "UNHANDLED EXCEPTION" << std::endl; + std::cerr << "UNHANDLED EXCEPTION" << std::endl; } diff --git a/packaging/org.tizen.browser.spec b/packaging/org.tizen.browser.spec index 7c349d6f..f18ccb1d 100755 --- a/packaging/org.tizen.browser.spec +++ b/packaging/org.tizen.browser.spec @@ -2,7 +2,7 @@ Name: org.tizen.browser-profile_common Summary: Tizen TV Open Browser -Version: 1.6.4 +Version: 1.6.5 Release: 0 Provides: org.tizen.browser = %{version}-%{release} Conflicts: org.tizen.browser-profile_mobile diff --git a/services/BookmarkDetailsUI/BookmarkDetailsUI.cpp b/services/BookmarkDetailsUI/BookmarkDetailsUI.cpp old mode 100644 new mode 100755 index 7562cf15..c5ab19ae --- a/services/BookmarkDetailsUI/BookmarkDetailsUI.cpp +++ b/services/BookmarkDetailsUI/BookmarkDetailsUI.cpp @@ -33,636 +33,765 @@ #include "Tools/EflTools.h" #include "../Tools/BrowserImage.h" -namespace tizen_browser { -namespace base_ui { +namespace tizen_browser +{ + namespace base_ui + { -EXPORT_SERVICE(BookmarkDetailsUI, "org.tizen.browser.bookmarkdetailsui") + EXPORT_SERVICE(BookmarkDetailsUI, "org.tizen.browser.bookmarkdetailsui") -struct ItemData -{ - tizen_browser::base_ui::BookmarkDetailsUI * m_bookmarkDetails; - tizen_browser::services::BookmarkItem * h_item; - Elm_Object_Item * e_item; -}; + struct ItemData + { + tizen_browser::base_ui::BookmarkDetailsUI * m_bookmarkDetails; + tizen_browser::services::BookmarkItem * h_item; + Elm_Object_Item *e_item; + }; -typedef struct -{ - std::shared_ptr item; - BookmarkDetailsUI* bookmarkDetailsUI; -} BookmarkItemData; + typedef struct + { + std::shared_ptr < tizen_browser::services::BookmarkItem > item; + BookmarkDetailsUI *bookmarkDetailsUI; + } BookmarkItemData; -BookmarkDetailsUI::BookmarkDetailsUI() + BookmarkDetailsUI::BookmarkDetailsUI() : m_parent(nullptr) - , m_layout(nullptr) - , m_top_content(nullptr) - , m_gengrid(nullptr) + , m_layout(nullptr) + , m_top_content(nullptr) + , m_gengrid(nullptr) #if !PROFILE_MOBILE - , m_bottom_content(nullptr) + , m_bottom_content(nullptr) #else - , m_more_button(nullptr) - , m_menu_bg_button(nullptr) - , m_menu(nullptr) - , m_edit_button(nullptr) - , m_delete_button(nullptr) - , m_remove_button(nullptr) - , m_cancel_top_button(nullptr) - , m_remove_top_button(nullptr) - , m_delete_count(0) - , m_remove_bookmark_mode(false) + , m_more_button(nullptr) + , m_menu_bg_button(nullptr) + , m_menu(nullptr) + , m_edit_button(nullptr) + , m_delete_button(nullptr) + , m_remove_button(nullptr) + , m_cancel_top_button(nullptr) + , m_remove_top_button(nullptr) + , m_delete_count(0) + , m_remove_bookmark_mode(false) #endif - , m_close_button(nullptr) - , m_bookmark_item_class(nullptr) - , m_rotation_state(0) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - - m_edjFilePath = EDJE_DIR; - m_edjFilePath.append("BookmarkDetailsUI/BookmarkDetailsUI.edj"); - elm_theme_extension_add(nullptr, m_edjFilePath.c_str()); - createGengridItemClasses(); -} + , m_close_button(nullptr) + , m_bookmark_item_class(nullptr) + , m_rotation_state(0) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + + m_edjFilePath = EDJE_DIR; + m_edjFilePath.append("BookmarkDetailsUI/BookmarkDetailsUI.edj"); + elm_theme_extension_add(nullptr, m_edjFilePath.c_str()); + createGengridItemClasses(); + } -BookmarkDetailsUI::~BookmarkDetailsUI() -{ - elm_gengrid_clear(m_gengrid); + BookmarkDetailsUI::~BookmarkDetailsUI() + { + elm_gengrid_clear(m_gengrid); - evas_object_smart_callback_del(m_close_button, "clicked", _close_button_clicked); + evas_object_smart_callback_del(m_close_button, "clicked", + _close_button_clicked); #if PROFILE_MOBILE - evas_object_smart_callback_del(m_more_button, "clicked", _more_button_clicked); - evas_object_smart_callback_del(m_menu_bg_button, "clicked", _menu_bg_button_clicked); - evas_object_smart_callback_del(m_edit_button, "clicked", _edit_button_clicked); - evas_object_smart_callback_del(m_delete_button, "clicked", _delete_button_clicked); - evas_object_smart_callback_del(m_remove_button, "clicked", _remove_button_clicked); - evas_object_smart_callback_del(m_cancel_top_button, "clicked", _cancel_top_button_clicked); - evas_object_smart_callback_del(m_remove_top_button, "clicked", _remove_top_button_clicked); + evas_object_smart_callback_del(m_more_button, "clicked", + _more_button_clicked); + evas_object_smart_callback_del(m_menu_bg_button, "clicked", + _menu_bg_button_clicked); + evas_object_smart_callback_del(m_edit_button, "clicked", + _edit_button_clicked); + evas_object_smart_callback_del(m_delete_button, "clicked", + _delete_button_clicked); + evas_object_smart_callback_del(m_remove_button, "clicked", + _remove_button_clicked); + evas_object_smart_callback_del(m_cancel_top_button, "clicked", + _cancel_top_button_clicked); + evas_object_smart_callback_del(m_remove_top_button, "clicked", + _remove_top_button_clicked); #endif - evas_object_del(m_top_content); - evas_object_del(m_close_button); - evas_object_del(m_layout); - evas_object_del(m_gengrid); + evas_object_del(m_top_content); + evas_object_del(m_close_button); + evas_object_del(m_layout); + evas_object_del(m_gengrid); #if PROFILE_MOBILE - evas_object_del(m_more_button); - evas_object_del(m_menu_bg_button); - evas_object_del(m_menu); - evas_object_del(m_edit_button); - evas_object_del(m_delete_button); - evas_object_del(m_remove_button); - evas_object_del(m_cancel_top_button); - evas_object_del(m_remove_top_button); + evas_object_del(m_more_button); + evas_object_del(m_menu_bg_button); + evas_object_del(m_menu); + evas_object_del(m_edit_button); + evas_object_del(m_delete_button); + evas_object_del(m_remove_button); + evas_object_del(m_cancel_top_button); + evas_object_del(m_remove_top_button); #endif - if (m_bookmark_item_class) - elm_gengrid_item_class_free(m_bookmark_item_class); -} + if (m_bookmark_item_class) + elm_gengrid_item_class_free(m_bookmark_item_class); + } -void BookmarkDetailsUI::createGengridItemClasses() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - m_bookmark_item_class = elm_gengrid_item_class_new(); - m_bookmark_item_class->item_style = "grid_bookmark_item"; - m_bookmark_item_class->func.text_get = _grid_bookmark_text_get; - m_bookmark_item_class->func.content_get = _grid_bookmark_content_get; - m_bookmark_item_class->func.state_get = nullptr; - m_bookmark_item_class->func.del = _grid_content_delete; -} + void BookmarkDetailsUI::createGengridItemClasses() + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + m_bookmark_item_class = elm_gengrid_item_class_new(); + m_bookmark_item_class->item_style = "grid_bookmark_item"; + m_bookmark_item_class->func.text_get = _grid_bookmark_text_get; + m_bookmark_item_class->func.content_get = _grid_bookmark_content_get; + m_bookmark_item_class->func.state_get = nullptr; + m_bookmark_item_class->func.del = _grid_content_delete; + } -void BookmarkDetailsUI::init(Evas_Object* parent) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - M_ASSERT(parent); - m_parent = parent; -} + void BookmarkDetailsUI::init(Evas_Object * parent) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + M_ASSERT(parent); + m_parent = parent; + } -void BookmarkDetailsUI::showUI() -{ + void BookmarkDetailsUI::showUI() + { #if !PROFILE_MOBILE - m_focusManager.startFocusManager(m_gengrid); + m_focusManager.startFocusManager(m_gengrid); #endif - elm_object_signal_emit(m_layout, "hide_menu", "ui"); + elm_object_signal_emit(m_layout, "hide_menu", "ui"); #if PROFILE_MOBILE - evas_object_hide(m_menu); - evas_object_hide(elm_object_part_content_get(m_layout, "more_swallow")); - evas_object_hide(m_menu_bg_button); - evas_object_hide(elm_object_part_content_get(m_layout, "more_bg")); + evas_object_hide(m_menu); + evas_object_hide(elm_object_part_content_get(m_layout, "more_swallow")); + evas_object_hide(m_menu_bg_button); + evas_object_hide(elm_object_part_content_get(m_layout, "more_bg")); #endif - evas_object_show(m_layout); -} + evas_object_show(m_layout); + } -void BookmarkDetailsUI::hideUI() -{ - evas_object_hide(m_layout); - evas_object_hide(m_gengrid); - elm_gengrid_clear(m_gengrid); + void BookmarkDetailsUI::hideUI() + { + evas_object_hide(m_layout); + evas_object_hide(m_gengrid); + elm_gengrid_clear(m_gengrid); #if PROFILE_MOBILE - elm_object_signal_emit(m_top_content, "icon_less", "ui"); - m_map_bookmark.clear(); + elm_object_signal_emit(m_top_content, "icon_less", "ui"); + m_map_bookmark.clear(); #else - m_focusManager.stopFocusManager(); + m_focusManager.stopFocusManager(); #endif + } -} - -Evas_Object* BookmarkDetailsUI::getContent() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - M_ASSERT(m_parent); - if (!m_layout) - m_layout = createLayout(m_parent); - setEmpty(true); - return m_layout; -} + Evas_Object *BookmarkDetailsUI::getContent() + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + M_ASSERT(m_parent); + if (!m_layout) + m_layout = createLayout(m_parent); + setEmpty(true); + return m_layout; + } -void BookmarkDetailsUI::onBackPressed() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + void BookmarkDetailsUI::onBackPressed() + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); #if PROFILE_MOBILE - if (m_remove_bookmark_mode) { - updateGengridItems(); - resetRemovalMode(); - } + if (m_remove_bookmark_mode) { + updateGengridItems(); + resetRemovalMode(); + } #endif - closeBookmarkDetailsClicked(); -} + closeBookmarkDetailsClicked(); + } #if PROFILE_MOBILE -void BookmarkDetailsUI::setLandscape(bool state) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - m_rotation_state = state ? 0 : 1; - resetContent(); -} + void BookmarkDetailsUI::setLandscape(bool state) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + m_rotation_state = state ? 0 : 1; + resetContent(); + } -void BookmarkDetailsUI::resetContent() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (m_rotation_state) { - elm_gengrid_item_size_set(m_gengrid, ELM_SCALE_SIZE(290+18), ELM_SCALE_SIZE(308+18)); - elm_object_signal_emit(m_layout, "switch_landscape", "ui"); - } else { - elm_gengrid_item_size_set(m_gengrid, ELM_SCALE_SIZE(319+18), ELM_SCALE_SIZE(361+18)); - elm_object_signal_emit(m_layout, "switch_vertical", "ui"); + void BookmarkDetailsUI::resetContent() + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + if (m_rotation_state) { + elm_gengrid_item_size_set(m_gengrid, ELM_SCALE_SIZE(290 + 18), + ELM_SCALE_SIZE(308 + 18)); + elm_object_signal_emit(m_layout, "switch_landscape", "ui"); + } else { + elm_gengrid_item_size_set(m_gengrid, ELM_SCALE_SIZE(319 + 18), + ELM_SCALE_SIZE(361 + 18)); + elm_object_signal_emit(m_layout, "switch_vertical", "ui"); + } } -} #endif -char* BookmarkDetailsUI::_grid_bookmark_text_get(void *data, Evas_Object *, const char *part) -{ - if ((data != nullptr) && (part != nullptr)) { - BROWSER_LOGD("[%s:%d] part=%s", __PRETTY_FUNCTION__, __LINE__, part); - BookmarkItemData *itemData = static_cast(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)) { - return strdup(itemData->item->getTitle().c_str()); - } else if (!strncmp(part_name2, part, part_name2_len)) { - return strdup(itemData->item->getAddress().c_str()); - } + char *BookmarkDetailsUI::_grid_bookmark_text_get(void *data, + Evas_Object *, + const char *part) + { + if ((data != nullptr) && (part != nullptr)) { + BROWSER_LOGD("[%s:%d] part=%s", __PRETTY_FUNCTION__, __LINE__, part); + BookmarkItemData *itemData = static_cast < BookmarkItemData * >(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)) { + return strdup(itemData->item->getTitle().c_str()); + } else if (!strncmp(part_name2, part, part_name2_len)) { + return strdup(itemData->item->getAddress().c_str()); + } + } + return strdup(""); } - return strdup(""); -} -void BookmarkDetailsUI::_grid_content_delete(void *data, Evas_Object */*obj*/) -{ - BROWSER_LOGD("[%s:%d]", __PRETTY_FUNCTION__, __LINE__); - auto itemData = static_cast(data); - if (itemData) - delete itemData; -} + void BookmarkDetailsUI::_grid_content_delete(void *data, + Evas_Object * /*obj */ ) + { + BROWSER_LOGD("[%s:%d]", __PRETTY_FUNCTION__, __LINE__); + auto itemData = static_cast < BookmarkItemData * >(data); + if (itemData) + delete itemData; + } -Evas_Object * BookmarkDetailsUI::_grid_bookmark_content_get(void *data, - Evas_Object *obj, const char *part) -{ - if ((data != nullptr) && (obj != nullptr) && (part != nullptr)) { - BROWSER_LOGD("[%s:%d] part=%s", __PRETTY_FUNCTION__, __LINE__, part); - BookmarkItemData *itemData = static_cast(data); - const char *part_name1 = "elm.thumbnail"; - static const int part_name1_len = strlen(part_name1); - if (!strncmp(part_name1, part, part_name1_len)) { - std::shared_ptr image = itemData->item->getThumbnail(); - if (image) - return image->getEvasImage(itemData->bookmarkDetailsUI->m_parent); - } + Evas_Object *BookmarkDetailsUI::_grid_bookmark_content_get(void *data, + Evas_Object * + obj, + const char + *part) + { + if ((data != nullptr) && (obj != nullptr) && (part != nullptr)) { + BROWSER_LOGD("[%s:%d] part=%s", __PRETTY_FUNCTION__, __LINE__, part); + BookmarkItemData *itemData = static_cast < BookmarkItemData * >(data); + const char *part_name1 = "elm.thumbnail"; + static const int part_name1_len = strlen(part_name1); + if (!strncmp(part_name1, part, part_name1_len)) { + std::shared_ptr < tizen_browser::tools::BrowserImage > image = + itemData->item->getThumbnail(); + if (image) + return image->getEvasImage(itemData->bookmarkDetailsUI->m_parent); + } #if PROFILE_MOBILE - const char *part_name2 = "remove_checkbox_swallow"; - static const int part_name2_len = strlen(part_name2); - if (!strncmp(part_name2, part, part_name2_len)) { - if (itemData->bookmarkDetailsUI->m_remove_bookmark_mode) { - Evas_Object* box = elm_check_add(obj); - elm_object_style_set(box, "custom_check"); - evas_object_propagate_events_set(box, EINA_FALSE); - elm_check_state_set(box, itemData->bookmarkDetailsUI->m_map_delete[itemData->item->getId()] - ? EINA_TRUE : EINA_FALSE); - evas_object_show(box); - return box; - } - } + const char *part_name2 = "remove_checkbox_swallow"; + static const int part_name2_len = strlen(part_name2); + if (!strncmp(part_name2, part, part_name2_len)) { + if (itemData->bookmarkDetailsUI->m_remove_bookmark_mode) { + Evas_Object *box = elm_check_add(obj); + elm_object_style_set(box, "custom_check"); + evas_object_propagate_events_set(box, EINA_FALSE); + elm_check_state_set(box, + itemData->bookmarkDetailsUI-> + m_map_delete[itemData->item->getId()] + ? EINA_TRUE : EINA_FALSE); + evas_object_show(box); + return box; + } + } #endif + } + return nullptr; } - return nullptr; -} -void BookmarkDetailsUI::_bookmark_item_clicked(void* data, Evas_Object*, void*) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (data != nullptr) { - BookmarkItemData * itemData = static_cast(data); + void BookmarkDetailsUI::_bookmark_item_clicked(void *data, Evas_Object *, + void *) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + if (data != nullptr) { + BookmarkItemData *itemData = static_cast < BookmarkItemData * >(data); #if PROFILE_MOBILE - if (itemData->bookmarkDetailsUI->m_remove_bookmark_mode) { - itemData->bookmarkDetailsUI->m_delete_count -= itemData->bookmarkDetailsUI-> - m_map_delete[itemData->item->getId()] ? 1 : -1; - itemData->bookmarkDetailsUI->m_map_delete[itemData->item->getId()] = - !itemData->bookmarkDetailsUI->m_map_delete[itemData->item->getId()]; - elm_object_signal_emit(itemData->bookmarkDetailsUI->m_top_content, itemData-> - bookmarkDetailsUI->m_delete_count ? "removal_mode" : "removal_mode_dissabled", "ui"); - elm_object_part_text_set(itemData->bookmarkDetailsUI->m_top_content, - "title_text", (boost::format("%d %s") % itemData->bookmarkDetailsUI-> - m_delete_count % _("IDS_BR_OPT_SELECTED")).str().c_str()); - elm_gengrid_item_update(itemData->bookmarkDetailsUI-> - m_map_bookmark[itemData->item->getId()]); - elm_gengrid_realized_items_update(itemData->bookmarkDetailsUI->m_gengrid); + if (itemData->bookmarkDetailsUI->m_remove_bookmark_mode) { + itemData->bookmarkDetailsUI->m_delete_count -= + itemData->bookmarkDetailsUI->m_map_delete[itemData->item-> + getId()]? 1 : -1; + itemData->bookmarkDetailsUI->m_map_delete[itemData->item->getId()] = + !itemData->bookmarkDetailsUI->m_map_delete[itemData->item-> + getId()]; + elm_object_signal_emit(itemData->bookmarkDetailsUI->m_top_content, + itemData->bookmarkDetailsUI-> + m_delete_count ? "removal_mode" : + "removal_mode_dissabled", "ui"); + elm_object_part_text_set(itemData->bookmarkDetailsUI->m_top_content, + "title_text", + (boost::format("%d %s") % + itemData-> + bookmarkDetailsUI->m_delete_count % + _("IDS_BR_OPT_SELECTED")).str().c_str()); + elm_gengrid_item_update(itemData-> + bookmarkDetailsUI->m_map_bookmark[itemData-> + item-> + getId()]); + elm_gengrid_realized_items_update(itemData->bookmarkDetailsUI-> + m_gengrid); + } else { + itemData->bookmarkDetailsUI->bookmarkItemClicked(itemData->item); } - else - itemData->bookmarkDetailsUI->bookmarkItemClicked(itemData->item); #else - itemData->bookmarkDetailsUI->bookmarkItemClicked(itemData->item); + itemData->bookmarkDetailsUI->bookmarkItemClicked(itemData->item); #endif - } else - BROWSER_LOGW("[%s] data = nullptr", __PRETTY_FUNCTION__); -} + } else { + BROWSER_LOGW("[%s] data = nullptr", __PRETTY_FUNCTION__); + } + } #if !PROFILE_MOBILE -void BookmarkDetailsUI::createFocusVector() -{ - BROWSER_LOGD("[%s:%d]", __PRETTY_FUNCTION__, __LINE__); - m_focusManager.addItem(m_close_button); - m_focusManager.addItem(m_gengrid); - m_focusManager.setIterator(); -} + void BookmarkDetailsUI::createFocusVector() + { + BROWSER_LOGD("[%s:%d]", __PRETTY_FUNCTION__, __LINE__); + m_focusManager.addItem(m_close_button); + m_focusManager.addItem(m_gengrid); + m_focusManager.setIterator(); + } #endif -void BookmarkDetailsUI::_close_button_clicked(void* data, Evas_Object*, void*) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (data != nullptr) { - BookmarkDetailsUI* bookmarkDetailsUI = static_cast(data); - bookmarkDetailsUI->onBackPressed(); - } else - BROWSER_LOGW("[%s] data = nullptr", __PRETTY_FUNCTION__); -} + void BookmarkDetailsUI::_close_button_clicked(void *data, Evas_Object *, + void *) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + if (data != nullptr) { + BookmarkDetailsUI *bookmarkDetailsUI = + static_cast < BookmarkDetailsUI * >(data); + bookmarkDetailsUI->onBackPressed(); + } else { + BROWSER_LOGW("[%s] data = nullptr", __PRETTY_FUNCTION__); + } + } #if PROFILE_MOBILE -void BookmarkDetailsUI::_more_button_clicked(void* data, Evas_Object*, void*) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (data != nullptr) { - BookmarkDetailsUI* bookmarkDetailsUI = static_cast(data); - if (evas_object_visible_get(bookmarkDetailsUI->m_menu) == EINA_FALSE) { - elm_object_signal_emit(bookmarkDetailsUI->m_layout, "show_menu", "ui"); - elm_object_signal_emit(bookmarkDetailsUI->m_top_content, "icon_more", "ui"); - evas_object_show(bookmarkDetailsUI->m_menu); - evas_object_show(elm_object_part_content_get(bookmarkDetailsUI->m_layout, "more_swallow")); - } else { - elm_object_signal_emit(bookmarkDetailsUI->m_layout, "hide_menu", "ui"); - elm_object_signal_emit(bookmarkDetailsUI->m_top_content, "icon_less", "ui"); - evas_object_hide(bookmarkDetailsUI->m_menu); - evas_object_hide(elm_object_part_content_get(bookmarkDetailsUI->m_layout, "more_swallow")); - } - } else - BROWSER_LOGW("[%s] data = nullptr", __PRETTY_FUNCTION__); -} + void BookmarkDetailsUI::_more_button_clicked(void *data, Evas_Object *, + void *) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + if (data != nullptr) { + BookmarkDetailsUI *bookmarkDetailsUI = + static_cast < BookmarkDetailsUI * >(data); + if (evas_object_visible_get(bookmarkDetailsUI->m_menu) == EINA_FALSE) { + elm_object_signal_emit(bookmarkDetailsUI->m_layout, "show_menu", + "ui"); + elm_object_signal_emit(bookmarkDetailsUI->m_top_content, + "icon_more", "ui"); + evas_object_show(bookmarkDetailsUI->m_menu); + evas_object_show(elm_object_part_content_get + (bookmarkDetailsUI->m_layout, "more_swallow")); + } else { + elm_object_signal_emit(bookmarkDetailsUI->m_layout, "hide_menu", + "ui"); + elm_object_signal_emit(bookmarkDetailsUI->m_top_content, + "icon_less", "ui"); + evas_object_hide(bookmarkDetailsUI->m_menu); + evas_object_hide(elm_object_part_content_get + (bookmarkDetailsUI->m_layout, "more_swallow")); + } + } else { + BROWSER_LOGW("[%s] data = nullptr", __PRETTY_FUNCTION__); + } + } -void BookmarkDetailsUI::_menu_bg_button_clicked(void* data, Evas_Object*, void*) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (data != nullptr) { - BookmarkDetailsUI* bookmarkDetailsUI = static_cast(data); - elm_object_signal_emit(bookmarkDetailsUI->m_top_content, "icon_less", "ui"); - } else - BROWSER_LOGW("[%s] data = nullptr", __PRETTY_FUNCTION__); -} + void BookmarkDetailsUI::_menu_bg_button_clicked(void *data, Evas_Object *, + void *) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + if (data != nullptr) { + BookmarkDetailsUI *bookmarkDetailsUI = + static_cast < BookmarkDetailsUI * >(data); + elm_object_signal_emit(bookmarkDetailsUI->m_top_content, "icon_less", + "ui"); + } else { + BROWSER_LOGW("[%s] data = nullptr", __PRETTY_FUNCTION__); + } + } -void BookmarkDetailsUI::_edit_button_clicked(void* data, Evas_Object*, void*) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (data != nullptr) { - BookmarkDetailsUI* bookmarkDetailsUI = static_cast(data); - bookmarkDetailsUI->editFolderButtonClicked(bookmarkDetailsUI->getFolderName()); - } else - BROWSER_LOGW("[%s] data = nullptr", __PRETTY_FUNCTION__); -} + void BookmarkDetailsUI::_edit_button_clicked(void *data, Evas_Object *, + void *) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + if (data != nullptr) { + BookmarkDetailsUI *bookmarkDetailsUI = + static_cast < BookmarkDetailsUI * >(data); + bookmarkDetailsUI->editFolderButtonClicked(bookmarkDetailsUI-> + getFolderName()); + } else { + BROWSER_LOGW("[%s] data = nullptr", __PRETTY_FUNCTION__); + } + } -void BookmarkDetailsUI::_delete_button_clicked(void* data, Evas_Object*, void*) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (data != nullptr) { - BookmarkDetailsUI* bookmarkDetailsUI = static_cast(data); - bookmarkDetailsUI->deleteFolderButtonClicked(bookmarkDetailsUI->getFolderName()); - } else - BROWSER_LOGW("[%s] data = nullptr", __PRETTY_FUNCTION__); -} + void BookmarkDetailsUI::_delete_button_clicked(void *data, Evas_Object *, + void *) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + if (data != nullptr) { + BookmarkDetailsUI *bookmarkDetailsUI = + static_cast < BookmarkDetailsUI * >(data); + bookmarkDetailsUI->deleteFolderButtonClicked(bookmarkDetailsUI-> + getFolderName()); + } else { + BROWSER_LOGW("[%s] data = nullptr", __PRETTY_FUNCTION__); + } + } -void BookmarkDetailsUI::_remove_button_clicked(void* data, Evas_Object*, void*) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (data != nullptr) { - BookmarkDetailsUI* bookmarkDetailsUI = static_cast(data); - bookmarkDetailsUI->m_map_delete.clear(); - bookmarkDetailsUI->m_remove_bookmark_mode = true; - for (auto it = bookmarkDetailsUI->m_map_bookmark.begin(); it != bookmarkDetailsUI->m_map_bookmark.end(); ++it) - bookmarkDetailsUI->m_map_delete.insert(std::pair(it->first, false)); - elm_gengrid_realized_items_update(bookmarkDetailsUI->m_gengrid); - elm_object_signal_emit(bookmarkDetailsUI->m_top_content, "icon_less", "ui"); - elm_object_signal_emit(bookmarkDetailsUI->m_layout, "hide_menu", "ui"); - elm_object_signal_emit(bookmarkDetailsUI->m_top_content, "removal_mode_dissabled", "ui"); - elm_object_part_text_set(bookmarkDetailsUI->m_top_content, "title_text", (boost::format("%d %s") - % bookmarkDetailsUI->m_delete_count % _("IDS_BR_OPT_SELECTED")).str().c_str()); - evas_object_hide(bookmarkDetailsUI->m_menu); - evas_object_hide(elm_object_part_content_get(bookmarkDetailsUI->m_layout, "more_swallow")); - } else - BROWSER_LOGW("[%s] data = nullptr", __PRETTY_FUNCTION__); -} + void BookmarkDetailsUI::_remove_button_clicked(void *data, Evas_Object *, + void *) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + if (data != nullptr) { + BookmarkDetailsUI *bookmarkDetailsUI = + static_cast < BookmarkDetailsUI * >(data); + bookmarkDetailsUI->m_map_delete.clear(); + bookmarkDetailsUI->m_remove_bookmark_mode = true; + for (auto it = bookmarkDetailsUI->m_map_bookmark.begin(); + it != bookmarkDetailsUI->m_map_bookmark.end(); ++it) + bookmarkDetailsUI->m_map_delete.insert(std::pair < unsigned int, + bool > (it->first, false)); + elm_gengrid_realized_items_update(bookmarkDetailsUI->m_gengrid); + elm_object_signal_emit(bookmarkDetailsUI->m_top_content, "icon_less", + "ui"); + elm_object_signal_emit(bookmarkDetailsUI->m_layout, "hide_menu", + "ui"); + elm_object_signal_emit(bookmarkDetailsUI->m_top_content, + "removal_mode_dissabled", "ui"); + elm_object_part_text_set(bookmarkDetailsUI->m_top_content, + "title_text", (boost::format("%d %s") + % + bookmarkDetailsUI-> + m_delete_count % + _("IDS_BR_OPT_SELECTED")). + str().c_str()); + evas_object_hide(bookmarkDetailsUI->m_menu); + evas_object_hide(elm_object_part_content_get + (bookmarkDetailsUI->m_layout, "more_swallow")); + } else { + BROWSER_LOGW("[%s] data = nullptr", __PRETTY_FUNCTION__); + } + } -void BookmarkDetailsUI::_cancel_top_button_clicked(void* data, Evas_Object*, void*) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (data != nullptr) { - BookmarkDetailsUI* bookmarkDetailsUI = static_cast(data); - bookmarkDetailsUI->updateGengridItems(); - bookmarkDetailsUI->resetRemovalMode(); - } else - BROWSER_LOGW("[%s] data = nullptr", __PRETTY_FUNCTION__); -} + void BookmarkDetailsUI::_cancel_top_button_clicked(void *data, + Evas_Object *, void *) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + if (data != nullptr) { + BookmarkDetailsUI *bookmarkDetailsUI = + static_cast < BookmarkDetailsUI * >(data); + bookmarkDetailsUI->updateGengridItems(); + bookmarkDetailsUI->resetRemovalMode(); + } else { + BROWSER_LOGW("[%s] data = nullptr", __PRETTY_FUNCTION__); + } + } -void BookmarkDetailsUI::_remove_top_button_clicked(void* data, Evas_Object*, void*) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (data != nullptr) { - BookmarkDetailsUI* bookmarkDetailsUI = static_cast(data); - - std::vector> bookmarks; - bookmarks.clear(); - - for (auto it = bookmarkDetailsUI->m_map_delete.begin(); it != bookmarkDetailsUI->m_map_delete.end(); ++it) - if (it->second) { - BookmarkItemData * itemData = static_cast(elm_object_item_data_get( - bookmarkDetailsUI->m_map_bookmark[it->first])); - bookmarks.push_back(itemData->item); - elm_object_item_del(bookmarkDetailsUI->m_map_bookmark[it->first]); - bookmarkDetailsUI->m_map_bookmark.erase(it->first); - } - bookmarkDetailsUI->resetRemovalMode(); - bookmarkDetailsUI->removeFoldersButtonClicked(bookmarks); - } else - BROWSER_LOGW("[%s] data = nullptr", __PRETTY_FUNCTION__); -} + void BookmarkDetailsUI::_remove_top_button_clicked(void *data, + Evas_Object *, void *) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + if (data != nullptr) { + BookmarkDetailsUI *bookmarkDetailsUI = + static_cast < BookmarkDetailsUI * >(data); + + std::vector < std::shared_ptr < services::BookmarkItem >> bookmarks; + bookmarks.clear(); + + for (auto it = bookmarkDetailsUI->m_map_delete.begin(); + it != bookmarkDetailsUI->m_map_delete.end(); ++it) + if (it->second) { + BookmarkItemData *itemData = + static_cast < + BookmarkItemData * + >(elm_object_item_data_get + (bookmarkDetailsUI->m_map_bookmark[it->first])); + bookmarks.push_back(itemData->item); + elm_object_item_del(bookmarkDetailsUI->m_map_bookmark[it->first]); + bookmarkDetailsUI->m_map_bookmark.erase(it->first); + } + bookmarkDetailsUI->resetRemovalMode(); + bookmarkDetailsUI->removeFoldersButtonClicked(bookmarks); + } else { + BROWSER_LOGW("[%s] data = nullptr", __PRETTY_FUNCTION__); + } + } #endif -std::string BookmarkDetailsUI::getFolderName() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - std::string title = elm_object_part_text_get(m_top_content, "title_text"); - auto i = 0; - auto pos = title.find_last_of("("); - return title.substr(i, pos-i); -} + std::string BookmarkDetailsUI::getFolderName() { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + std::string title = + elm_object_part_text_get(m_top_content, "title_text"); + auto i = 0; + auto pos = title.find_last_of("("); + return title.substr(i, pos - i); + } -void BookmarkDetailsUI::setEmpty(bool isEmpty) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (isEmpty) - elm_object_signal_emit(m_layout, "show_no_favorites", "ui"); - else - elm_object_signal_emit(m_layout, "hide_no_favorites", "ui"); -} + void BookmarkDetailsUI::setEmpty(bool isEmpty) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + if (isEmpty) + elm_object_signal_emit(m_layout, "show_no_favorites", "ui"); + else + elm_object_signal_emit(m_layout, "hide_no_favorites", "ui"); + } -void BookmarkDetailsUI::createTopContent() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - m_top_content = elm_layout_add(m_layout); - elm_object_part_content_set(m_layout, "top_content", m_top_content); - evas_object_size_hint_weight_set(m_top_content, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(m_top_content, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_show(m_top_content); - - elm_layout_file_set(m_top_content, m_edjFilePath.c_str(), "top-content"); - - m_close_button = elm_button_add(m_top_content); - elm_object_style_set(m_close_button, "invisible_button"); - evas_object_smart_callback_add(m_close_button, "clicked", _close_button_clicked, this); - evas_object_show(m_close_button); - elm_object_part_content_set(m_top_content, "close_click", m_close_button); - - elm_object_focus_custom_chain_append(m_top_content, m_close_button, nullptr); - elm_object_focus_set(m_close_button, EINA_TRUE); - elm_object_tree_focus_allow_set(m_layout, EINA_TRUE); - elm_object_focus_allow_set(m_close_button, EINA_TRUE); + void BookmarkDetailsUI::createTopContent() + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + m_top_content = elm_layout_add(m_layout); + elm_object_part_content_set(m_layout, "top_content", m_top_content); + evas_object_size_hint_weight_set(m_top_content, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(m_top_content, EVAS_HINT_FILL, + EVAS_HINT_FILL); + evas_object_show(m_top_content); + + elm_layout_file_set(m_top_content, m_edjFilePath.c_str(), + "top-content"); + + m_close_button = elm_button_add(m_top_content); + elm_object_style_set(m_close_button, "invisible_button"); + evas_object_smart_callback_add(m_close_button, "clicked", + _close_button_clicked, this); + evas_object_show(m_close_button); + elm_object_part_content_set(m_top_content, "close_click", + m_close_button); + + elm_object_focus_custom_chain_append(m_top_content, m_close_button, + nullptr); + elm_object_focus_set(m_close_button, EINA_TRUE); + elm_object_tree_focus_allow_set(m_layout, EINA_TRUE); + elm_object_focus_allow_set(m_close_button, EINA_TRUE); #if PROFILE_MOBILE - m_more_button = elm_button_add(m_top_content); - elm_object_style_set(m_more_button, "invisible_button"); - evas_object_smart_callback_add(m_more_button, "clicked", _more_button_clicked, this); - elm_object_part_content_set(m_top_content, "more_click", m_more_button); - evas_object_show(m_more_button); - - elm_object_focus_custom_chain_append(m_top_content, m_more_button, nullptr); - elm_object_focus_set(m_more_button, EINA_TRUE); - elm_object_tree_focus_allow_set(m_layout, EINA_TRUE); - elm_object_focus_allow_set(m_more_button, EINA_TRUE); - - m_cancel_top_button = elm_button_add(m_top_content); - elm_object_style_set(m_cancel_top_button, "invisible_button"); - evas_object_smart_callback_add(m_cancel_top_button, "clicked", _cancel_top_button_clicked, this); - elm_object_part_content_set(m_top_content, "cancel_click_2", m_cancel_top_button); - - m_remove_top_button = elm_button_add(m_top_content); - elm_object_style_set(m_remove_top_button, "invisible_button"); - evas_object_smart_callback_add(m_remove_top_button, "clicked", _remove_top_button_clicked, this); - elm_object_part_content_set(m_top_content, "remove_click_2", m_remove_top_button); + m_more_button = elm_button_add(m_top_content); + elm_object_style_set(m_more_button, "invisible_button"); + evas_object_smart_callback_add(m_more_button, "clicked", + _more_button_clicked, this); + elm_object_part_content_set(m_top_content, "more_click", m_more_button); + evas_object_show(m_more_button); + + elm_object_focus_custom_chain_append(m_top_content, m_more_button, + nullptr); + elm_object_focus_set(m_more_button, EINA_TRUE); + elm_object_tree_focus_allow_set(m_layout, EINA_TRUE); + elm_object_focus_allow_set(m_more_button, EINA_TRUE); + + m_cancel_top_button = elm_button_add(m_top_content); + elm_object_style_set(m_cancel_top_button, "invisible_button"); + evas_object_smart_callback_add(m_cancel_top_button, "clicked", + _cancel_top_button_clicked, this); + elm_object_part_content_set(m_top_content, "cancel_click_2", + m_cancel_top_button); + + m_remove_top_button = elm_button_add(m_top_content); + elm_object_style_set(m_remove_top_button, "invisible_button"); + evas_object_smart_callback_add(m_remove_top_button, "clicked", + _remove_top_button_clicked, this); + elm_object_part_content_set(m_top_content, "remove_click_2", + m_remove_top_button); #endif -} + } -void BookmarkDetailsUI::createGengrid() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - - m_gengrid = elm_gengrid_add(m_layout); - edje_object_update_hints_set(m_gengrid, EINA_TRUE); - elm_object_part_content_set(m_layout, "elm.swallow.grid", m_gengrid); - 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); + void BookmarkDetailsUI::createGengrid() + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + + m_gengrid = elm_gengrid_add(m_layout); + edje_object_update_hints_set(m_gengrid, EINA_TRUE); + elm_object_part_content_set(m_layout, "elm.swallow.grid", m_gengrid); + 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); #if PROFILE_MOBILE - elm_scroller_bounce_set(m_gengrid, EINA_FALSE, EINA_TRUE); - elm_object_scroll_lock_x_set(m_gengrid, EINA_TRUE); + elm_scroller_bounce_set(m_gengrid, EINA_FALSE, EINA_TRUE); + elm_object_scroll_lock_x_set(m_gengrid, EINA_TRUE); #else - elm_object_style_set(m_gengrid, "back_ground"); - 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); - elm_gengrid_horizontal_set(m_gengrid, EINA_TRUE); - elm_gengrid_item_size_set(m_gengrid, ELM_SCALE_SIZE(404), ELM_SCALE_SIZE(320)); + elm_object_style_set(m_gengrid, "back_ground"); + 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); + elm_gengrid_horizontal_set(m_gengrid, EINA_TRUE); + elm_gengrid_item_size_set(m_gengrid, ELM_SCALE_SIZE(404), + ELM_SCALE_SIZE(320)); #endif -} + } #if PROFILE_MOBILE -void BookmarkDetailsUI::createMenuDetails() -{ - m_menu_bg_button = elm_button_add(m_layout); - elm_object_style_set(m_menu_bg_button, "invisible_button"); - evas_object_smart_callback_add(m_menu_bg_button, "clicked", _menu_bg_button_clicked, this); - elm_object_part_content_set(m_layout, "more_bg_click", m_menu_bg_button); - - m_menu = elm_box_add(m_layout); - evas_object_size_hint_weight_set(m_menu, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(m_menu, EVAS_HINT_FILL, EVAS_HINT_FILL); - - m_edit_button = elm_button_add(m_menu); - elm_object_style_set(m_edit_button, "more-button"); - evas_object_size_hint_weight_set(m_edit_button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(m_edit_button, 0.0, 0.0); - elm_object_part_text_set(m_edit_button, "elm.text", "Edit folder name"); - elm_box_pack_end(m_menu, m_edit_button); - evas_object_smart_callback_add(m_edit_button, "clicked", _edit_button_clicked, this); - - evas_object_show(m_edit_button); - elm_object_tree_focus_allow_set(m_edit_button, EINA_FALSE); - - m_delete_button = elm_button_add(m_menu); - elm_object_style_set(m_delete_button, "more-button"); - evas_object_size_hint_weight_set(m_delete_button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(m_delete_button, 0.0, 0.0); - elm_object_part_text_set(m_delete_button, "elm.text", "Delete folder"); - elm_box_pack_end(m_menu, m_delete_button); - evas_object_smart_callback_add(m_delete_button, "clicked", _delete_button_clicked, this); - - evas_object_show(m_delete_button); - elm_object_tree_focus_allow_set(m_delete_button, EINA_FALSE); - - m_remove_button = elm_button_add(m_menu); - elm_object_style_set(m_remove_button, "more-shadow-button"); - evas_object_size_hint_weight_set(m_remove_button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(m_remove_button, 0.0, 0.0); - elm_object_part_text_set(m_remove_button, "elm.text", "Remove Bookmarks"); - elm_box_pack_end(m_menu, m_remove_button); - evas_object_smart_callback_add(m_remove_button, "clicked", _remove_button_clicked, this); - - evas_object_show(m_remove_button); - elm_object_tree_focus_allow_set(m_remove_button, EINA_FALSE); - - elm_object_part_content_set(m_layout, "more_swallow", m_menu); - evas_object_show(m_menu); -} + void BookmarkDetailsUI::createMenuDetails() + { + m_menu_bg_button = elm_button_add(m_layout); + elm_object_style_set(m_menu_bg_button, "invisible_button"); + evas_object_smart_callback_add(m_menu_bg_button, "clicked", + _menu_bg_button_clicked, this); + elm_object_part_content_set(m_layout, "more_bg_click", + m_menu_bg_button); + + m_menu = elm_box_add(m_layout); + evas_object_size_hint_weight_set(m_menu, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(m_menu, EVAS_HINT_FILL, EVAS_HINT_FILL); + + m_edit_button = elm_button_add(m_menu); + elm_object_style_set(m_edit_button, "more-button"); + evas_object_size_hint_weight_set(m_edit_button, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(m_edit_button, 0.0, 0.0); + elm_object_part_text_set(m_edit_button, "elm.text", "Edit folder name"); + elm_box_pack_end(m_menu, m_edit_button); + evas_object_smart_callback_add(m_edit_button, "clicked", + _edit_button_clicked, this); + + evas_object_show(m_edit_button); + elm_object_tree_focus_allow_set(m_edit_button, EINA_FALSE); + + m_delete_button = elm_button_add(m_menu); + elm_object_style_set(m_delete_button, "more-button"); + evas_object_size_hint_weight_set(m_delete_button, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(m_delete_button, 0.0, 0.0); + elm_object_part_text_set(m_delete_button, "elm.text", "Delete folder"); + elm_box_pack_end(m_menu, m_delete_button); + evas_object_smart_callback_add(m_delete_button, "clicked", + _delete_button_clicked, this); + + evas_object_show(m_delete_button); + elm_object_tree_focus_allow_set(m_delete_button, EINA_FALSE); + + m_remove_button = elm_button_add(m_menu); + elm_object_style_set(m_remove_button, "more-shadow-button"); + evas_object_size_hint_weight_set(m_remove_button, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(m_remove_button, 0.0, 0.0); + elm_object_part_text_set(m_remove_button, "elm.text", + "Remove Bookmarks"); + elm_box_pack_end(m_menu, m_remove_button); + evas_object_smart_callback_add(m_remove_button, "clicked", + _remove_button_clicked, this); + + evas_object_show(m_remove_button); + elm_object_tree_focus_allow_set(m_remove_button, EINA_FALSE); + + elm_object_part_content_set(m_layout, "more_swallow", m_menu); + evas_object_show(m_menu); + } -void BookmarkDetailsUI::updateGengridItems() -{ - for (auto it = m_map_delete.begin(); it != m_map_delete.end(); ++it) - if (it->second) { - it->second = false; - elm_gengrid_item_update(m_map_bookmark[it->first]); - } -} + void BookmarkDetailsUI::updateGengridItems() + { + for (auto it = m_map_delete.begin(); it != m_map_delete.end(); ++it) + if (it->second) { + it->second = false; + elm_gengrid_item_update(m_map_bookmark[it->first]); + } + } -void BookmarkDetailsUI::resetRemovalMode() -{ - m_map_delete.clear(); - m_delete_count = 0; - m_remove_bookmark_mode = false; - elm_object_signal_emit(m_top_content, "default_mode", "ui"); - elm_object_part_text_set(m_top_content, "title_text", (boost::format("%s(%d)") % m_folder_name.c_str() - % elm_gengrid_items_count(m_gengrid)).str().c_str()); - elm_gengrid_realized_items_update(m_gengrid); -} + void BookmarkDetailsUI::resetRemovalMode() + { + m_map_delete.clear(); + m_delete_count = 0; + m_remove_bookmark_mode = false; + elm_object_signal_emit(m_top_content, "default_mode", "ui"); + elm_object_part_text_set(m_top_content, "title_text", + (boost::format("%s(%d)") % + m_folder_name.c_str() + % + elm_gengrid_items_count(m_gengrid)).str(). + c_str()); + elm_gengrid_realized_items_update(m_gengrid); + } #else -void BookmarkDetailsUI::createBottomContent() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - M_ASSERT(m_layout); - - m_bottom_content = elm_layout_add(m_layout); - elm_object_part_content_set(m_layout, "bottom_content", m_bottom_content); - evas_object_size_hint_weight_set(m_bottom_content, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(m_bottom_content, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_show(m_bottom_content); - - elm_layout_file_set(m_bottom_content, m_edjFilePath.c_str(), - "bottom-content"); -} + void BookmarkDetailsUI::createBottomContent() + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + M_ASSERT(m_layout); + + m_bottom_content = elm_layout_add(m_layout); + elm_object_part_content_set(m_layout, "bottom_content", + m_bottom_content); + evas_object_size_hint_weight_set(m_bottom_content, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(m_bottom_content, EVAS_HINT_FILL, + EVAS_HINT_FILL); + evas_object_show(m_bottom_content); + + elm_layout_file_set(m_bottom_content, m_edjFilePath.c_str(), + "bottom-content"); + } #endif -Evas_Object* BookmarkDetailsUI::createLayout(Evas_Object* parent) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - m_layout = elm_layout_add(parent); - elm_layout_file_set(m_layout, m_edjFilePath.c_str(), - "bookmark-details-layout"); - evas_object_size_hint_weight_set(m_layout, EVAS_HINT_EXPAND, - EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(m_layout, EVAS_HINT_FILL, EVAS_HINT_FILL); - - createTopContent(); - createGengrid(); + Evas_Object *BookmarkDetailsUI::createLayout(Evas_Object * parent) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + m_layout = elm_layout_add(parent); + elm_layout_file_set(m_layout, m_edjFilePath.c_str(), + "bookmark-details-layout"); + evas_object_size_hint_weight_set(m_layout, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(m_layout, EVAS_HINT_FILL, + EVAS_HINT_FILL); + + createTopContent(); + createGengrid(); #if PROFILE_MOBILE - resetContent(); - createMenuDetails(); + resetContent(); + createMenuDetails(); #else - createBottomContent(); - createFocusVector(); + createBottomContent(); + createFocusVector(); #endif - return m_layout; -} + return m_layout; + } -void BookmarkDetailsUI::addBookmarkItem(std::shared_ptr hi) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - BookmarkItemData *itemData = new BookmarkItemData(); - itemData->item = hi; - itemData->bookmarkDetailsUI = this; - Elm_Object_Item* bookmarkView = elm_gengrid_item_append(m_gengrid, - m_bookmark_item_class, itemData, _bookmark_item_clicked, itemData); + void BookmarkDetailsUI::addBookmarkItem(std::shared_ptr < + tizen_browser::services:: + BookmarkItem > hi) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + BookmarkItemData *itemData = new BookmarkItemData(); + itemData->item = hi; + itemData->bookmarkDetailsUI = this; + Elm_Object_Item *bookmarkView = elm_gengrid_item_append(m_gengrid, + m_bookmark_item_class, + itemData, + _bookmark_item_clicked, + itemData); #if PROFILE_MOBILE - m_map_bookmark.insert(std::pair(hi->getId(), bookmarkView)); + m_map_bookmark.insert(std::pair < unsigned int, + Elm_Object_Item * >(hi->getId(), bookmarkView)); #endif - elm_gengrid_item_selected_set(bookmarkView, EINA_FALSE); -} - -void BookmarkDetailsUI::addBookmarks(std::vector > items, std::string folder_name) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + elm_gengrid_item_selected_set(bookmarkView, EINA_FALSE); + } - elm_gengrid_clear(m_gengrid); - m_folder_name = folder_name; - for (auto it = items.begin(); it != items.end(); ++it) - addBookmarkItem(*it); - elm_object_part_text_set(m_top_content, "title_text", + void BookmarkDetailsUI::addBookmarks(std::vector < std::shared_ptr < + tizen_browser::services:: + BookmarkItem > >items, + std::string folder_name) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + + elm_gengrid_clear(m_gengrid); + m_folder_name = folder_name; + for (auto it = items.begin(); it != items.end(); ++it) + addBookmarkItem(*it); + elm_object_part_text_set(m_top_content, "title_text", #if PROFILE_MOBILE - (boost::format("%s(%d)") % m_folder_name.c_str() % items.size()).str().c_str()); + (boost::format("%s(%d)") % + m_folder_name.c_str() % + items.size()).str().c_str()); #else - (boost::format("Bookmark Manager > %s") % m_folder_name.c_str()).str().c_str()); + (boost::format("Bookmark Manager > %s") % + m_folder_name.c_str()).str().c_str()); #endif - elm_object_part_content_set(m_layout, "elm.swallow.grid", m_gengrid); + elm_object_part_content_set(m_layout, "elm.swallow.grid", m_gengrid); #if PROFILE_MOBILE - elm_box_unpack_all(m_menu); - if (m_folder_name != _("IDS_BR_BODY_ALL") && m_folder_name != "Mobile") { - evas_object_show(m_edit_button); - evas_object_show(m_delete_button); - elm_box_pack_end(m_menu, m_edit_button); - elm_box_pack_end(m_menu, m_delete_button); - } else { - evas_object_hide(m_edit_button); - evas_object_hide(m_delete_button); - } - elm_box_pack_end(m_menu, m_remove_button); + elm_box_unpack_all(m_menu); + if (m_folder_name != _("IDS_BR_BODY_ALL") && m_folder_name != "Mobile") { + evas_object_show(m_edit_button); + evas_object_show(m_delete_button); + elm_box_pack_end(m_menu, m_edit_button); + elm_box_pack_end(m_menu, m_delete_button); + } else { + evas_object_hide(m_edit_button); + evas_object_hide(m_delete_button); + } + elm_box_pack_end(m_menu, m_remove_button); #else - elm_object_part_text_set(m_bottom_content, "text", (boost::format("%d %s") % elm_gengrid_items_count(m_gengrid) % - (elm_gengrid_items_count(m_gengrid) == 1 ? "bookmark" : "bookmarks")).str().c_str()); + elm_object_part_text_set(m_bottom_content, "text", + (boost::format("%d %s") % + elm_gengrid_items_count(m_gengrid) % + (elm_gengrid_items_count(m_gengrid) == + 1 ? "bookmark" : "bookmarks")).str(). + c_str()); #endif - if (items.size() != 0) - setEmpty(false); - evas_object_show(m_gengrid); - items.clear(); -} + if (items.size() != 0) + setEmpty(false); + evas_object_show(m_gengrid); + items.clear(); + } + } } -} - diff --git a/services/BookmarkDetailsUI/BookmarkDetailsUI.h b/services/BookmarkDetailsUI/BookmarkDetailsUI.h old mode 100644 new mode 100755 index 4b8a8eac..7c5982ef --- a/services/BookmarkDetailsUI/BookmarkDetailsUI.h +++ b/services/BookmarkDetailsUI/BookmarkDetailsUI.h @@ -41,101 +41,118 @@ #include "FocusManager.h" #endif -namespace tizen_browser{ -namespace base_ui{ - -class BROWSER_EXPORT BookmarkDetailsUI - : public tizen_browser::interfaces::AbstractUIComponent - , public tizen_browser::core::AbstractService +namespace tizen_browser { -public: - BookmarkDetailsUI(); - ~BookmarkDetailsUI(); - //AbstractUIComponent interface methods - void init(Evas_Object *parent); - void showUI(); - void hideUI(); - void hide(); - Evas_Object *getContent(); - virtual std::string getName(); - void onBackPressed(); - - void addBookmarks(std::vector >, std::string); - - boost::signals2::signal closeBookmarkDetailsClicked; - boost::signals2::signal)> bookmarkItemClicked; + namespace base_ui + { + + class BROWSER_EXPORT BookmarkDetailsUI:public tizen_browser::interfaces:: + AbstractUIComponent, public tizen_browser::core::AbstractService + { + public: + BookmarkDetailsUI(); + ~BookmarkDetailsUI(); + //AbstractUIComponent interface methods + void init(Evas_Object * parent); + void showUI(); + void hideUI(); + void hide(); + Evas_Object *getContent(); + virtual std::string getName(); + void onBackPressed(); + + void addBookmarks(std::vector < std::shared_ptr < + tizen_browser::services::BookmarkItem > >, + std::string); + + boost::signals2::signal < void() > closeBookmarkDetailsClicked; + boost::signals2::signal < void(std::shared_ptr < + tizen_browser::services:: + BookmarkItem >) > bookmarkItemClicked; #if PROFILE_MOBILE - boost::signals2::signal editFolderButtonClicked; - boost::signals2::signal deleteFolderButtonClicked; - boost::signals2::signal>)> removeFoldersButtonClicked; - - void setLandscape(bool state); + boost::signals2::signal < void(std::string) > + editFolderButtonClicked; + boost::signals2::signal < void(std::string) > + deleteFolderButtonClicked; + boost::signals2::signal < void(std::vector < std::shared_ptr < + tizen_browser::services:: + BookmarkItem >>) > + removeFoldersButtonClicked; + + void setLandscape(bool state); #endif -private: - void addBookmarkItem(std::shared_ptr); + private: + void addBookmarkItem(std::shared_ptr < + tizen_browser::services::BookmarkItem >); #if !PROFILE_MOBILE - void createFocusVector(); + void createFocusVector(); #endif - void createGengridItemClasses(); - std::string getFolderName(); - void setEmpty(bool isEmpty); - - Evas_Object* createLayout(Evas_Object* parent); - void createTopContent(); - void createGengrid(); - void createBottomContent(); + void createGengridItemClasses(); + std::string getFolderName(); + void setEmpty(bool isEmpty); + + Evas_Object *createLayout(Evas_Object * parent); + void createTopContent(); + void createGengrid(); + void createBottomContent(); #if PROFILE_MOBILE - void resetContent(); - void createMenuDetails(); - void updateGengridItems(); - void resetRemovalMode(); - static void _more_button_clicked(void *data, Evas_Object *, void *); - static void _menu_bg_button_clicked(void *data, Evas_Object *, void *); - static void _edit_button_clicked(void *data, Evas_Object *, void *); - static void _delete_button_clicked(void *data, Evas_Object *, void *); - static void _remove_button_clicked(void *data, Evas_Object *, void *); - static void _cancel_top_button_clicked(void *data, Evas_Object *, void *); - static void _remove_top_button_clicked(void *data, Evas_Object *, void *); + void resetContent(); + void createMenuDetails(); + void updateGengridItems(); + void resetRemovalMode(); + static void _more_button_clicked(void *data, Evas_Object *, void *); + static void _menu_bg_button_clicked(void *data, Evas_Object *, void *); + static void _edit_button_clicked(void *data, Evas_Object *, void *); + static void _delete_button_clicked(void *data, Evas_Object *, void *); + static void _remove_button_clicked(void *data, Evas_Object *, void *); + static void _cancel_top_button_clicked(void *data, Evas_Object *, + void *); + static void _remove_top_button_clicked(void *data, Evas_Object *, + void *); #endif - static void _grid_content_delete(void *data, Evas_Object *obj); - 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 _bookmark_item_clicked(void * data, Evas_Object * obj, void * event_info); - static void _bookmark_thumbSelected(void * data, Evas_Object *, void *); - static void _close_button_clicked(void *data, Evas_Object *, void *); - - Evas_Object *m_parent; - std::string m_edjFilePath; - Evas_Object *m_layout; - Evas_Object *m_top_content; - Evas_Object *m_gengrid; + static void _grid_content_delete(void *data, Evas_Object * obj); + 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 _bookmark_item_clicked(void *data, Evas_Object * obj, + void *event_info); + static void _bookmark_thumbSelected(void *data, Evas_Object *, void *); + static void _close_button_clicked(void *data, Evas_Object *, void *); + + Evas_Object *m_parent; + std::string m_edjFilePath; + Evas_Object *m_layout; + Evas_Object *m_top_content; + Evas_Object *m_gengrid; #if !PROFILE_MOBILE - Evas_Object *m_bottom_content; - FocusManager m_focusManager; + Evas_Object *m_bottom_content; + FocusManager m_focusManager; #else - std::map m_map_bookmark; - std::map m_map_delete; - - Evas_Object *m_more_button; - Evas_Object *m_menu_bg_button; - Evas_Object *m_menu; - Evas_Object *m_edit_button; - Evas_Object *m_delete_button; - Evas_Object *m_remove_button; - Evas_Object *m_cancel_top_button; - Evas_Object *m_remove_top_button; - unsigned int m_delete_count; - bool m_remove_bookmark_mode; + std::map < unsigned int, Elm_Object_Item * >m_map_bookmark; + std::map < unsigned int, bool > m_map_delete; + + Evas_Object *m_more_button; + Evas_Object *m_menu_bg_button; + Evas_Object *m_menu; + Evas_Object *m_edit_button; + Evas_Object *m_delete_button; + Evas_Object *m_remove_button; + Evas_Object *m_cancel_top_button; + Evas_Object *m_remove_top_button; + unsigned int m_delete_count; + bool m_remove_bookmark_mode; #endif - Evas_Object *m_close_button; + Evas_Object *m_close_button; - Elm_Gengrid_Item_Class * m_bookmark_item_class; - std::string m_folder_name; - unsigned int m_rotation_state; -}; + Elm_Gengrid_Item_Class *m_bookmark_item_class; + std::string m_folder_name; + unsigned int m_rotation_state; + }; -} + } } -#endif // BOOKMARKDETAILSUI_H +#endif // BOOKMARKDETAILSUI_H diff --git a/services/BookmarkFlowUI/BookmarkFlowUI.h b/services/BookmarkFlowUI/BookmarkFlowUI.h old mode 100644 new mode 100755 index 08a48327..f8fce5c5 --- a/services/BookmarkFlowUI/BookmarkFlowUI.h +++ b/services/BookmarkFlowUI/BookmarkFlowUI.h @@ -44,140 +44,145 @@ #define BOOKMARK_FLOW_SERVICE "org.tizen.browser.bookmarkflowui" #define M_UNUSED(x) (void)(x) -namespace tizen_browser{ -namespace base_ui{ +namespace tizen_browser +{ + namespace base_ui + { -struct BookmarkUpdate { - unsigned int folder_id; - std::string title; -}; + struct BookmarkUpdate + { + unsigned int folder_id; + std::string title; + }; -class BROWSER_EXPORT BookmarkFlowUI + class BROWSER_EXPORT BookmarkFlowUI #if PROFILE_MOBILE - : public tizen_browser::interfaces::AbstractUIComponent + : public tizen_browser::interfaces::AbstractUIComponent #else - : public interfaces::AbstractPopup + : public interfaces::AbstractPopup #endif - , public tizen_browser::core::AbstractService -{ -public: - BookmarkFlowUI(); - ~BookmarkFlowUI(); - //AbstractUIComponent interface methods - void init(Evas_Object *parent); - Evas_Object *getContent(); - void addCustomFolders(services::SharedBookmarkFolderList folders); + , public tizen_browser::core::AbstractService + { + public: + BookmarkFlowUI(); + ~BookmarkFlowUI(); + //AbstractUIComponent interface methods + void init(Evas_Object * parent); + Evas_Object *getContent(); + void addCustomFolders(services::SharedBookmarkFolderList folders); #if PROFILE_MOBILE - void showUI(); - void hideUI(); - void setState(bool state); - void setTitle(const std::string& title); - void setURL(const std::string& title); - void setFolder(unsigned int folder_id, const std::string& folder_name); - void setFoldersId(unsigned int all, unsigned int special); - void resetContent(); + void showUI(); + void hideUI(); + void setState(bool state); + void setTitle(const std::string & title); + void setURL(const std::string & title); + void setFolder(unsigned int folder_id, const std::string & folder_name); + void setFoldersId(unsigned int all, unsigned int special); + void resetContent(); #else - static BookmarkFlowUI* createPopup(Evas_Object* parent); - void show(); - void dismiss(); - void onBackPressed(); - void addNewFolder(); + static BookmarkFlowUI *createPopup(Evas_Object * parent); + void show(); + void dismiss(); + void onBackPressed(); + void addNewFolder(); #endif - virtual std::string getName(); - void hide(); - - boost::signals2::signal closeBookmarkFlowClicked; - boost::signals2::signal saveBookmark; - boost::signals2::signal editBookmark; - boost::signals2::signal removeBookmark; - boost::signals2::signal addFolder; + virtual std::string getName(); + void hide(); + + boost::signals2::signal < void() > closeBookmarkFlowClicked; + boost::signals2::signal < void(BookmarkUpdate) > saveBookmark; + boost::signals2::signal < void(BookmarkUpdate) > editBookmark; + boost::signals2::signal < void() > removeBookmark; + boost::signals2::signal < void() > addFolder; #if PROFILE_MOBILE - boost::signals2::signal isRotated; + boost::signals2::signal < bool() > isRotated; #endif -private: - typedef struct - { - std::string name; - unsigned int folder_id; - std::shared_ptr bookmarkFlowUI; - } FolderData; - - Evas_Object* createBookmarkFlowLayout(); - void createTitleArea(); - - Evas_Object *m_parent; - Evas_Object *m_layout; - Evas_Object *m_title_area; - std::string m_edjFilePath; - bool m_state; - unsigned int m_all_folder_id; - - static char* _folder_title_text_get(void* data, Evas_Object*, const char* part); + private: + typedef struct + { + std::string name; + unsigned int folder_id; + std::shared_ptr < tizen_browser::base_ui::BookmarkFlowUI > + bookmarkFlowUI; + } FolderData; + + Evas_Object *createBookmarkFlowLayout(); + void createTitleArea(); + + Evas_Object *m_parent; + Evas_Object *m_layout; + Evas_Object *m_title_area; + std::string m_edjFilePath; + bool m_state; + unsigned int m_all_folder_id; + + static char *_folder_title_text_get(void *data, Evas_Object *, + const char *part); #if PROFILE_MOBILE - void createContentsArea(); - void createGenlistItemClasses(); - void createGenlist(); - void listAddCustomFolder(FolderData* item); - - static void _save_clicked(void* data, Evas_Object*, void*); - static void _cancel_clicked(void* data, Evas_Object*, void*); - static void _entry_focused(void* data, Evas_Object*, void*); - static void _entry_unfocused(void* data, Evas_Object*, void*); - static void _entry_changed(void* data, Evas_Object*, void*); - static void _inputCancel_clicked(void* data, Evas_Object*, void*); - static void _folder_clicked(void* data, Evas_Object*, void*); - static void _folder_dropdown_clicked(void* data, Evas_Object*, void*); - static void _remove_clicked(void* data, Evas_Object*, void*); - static void _listCustomFolderClicked(void* data, Evas_Object*, void*); - - Evas_Object *m_contents_area; - Evas_Object *m_remove_button; - Evas_Object *m_entry; - Evas_Object *m_save_box; - Evas_Object *m_save; - Evas_Object *m_save_button; - Evas_Object *m_cancel_box; - Evas_Object *m_cancel; - Evas_Object *m_cancel_button; - Evas_Object *m_input_cancel_button; - Evas_Object *m_folder_button; - Evas_Object *m_folder_dropdown_button; - Evas_Object *m_genlist; - - Elm_Genlist_Item_Class *m_folder_custom_item_class; - Elm_Genlist_Item_Class *m_folder_selected_item_class; - std::map m_map_folders; - unsigned int m_folder_id; - unsigned int m_special_folder_id; - unsigned int m_max_items; - const unsigned int MAX_ITEMS = 4; - const unsigned int MAX_ITEMS_LANDSCAPE = 2; - const unsigned int GENLIST_HEIGHT = 384; - const unsigned int GENLIST_HEIGHT_LANDSCAPE = 192; + void createContentsArea(); + void createGenlistItemClasses(); + void createGenlist(); + void listAddCustomFolder(FolderData * item); + + static void _save_clicked(void *data, Evas_Object *, void *); + static void _cancel_clicked(void *data, Evas_Object *, void *); + static void _entry_focused(void *data, Evas_Object *, void *); + static void _entry_unfocused(void *data, Evas_Object *, void *); + static void _entry_changed(void *data, Evas_Object *, void *); + static void _inputCancel_clicked(void *data, Evas_Object *, void *); + static void _folder_clicked(void *data, Evas_Object *, void *); + static void _folder_dropdown_clicked(void *data, Evas_Object *, void *); + static void _remove_clicked(void *data, Evas_Object *, void *); + static void _listCustomFolderClicked(void *data, Evas_Object *, void *); + + Evas_Object *m_contents_area; + Evas_Object *m_remove_button; + Evas_Object *m_entry; + Evas_Object *m_save_box; + Evas_Object *m_save; + Evas_Object *m_save_button; + Evas_Object *m_cancel_box; + Evas_Object *m_cancel; + Evas_Object *m_cancel_button; + Evas_Object *m_input_cancel_button; + Evas_Object *m_folder_button; + Evas_Object *m_folder_dropdown_button; + Evas_Object *m_genlist; + + Elm_Genlist_Item_Class *m_folder_custom_item_class; + Elm_Genlist_Item_Class *m_folder_selected_item_class; + std::map < unsigned int, Elm_Object_Item * >m_map_folders; + unsigned int m_folder_id; + unsigned int m_special_folder_id; + unsigned int m_max_items; + const unsigned int MAX_ITEMS = 4; + const unsigned int MAX_ITEMS_LANDSCAPE = 2; + const unsigned int GENLIST_HEIGHT = 384; + const unsigned int GENLIST_HEIGHT_LANDSCAPE = 192; #else - void createGengridItemClasses(); - void createGengrid(); - void gridAddCustomFolder(FolderData* item); - void createFocusVector(); - - static void _gridNewFolderClicked(void* data, Evas_Object*, void*); - static void _gridCustomFolderClicked(void* data, Evas_Object*, void*); - static void _bg_clicked(void* data, Evas_Object*, void*); - - Evas_Object *m_gengrid; - Evas_Object *m_bg; - Elm_Gengrid_Item_Class *m_folder_new_item_class; - Elm_Gengrid_Item_Class *m_folder_custom_item_class; - - FocusManager m_focusManager; - const unsigned int upto9 = 10; - const unsigned int upto6 = 7; + void createGengridItemClasses(); + void createGengrid(); + void gridAddCustomFolder(FolderData * item); + void createFocusVector(); + + static void _gridNewFolderClicked(void *data, Evas_Object *, void *); + static void _gridCustomFolderClicked(void *data, Evas_Object *, void *); + static void _bg_clicked(void *data, Evas_Object *, void *); + + Evas_Object *m_gengrid; + Evas_Object *m_bg; + Elm_Gengrid_Item_Class *m_folder_new_item_class; + Elm_Gengrid_Item_Class *m_folder_custom_item_class; + + FocusManager m_focusManager; + const unsigned int upto9 = 10; + const unsigned int upto6 = 7; #endif -}; + }; -} + } } -#endif // BOOKMARKFLOWUI_H +#endif // BOOKMARKFLOWUI_H diff --git a/services/BookmarkManagerUI/BookmarkManagerUI.h b/services/BookmarkManagerUI/BookmarkManagerUI.h old mode 100644 new mode 100755 index 4aeee1e0..8d258b15 --- a/services/BookmarkManagerUI/BookmarkManagerUI.h +++ b/services/BookmarkManagerUI/BookmarkManagerUI.h @@ -62,14 +62,14 @@ public: void addCustomFolders(services::SharedBookmarkFolderList folders); void addCustomFolders(std::vector >); - boost::signals2::signal closeBookmarkManagerClicked; - boost::signals2::signal)> bookmarkItemClicked; - boost::signals2::signal customFolderClicked; - boost::signals2::signal allFolderClicked; + boost::signals2::signal closeBookmarkManagerClicked; + boost::signals2::signal)> bookmarkItemClicked; + boost::signals2::signal customFolderClicked; + boost::signals2::signal allFolderClicked; //Special folder - Bookmark Bar on tv and Mobile on odroid - boost::signals2::signal specialFolderClicked; + boost::signals2::signal specialFolderClicked; #if PROFILE_MOBILE - boost::signals2::signal newFolderItemClicked; + boost::signals2::signal newFolderItemClicked; #endif private: @@ -104,7 +104,7 @@ private: static char* _grid_all_folder_title_text_get(void *data, Evas_Object *obj, const char *part); static char* _grid_folder_title_text_get(void *data, Evas_Object *obj, const char *part); - std::map m_map_bookmark; + std::map m_map_bookmark; std::string m_edjFilePath; Evas_Object *m_parent; diff --git a/services/BookmarkService/BookmarkService.cpp b/services/BookmarkService/BookmarkService.cpp old mode 100644 new mode 100755 index 0236aa7f..53eaaecb --- a/services/BookmarkService/BookmarkService.cpp +++ b/services/BookmarkService/BookmarkService.cpp @@ -39,439 +39,499 @@ #include #include "Tools/CapiWebErrorCodes.h" -namespace tizen_browser{ -namespace services{ - -EXPORT_SERVICE(BookmarkService, "org.tizen.browser.favoriteservice") - -BookmarkService::BookmarkService() +namespace tizen_browser { - if(bp_bookmark_adaptor_initialize() < 0) { - errorPrint("bp_bookmark_adaptor_initialize"); - return; - } -} + namespace services + { -BookmarkService::~BookmarkService() -{ - bp_bookmark_adaptor_deinitialize(); -} + EXPORT_SERVICE(BookmarkService, "org.tizen.browser.favoriteservice") -void BookmarkService::errorPrint(std::string method) const -{ - int error_code = bp_bookmark_adaptor_get_errorcode(); - BROWSER_LOGE("%s error: %d (%s)", method.c_str(), error_code, - tools::capiWebError::bookmarkErrorToString(error_code).c_str()); -} - -std::shared_ptr BookmarkService::addBookmark( - const std::string & address, - const std::string & title, - const std::string & note, - std::shared_ptr thumbnail, - std::shared_ptr favicon, - unsigned int dirId) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - 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_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_URL, address.c_str(), 0); - free(ids); - if (ret < 0){ - BROWSER_LOGE("Error! Could not get ids!"); - return std::make_shared(); + BookmarkService::BookmarkService() + { + if (bp_bookmark_adaptor_initialize() < 0) { + errorPrint("bp_bookmark_adaptor_initialize"); + return; + } } - bp_bookmark_info_fmt info; - - std::memset(&info, 0, sizeof(bp_bookmark_info_fmt)); - info.type = 0; - info.parent = dirId; - info.sequence = -1; - info.access_count = -1; - info.editable = 1; - - if (!address.empty()) { - info.url = (char*) address.c_str(); + BookmarkService::~BookmarkService() + { + bp_bookmark_adaptor_deinitialize(); } - if (!title.empty()) - info.title = (char*) title.c_str(); - if (bp_bookmark_adaptor_easy_create(&id, &info) < 0) { - errorPrint("bp_bookmark_adaptor_easy_create"); - bp_bookmark_adaptor_easy_free(&info); - return std::make_shared(); - } - // max sequence - if (bp_bookmark_adaptor_set_sequence(id, -1) < 0){ - BROWSER_LOGE("Error! Could not set sequence!"); - return std::make_shared(); + void BookmarkService::errorPrint(std::string method) const + { + int error_code = bp_bookmark_adaptor_get_errorcode(); + BROWSER_LOGE("%s error: %d (%s)", method.c_str(), error_code, + tools::capiWebError::bookmarkErrorToString(error_code). + c_str()); } - std::shared_ptr bookmark = std::make_shared(address, title, note, dirId, id); - if (thumbnail && thumbnail->getSize() > 0){ - std::unique_ptr thumb_blob = tizen_browser::tools::EflTools::getBlobPNG(thumbnail); - if (thumb_blob){ - unsigned char * thumb = std::move((unsigned char*)thumb_blob->getData()); - bp_bookmark_adaptor_set_snapshot(id, thumbnail->getWidth(), thumbnail->getHeight(), thumb, thumb_blob->getLength()); - bookmark->setThumbnail(thumbnail); - } else - BROWSER_LOGW("Could not create thumbnail!"); - } else - BROWSER_LOGW("Thumbnail object does not exist!"); - - if (favicon && favicon->getSize() > 0){ - std::unique_ptr favicon_blob = tizen_browser::tools::EflTools::getBlobPNG(favicon); - if (favicon_blob){ - unsigned char * fav = std::move((unsigned char*)favicon_blob->getData()); - bp_bookmark_adaptor_set_icon(id, favicon->getWidth(), favicon->getHeight(), fav, favicon_blob->getLength()); - bookmark->setFavicon(favicon); - } else - BROWSER_LOGW("Could not create favicon!"); - } else - BROWSER_LOGW("Favicon object does not exist!"); + std::shared_ptr < BookmarkItem > + BookmarkService::addBookmark(const std::string & address, + const std::string & title, + const std::string & note, + std::shared_ptr < + tizen_browser::tools::BrowserImage > + thumbnail, + std::shared_ptr < + tizen_browser::tools::BrowserImage > + favicon, unsigned int dirId) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + 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_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_URL, + address.c_str(), 0); + free(ids); + if (ret < 0) { + BROWSER_LOGE("Error! Could not get ids!"); + return std::make_shared < BookmarkItem > (); + } + + bp_bookmark_info_fmt info; + + std::memset(&info, 0, sizeof(bp_bookmark_info_fmt)); + info.type = 0; + info.parent = dirId; + info.sequence = -1; + info.access_count = -1; + info.editable = 1; + + if (!address.empty()) { + info.url = (char *) address.c_str(); + } + if (!title.empty()) + info.title = (char *) title.c_str(); + + if (bp_bookmark_adaptor_easy_create(&id, &info) < 0) { + errorPrint("bp_bookmark_adaptor_easy_create"); + bp_bookmark_adaptor_easy_free(&info); + return std::make_shared < BookmarkItem > (); + } + // max sequence + if (bp_bookmark_adaptor_set_sequence(id, -1) < 0) { + BROWSER_LOGE("Error! Could not set sequence!"); + return std::make_shared < BookmarkItem > (); + } + + std::shared_ptr < BookmarkItem > bookmark = + std::make_shared < BookmarkItem > (address, title, note, dirId, id); + if (thumbnail && thumbnail->getSize() > 0) { + std::unique_ptr < tizen_browser::tools::Blob > thumb_blob = + tizen_browser::tools::EflTools::getBlobPNG(thumbnail); + if (thumb_blob) { + unsigned char *thumb = + std::move((unsigned char *) thumb_blob->getData()); + bp_bookmark_adaptor_set_snapshot(id, thumbnail->getWidth(), + thumbnail->getHeight(), thumb, + thumb_blob->getLength()); + bookmark->setThumbnail(thumbnail); + } else { + BROWSER_LOGW("Could not create thumbnail!"); + } + } else { + BROWSER_LOGW("Thumbnail object does not exist!"); + } + + if (favicon && favicon->getSize() > 0) { + std::unique_ptr < tizen_browser::tools::Blob > favicon_blob = + tizen_browser::tools::EflTools::getBlobPNG(favicon); + if (favicon_blob) { + unsigned char *fav = + std::move((unsigned char *) favicon_blob->getData()); + bp_bookmark_adaptor_set_icon(id, favicon->getWidth(), + favicon->getHeight(), fav, + favicon_blob->getLength()); + bookmark->setFavicon(favicon); + } else { + BROWSER_LOGW("Could not create favicon!"); + } + } else { + BROWSER_LOGW("Favicon object does not exist!"); + } #if PROFILE_MOBILE - bookmark->set_folder_flag(EINA_FALSE); + bookmark->set_folder_flag(EINA_FALSE); #endif - bookmarkAdded(bookmark); - return bookmark; -} + bookmarkAdded(bookmark); + return bookmark; + } -void BookmarkService::updateBookmarkItemSnapshot(const std::string & url, tools::BrowserImagePtr snapshot) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - int id = getBookmarkId(url); - if (id != 0 && snapshot) { - std::unique_ptr snapshot_blob = tools::EflTools::getBlobPNG(snapshot); - unsigned char * snap = std::move((unsigned char*)snapshot_blob->getData()); - if (bp_bookmark_adaptor_set_snapshot(id, snapshot->getWidth(), snapshot->getHeight(), snap, - snapshot_blob->getLength()) < 0) - errorPrint("bp_history_adaptor_set_snapshot"); - } else - BROWSER_LOGW("Snapshot update not handled properly"); -} - -bool BookmarkService::editBookmark(const std::string & url, const std::string & title, unsigned int folder_id) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - return (update_bookmark_notify(getBookmarkId(url), title.c_str(), url.c_str(), folder_id, -1) == 1); -} + void BookmarkService::updateBookmarkItemSnapshot(const std::string & url, + tools:: + BrowserImagePtr snapshot) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + int id = getBookmarkId(url); + if (id != 0 && snapshot) { + std::unique_ptr < tools::Blob > snapshot_blob = + tools::EflTools::getBlobPNG(snapshot); + unsigned char *snap = + std::move((unsigned char *) snapshot_blob->getData()); + if (bp_bookmark_adaptor_set_snapshot + (id, snapshot->getWidth(), snapshot->getHeight(), snap, + snapshot_blob->getLength()) < 0) + errorPrint("bp_history_adaptor_set_snapshot"); + } else { + BROWSER_LOGW("Snapshot update not handled properly"); + } + } -bool BookmarkService::deleteBookmark(const std::string & url) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - int id = getBookmarkId(url); - if (id!=0) - bp_bookmark_adaptor_delete(id); - bookmarkDeleted(url); - return true; -} - -bool BookmarkService::getItem(const std::string &url, BookmarkItem *item) -{ - int id; - if ((id = getBookmarkId(url)) == 0) - return false; - return get_item_by_id(id, item); -} + bool BookmarkService::editBookmark(const std::string & url, + const std::string & title, + unsigned int folder_id) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + return (update_bookmark_notify + (getBookmarkId(url), title.c_str(), url.c_str(), folder_id, + -1) == 1); + } -bool BookmarkService::bookmarkExists(const std::string & url) -{ - return 0 != getBookmarkId(url); -} + bool BookmarkService::deleteBookmark(const std::string & url) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + int id = getBookmarkId(url); + if (id != 0) + bp_bookmark_adaptor_delete(id); + bookmarkDeleted(url); + return true; + } -int BookmarkService::getBookmarkId(const std::string & url) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - bp_bookmark_property_cond_fmt properties; - properties.parent = -1; - properties.type = 0; - properties.is_operator = 0; - properties.is_editable = -1; - bp_bookmark_rows_cond_fmt conds; - conds.limit = -1; - conds.offset = 0; - conds.order_offset = BP_BOOKMARK_O_DATE_CREATED; - conds.ordering = 0; - conds.period_offset = BP_BOOKMARK_O_DATE_CREATED; - conds.period_type = BP_BOOKMARK_DATE_ALL; - int *ids = nullptr; - int ids_count = 0; - int i = 0; - bp_bookmark_adaptor_get_cond_ids_p(&ids, &ids_count, &properties, &conds, BP_BOOKMARK_O_URL, url.c_str(), 0); - if (ids_count > 0){ - i = *ids; + bool BookmarkService::getItem(const std::string & url, + BookmarkItem * item) + { + int id; + if ((id = getBookmarkId(url)) == 0) + return false; + return get_item_by_id(id, item); } - free(ids); - return i; -} -std::vector > BookmarkService::getBookmarks(int folder_id) -{ - BROWSER_LOGD("[%s:%d] folder_id = %d", __func__, __LINE__, folder_id); - std::vector > bookmarks; - int *ids = nullptr; - int ids_count = 0; + bool BookmarkService::bookmarkExists(const std::string & url) + { + return 0 != getBookmarkId(url); + } + + int BookmarkService::getBookmarkId(const std::string & url) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + bp_bookmark_property_cond_fmt properties; + properties.parent = -1; + properties.type = 0; + properties.is_operator = 0; + properties.is_editable = -1; + bp_bookmark_rows_cond_fmt conds; + conds.limit = -1; + conds.offset = 0; + conds.order_offset = BP_BOOKMARK_O_DATE_CREATED; + conds.ordering = 0; + conds.period_offset = BP_BOOKMARK_O_DATE_CREATED; + conds.period_type = BP_BOOKMARK_DATE_ALL; + int *ids = nullptr; + int ids_count = 0; + int i = 0; + bp_bookmark_adaptor_get_cond_ids_p(&ids, &ids_count, &properties, + &conds, BP_BOOKMARK_O_URL, + url.c_str(), 0); + if (ids_count > 0) { + i = *ids; + } + free(ids); + return i; + } + + std::vector < std::shared_ptr < BookmarkItem > + >BookmarkService::getBookmarks(int folder_id) { + BROWSER_LOGD("[%s:%d] folder_id = %d", __func__, __LINE__, folder_id); + std::vector < std::shared_ptr < BookmarkItem > >bookmarks; + int *ids = nullptr; + int ids_count = 0; #if PROFILE_MOBILE - if (bp_bookmark_adaptor_get_ids_p(&ids, &ids_count, -1, 0, folder_id, - ALL_TYPE, -1, -1, BP_BOOKMARK_O_SEQUENCE, 0) < 0) { + if (bp_bookmark_adaptor_get_ids_p(&ids, &ids_count, -1, 0, folder_id, + ALL_TYPE, -1, -1, + BP_BOOKMARK_O_SEQUENCE, 0) < 0) { #else - if (bp_bookmark_adaptor_get_ids_p(&ids, &ids_count, -1, 0, folder_id, - BOOKMARK_TYPE, -1, -1, BP_BOOKMARK_O_SEQUENCE, 0) < 0) { + if (bp_bookmark_adaptor_get_ids_p(&ids, &ids_count, -1, 0, folder_id, + BOOKMARK_TYPE, -1, -1, + BP_BOOKMARK_O_SEQUENCE, 0) < 0) { #endif - errorPrint("bp_bookmark_adaptor_get_ids_p"); - return std::vector>(); + errorPrint("bp_bookmark_adaptor_get_ids_p"); + return std::vector < std::shared_ptr < BookmarkItem >> (); + } + BROWSER_LOGD("Bookmark items: %d", ids_count); + + for (int i = 0; i < ids_count; i++) { + bp_bookmark_info_fmt bookmark_info; + if (bp_bookmark_adaptor_get_easy_all(ids[i], &bookmark_info) == 0) { + std::string url = (bookmark_info.url ? bookmark_info.url : ""); + std::string title = + (bookmark_info.title ? bookmark_info.title : ""); + + std::shared_ptr < BookmarkItem > bookmark = + std::make_shared < BookmarkItem > (url, title, std::string(""), + (int) bookmark_info.parent, + ids[i]); + + if (bookmark_info.thumbnail_length != -1) { + tools::BrowserImagePtr bi = + std::make_shared < tizen_browser::tools::BrowserImage > + (bookmark_info.thumbnail_width, bookmark_info.thumbnail_height, + bookmark_info.thumbnail_length); + bi->setData((void *) bookmark_info.thumbnail, false, + tools::ImageType::ImageTypePNG); + bookmark->setThumbnail(bi); + } else { + BROWSER_LOGD("bookmark thumbnail size is -1"); + } + + if (bookmark_info.favicon_length != -1) { + tools::BrowserImagePtr fav = + std::make_shared < tools::BrowserImage > + (bookmark_info.favicon_width, bookmark_info.favicon_height, + bookmark_info.favicon_length); + fav->setData((void *) bookmark_info.favicon, false, + tools::ImageType::ImageTypePNG); + bookmark->setFavicon(fav); + } else { + BROWSER_LOGD("bookmark favicon size is -1"); + } + bookmarks.push_back(bookmark); + } else { + BROWSER_LOGD("bp_bookmark_adaptor_get_easy_all error"); + } + bp_bookmark_adaptor_easy_free(&bookmark_info); + } + free(ids); + return bookmarks; } - BROWSER_LOGD("Bookmark items: %d", ids_count); - for(int i = 0; i bookmark = std::make_shared(url, title, std::string(""),(int) bookmark_info.parent, ids[i]); - - if (bookmark_info.thumbnail_length != -1) { - tools::BrowserImagePtr bi = std::make_shared( - bookmark_info.thumbnail_width, - bookmark_info.thumbnail_height, - bookmark_info.thumbnail_length); - bi->setData((void*)bookmark_info.thumbnail, false, tools::ImageType::ImageTypePNG); - bookmark->setThumbnail(bi); - } else { - BROWSER_LOGD("bookmark thumbnail size is -1"); - } - - if (bookmark_info.favicon_length != -1) { - tools::BrowserImagePtr fav = std::make_shared( - bookmark_info.favicon_width, - bookmark_info.favicon_height, - bookmark_info.favicon_length); - fav->setData((void*)bookmark_info.favicon, false, tools::ImageType::ImageTypePNG); - bookmark->setFavicon(fav); - } else { - BROWSER_LOGD("bookmark favicon size is -1"); - } - bookmarks.push_back(bookmark); - } else { - BROWSER_LOGD("bp_bookmark_adaptor_get_easy_all error"); - } - bp_bookmark_adaptor_easy_free(&bookmark_info); + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + bp_bookmark_adaptor_reset(); + bookmarksDeleted(); + return true; } - free(ids); - return bookmarks; -} - -bool BookmarkService::deleteAllBookmarks() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - bp_bookmark_adaptor_reset(); - bookmarksDeleted(); - return true; -} -bool BookmarkService::delete_by_id(int id) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - BROWSER_LOGD("id[%d]", id); - if (bp_bookmark_adaptor_delete(id) < 0) - return false; - else { - bp_bookmark_adaptor_publish_notification(); - return true; + bool BookmarkService::delete_by_id(int id) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + BROWSER_LOGD("id[%d]", id); + if (bp_bookmark_adaptor_delete(id) < 0) { + return false; + } else { + bp_bookmark_adaptor_publish_notification(); + return true; + } } -} -bool BookmarkService::delete_by_id_notify(int id) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - BROWSER_LOGD("id[%d]", id); + bool BookmarkService::delete_by_id_notify(int id) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + BROWSER_LOGD("id[%d]", id); - BookmarkItem item; - get_item_by_id(id, &item); - return delete_by_id(id); -} + BookmarkItem item; + get_item_by_id(id, &item); + return delete_by_id(id); + } -bool BookmarkService::delete_by_uri(const char *uri) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - BROWSER_LOGD("uri[%s]", uri); - 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_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_URL, uri, 0); - bool result = false; - if (ret >= 0 && ids_count > 0) + bool BookmarkService::delete_by_uri(const char *uri) { - result = delete_by_id_notify(ids[0]); - free(ids); + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + BROWSER_LOGD("uri[%s]", uri); + 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_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_URL, uri, 0); + bool result = false; + if (ret >= 0 && ids_count > 0) { + result = delete_by_id_notify(ids[0]); + free(ids); + } + + return result; } - return result; -} - -int BookmarkService::update_bookmark(int id, const char *title, const char *uri, int parent_id, int order, - bool is_duplicate_check_needed, bool is_URI_check_needed) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - - bool is_URI_exist = (uri != nullptr && strlen(uri) > 0); - bool is_title_exist = (title != nullptr && strlen(title) > 0); - int ret = -1; - if (is_duplicate_check_needed) { - 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_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; - //This is a bookmark item so check for any such URL already exists - if (is_URI_exist && is_URI_check_needed) { - ret = bp_bookmark_adaptor_get_cond_ids_p(&ids, &ids_count, &properties, &conds, BP_BOOKMARK_O_URL, uri, 0); - free(ids); - if (ret < 0) { - errorPrint("bp_bookmark_adaptor_get_cond_ids_p"); - return -1; - } - } - - if (ids_count > 0) { - BROWSER_LOGD("same bookmark already exist"); - return 0; - } + int BookmarkService::update_bookmark(int id, const char *title, + const char *uri, int parent_id, + int order, + bool is_duplicate_check_needed, + bool is_URI_check_needed) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + + bool is_URI_exist = (uri != nullptr && strlen(uri) > 0); + bool is_title_exist = (title != nullptr && strlen(title) > 0); + int ret = -1; + if (is_duplicate_check_needed) { + 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_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; + //This is a bookmark item so check for any such URL already exists + if (is_URI_exist && is_URI_check_needed) { + ret = + bp_bookmark_adaptor_get_cond_ids_p(&ids, &ids_count, &properties, + &conds, BP_BOOKMARK_O_URL, uri, + 0); + free(ids); + if (ret < 0) { + errorPrint("bp_bookmark_adaptor_get_cond_ids_p"); + return -1; + } + } + + if (ids_count > 0) { + BROWSER_LOGD("same bookmark already exist"); + return 0; + } + } + + bp_bookmark_adaptor_set_parent_id(id, parent_id); + bp_bookmark_adaptor_set_sequence(id, order); + if (is_URI_exist) + bp_bookmark_adaptor_set_url(id, uri); + if (is_title_exist) + bp_bookmark_adaptor_set_title(id, title); + bp_bookmark_adaptor_publish_notification(); + + return 1; } - bp_bookmark_adaptor_set_parent_id(id, parent_id); - bp_bookmark_adaptor_set_sequence(id, order); - if (is_URI_exist) - bp_bookmark_adaptor_set_url(id, uri); - if (is_title_exist) - bp_bookmark_adaptor_set_title(id, title); - bp_bookmark_adaptor_publish_notification(); - - return 1; -} - -int BookmarkService::update_bookmark_notify(int id, const char *title, const char *uri, int parent_id, int order, - bool is_duplicate_check_needed, bool is_URI_check_needed) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - BROWSER_LOGD(""); - int ret = update_bookmark(id, title, uri, parent_id, order, is_duplicate_check_needed, is_URI_check_needed); - return ret; -} - -bool BookmarkService::is_in_bookmark(const char *uri) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - BROWSER_LOGD("uri[%s]", uri); - - int id = 0; - return get_id(uri, &id); -} - -bool BookmarkService::get_id(const char *uri, int *bookmark_id) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - 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_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_URL, uri, 0); - bool result = ((ret >= 0) && (ids_count > 0)); - if (result) { - *bookmark_id = ids[0]; + int BookmarkService::update_bookmark_notify(int id, const char *title, + const char *uri, + int parent_id, int order, + bool + is_duplicate_check_needed, + bool is_URI_check_needed) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + BROWSER_LOGD(""); + int ret = + update_bookmark(id, title, uri, parent_id, order, + is_duplicate_check_needed, is_URI_check_needed); + return ret; } - free(ids); - return result; -} -bool BookmarkService::get_item_by_id(int id, BookmarkItem *item) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - BROWSER_LOGD("ID: %d", id); - if (!item) { - BROWSER_LOGE("item is nullptr"); - return false; - } + bool BookmarkService::is_in_bookmark(const char *uri) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + BROWSER_LOGD("uri[%s]", uri); - if (id == 0) { - item->setTitle(_("IDS_BR_BODY_BOOKMARKS")); - item->setAddress(""); - item->setId(id); - item->setDir(-1); - return true; + int id = 0; + return get_id(uri, &id); } - bp_bookmark_info_fmt info; - 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->setDir(info.parent); - if (info.url != nullptr && strlen(info.url) > 0) - item->setAddress(info.url); - - if (info.title != nullptr && strlen(info.title) > 0) - item->setTitle(info.title); + bool BookmarkService::get_id(const char *uri, int *bookmark_id) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + 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_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_URL, uri, 0); + bool result = ((ret >= 0) && (ids_count > 0)); + if (result) { + *bookmark_id = ids[0]; + } + free(ids); + return result; + } - bp_bookmark_adaptor_easy_free(&info); - return true; + bool BookmarkService::get_item_by_id(int id, BookmarkItem * item) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + BROWSER_LOGD("ID: %d", id); + if (!item) { + BROWSER_LOGE("item is nullptr"); + return false; + } + + if (id == 0) { + item->setTitle(_("IDS_BR_BODY_BOOKMARKS")); + item->setAddress(""); + item->setId(id); + item->setDir(-1); + return true; + } + bp_bookmark_info_fmt info; + 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->setDir(info.parent); + + if (info.url != nullptr && strlen(info.url) > 0) + item->setAddress(info.url); + + if (info.title != nullptr && strlen(info.title) > 0) + item->setTitle(info.title); + + bp_bookmark_adaptor_easy_free(&info); + return true; + } + BROWSER_LOGD("bp_bookmark_adaptor_get_easy_all is failed"); + return false; } - BROWSER_LOGD("bp_bookmark_adaptor_get_easy_all is failed"); - return false; -} -} /* end of namespace services*/ -} /* end of namespace tizen_browser */ + } /* end of namespace services */ +} /* end of namespace tizen_browser */ diff --git a/services/BookmarkService/BookmarkService.h b/services/BookmarkService/BookmarkService.h old mode 100644 new mode 100755 index dce269c9..b82d4cc4 --- a/services/BookmarkService/BookmarkService.h +++ b/services/BookmarkService/BookmarkService.h @@ -34,16 +34,18 @@ #include "BrowserImage.h" #include "AbstractFavoriteService.h" -namespace tizen_browser{ -namespace services{ - -class BROWSER_EXPORT BookmarkService - : public tizen_browser::interfaces::AbstractFavoriteService +namespace tizen_browser { -public: - BookmarkService(); - virtual ~BookmarkService(); - virtual std::string getName(); + namespace services + { + + class BROWSER_EXPORT BookmarkService:public tizen_browser::interfaces:: + AbstractFavoriteService + { + public: + BookmarkService(); + virtual ~BookmarkService(); + virtual std::string getName(); /** * @brief Add page to bookmarks @@ -57,19 +59,27 @@ public: * * @return BookmarkItem class */ - std::shared_ptr addBookmark(const std::string & address, - const std::string & title, - const std::string & note = std::string(), - std::shared_ptr thumbnail=std::shared_ptr(), - std::shared_ptr favicon = std::shared_ptr(), - unsigned int dirId = 0); + std::shared_ptr < BookmarkItem > + addBookmark(const std::string & address, const std::string & title, + const std::string & note = + std::string(), + 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 Update bookmark snapshot by given url * * @param url of bookmark to delete */ - void updateBookmarkItemSnapshot(const std::string & url, std::shared_ptr snapshot); + void updateBookmarkItemSnapshot(const std::string & url, + std::shared_ptr < + tizen_browser::tools::BrowserImage > + snapshot); /** \todo Need to change this callback function for finding stored bookmark, check getBookmarkId function * @brief Check if bookmark exists @@ -77,28 +87,30 @@ public: * @param url url to find * @return true if exists, false if not */ - bool bookmarkExists(const std::string & url); + bool bookmarkExists(const std::string & url); /** * @brief Get bookmarks from platform service and store it in private m_bookmarksList * * @return list of bookmark items, bookmark items in a folder & bookmark folders */ - std::vector > getBookmarks(int folder_id = -1); + std::vector < std::shared_ptr < BookmarkItem > + >getBookmarks(int folder_id = -1); /** * @brief Delete all bookmarks * * @return true if success, false on error */ - bool deleteAllBookmarks(); + bool deleteAllBookmarks(); /** * @brief Edit bookmark title and folder by given url * * @return true if success, false on error */ - bool editBookmark(const std::string & url, const std::string & title, unsigned int folder_id = 0); + bool editBookmark(const std::string & url, const std::string & title, + unsigned int folder_id = 0); /** * @brief Delete bookmark by given url @@ -106,7 +118,7 @@ public: * @param url of bookmark to delete * @return true if success, false on error of not found bookmark */ - bool deleteBookmark(const std::string & url); + bool deleteBookmark(const std::string & url); /** * @brief Gets bookmark item @@ -114,38 +126,43 @@ public: * @param url of bookmark, pointer to item * @return true if success, false on error of not found bookmark */ - bool getItem(const std::string & url, BookmarkItem *item); - - bool delete_by_id(int id); - bool delete_by_id_notify(int id); - bool delete_by_uri(const char *uri); - int update_bookmark(int id, const char *title, const char *uri, int parent_id, int order, - bool is_duplicate_check_needed = false, bool is_URI_check_needed = false); - int update_bookmark_notify(int id, const char *title, const char *uri, int parent_id, int order, - 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); - int get_count(void); - bool get_id(const char *uri, int *bookmark_id); - bool is_in_bookmark(const char *uri); - -private: + bool getItem(const std::string & url, BookmarkItem * item); + + bool delete_by_id(int id); + bool delete_by_id_notify(int id); + bool delete_by_uri(const char *uri); + int update_bookmark(int id, const char *title, const char *uri, + int parent_id, int order, + bool is_duplicate_check_needed = + false, bool is_URI_check_needed = false); + int update_bookmark_notify(int id, const char *title, const char *uri, + int parent_id, int order, + 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); + int get_count(void); + bool get_id(const char *uri, int *bookmark_id); + bool is_in_bookmark(const char *uri); + + private: /** * Help method printing last bp_bookmark_error_defs error. */ - void errorPrint(std::string method) const; - - enum ItemType{ - BOOKMARK_TYPE = 0 - , ALL_TYPE = -1 - }; - std::vector m_bookmark_list; - std::shared_ptr m_storageManager; + void errorPrint(std::string method) const; + + enum ItemType + { + BOOKMARK_TYPE = 0, ALL_TYPE = -1 + }; + std::vector < BookmarkItem * >m_bookmark_list; + std::shared_ptr < tizen_browser::services::StorageService > + m_storageManager; /// \todo Need to change getBookmarkId function for finding stored bookmark - check getBookmarkExists function - int getBookmarkId(const std::string & url); -}; + int getBookmarkId(const std::string & url); + }; -} + } } -#endif // FAVORITESERVICE_H +#endif // FAVORITESERVICE_H diff --git a/services/CertificateService/CertificateContents.cpp b/services/CertificateService/CertificateContents.cpp old mode 100644 new mode 100755 index 4a33fb37..b6eefdaf --- a/services/CertificateService/CertificateContents.cpp +++ b/services/CertificateService/CertificateContents.cpp @@ -50,504 +50,575 @@ namespace tizen_browser { -namespace services -{ + namespace services + { -EXPORT_SERVICE(CertificateContents, "org.tizen.browser.certificateservice") + EXPORT_SERVICE(CertificateContents, + "org.tizen.browser.certificateservice") -CertificateContents::CertificateContents() - : m_mainLayout(nullptr) + CertificateContents::CertificateContents() + :m_mainLayout(nullptr) , m_parent(nullptr) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - m_edjFilePath = EDJE_DIR; - m_edjFilePath.append("CertificateService/CertificatePopup.edj"); - elm_theme_extension_add(nullptr, m_edjFilePath.c_str()); -} - -CertificateContents::~CertificateContents() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (m_genlist) - evas_object_del(m_genlist); - if (m_mainLayout) - evas_object_del(m_mainLayout); - m_genlist_callback_data_list.clear(); -} - -void CertificateContents::init() -{ - auto certList = getHostCertList(); - if (certList) { - for (auto it = (*certList)->begin(); it != (*certList)->end(); ++it) { - addToHostCertList(it->first, static_cast(it->second)); - } - } else { - BROWSER_LOGW("[%s:%d] wrong certList value!", __PRETTY_FUNCTION__, __LINE__); + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + m_edjFilePath = EDJE_DIR; + m_edjFilePath.append("CertificateService/CertificatePopup.edj"); + elm_theme_extension_add(nullptr, m_edjFilePath.c_str()); } -} - -void CertificateContents::setCurrentTabCertData(std::string host, std::string pem, HOST_TYPE type) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (m_genlist) { - elm_genlist_clear(m_genlist); - evas_object_del(m_genlist); + CertificateContents::~CertificateContents() + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + if (m_genlist) + evas_object_del(m_genlist); + if (m_mainLayout) + evas_object_del(m_mainLayout); + m_genlist_callback_data_list.clear(); } - m_genlist_callback_data_list.clear(); - m_hostType = type; - - if (!createCertificate(pem.c_str())) - m_hostType = UNSECURE_HOST_UNKNOWN; - - addToHostCertList(host, m_hostType); - m_genlist = createGenlist(m_parent); -} -bool CertificateContents::isValidCertificate(const std::string& uri) -{ - HOST_TYPE type = isCertExistForHost(tools::extractDomain(uri)); - return type == SECURE_HOST; -} + void CertificateContents::init() + { + auto certList = getHostCertList(); + if (certList) { + for (auto it = (*certList)->begin(); it != (*certList)->end(); ++it) { + addToHostCertList(it->first, + static_cast < HOST_TYPE > (it->second)); + } + } else { + BROWSER_LOGW("[%s:%d] wrong certList value!", __PRETTY_FUNCTION__, + __LINE__); + } + } -CertificateContents::HOST_TYPE CertificateContents::isCertExistForHost(const std::string& host) -{ - /*Returns the host type if a cert. exists for the host */ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + void CertificateContents::setCurrentTabCertData(std::string host, + std::string pem, + HOST_TYPE type) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (m_host_cert_info.find(host) == m_host_cert_info.end()) - return HOST_ABSENT; - else - return m_host_cert_info[host]; -} + if (m_genlist) { + elm_genlist_clear(m_genlist); + evas_object_del(m_genlist); + } + m_genlist_callback_data_list.clear(); + m_hostType = type; -void CertificateContents::addToHostCertList(const std::string& host, HOST_TYPE type) -{ - BROWSER_LOGD("[%s:%d] host: %s type: %d", __PRETTY_FUNCTION__, __LINE__, host.c_str(), type); - m_host_cert_info[host] = type; -} + if (!createCertificate(pem.c_str())) + m_hostType = UNSECURE_HOST_UNKNOWN; -void CertificateContents::saveCertificateInfo(const std::string& host, const std::string& pem) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - HOST_TYPE savedType = isCertExistForHost(host); - if (savedType == HOST_ABSENT) - savedType = SECURE_HOST; - - setCurrentTabCertData(host, pem, savedType); - addOrUpdateCertificateEntry(pem, host, static_cast(savedType)); -} + addToHostCertList(host, m_hostType); + m_genlist = createGenlist(m_parent); + } -void CertificateContents::saveWrongCertificateInfo(const std::string& host, const std::string& pem) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - HOST_TYPE savedType = UNSECURE_HOST_ALLOWED; - setCurrentTabCertData(host, pem, savedType); - addOrUpdateCertificateEntry(pem, host, static_cast(savedType)); -} + bool CertificateContents::isValidCertificate(const std::string & uri) + { + HOST_TYPE type = isCertExistForHost(tools::extractDomain(uri)); + return type == SECURE_HOST; + } -void CertificateContents::clear() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - m_host_cert_info.clear(); -} + CertificateContents::HOST_TYPE CertificateContents:: + isCertExistForHost(const std::string & host) { + /*Returns the host type if a cert. exists for the host */ + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); -void CertificateContents::initUI(Evas_Object* parent) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - m_parent = parent; -} - -Evas_Object* CertificateContents::createLabel(Evas_Object* parent, const std::string& msg) -{ - Evas_Object* layout = elm_layout_add(parent); - elm_layout_file_set(layout, m_edjFilePath.c_str(), "label_layout"); - elm_layout_text_set(layout, "auth_text", msg.c_str()); - evas_object_show(layout); + if (m_host_cert_info.find(host) == m_host_cert_info.end()) + return HOST_ABSENT; + else + return m_host_cert_info[host]; + } - return layout; -} + void CertificateContents::addToHostCertList(const std::string & host, + HOST_TYPE type) + { + BROWSER_LOGD("[%s:%d] host: %s type: %d", __PRETTY_FUNCTION__, __LINE__, + host.c_str(), type); + m_host_cert_info[host] = type; + } -Evas_Object* CertificateContents::getContent() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + void CertificateContents::saveCertificateInfo(const std::string & host, + const std::string & pem) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + HOST_TYPE savedType = isCertExistForHost(host); + if (savedType == HOST_ABSENT) + savedType = SECURE_HOST; - if (m_hostType == HOST_ABSENT) { - return createLabel(m_parent, BR_STRING_CERTI_MESSAGE); - } else { - return m_genlist; + setCurrentTabCertData(host, pem, savedType); + addOrUpdateCertificateEntry(pem, host, static_cast < int >(savedType)); } -} -bool CertificateContents::createCertificate(const char* certificate_data) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - /* - *Bring the PEM cert. data into an OpenSSL memory BIO - *This memory BIO will be used to convert the PEM cert - *data to X509 format - */ - BIO *cert_mem_bio = nullptr; - cert_mem_bio = BIO_new(BIO_s_mem()); - if (cert_mem_bio == nullptr) { - BROWSER_LOGE("[%s:%d] Failed to create OpenSSL memory BIO", __PRETTY_FUNCTION__, __LINE__); - BIO_free(cert_mem_bio); - return false; + void CertificateContents::saveWrongCertificateInfo(const std:: + string & host, + const std:: + string & pem) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + HOST_TYPE savedType = UNSECURE_HOST_ALLOWED; + setCurrentTabCertData(host, pem, savedType); + addOrUpdateCertificateEntry(pem, host, static_cast < int >(savedType)); } - BIO_puts(cert_mem_bio, certificate_data); - /* - *Convert from PEM to x509 - */ - m_certificate = PEM_read_bio_X509(cert_mem_bio, nullptr, 0 , nullptr); - BIO_free(cert_mem_bio); + void CertificateContents::clear() + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + m_host_cert_info.clear(); + } - if (!m_certificate) { - BROWSER_LOGE("[%s:%d] PEM to x509 conversion failed", __PRETTY_FUNCTION__, __LINE__); - return false; + void CertificateContents::initUI(Evas_Object * parent) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + m_parent = parent; } - _parse_certificate(); - return true; -} + Evas_Object *CertificateContents::createLabel(Evas_Object * parent, + const std::string & msg) + { + Evas_Object *layout = elm_layout_add(parent); + elm_layout_file_set(layout, m_edjFilePath.c_str(), "label_layout"); + elm_layout_text_set(layout, "auth_text", msg.c_str()); + evas_object_show(layout); -Evas_Object* CertificateContents::createGenlist(Evas_Object* parent) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (m_genlist) { - elm_genlist_clear(m_genlist); - evas_object_del(m_genlist); + return layout; } - m_genlist = elm_genlist_add(parent); - - elm_scroller_policy_set(m_genlist, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_ON); - elm_genlist_mode_set(m_genlist, ELM_LIST_COMPRESS); - evas_object_size_hint_weight_set(m_genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(m_genlist, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_show(m_genlist); + Evas_Object *CertificateContents::getContent() + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - Elm_Genlist_Item_Class *auth_item_class = elm_genlist_item_class_new(); - if (!auth_item_class) { - BROWSER_LOGE("elm_genlist_item_class_new for item_class failed"); - return m_genlist; - } - auth_item_class->item_style = "cert_auth_text"; - auth_item_class->func.text_get = __auth_text_get_cb; - auth_item_class->func.content_get = nullptr; - auth_item_class->func.state_get = nullptr; - auth_item_class->func.del = nullptr; - Elm_Object_Item *it = elm_genlist_item_append(m_genlist, auth_item_class, this, nullptr, ELM_GENLIST_ITEM_NONE, nullptr, nullptr); - elm_genlist_item_select_mode_set(it, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); - - Elm_Genlist_Item_Class *field_item_class = elm_genlist_item_class_new(); - if (!field_item_class) { - BROWSER_LOGE("elm_genlist_item_class_new for item_class failed"); - return m_genlist; - } - field_item_class->item_style = "cert_field_text"; - field_item_class->decorate_item_style = nullptr; - field_item_class->func.text_get = __field_text_get_cb; - field_item_class->func.content_get = nullptr; - field_item_class->func.state_get = nullptr; - field_item_class->func.del = nullptr; - - Elm_Genlist_Item_Class *item_class = elm_genlist_item_class_new(); - if (!item_class) { - BROWSER_LOGE("elm_genlist_item_class_new for item_class failed"); - return m_genlist; - } - item_class->item_style = "cert_title_value_text"; - item_class->decorate_item_style = nullptr; - item_class->func.text_get = __title_value_text_get_cb; - item_class->func.content_get = nullptr; - item_class->func.state_get = nullptr; - item_class->func.del = nullptr; - - int no_of_items = m_genlist_callback_data_list.size(); - for (int i = 0; i < no_of_items; i++) { - Elm_Object_Item *item = nullptr; - auto callback_data = m_genlist_callback_data_list[i]; - if (callback_data->type == ISSUED_BY_HEADER || callback_data->type == ISSUED_TO_HEADER || - callback_data->type == VALIDITY_HEADER || callback_data->type == FINGERPRINTS_HEADER) { - item = elm_genlist_item_append(m_genlist, field_item_class, callback_data.get(), nullptr, ELM_GENLIST_ITEM_NONE, nullptr, nullptr); - } else - item = elm_genlist_item_append(m_genlist, item_class, callback_data.get(), nullptr, ELM_GENLIST_ITEM_NONE, nullptr, nullptr); - elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); + if (m_hostType == HOST_ABSENT) { + return createLabel(m_parent, BR_STRING_CERTI_MESSAGE); + } else { + return m_genlist; + } } - return m_genlist; -} - -char* CertificateContents::__auth_text_get_cb(void* data, Evas_Object* /*obj*/, const char* part) -{ - CertificateContents* cc = static_cast(data); - if (!strcmp(part, "auth_text")) { - if (cc->isValidCertificate()) - return strdup(BR_STRING_TRUSTED_AUTHORITY); - else - return strdup(BR_STRING_UNTRUSTED_AUTHORITY); + bool CertificateContents::createCertificate(const char *certificate_data) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + /* + *Bring the PEM cert. data into an OpenSSL memory BIO + *This memory BIO will be used to convert the PEM cert + *data to X509 format + */ + BIO *cert_mem_bio = nullptr; + cert_mem_bio = BIO_new(BIO_s_mem()); + if (cert_mem_bio == nullptr) { + BROWSER_LOGE("[%s:%d] Failed to create OpenSSL memory BIO", + __PRETTY_FUNCTION__, __LINE__); + BIO_free(cert_mem_bio); + return false; + } + BIO_puts(cert_mem_bio, certificate_data); + + /* + *Convert from PEM to x509 + */ + m_certificate = PEM_read_bio_X509(cert_mem_bio, nullptr, 0, nullptr); + BIO_free(cert_mem_bio); + + if (!m_certificate) { + BROWSER_LOGE("[%s:%d] PEM to x509 conversion failed", + __PRETTY_FUNCTION__, __LINE__); + return false; + } + + _parse_certificate(); + return true; } - return strdup(""); -} -char* CertificateContents::__field_text_get_cb(void* data, Evas_Object* /*obj*/, const char* part) -{ - auto callback_data = static_cast(data); + Evas_Object *CertificateContents::createGenlist(Evas_Object * parent) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + if (m_genlist) { + elm_genlist_clear(m_genlist); + evas_object_del(m_genlist); + } + m_genlist = elm_genlist_add(parent); + + elm_scroller_policy_set(m_genlist, ELM_SCROLLER_POLICY_OFF, + ELM_SCROLLER_POLICY_ON); + elm_genlist_mode_set(m_genlist, ELM_LIST_COMPRESS); + evas_object_size_hint_weight_set(m_genlist, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(m_genlist, EVAS_HINT_FILL, + EVAS_HINT_FILL); + + evas_object_show(m_genlist); + + Elm_Genlist_Item_Class *auth_item_class = elm_genlist_item_class_new(); + if (!auth_item_class) { + BROWSER_LOGE("elm_genlist_item_class_new for item_class failed"); + return m_genlist; + } + auth_item_class->item_style = "cert_auth_text"; + auth_item_class->func.text_get = __auth_text_get_cb; + auth_item_class->func.content_get = nullptr; + auth_item_class->func.state_get = nullptr; + auth_item_class->func.del = nullptr; + Elm_Object_Item *it = + elm_genlist_item_append(m_genlist, auth_item_class, this, nullptr, + ELM_GENLIST_ITEM_NONE, nullptr, nullptr); + elm_genlist_item_select_mode_set(it, + ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); + + Elm_Genlist_Item_Class *field_item_class = elm_genlist_item_class_new(); + if (!field_item_class) { + BROWSER_LOGE("elm_genlist_item_class_new for item_class failed"); + return m_genlist; + } + field_item_class->item_style = "cert_field_text"; + field_item_class->decorate_item_style = nullptr; + field_item_class->func.text_get = __field_text_get_cb; + field_item_class->func.content_get = nullptr; + field_item_class->func.state_get = nullptr; + field_item_class->func.del = nullptr; + + Elm_Genlist_Item_Class *item_class = elm_genlist_item_class_new(); + if (!item_class) { + BROWSER_LOGE("elm_genlist_item_class_new for item_class failed"); + return m_genlist; + } + item_class->item_style = "cert_title_value_text"; + item_class->decorate_item_style = nullptr; + item_class->func.text_get = __title_value_text_get_cb; + item_class->func.content_get = nullptr; + item_class->func.state_get = nullptr; + item_class->func.del = nullptr; + + int no_of_items = m_genlist_callback_data_list.size(); + for (int i = 0; i < no_of_items; i++) { + Elm_Object_Item *item = nullptr; + auto callback_data = m_genlist_callback_data_list[i]; + if (callback_data->type == ISSUED_BY_HEADER + || callback_data->type == ISSUED_TO_HEADER + || callback_data->type == VALIDITY_HEADER + || callback_data->type == FINGERPRINTS_HEADER) { + item = + elm_genlist_item_append(m_genlist, field_item_class, + callback_data.get(), nullptr, + ELM_GENLIST_ITEM_NONE, nullptr, nullptr); + } else { + item = + elm_genlist_item_append(m_genlist, item_class, + callback_data.get(), nullptr, + ELM_GENLIST_ITEM_NONE, nullptr, nullptr); + } + elm_genlist_item_select_mode_set(item, + ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); + } - if (callback_data && !strcmp(part, "field_text")) { - return strdup(callback_data->title); + return m_genlist; } - BROWSER_LOGW("[%s:%d] callback_data is empty!", __PRETTY_FUNCTION__, __LINE__); - return strdup(""); -} + char *CertificateContents::__auth_text_get_cb(void *data, + Evas_Object * /*obj */ , + const char *part) + { + CertificateContents *cc = static_cast < CertificateContents * >(data); + if (!strcmp(part, "auth_text")) { + if (cc->isValidCertificate()) + return strdup(BR_STRING_TRUSTED_AUTHORITY); + else + return strdup(BR_STRING_UNTRUSTED_AUTHORITY); + } + return strdup(""); + } -char* CertificateContents::__title_value_text_get_cb(void* data, Evas_Object* /*obj*/, const char* part) -{ - auto callback_data = static_cast(data); + char *CertificateContents::__field_text_get_cb(void *data, + Evas_Object * /*obj */ , + const char *part) + { + auto callback_data = static_cast < genlist_callback_data * >(data); - if (callback_data) { - if (!strcmp(part, "title_text")) { - return strdup(callback_data->title); - } else if (!strcmp(part,"value_text")) { - return strdup(callback_data->value); - } + if (callback_data && !strcmp(part, "field_text")) { + return strdup(callback_data->title); + } - BROWSER_LOGW("[%s:%d] unknown part: \"%s\"!", __PRETTY_FUNCTION__, __LINE__, part); - return strdup(""); + BROWSER_LOGW("[%s:%d] callback_data is empty!", __PRETTY_FUNCTION__, + __LINE__); + return strdup(""); } - BROWSER_LOGW("[%s:%d] callback_data is empty!", __PRETTY_FUNCTION__, __LINE__); - return strdup(""); -} + char *CertificateContents::__title_value_text_get_cb(void *data, + Evas_Object * + /*obj */ , + const char *part) + { + auto callback_data = static_cast < genlist_callback_data * >(data); + + if (callback_data) { + if (!strcmp(part, "title_text")) { + return strdup(callback_data->title); + } else if (!strcmp(part, "value_text")) { + return strdup(callback_data->value); + } + + BROWSER_LOGW("[%s:%d] unknown part: \"%s\"!", __PRETTY_FUNCTION__, + __LINE__, part); + return strdup(""); + } + + BROWSER_LOGW("[%s:%d] callback_data is empty!", __PRETTY_FUNCTION__, + __LINE__); + return strdup(""); + } /* *This method will parse the string and fetch the data *which is inbetween '=' and '/' or '\0'. */ -static const char* _get_value(char* token) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (!token) - return nullptr; - - BROWSER_LOGD("token %s", token); - int start = 0; - int end = 0; - int len = strlen(token); - - while (start < len && token[start] != '=') - start++; - start++; //to skip '=' char - if (start >= len) return nullptr; //couldnt find the proper value so dont add this item in genlist - - for (int i = start; i < len; i++) { - if ((token[i] == '/') || (token[i] == '\0')) - break; - end++; //If no string found return the whole string + static const char *_get_value(char *token) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + if (!token) + return nullptr; + + BROWSER_LOGD("token %s", token); + int start = 0; + int end = 0; + int len = strlen(token); + + while (start < len && token[start] != '=') + start++; + start++; //to skip '=' char + if (start >= len) + return nullptr; //couldnt find the proper value so dont add this item in genlist + + for (int i = start; i < len; i++) { + if ((token[i] == '/') || (token[i] == '\0')) + break; + end++; //If no string found return the whole string + } + std::string token_str = token; + std::string value = token_str.substr(start, end); + return strdup(value.c_str()); } - std::string token_str = token; - std::string value = token_str.substr(start, end); - return strdup(value.c_str()); -} /* *This method will format the ANS1_TIME struct to readable time format */ -static const char* _get_formatted_time(ASN1_TIME* tm) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - char timeBuf[128] = {'\0', }; - BIO *sBio = BIO_new(BIO_s_mem()); - if (sBio) { - int retVal = ASN1_TIME_print(sBio, tm); - if (retVal <= 0) { - BROWSER_LOGE("ASN1_TIME_print failed or wrote no data.\n"); - BIO_free(sBio); - return nullptr; - } - retVal = BIO_gets(sBio, timeBuf, 128); - if (retVal <= 0) { - BROWSER_LOGE("Failed to transfer contents to TimeBuffer"); - BIO_free(sBio); - return nullptr; - } - BIO_free(sBio); + static const char *_get_formatted_time(ASN1_TIME * tm) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + char timeBuf[128] = { '\0', }; + BIO *sBio = BIO_new(BIO_s_mem()); + if (sBio) { + int retVal = ASN1_TIME_print(sBio, tm); + if (retVal <= 0) { + BROWSER_LOGE("ASN1_TIME_print failed or wrote no data.\n"); + BIO_free(sBio); + return nullptr; + } + retVal = BIO_gets(sBio, timeBuf, 128); + if (retVal <= 0) { + BROWSER_LOGE("Failed to transfer contents to TimeBuffer"); + BIO_free(sBio); + return nullptr; + } + BIO_free(sBio); + } + return strdup(timeBuf); } - return strdup(timeBuf); -} /* *This method will convert the serial number in required format. */ -static const char* _get_formatted_serial_no(ASN1_INTEGER *bs ) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - char printable[100]={'\0',}; - BIGNUM *bn = ASN1_INTEGER_to_BN(bs, nullptr); - unsigned char* binSerial = nullptr; - unsigned int outsz; - outsz = BN_num_bytes(bn); - if(bn){ - if (BN_is_negative(bn)) { - outsz++; - if (!(binSerial = (unsigned char* )malloc(outsz))) return 0; - BN_bn2bin(bn, binSerial + 1); - binSerial[0] = 0x80; - } else { - if (!(binSerial = (unsigned char* )malloc(outsz))) return 0; - BN_bn2bin(bn, binSerial); - } + static const char *_get_formatted_serial_no(ASN1_INTEGER * bs) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + char printable[100] = { '\0', }; + BIGNUM *bn = ASN1_INTEGER_to_BN(bs, nullptr); + unsigned char *binSerial = nullptr; + unsigned int outsz; + outsz = BN_num_bytes(bn); + if (bn) { + if (BN_is_negative(bn)) { + outsz++; + if (!(binSerial = (unsigned char *) malloc(outsz))) + return 0; + BN_bn2bin(bn, binSerial + 1); + binSerial[0] = 0x80; + } else { + if (!(binSerial = (unsigned char *) malloc(outsz))) + return 0; + BN_bn2bin(bn, binSerial); + } + } + + for (size_t i = 0; i < outsz; i++) { + char *l = (char *) (3 * i + ((intptr_t) printable)); + + if (i < (outsz - 1)) { + if (binSerial != nullptr) { + snprintf(l, 4, "%02x%c", binSerial[i], ':'); + } + } else { + if (binSerial != nullptr) { + snprintf(l, 3, "%02x", binSerial[i]); + } + } + } + free(binSerial); + BN_free(bn); + BROWSER_LOGD(" New Serial Number : %s", printable); + return strdup(printable); } - for (size_t i=0; i < outsz; i++) { - char* l = (char*) (3*i + ((intptr_t) printable)); - - if (i < (outsz -1)) { - if(binSerial != nullptr) { - snprintf(l, 4, "%02x%c", binSerial[i],':'); - } - } - else { - if(binSerial != nullptr) { - snprintf(l, 3, "%02x", binSerial[i]); - } - } - } - free(binSerial); - BN_free(bn); - BROWSER_LOGD(" New Serial Number : %s",printable); - return strdup(printable); -} - /* *This method is to convert binary data to hexa decimal */ -static const char* _bin2hex(unsigned char*bin, size_t bin_size , char delimiter) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - char printable[100]={'\0',}; - for (size_t i=0; i < bin_size; i++) { - char* l = (char*) (3*i + ((intptr_t) printable)); - snprintf(l, 4, "%02x%c", bin[i],delimiter); + static const char *_bin2hex(unsigned char *bin, size_t bin_size, + char delimiter) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + char printable[100] = { '\0', }; + for (size_t i = 0; i < bin_size; i++) { + char *l = (char *) (3 * i + ((intptr_t) printable)); + snprintf(l, 4, "%02x%c", bin[i], delimiter); + } + + return strdup(printable); } - return strdup(printable); -} - -void CertificateContents::_parse_certificate() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - char issued_to[1024] = {'\0', }; - char issued_by[1024] = {'\0', }; - char sha256[SHA256LEN] = {'\0', }; - char sha1[SHA1LEN] = {'\0', }; - size_t size; - - for (int field_count = 0; field_count < FIELD_END; field_count++) { - if (field_count == ISSUED_TO_HEADER) { - //Issued to - size = sizeof(issued_to); - X509_NAME_oneline(X509_get_subject_name(m_certificate), issued_to, size); - _populate_certificate_field_data(issued_to, ISSUED_TO_HEADER); - //Serial no: - ASN1_INTEGER *bs = X509_get_serialNumber(m_certificate); - _generate_genlist_data(ISSUED_TO_SERIAL_NO, BR_STRING_CERTIFICATE_SERIAL_NUMBER,_get_formatted_serial_no(bs)); - field_count += 4; - } else if (field_count == ISSUED_BY_HEADER) { - //Issued by - size = sizeof(issued_by); - X509_NAME_oneline(X509_get_issuer_name(m_certificate), issued_by, size); - _populate_certificate_field_data(issued_by, ISSUED_BY_HEADER); - field_count += 3; - } else if (field_count == VALIDITY_HEADER) { - _populate_certificate_field_data(nullptr, VALIDITY_HEADER); - //Issued On - ASN1_TIME *issuedTime = X509_get_notBefore(m_certificate); - _generate_genlist_data(VALIDITY_ISSUED_ON, BR_STRING_ISSUED_ON, _get_formatted_time(issuedTime)); - //Expires on - ASN1_TIME *expiresTime = X509_get_notAfter(m_certificate); - _generate_genlist_data(VALIDITY_EXPIRES_ON, BR_STRING_EXPIRES_ON_C, _get_formatted_time(expiresTime)); - field_count += 2; - } else if (field_count == FINGERPRINTS_HEADER) { - _populate_certificate_field_data(nullptr, FINGERPRINTS_HEADER); - const EVP_MD *digestSHA256 = EVP_sha256(); - unsigned len1; - int retVal = X509_digest(m_certificate, digestSHA256,(unsigned char*) sha256, &len1); - if (retVal == 0 || len1 != SHA256LEN) { - BROWSER_LOGE("Getting SHA256 cryptographic fingerprint failed %d",len1); - continue; - } - _generate_genlist_data(FINGERPRINTS_SHA_256_FP, BR_STRING_FINGERPRINTS_SHA256, _bin2hex((unsigned char*)sha256, SHA256LEN,' ')); - const EVP_MD *digestSHA1 = EVP_sha1(); - unsigned len2; - retVal = X509_digest(m_certificate, digestSHA1,(unsigned char*) sha1, &len2); - if (retVal == 0 || len2 != SHA1LEN) { - BROWSER_LOGE("Getting SHA1 cryptographic fingerprint failed %d",len2); - continue; - } - _generate_genlist_data(FINGERPRINTS_SHA_1_FP, BR_STRING_FINGERPRINTS_SHA1, _bin2hex((unsigned char*)sha1, SHA1LEN,' ')); - field_count += 2; - } + void CertificateContents::_parse_certificate() + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + char issued_to[1024] = { '\0', }; + char issued_by[1024] = { '\0', }; + char sha256[SHA256LEN] = { '\0', }; + char sha1[SHA1LEN] = { '\0', }; + size_t size; + + for (int field_count = 0; field_count < FIELD_END; field_count++) { + if (field_count == ISSUED_TO_HEADER) { + //Issued to + size = sizeof(issued_to); + X509_NAME_oneline(X509_get_subject_name(m_certificate), issued_to, + size); + _populate_certificate_field_data(issued_to, ISSUED_TO_HEADER); + //Serial no: + ASN1_INTEGER *bs = X509_get_serialNumber(m_certificate); + _generate_genlist_data(ISSUED_TO_SERIAL_NO, + BR_STRING_CERTIFICATE_SERIAL_NUMBER, + _get_formatted_serial_no(bs)); + field_count += 4; + } else if (field_count == ISSUED_BY_HEADER) { + //Issued by + size = sizeof(issued_by); + X509_NAME_oneline(X509_get_issuer_name(m_certificate), issued_by, + size); + _populate_certificate_field_data(issued_by, ISSUED_BY_HEADER); + field_count += 3; + } else if (field_count == VALIDITY_HEADER) { + _populate_certificate_field_data(nullptr, VALIDITY_HEADER); + //Issued On + ASN1_TIME *issuedTime = X509_get_notBefore(m_certificate); + _generate_genlist_data(VALIDITY_ISSUED_ON, BR_STRING_ISSUED_ON, + _get_formatted_time(issuedTime)); + //Expires on + ASN1_TIME *expiresTime = X509_get_notAfter(m_certificate); + _generate_genlist_data(VALIDITY_EXPIRES_ON, BR_STRING_EXPIRES_ON_C, + _get_formatted_time(expiresTime)); + field_count += 2; + } else if (field_count == FINGERPRINTS_HEADER) { + _populate_certificate_field_data(nullptr, FINGERPRINTS_HEADER); + const EVP_MD *digestSHA256 = EVP_sha256(); + unsigned len1; + int retVal = + X509_digest(m_certificate, digestSHA256, (unsigned char *) sha256, + &len1); + if (retVal == 0 || len1 != SHA256LEN) { + BROWSER_LOGE("Getting SHA256 cryptographic fingerprint failed %d", + len1); + continue; + } + _generate_genlist_data(FINGERPRINTS_SHA_256_FP, + BR_STRING_FINGERPRINTS_SHA256, + _bin2hex((unsigned char *) sha256, SHA256LEN, + ' ')); + const EVP_MD *digestSHA1 = EVP_sha1(); + unsigned len2; + retVal = + X509_digest(m_certificate, digestSHA1, (unsigned char *) sha1, + &len2); + if (retVal == 0 || len2 != SHA1LEN) { + BROWSER_LOGE("Getting SHA1 cryptographic fingerprint failed %d", + len2); + continue; + } + _generate_genlist_data(FINGERPRINTS_SHA_1_FP, + BR_STRING_FINGERPRINTS_SHA1, + _bin2hex((unsigned char *) sha1, SHA1LEN, + ' ')); + field_count += 2; + } + } } -} -void CertificateContents::_populate_certificate_field_data(char* data, certificate_field field) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - const char* value = nullptr; - switch (field) { - case ISSUED_BY_HEADER: - _generate_genlist_data(ISSUED_BY_HEADER , BR_STRING_ISSUED_BY_C, strdup(BR_STRING_ISSUED_BY_C)); - //Get Common name - value = _get_value(strstr(data, "CN=")); - _generate_genlist_data(ISSUED_BY_CN, BR_STRING_COMMON_NAME, value); - //Get Orgnization - value = _get_value(strstr(data, "O=")); - _generate_genlist_data(ISSUED_BY_ORG, BR_STRING_ORGANIZATION, value); - //Get Orgnization UNIT - value = _get_value(strstr(data, "OU=")); - _generate_genlist_data(ISSUED_BY_ORG_UNIT, BR_STRING_ORGANIZATION_UNIT, value); - break; - - case ISSUED_TO_HEADER: - _generate_genlist_data(ISSUED_TO_HEADER , BR_STRING_ISSUED_TO_C, strdup(BR_STRING_ISSUED_TO_C)); - //Get Common name - value = _get_value(strstr(data, "CN=")); - _generate_genlist_data(ISSUED_TO_CN, BR_STRING_COMMON_NAME, value); - //Get Orgnization - value = _get_value(strstr(data, "O=")); - _generate_genlist_data(ISSUED_TO_ORG, BR_STRING_ORGANIZATION, value); - //Get Orgnization UNIT - value = _get_value(strstr(data, "OU=")); - _generate_genlist_data(ISSUED_TO_ORG_UNIT, BR_STRING_ORGANIZATION_UNIT, value); - break; - - case VALIDITY_HEADER: - _generate_genlist_data(VALIDITY_HEADER , BR_STRING_VALIDITY_C, strdup(BR_STRING_VALIDITY_C)); - break; - - case FINGERPRINTS_HEADER: - _generate_genlist_data(FINGERPRINTS_HEADER , BR_STRING_FINGERPRINTS, strdup(BR_STRING_FINGERPRINTS)); - break; - - default: - break; + void CertificateContents::_populate_certificate_field_data(char *data, + certificate_field + field) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + const char *value = nullptr; + switch (field) { + case ISSUED_BY_HEADER: + _generate_genlist_data(ISSUED_BY_HEADER, BR_STRING_ISSUED_BY_C, + strdup(BR_STRING_ISSUED_BY_C)); + //Get Common name + value = _get_value(strstr(data, "CN=")); + _generate_genlist_data(ISSUED_BY_CN, BR_STRING_COMMON_NAME, value); + //Get Orgnization + value = _get_value(strstr(data, "O=")); + _generate_genlist_data(ISSUED_BY_ORG, BR_STRING_ORGANIZATION, value); + //Get Orgnization UNIT + value = _get_value(strstr(data, "OU=")); + _generate_genlist_data(ISSUED_BY_ORG_UNIT, + BR_STRING_ORGANIZATION_UNIT, value); + break; + + case ISSUED_TO_HEADER: + _generate_genlist_data(ISSUED_TO_HEADER, BR_STRING_ISSUED_TO_C, + strdup(BR_STRING_ISSUED_TO_C)); + //Get Common name + value = _get_value(strstr(data, "CN=")); + _generate_genlist_data(ISSUED_TO_CN, BR_STRING_COMMON_NAME, value); + //Get Orgnization + value = _get_value(strstr(data, "O=")); + _generate_genlist_data(ISSUED_TO_ORG, BR_STRING_ORGANIZATION, value); + //Get Orgnization UNIT + value = _get_value(strstr(data, "OU=")); + _generate_genlist_data(ISSUED_TO_ORG_UNIT, + BR_STRING_ORGANIZATION_UNIT, value); + break; + + case VALIDITY_HEADER: + _generate_genlist_data(VALIDITY_HEADER, BR_STRING_VALIDITY_C, + strdup(BR_STRING_VALIDITY_C)); + break; + + case FINGERPRINTS_HEADER: + _generate_genlist_data(FINGERPRINTS_HEADER, BR_STRING_FINGERPRINTS, + strdup(BR_STRING_FINGERPRINTS)); + break; + + default: + break; + } } -} -void CertificateContents::_generate_genlist_data(certificate_field field_type, const char* title, const char* value) -{ - if (!value) - return; - auto gl_data = std::make_shared(); - gl_data->type = field_type; - gl_data->title = title; - gl_data->value = value; - m_genlist_callback_data_list.push_back(gl_data); -} + void CertificateContents:: + _generate_genlist_data(certificate_field field_type, const char *title, + const char *value) + { + if (!value) + return; + auto gl_data = std::make_shared < genlist_callback_data > (); + gl_data->type = field_type; + gl_data->title = title; + gl_data->value = value; + m_genlist_callback_data_list.push_back(gl_data); + } -} + } } diff --git a/services/CertificateService/CertificateContents.h b/services/CertificateService/CertificateContents.h old mode 100644 new mode 100755 index b044c875..d2cd9706 --- a/services/CertificateService/CertificateContents.h +++ b/services/CertificateService/CertificateContents.h @@ -38,96 +38,114 @@ namespace tizen_browser { -namespace services -{ + namespace services + { -class BROWSER_EXPORT CertificateContents : public tizen_browser::core::AbstractService -{ -public: - CertificateContents(); - ~CertificateContents(); + class BROWSER_EXPORT CertificateContents:public tizen_browser::core:: + AbstractService + { + public: + CertificateContents(); + ~CertificateContents(); /** * @brief Returns current service's name. */ - virtual std::string getName(); - - enum HOST_TYPE { - SECURE_HOST = 1, - UNSECURE_HOST_ALLOWED, - UNSECURE_HOST_UNKNOWN, - HOST_ABSENT = -1 + virtual std::string getName(); + + enum HOST_TYPE + { + SECURE_HOST = 1, + UNSECURE_HOST_ALLOWED, + UNSECURE_HOST_UNKNOWN, + HOST_ABSENT = -1 + }; + + void init(); + void initUI(Evas_Object * parent); + Evas_Object *getContent(); + void unsecureHostAllowed(); + + void setCurrentTabCertData(std::string host, std::string pem, + HOST_TYPE type); + Eina_Bool isValidCertificate() const + { + return m_hostType == SECURE_HOST; + } + bool isValidCertificate(const std::string & uri); + + HOST_TYPE isCertExistForHost(const std::string & host); + void saveCertificateInfo(const std::string & host, + const std::string & pem); + void saveWrongCertificateInfo(const std::string & host, + const std::string & pem); + void clear(); + + boost::signals2::signal < std::shared_ptr < std::vector < std::pair < + std::string, int >>>() > getHostCertList; + boost::signals2::signal < void(const std::string &, + const std::string &, + int) > addOrUpdateCertificateEntry; + + private: + + typedef enum _certificate_field + { + ISSUED_TO_HEADER = 0, + ISSUED_TO_CN, + ISSUED_TO_ORG, + ISSUED_TO_ORG_UNIT, + ISSUED_TO_SERIAL_NO, + ISSUED_BY_HEADER, + ISSUED_BY_CN, + ISSUED_BY_ORG, + ISSUED_BY_ORG_UNIT, + VALIDITY_HEADER, + VALIDITY_ISSUED_ON, + VALIDITY_EXPIRES_ON, + FINGERPRINTS_HEADER, + FINGERPRINTS_SHA_256_FP, + FINGERPRINTS_SHA_1_FP, + FIELD_END + } certificate_field; + + struct genlist_callback_data + { + certificate_field type; + const char *title; + const char *value; + }; + + void addToHostCertList(const std::string & host, HOST_TYPE type); + bool createCertificate(const char *cert_data); + Evas_Object *createGenlist(Evas_Object * parent); + Evas_Object *createLabel(Evas_Object * parent, const std::string & msg); + void _parse_certificate(); + void _populate_certificate_field_data(char *data, + certificate_field field); + void _generate_genlist_data(certificate_field type, const char *title, + const char *value); + + static char *__auth_text_get_cb(void *data, Evas_Object * obj, + const char *part); + static char *__field_text_get_cb(void *data, Evas_Object * obj, + const char *part); + static char *__title_value_text_get_cb(void *data, Evas_Object * obj, + const char *part); + + Evas_Object *m_mainLayout; + Evas_Object *m_genlist; + Evas_Object *m_parent; + std::vector < std::shared_ptr < genlist_callback_data > + >m_genlist_callback_data_list; + std::string m_edjFilePath; + std::map < std::string, HOST_TYPE > m_host_cert_info; + + X509 *m_certificate; + HOST_TYPE m_hostType; }; - void init(); - void initUI(Evas_Object* parent); - Evas_Object* getContent(); - void unsecureHostAllowed(); - - void setCurrentTabCertData(std::string host, std::string pem, HOST_TYPE type); - Eina_Bool isValidCertificate() const { return m_hostType == SECURE_HOST; } - bool isValidCertificate(const std::string& uri); - - HOST_TYPE isCertExistForHost(const std::string& host); - void saveCertificateInfo(const std::string& host, const std::string& pem); - void saveWrongCertificateInfo(const std::string& host, const std::string& pem); - void clear(); - - boost::signals2::signal > > ()> getHostCertList; - boost::signals2::signal addOrUpdateCertificateEntry; - -private: - - typedef enum _certificate_field{ - ISSUED_TO_HEADER = 0, - ISSUED_TO_CN, - ISSUED_TO_ORG, - ISSUED_TO_ORG_UNIT, - ISSUED_TO_SERIAL_NO, - ISSUED_BY_HEADER, - ISSUED_BY_CN, - ISSUED_BY_ORG, - ISSUED_BY_ORG_UNIT, - VALIDITY_HEADER, - VALIDITY_ISSUED_ON, - VALIDITY_EXPIRES_ON, - FINGERPRINTS_HEADER, - FINGERPRINTS_SHA_256_FP, - FINGERPRINTS_SHA_1_FP, - FIELD_END - } certificate_field; - - struct genlist_callback_data { - certificate_field type; - const char *title; - const char *value; - }; - - void addToHostCertList(const std::string& host, HOST_TYPE type); - bool createCertificate(const char *cert_data); - Evas_Object* createGenlist(Evas_Object* parent); - Evas_Object* createLabel(Evas_Object* parent, const std::string& msg); - void _parse_certificate(); - void _populate_certificate_field_data(char *data, certificate_field field); - void _generate_genlist_data(certificate_field type, const char *title, const char *value); - - static char* __auth_text_get_cb(void* data, Evas_Object* obj, const char *part); - static char* __field_text_get_cb(void* data, Evas_Object* obj, const char *part); - static char* __title_value_text_get_cb(void* data, Evas_Object* obj, const char *part); - - Evas_Object* m_mainLayout; - Evas_Object* m_genlist; - Evas_Object* m_parent; - std::vector > m_genlist_callback_data_list; - std::string m_edjFilePath; - std::map m_host_cert_info; - - X509 *m_certificate; - HOST_TYPE m_hostType; - -}; - -} + } } -#endif // CERTIFICATECONTENTS_H +#endif // CERTIFICATECONTENTS_H diff --git a/services/FindOnPageUI/FindOnPageUI.cpp b/services/FindOnPageUI/FindOnPageUI.cpp index 3ddd1741..c919e8c2 100755 --- a/services/FindOnPageUI/FindOnPageUI.cpp +++ b/services/FindOnPageUI/FindOnPageUI.cpp @@ -30,13 +30,15 @@ #include "BrowserLogger.h" #include "Tools/EflTools.h" -namespace tizen_browser{ -namespace base_ui{ +namespace tizen_browser +{ + namespace base_ui + { -EXPORT_SERVICE(FindOnPageUI, "org.tizen.browser.findonpageui") + EXPORT_SERVICE(FindOnPageUI, "org.tizen.browser.findonpageui") -FindOnPageUI::FindOnPageUI() - : m_fop_layout(NULL) + FindOnPageUI::FindOnPageUI() + :m_fop_layout(NULL) , m_entry(NULL) , m_down_button(NULL) , m_up_button(NULL) @@ -46,393 +48,427 @@ FindOnPageUI::FindOnPageUI() , m_current_index(0) , m_input_word(NULL) , m_isVisible(false) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - m_edjFilePath = EDJE_DIR; - m_edjFilePath.append("FindOnPageUI/FindOnPage.edj"); -} - -FindOnPageUI::~FindOnPageUI(void) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - - evas_object_smart_callback_del(m_down_button, "clicked", __down_clicked_cb); - evas_object_smart_callback_del(m_up_button, "clicked", __up_clicked_cb); - - evas_object_smart_callback_del(m_entry, "activated", __enter_key_cb); - evas_object_smart_callback_del(m_entry, "changed", __entry_changed_cb); - evas_object_smart_callback_del(m_entry, "clicked", __entry_clicked_cb); - - evas_object_del(m_fop_layout); - eina_stringshare_del(m_input_word); -} - -void FindOnPageUI::show() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (!m_fop_layout) - m_fop_layout = createFindOnPageUILayout(); - showUI(); - show_ime(); -} - -void FindOnPageUI::init(Evas_Object* parent) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - M_ASSERT(parent); - m_parent = parent; -} - -Evas_Object* FindOnPageUI::getContent() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - M_ASSERT(m_parent); - if (!m_fop_layout) - m_fop_layout = createFindOnPageUILayout(); - return m_fop_layout; -} - -void FindOnPageUI::show_ime(void) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (elm_object_focus_get(m_entry) == EINA_TRUE) - elm_object_focus_set(m_entry, EINA_FALSE); - elm_object_focus_set(m_entry, EINA_TRUE); -} + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + m_edjFilePath = EDJE_DIR; + m_edjFilePath.append("FindOnPageUI/FindOnPage.edj"); + } -void FindOnPageUI::set_text(const char *text) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - elm_entry_entry_set(m_entry, ""); - char *markup_text = elm_entry_utf8_to_markup(text); - elm_entry_entry_append(m_entry, markup_text); - if (markup_text) - free(markup_text); -} + FindOnPageUI::~FindOnPageUI(void) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); -void FindOnPageUI::clear_text(void) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - m_total_count = 0; - m_current_index = 0; - _set_count(0, 0); - elm_entry_entry_set(m_entry, ""); -} + evas_object_smart_callback_del(m_down_button, "clicked", + __down_clicked_cb); + evas_object_smart_callback_del(m_up_button, "clicked", __up_clicked_cb); -void FindOnPageUI::unset_focus(void) -{ - elm_object_focus_set(m_entry, EINA_FALSE); -} + evas_object_smart_callback_del(m_entry, "activated", __enter_key_cb); + evas_object_smart_callback_del(m_entry, "changed", __entry_changed_cb); + evas_object_smart_callback_del(m_entry, "clicked", __entry_clicked_cb); -Evas_Object* FindOnPageUI::createFindOnPageUILayout() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - - // Find on page layout. - elm_theme_extension_add(nullptr, m_edjFilePath.c_str()); - m_fop_layout = elm_layout_add(m_parent); - if (!m_fop_layout) { - BROWSER_LOGD("elm_layout_add failed"); - return NULL; + evas_object_del(m_fop_layout); + eina_stringshare_del(m_input_word); } - elm_layout_file_set(m_fop_layout, m_edjFilePath.c_str(), "find-on-page-layout"); - evas_object_size_hint_weight_set(m_fop_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - - // Entry. - m_entry = elm_entry_add(m_fop_layout); - elm_object_style_set(m_entry, "fop_entry"); - elm_entry_single_line_set(m_entry, EINA_TRUE); - elm_entry_scrollable_set(m_entry, EINA_TRUE); - elm_entry_autocapital_type_set(m_entry, ELM_AUTOCAPITAL_TYPE_NONE); - elm_entry_cnp_mode_set(m_entry, ELM_CNP_MODE_PLAINTEXT); - elm_entry_input_panel_enabled_set(m_entry, EINA_TRUE); - elm_entry_input_panel_return_key_type_set(m_entry, ELM_INPUT_PANEL_RETURN_KEY_TYPE_SEARCH); - - evas_object_size_hint_weight_set(m_entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - - evas_object_smart_callback_add(m_entry, "activated", __enter_key_cb, this); - evas_object_smart_callback_add(m_entry, "changed", __entry_changed_cb, this); - evas_object_smart_callback_add(m_entry, "clicked", __entry_clicked_cb, this); - - elm_object_translatable_part_text_set(m_entry, "elm.guide", "IDS_BR_OPT_FIND_ON_PAGE"); - - Evas_Object *access = elm_access_object_get(elm_entry_textblock_get(m_entry)); - elm_access_info_set(access, ELM_ACCESS_TYPE, _("IDS_BR_BODY_TEXT_FIELD_T_TTS")); - - static Elm_Entry_Filter_Limit_Size limit_filter_data; - limit_filter_data.max_byte_count = 0; - limit_filter_data.max_char_count = FIND_ON_PAGE_MAX_TEXT; - elm_entry_markup_filter_append(m_entry, elm_entry_filter_limit_size, &limit_filter_data); - - elm_object_part_content_set(m_fop_layout, "elm.swallow.entry", m_entry); - - // Clear button - m_clear_button = elm_button_add(m_fop_layout); - elm_object_style_set(m_clear_button, "basic_button"); - elm_access_info_set(m_clear_button, ELM_ACCESS_INFO, _("IDS_BR_OPT_CLEAR_ALL")); - evas_object_smart_callback_add(m_clear_button, "clicked", __clear_clicked_cb, this); - elm_object_part_content_set(m_fop_layout, "clear_button_click", m_clear_button); - - // Down button. - m_down_button = elm_button_add(m_fop_layout); - elm_object_style_set(m_down_button, "basic_button"); - elm_access_info_set(m_down_button, ELM_ACCESS_INFO, _("IDS_BR_SK_NEXT")); - evas_object_smart_callback_add(m_down_button, "clicked", __down_clicked_cb, this); - elm_object_part_content_set(m_fop_layout, "down_button_click", m_down_button); - - // Up button. - m_up_button = elm_button_add(m_fop_layout); - elm_object_style_set(m_up_button, "basic_button"); - elm_access_info_set(m_up_button, ELM_ACCESS_INFO, _("IDS_BR_SK_PREVIOUS")); - evas_object_smart_callback_add(m_up_button, "clicked", __up_clicked_cb, this); - elm_object_part_content_set(m_fop_layout, "up_button_click", m_up_button); - - Evas_Object *close_click = elm_button_add(m_fop_layout); - elm_object_style_set(close_click, "basic_button"); - evas_object_smart_callback_add(close_click, "clicked", __close_clicked_cb, this); - elm_object_part_content_set(m_fop_layout, "close_click", close_click); - - elm_object_part_content_set(m_parent, "findonpage", m_fop_layout); - _set_count(0, 0); - return m_fop_layout; -} - -void FindOnPageUI::showUI() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - elm_object_signal_emit(m_parent, "show_findonpage", "ui"); - evas_object_show(m_fop_layout); - m_isVisible = true; -} - -void FindOnPageUI::hideUI() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - elm_object_signal_emit(m_parent, "hide_findonpage", "ui"); - clear_text(); - unset_focus(); - evas_object_hide(m_fop_layout); - m_isVisible = false; -} - -void FindOnPageUI::__close_clicked_cb(void* data, Evas_Object*, void*) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - FindOnPageUI *fop = static_cast(data); - fop->closeFindOnPageUIClicked(); -} -void FindOnPageUI::_set_count(int index, int total) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - BROWSER_LOGD("%d/%d", index, total); - - char text_buffer[16] = { 0, }; - int digit_count = 0; - if (total > 999) - digit_count = 4; - else if (total > 99) - digit_count = 3; - else if (total > 9) - digit_count = 2; - else - digit_count = 1; - - const char *elm_text = elm_entry_entry_get(m_entry); - if (elm_text == NULL || strlen(elm_text) == 0) { - // Show 0/0 - elm_object_signal_emit(m_fop_layout, "digit_1,signal", ""); - } else { - // Change count layout size. - snprintf(text_buffer,sizeof(text_buffer), "digit_%d,signal", digit_count); - elm_object_signal_emit(m_fop_layout, text_buffer, ""); + void FindOnPageUI::show() + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + if (!m_fop_layout) + m_fop_layout = createFindOnPageUILayout(); + showUI(); + show_ime(); } - snprintf(text_buffer, sizeof(text_buffer),"%d/%d", index, total); - elm_object_part_text_set(m_fop_layout, "elm.text.count", text_buffer); + void FindOnPageUI::init(Evas_Object * parent) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + M_ASSERT(parent); + m_parent = parent; + } - if (total <= 1) { - BROWSER_LOGD("total %d", total); - _disable_up_button(EINA_TRUE); - _disable_down_button(EINA_TRUE); - return; + Evas_Object *FindOnPageUI::getContent() + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + M_ASSERT(m_parent); + if (!m_fop_layout) + m_fop_layout = createFindOnPageUILayout(); + return m_fop_layout; } - _disable_up_button(EINA_FALSE); - _disable_down_button(EINA_FALSE); -} + void FindOnPageUI::show_ime(void) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + if (elm_object_focus_get(m_entry) == EINA_TRUE) + elm_object_focus_set(m_entry, EINA_FALSE); + elm_object_focus_set(m_entry, EINA_TRUE); + } -void FindOnPageUI::_disable_down_button(Eina_Bool disable) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - elm_object_disabled_set(m_down_button, disable); -} + void FindOnPageUI::set_text(const char *text) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + elm_entry_entry_set(m_entry, ""); + char *markup_text = elm_entry_utf8_to_markup(text); + elm_entry_entry_append(m_entry, markup_text); + if (markup_text) + free(markup_text); + } -void FindOnPageUI::_disable_up_button(Eina_Bool disable) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - elm_object_disabled_set(m_up_button, disable); -} + void FindOnPageUI::clear_text(void) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + m_total_count = 0; + m_current_index = 0; + _set_count(0, 0); + elm_entry_entry_set(m_entry, ""); + } -void FindOnPageUI::__text_found_cb(void *data, Evas_Object* /*obj*/, void *event_info) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (!data) - return; + void FindOnPageUI::unset_focus(void) + { + elm_object_focus_set(m_entry, EINA_FALSE); + } - FindOnPageUI *fop = static_cast(data); + Evas_Object *FindOnPageUI::createFindOnPageUILayout() + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + + // Find on page layout. + elm_theme_extension_add(nullptr, m_edjFilePath.c_str()); + m_fop_layout = elm_layout_add(m_parent); + if (!m_fop_layout) { + BROWSER_LOGD("elm_layout_add failed"); + return NULL; + } + elm_layout_file_set(m_fop_layout, m_edjFilePath.c_str(), + "find-on-page-layout"); + evas_object_size_hint_weight_set(m_fop_layout, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + + // Entry. + m_entry = elm_entry_add(m_fop_layout); + elm_object_style_set(m_entry, "fop_entry"); + elm_entry_single_line_set(m_entry, EINA_TRUE); + elm_entry_scrollable_set(m_entry, EINA_TRUE); + elm_entry_autocapital_type_set(m_entry, ELM_AUTOCAPITAL_TYPE_NONE); + elm_entry_cnp_mode_set(m_entry, ELM_CNP_MODE_PLAINTEXT); + elm_entry_input_panel_enabled_set(m_entry, EINA_TRUE); + elm_entry_input_panel_return_key_type_set(m_entry, + ELM_INPUT_PANEL_RETURN_KEY_TYPE_SEARCH); + + evas_object_size_hint_weight_set(m_entry, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + + evas_object_smart_callback_add(m_entry, "activated", __enter_key_cb, + this); + evas_object_smart_callback_add(m_entry, "changed", __entry_changed_cb, + this); + evas_object_smart_callback_add(m_entry, "clicked", __entry_clicked_cb, + this); + + elm_object_translatable_part_text_set(m_entry, "elm.guide", + "IDS_BR_OPT_FIND_ON_PAGE"); + + Evas_Object *access = + elm_access_object_get(elm_entry_textblock_get(m_entry)); + elm_access_info_set(access, ELM_ACCESS_TYPE, + _("IDS_BR_BODY_TEXT_FIELD_T_TTS")); + + static Elm_Entry_Filter_Limit_Size limit_filter_data; + limit_filter_data.max_byte_count = 0; + limit_filter_data.max_char_count = FIND_ON_PAGE_MAX_TEXT; + elm_entry_markup_filter_append(m_entry, elm_entry_filter_limit_size, + &limit_filter_data); + + elm_object_part_content_set(m_fop_layout, "elm.swallow.entry", m_entry); + + // Clear button + m_clear_button = elm_button_add(m_fop_layout); + elm_object_style_set(m_clear_button, "basic_button"); + elm_access_info_set(m_clear_button, ELM_ACCESS_INFO, + _("IDS_BR_OPT_CLEAR_ALL")); + evas_object_smart_callback_add(m_clear_button, "clicked", + __clear_clicked_cb, this); + elm_object_part_content_set(m_fop_layout, "clear_button_click", + m_clear_button); + + // Down button. + m_down_button = elm_button_add(m_fop_layout); + elm_object_style_set(m_down_button, "basic_button"); + elm_access_info_set(m_down_button, ELM_ACCESS_INFO, + _("IDS_BR_SK_NEXT")); + evas_object_smart_callback_add(m_down_button, "clicked", + __down_clicked_cb, this); + elm_object_part_content_set(m_fop_layout, "down_button_click", + m_down_button); + + // Up button. + m_up_button = elm_button_add(m_fop_layout); + elm_object_style_set(m_up_button, "basic_button"); + elm_access_info_set(m_up_button, ELM_ACCESS_INFO, + _("IDS_BR_SK_PREVIOUS")); + evas_object_smart_callback_add(m_up_button, "clicked", __up_clicked_cb, + this); + elm_object_part_content_set(m_fop_layout, "up_button_click", + m_up_button); + + Evas_Object *close_click = elm_button_add(m_fop_layout); + elm_object_style_set(close_click, "basic_button"); + evas_object_smart_callback_add(close_click, "clicked", + __close_clicked_cb, this); + elm_object_part_content_set(m_fop_layout, "close_click", close_click); + + elm_object_part_content_set(m_parent, "findonpage", m_fop_layout); + _set_count(0, 0); + return m_fop_layout; + } - int match_count = *(static_cast(event_info)); - BROWSER_LOGD("match_count=%d", match_count); - fop->m_total_count = match_count; - if (fop->m_current_index == 0) - fop->m_current_index = 1; + void FindOnPageUI::showUI() + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + elm_object_signal_emit(m_parent, "show_findonpage", "ui"); + evas_object_show(m_fop_layout); + m_isVisible = true; + } - if (match_count == -1 || match_count >= FIND_WORD_MAX_COUNT) - fop->m_total_count = FIND_WORD_MAX_COUNT-1; - else - fop->m_total_count = match_count; + void FindOnPageUI::hideUI() + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + elm_object_signal_emit(m_parent, "hide_findonpage", "ui"); + clear_text(); + unset_focus(); + evas_object_hide(m_fop_layout); + m_isVisible = false; + } - if (match_count == 0) - fop->m_current_index = 0; + void FindOnPageUI::__close_clicked_cb(void *data, Evas_Object *, void *) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + FindOnPageUI *fop = static_cast < FindOnPageUI * >(data); + fop->closeFindOnPageUIClicked(); + } - if (fop->m_current_index > fop->m_total_count) - fop->m_current_index = fop->m_total_count; - fop->_set_count(fop->m_current_index, fop->m_total_count); -} -void FindOnPageUI::__entry_clicked_cb(void *data, Evas_Object*/*obj*/, void* /*event_info*/) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - auto fop = static_cast(data); - if (fop) - fop->show_ime(); -} + void FindOnPageUI::_set_count(int index, int total) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + BROWSER_LOGD("%d/%d", index, total); + + char text_buffer[16] = { 0, }; + int digit_count = 0; + if (total > 999) + digit_count = 4; + else if (total > 99) + digit_count = 3; + else if (total > 9) + digit_count = 2; + else + digit_count = 1; + + const char *elm_text = elm_entry_entry_get(m_entry); + if (elm_text == NULL || strlen(elm_text) == 0) { + // Show 0/0 + elm_object_signal_emit(m_fop_layout, "digit_1,signal", ""); + } else { + // Change count layout size. + snprintf(text_buffer, sizeof(text_buffer), "digit_%d,signal", + digit_count); + elm_object_signal_emit(m_fop_layout, text_buffer, ""); + } + + snprintf(text_buffer, sizeof(text_buffer), "%d/%d", index, total); + elm_object_part_text_set(m_fop_layout, "elm.text.count", text_buffer); + + if (total <= 1) { + BROWSER_LOGD("total %d", total); + _disable_up_button(EINA_TRUE); + _disable_down_button(EINA_TRUE); + return; + } + + _disable_up_button(EINA_FALSE); + _disable_down_button(EINA_FALSE); + } -void FindOnPageUI::__entry_changed_cb(void *data, Evas_Object *obj, void* /*event_info*/) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - FindOnPageUI *fop = static_cast(data); - fop->m_current_index = 1; - - const char *elm_text = elm_entry_entry_get(obj); - if (!elm_text || strlen(elm_text) == 0) { - fop->_set_count(0, 0); - elm_object_signal_emit(fop->m_fop_layout, "hide,clear,button,signal", ""); - eina_stringshare_replace(&fop->m_input_word, ""); - // On deleting last character, send empty string to clear the highlight. - struct FindData fd = {"", EINA_FALSE, NULL, NULL}; - fop->startFindingWord(fd); - return; + void FindOnPageUI::_disable_down_button(Eina_Bool disable) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + elm_object_disabled_set(m_down_button, disable); } - char *text = elm_entry_markup_to_utf8(elm_text); - BROWSER_LOGD("Previous text=[%s], Current text[%s]", fop->m_input_word ? fop->m_input_word : "", text); + void FindOnPageUI::_disable_up_button(Eina_Bool disable) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + elm_object_disabled_set(m_up_button, disable); + } - elm_object_signal_emit(fop->m_fop_layout, "show,clear,button,signal", ""); + void FindOnPageUI::__text_found_cb(void *data, Evas_Object * /*obj */ , + void *event_info) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + if (!data) + return; - if (strlen(text) >= FIND_ON_PAGE_MAX_TEXT) { + FindOnPageUI *fop = static_cast < FindOnPageUI * >(data); - // TODO : Show Notification. + int match_count = *(static_cast < int *>(event_info)); + BROWSER_LOGD("match_count=%d", match_count); + fop->m_total_count = match_count; + if (fop->m_current_index == 0) + fop->m_current_index = 1; - char buf[FIND_ON_PAGE_MAX_TEXT + 1] = {0, }; - snprintf(buf, sizeof(buf) - 1, "%s", text); + if (match_count == -1 || match_count >= FIND_WORD_MAX_COUNT) + fop->m_total_count = FIND_WORD_MAX_COUNT - 1; + else + fop->m_total_count = match_count; - fop->set_text(buf); + if (match_count == 0) + fop->m_current_index = 0; - elm_entry_cursor_end_set(obj); - free(text); - return; + if (fop->m_current_index > fop->m_total_count) + fop->m_current_index = fop->m_total_count; + fop->_set_count(fop->m_current_index, fop->m_total_count); + } + void FindOnPageUI::__entry_clicked_cb(void *data, Evas_Object * /*obj */ , + void * /*event_info */ ) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + auto fop = static_cast < FindOnPageUI * >(data); + if (fop) + fop->show_ime(); } - std::string input_uri_str; - - input_uri_str = std::string(text); - std::size_t pos = input_uri_str.find(""); - if (pos != std::string::npos) - input_uri_str.erase(pos, strlen("")); - pos = input_uri_str.find(""); - if (pos != std::string::npos) - input_uri_str.erase(pos, strlen("")); - - free(text); - - if ((!fop->m_input_word) || (input_uri_str.c_str() && strcmp(fop->m_input_word, input_uri_str.c_str()))) { - eina_stringshare_replace(&fop->m_input_word, input_uri_str.c_str()); - struct FindData fd = { - input_uri_str.c_str(), - EINA_TRUE, - __text_found_cb, - data, - }; - fop->startFindingWord(fd); + void FindOnPageUI::__entry_changed_cb(void *data, Evas_Object * obj, + void * /*event_info */ ) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + FindOnPageUI *fop = static_cast < FindOnPageUI * >(data); + fop->m_current_index = 1; + + const char *elm_text = elm_entry_entry_get(obj); + if (!elm_text || strlen(elm_text) == 0) { + fop->_set_count(0, 0); + elm_object_signal_emit(fop->m_fop_layout, "hide,clear,button,signal", + ""); + eina_stringshare_replace(&fop->m_input_word, ""); + // On deleting last character, send empty string to clear the highlight. + struct FindData fd = { "", EINA_FALSE, NULL, NULL }; + fop->startFindingWord(fd); + return; + } + + char *text = elm_entry_markup_to_utf8(elm_text); + BROWSER_LOGD("Previous text=[%s], Current text[%s]", + fop->m_input_word ? fop->m_input_word : "", text); + + elm_object_signal_emit(fop->m_fop_layout, "show,clear,button,signal", + ""); + + if (strlen(text) >= FIND_ON_PAGE_MAX_TEXT) { + // TODO : Show Notification. + char buf[FIND_ON_PAGE_MAX_TEXT + 1] = { 0, }; + snprintf(buf, sizeof(buf) - 1, "%s", text); + + fop->set_text(buf); + + elm_entry_cursor_end_set(obj); + free(text); + return; + } + + std::string input_uri_str; + + input_uri_str = std::string(text); + std::size_t pos = input_uri_str.find(""); + if (pos != std::string::npos) + input_uri_str.erase(pos, strlen("")); + pos = input_uri_str.find(""); + if (pos != std::string::npos) + input_uri_str.erase(pos, strlen("")); + + free(text); + + if ((!fop->m_input_word) + || (input_uri_str.c_str() + && strcmp(fop->m_input_word, input_uri_str.c_str()))) { + eina_stringshare_replace(&fop->m_input_word, input_uri_str.c_str()); + struct FindData fd = { + input_uri_str.c_str(), + EINA_TRUE, + __text_found_cb, + data, + }; + fop->startFindingWord(fd); + } } -} -void FindOnPageUI::__enter_key_cb(void* data, Evas_Object* /*obj*/, void* /*event_info*/) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + void FindOnPageUI::__enter_key_cb(void *data, Evas_Object * /*obj */ , + void * /*event_info */ ) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - // Unfocus the entry to hide IME when Done/Search key is pressed. - FindOnPageUI *fop = static_cast(data); - // TODO : Check if IME is shown. - elm_object_focus_set(fop->m_entry, EINA_FALSE); -} + // Unfocus the entry to hide IME when Done/Search key is pressed. + FindOnPageUI *fop = static_cast < FindOnPageUI * >(data); + // TODO : Check if IME is shown. + elm_object_focus_set(fop->m_entry, EINA_FALSE); + } -void FindOnPageUI::__clear_clicked_cb(void *data, Evas_Object* /*obj*/, void* /*event_info*/) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - FindOnPageUI *fop = static_cast(data); - elm_entry_entry_set(fop->m_entry, ""); - fop->_set_count(0, 0); - elm_object_focus_set(fop->m_entry, EINA_TRUE); - elm_object_signal_emit(fop->m_fop_layout, "hide,clear,button,signal", ""); -} + void FindOnPageUI::__clear_clicked_cb(void *data, Evas_Object * /*obj */ , + void * /*event_info */ ) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + FindOnPageUI *fop = static_cast < FindOnPageUI * >(data); + elm_entry_entry_set(fop->m_entry, ""); + fop->_set_count(0, 0); + elm_object_focus_set(fop->m_entry, EINA_TRUE); + elm_object_signal_emit(fop->m_fop_layout, "hide,clear,button,signal", + ""); + } -void FindOnPageUI::__down_clicked_cb(void *data, Evas_Object *obj, void* /*event_info*/) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - FindOnPageUI *fop = static_cast(data); + void FindOnPageUI::__down_clicked_cb(void *data, Evas_Object * obj, + void * /*event_info */ ) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + FindOnPageUI *fop = static_cast < FindOnPageUI * >(data); - if (fop->m_total_count == 0) - return; + if (fop->m_total_count == 0) + return; - fop->m_current_index++; - if (fop->m_current_index > fop->m_total_count) - fop->m_current_index = 1; + fop->m_current_index++; + if (fop->m_current_index > fop->m_total_count) + fop->m_current_index = 1; - struct FindData fd = { - fop->m_input_word, - EINA_TRUE, - __text_found_cb, - data, - }; - fop->startFindingWord(fd); + struct FindData fd = { + fop->m_input_word, + EINA_TRUE, + __text_found_cb, + data, + }; + fop->startFindingWord(fd); - elm_object_focus_set(obj, EINA_TRUE); -} + elm_object_focus_set(obj, EINA_TRUE); + } -void FindOnPageUI::__up_clicked_cb(void *data, Evas_Object *obj, void* /*event_info*/) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - FindOnPageUI *fop = static_cast(data); + void FindOnPageUI::__up_clicked_cb(void *data, Evas_Object * obj, + void * /*event_info */ ) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + FindOnPageUI *fop = static_cast < FindOnPageUI * >(data); - if (fop->m_total_count == 0) - return; + if (fop->m_total_count == 0) + return; - fop->m_current_index--; - if (fop->m_current_index < 1) - fop->m_current_index = fop->m_total_count; + fop->m_current_index--; + if (fop->m_current_index < 1) + fop->m_current_index = fop->m_total_count; - struct FindData fd = { - fop->m_input_word, - EINA_FALSE, - __text_found_cb, - data, - }; - fop->startFindingWord(fd); + struct FindData fd = { + fop->m_input_word, + EINA_FALSE, + __text_found_cb, + data, + }; + fop->startFindingWord(fd); - elm_object_focus_set(obj, EINA_TRUE); -} + elm_object_focus_set(obj, EINA_TRUE); + } -} + } } diff --git a/services/FindOnPageUI/FindOnPageUI.h b/services/FindOnPageUI/FindOnPageUI.h old mode 100644 new mode 100755 index 87d94cd2..7690ab52 --- a/services/FindOnPageUI/FindOnPageUI.h +++ b/services/FindOnPageUI/FindOnPageUI.h @@ -25,73 +25,92 @@ #include "ServiceFactory.h" #include "service_macros.h" -namespace tizen_browser{ -namespace base_ui{ - -struct FindData { - const char* input_str; - bool forward; - Evas_Smart_Cb func; - void* data; -}; - -class BROWSER_EXPORT FindOnPageUI - : public tizen_browser::interfaces::AbstractUIComponent - , public tizen_browser::core::AbstractService +namespace tizen_browser { -public: - virtual std::string getName(); - - FindOnPageUI(); - ~FindOnPageUI(void); - - Evas_Object* getContent(); - void init(Evas_Object* parent); - Evas_Object *get_layout(void) { return m_fop_layout; } - Evas_Object* createFindOnPageUILayout(); - void show(); - void showUI(); - void hideUI(); - bool isVisible() { return m_isVisible; } - - void show_ime(void); - void clear_text(void); - void set_text(const char *text); - Evas_Object* get_entry(void) { return m_entry; } - void unset_focus(void); - - boost::signals2::signal closeFindOnPageUIClicked; - boost::signals2::signal startFindingWord; - -private: - void _set_count(int index, int total); - void _disable_down_button(Eina_Bool disable); - void _disable_up_button(Eina_Bool disable); - - static void __clear_clicked_cb(void *data, Evas_Object *obj, void *event_info); - static void __down_clicked_cb(void *data, Evas_Object *obj, void *event_info); - static void __up_clicked_cb(void *data, Evas_Object *obj, void *event_info); - static void __enter_key_cb(void *data, Evas_Object *obj, void *event_info); - static void __entry_clicked_cb(void *data, Evas_Object *obj, void *event_info); - static void __entry_changed_cb(void *data, Evas_Object *obj, void *event_info); - static void __text_found_cb(void *data, Evas_Object *obj, void *event_info); - static void __close_clicked_cb(void *data, Evas_Object *obj, void *event_info); - - Evas_Object *m_fop_layout; - Evas_Object *m_entry; - Evas_Object *m_down_button; - Evas_Object *m_up_button; - Evas_Object *m_clear_button; - Evas_Object *m_parent; - - int m_total_count; - int m_current_index; - const char *m_input_word; - std::string m_edjFilePath; - bool m_isVisible; -}; - -} + namespace base_ui + { + + struct FindData + { + const char *input_str; + bool forward; + Evas_Smart_Cb func; + void *data; + }; + + class BROWSER_EXPORT FindOnPageUI:public tizen_browser::interfaces:: + AbstractUIComponent, public tizen_browser::core::AbstractService + { + public: + virtual std::string getName(); + + FindOnPageUI(); + ~FindOnPageUI(void); + + Evas_Object *getContent(); + void init(Evas_Object * parent); + Evas_Object *get_layout(void) + { + return m_fop_layout; + } + Evas_Object *createFindOnPageUILayout(); + void show(); + void showUI(); + void hideUI(); + bool isVisible() + { + return m_isVisible; + } + + void show_ime(void); + void clear_text(void); + void set_text(const char *text); + Evas_Object *get_entry(void) + { + return m_entry; + } + void unset_focus(void); + + boost::signals2::signal < void() > closeFindOnPageUIClicked; + boost::signals2::signal < void(const struct FindData &) > + startFindingWord; + + private: + void _set_count(int index, int total); + void _disable_down_button(Eina_Bool disable); + void _disable_up_button(Eina_Bool disable); + + static void __clear_clicked_cb(void *data, Evas_Object * obj, + void *event_info); + static void __down_clicked_cb(void *data, Evas_Object * obj, + void *event_info); + static void __up_clicked_cb(void *data, Evas_Object * obj, + void *event_info); + static void __enter_key_cb(void *data, Evas_Object * obj, + void *event_info); + static void __entry_clicked_cb(void *data, Evas_Object * obj, + void *event_info); + static void __entry_changed_cb(void *data, Evas_Object * obj, + void *event_info); + static void __text_found_cb(void *data, Evas_Object * obj, + void *event_info); + static void __close_clicked_cb(void *data, Evas_Object * obj, + void *event_info); + + Evas_Object *m_fop_layout; + Evas_Object *m_entry; + Evas_Object *m_down_button; + Evas_Object *m_up_button; + Evas_Object *m_clear_button; + Evas_Object *m_parent; + + int m_total_count; + int m_current_index; + const char *m_input_word; + std::string m_edjFilePath; + bool m_isVisible; + }; + + } } #endif /* FIND_ON_PAGE_H */ - diff --git a/services/HistoryService/HistoryItem.cpp b/services/HistoryService/HistoryItem.cpp old mode 100644 new mode 100755 index ec5cbad6..9260ae2b --- a/services/HistoryService/HistoryItem.cpp +++ b/services/HistoryService/HistoryItem.cpp @@ -19,165 +19,163 @@ namespace tizen_browser { -namespace services -{ - -HistoryItem::HistoryItem(HistoryItem && other) noexcept -{ - try { - if (this != &other) { - *this = std::move(other); - } - } catch(...) { - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + namespace services + { + + HistoryItem::HistoryItem(HistoryItem && other) noexcept + { + try { + if (this != &other) { + *this = std::move(other); + } + } + catch(...) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + } } -} -HistoryItem::HistoryItem(int id, - const std::string & url, - const std::string & title, - tools::BrowserImagePtr favicon, - tools::BrowserImagePtr thumbnail) + HistoryItem::HistoryItem(int id, + const std::string & url, + const std::string & title, + tools::BrowserImagePtr favicon, + tools::BrowserImagePtr thumbnail) : m_primaryKey(id) - , m_url(url) - , m_title(title) - , m_lastVisit() - , m_favIcon(favicon) -{ - if (thumbnail) - m_thumbnail = thumbnail; - else - m_thumbnail = favicon; -} + , m_url(url) + , m_title(title) + , m_lastVisit() + , m_favIcon(favicon) + { + if (thumbnail) + m_thumbnail = thumbnail; + else + m_thumbnail = favicon; + } -HistoryItem::HistoryItem(int id, const std::string & url) + HistoryItem::HistoryItem(int id, const std::string & url) : m_primaryKey(id) - , m_url(url) - , m_title() - , m_lastVisit() - , m_favIcon(std::make_shared()) -{ - -} + , m_url(url) + , m_title() + , m_lastVisit() + , m_favIcon(std::make_shared < tizen_browser::tools::BrowserImage > ()) + { + } -HistoryItem::HistoryItem(const HistoryItem& source) + HistoryItem::HistoryItem(const HistoryItem & source) : m_primaryKey(source.m_primaryKey) - , m_url(source.m_url) - , m_title(source.m_title) - , m_lastVisit(source.m_lastVisit) - , m_favIcon(source.m_favIcon) - , m_visitCounter(source.m_visitCounter) -{ - -} - -HistoryItem::~HistoryItem() -{ + , m_url(source.m_url) + , m_title(source.m_title) + , m_lastVisit(source.m_lastVisit) + , m_favIcon(source.m_favIcon) + , m_visitCounter(source.m_visitCounter) + { + } -} + HistoryItem::~HistoryItem() { + } -HistoryItem & HistoryItem::operator=(HistoryItem && other) noexcept -{ - if (this != &other) { - m_url = std::move(other.m_url); - m_title = std::move(other.m_title); - m_visitDate = std::move(other.m_visitDate); - m_visitCounter = std::move(other.m_visitCounter); - m_favIcon = std::move(other.m_favIcon); - } - return *this; -} + HistoryItem & HistoryItem::operator=(HistoryItem && other) noexcept { + if (this != &other) { + m_url = std::move(other.m_url); + m_title = std::move(other.m_title); + m_visitDate = std::move(other.m_visitDate); + m_visitCounter = std::move(other.m_visitCounter); + m_favIcon = std::move(other.m_favIcon); + } + return *this; + } -bool HistoryItem::operator==(const HistoryItem& other) -{ - return (m_url == other.m_url); -} + bool HistoryItem::operator==(const HistoryItem & other) + { + return (m_url == other.m_url); + } -bool HistoryItem::operator!=(const HistoryItem& other) -{ - return (m_url != other.m_url); -} + bool HistoryItem::operator!=(const HistoryItem & other) + { + return (m_url != other.m_url); + } -void HistoryItem::setUrl(const std::string & url) -{ - m_url = url; -} + void HistoryItem::setUrl(const std::string & url) + { + m_url = url; + } -std::string HistoryItem::getUrl() const -{ - return m_url; -} + std::string HistoryItem::getUrl()const + { + return m_url; + } -void HistoryItem::setTitle(const std::string & title) -{ - m_title = title; -} + void HistoryItem::setTitle(const std::string & title) + { + m_title = title; + } -std::string HistoryItem::getTitle() const -{ - return m_title; -} + std::string HistoryItem::getTitle()const + { + return m_title; + } -void HistoryItem::setLastVisit(boost::posix_time::ptime visitDate) -{ - m_lastVisit = visitDate; -} + void HistoryItem::setLastVisit(boost::posix_time::ptime visitDate) + { + m_lastVisit = visitDate; + } -boost::posix_time::ptime HistoryItem::getLastVisit() const -{ - return m_lastVisit; -} + boost::posix_time::ptime HistoryItem::getLastVisit()const + { + return m_lastVisit; + } // TODO Replace with std::time_t to_time_t(ptime pt) from boost/date_time/posix_time/conversion.hpp after migration // to boost ver. 1.58 -time_t HistoryItem::getLastVisitAsTimeT() const -{ - const boost::posix_time::ptime epoch(boost::gregorian::date(1970,1,1)); - const boost::posix_time::time_duration::sec_type x = (m_lastVisit - epoch).total_seconds(); - std::time_t rawtime(x); - - return rawtime; -} - -void HistoryItem::setVisitCounter(int visitCounter) -{ - m_visitCounter = visitCounter; -} + time_t HistoryItem::getLastVisitAsTimeT() const + { + const boost::posix_time::ptime epoch(boost::gregorian:: + date(1970, 1, 1)); + const boost::posix_time::time_duration::sec_type x = + (m_lastVisit - epoch).total_seconds(); + std::time_t rawtime(x); + + return rawtime; + } -int HistoryItem::getVisitCounter() -{ - return m_visitCounter; -} + void HistoryItem::setVisitCounter(int visitCounter) + { + m_visitCounter = visitCounter; + } -void HistoryItem::setFavIcon(tools::BrowserImagePtr favIcon) -{ - m_favIcon = favIcon; -} + int HistoryItem::getVisitCounter() + { + return m_visitCounter; + } -tools::BrowserImagePtr HistoryItem::getFavIcon() -{ - return m_favIcon; -} + void HistoryItem::setFavIcon(tools::BrowserImagePtr favIcon) + { + m_favIcon = favIcon; + } -void HistoryItem::setThumbnail(tools::BrowserImagePtr thumbnail) -{ - m_thumbnail = thumbnail; -}; + tools::BrowserImagePtr HistoryItem::getFavIcon() { + return m_favIcon; + } -tools::BrowserImagePtr HistoryItem::getThumbnail() const -{ + void HistoryItem::setThumbnail(tools::BrowserImagePtr thumbnail) + { + m_thumbnail = thumbnail; + }; - return m_thumbnail; -}; + tools::BrowserImagePtr HistoryItem::getThumbnail()const + { + return m_thumbnail; + }; -void HistoryItem::setUriFavicon(const std::string & uri) { - m_urifavicon = uri; -} + void HistoryItem::setUriFavicon(const std::string & uri) + { + m_urifavicon = uri; + } -std::string HistoryItem::getUriFavicon() { - return m_urifavicon; -} + std::string HistoryItem::getUriFavicon() { + return m_urifavicon; + } -} + } } diff --git a/services/HistoryService/HistoryItem.h b/services/HistoryService/HistoryItem.h old mode 100644 new mode 100755 diff --git a/services/HistoryService/HistoryItemTypedef.h b/services/HistoryService/HistoryItemTypedef.h old mode 100644 new mode 100755 diff --git a/services/HistoryService/HistoryService.cpp b/services/HistoryService/HistoryService.cpp index d1085e12..310d5770 100755 --- a/services/HistoryService/HistoryService.cpp +++ b/services/HistoryService/HistoryService.cpp @@ -35,545 +35,608 @@ namespace tizen_browser { -namespace services -{ - -EXPORT_SERVICE(HistoryService, DOMAIN_HISTORY_SERVICE) + namespace services + { -const int SEARCH_LIKE = 1; + EXPORT_SERVICE(HistoryService, DOMAIN_HISTORY_SERVICE) -HistoryService::HistoryService() : m_testDbMod(false) -{ - BROWSER_LOGD("HistoryService"); -} + const int SEARCH_LIKE = 1; -HistoryService::~HistoryService() -{ -} - -void HistoryService::setStorageServiceTestMode(bool testmode) { - m_testDbMod = testmode; -} - -void HistoryService::errorPrint(std::string method) const -{ - int error_code = bp_history_adaptor_get_errorcode(); - BROWSER_LOGE("[%s:%d] %s error: %d (%s)", __PRETTY_FUNCTION__, __LINE__, - method.c_str(), error_code, - tools::capiWebError::historyErrorToString(error_code).c_str()); -} - -int HistoryService::getHistoryItemsCount(){ - int *ids = nullptr; - int count=0; - bp_history_rows_cond_fmt conds; - conds.limit = -1; //no of rows to get negative means no limitation - conds.offset = -1; //the first row's index - conds.order_offset =BP_HISTORY_O_DATE_CREATED; // property to sort - conds.ordering = 1; //way of ordering 0 asc 1 desc - conds.period_offset = BP_HISTORY_O_DATE_CREATED; - conds.period_type = BP_HISTORY_DATE_TODAY; - if (bp_history_adaptor_get_cond_ids_p(&ids, &count, &conds, 0, nullptr, 0) - < 0) { - errorPrint("bp_history_adaptor_get_cond_ids_p"); + HistoryService::HistoryService():m_testDbMod(false) + { + BROWSER_LOGD("HistoryService"); } - BROWSER_LOGD("[%s:%d] History Count %d", __PRETTY_FUNCTION__, __LINE__, count); - return count; -} - -bool HistoryService::isDuplicate(const char* url) const -{ - M_ASSERT(url); - int *ids=nullptr; - int count=0; - bp_history_rows_cond_fmt conds; - conds.limit = -1; //no of rows to get negative means no limitation - conds.offset = -1; //the first row's index - conds.order_offset =BP_HISTORY_O_DATE_CREATED; // property to sort - conds.ordering = 1; //way of ordering 0 asc 1 desc - conds.period_offset = BP_HISTORY_O_DATE_CREATED; - conds.period_type = BP_HISTORY_DATE_TODAY; - if(bp_history_adaptor_get_cond_ids_p(&ids ,&count, &conds, 0, nullptr, 0) < 0 ) { - errorPrint("bp_history_adaptor_get_cond_ids_p"); + HistoryService::~HistoryService() + { } - bp_history_offset offset = (BP_HISTORY_O_URL | BP_HISTORY_O_DATE_CREATED); - - for (int i = 0; i < count; i++) { - bp_history_info_fmt history_info; - if (bp_history_adaptor_get_info(ids[i], offset, &history_info) < 0) { - BROWSER_LOGE("[%s:%d] bp_history_adaptor_get_info error ", - __PRETTY_FUNCTION__, __LINE__); - return false; - } - if (!history_info.url) { - BROWSER_LOGD("Warning: history entry without url!"); - } else if (!strcmp(history_info.url, url)) { - int freq; - bp_history_adaptor_get_frequency(ids[i], &freq); - bp_history_adaptor_set_frequency(ids[i], freq + 1); - bp_history_adaptor_set_date_visited(ids[i],-1); - bp_history_adaptor_easy_free(&history_info); - return true; - } - bp_history_adaptor_easy_free(&history_info); + void HistoryService::setStorageServiceTestMode(bool testmode) + { + m_testDbMod = testmode; } - return false; -} -std::shared_ptr HistoryService::getHistoryAll() -{ - return getHistoryItems(BP_HISTORY_DATE_ALL); -} - -std::shared_ptr HistoryService::getHistoryToday() -{ - return getHistoryItems(BP_HISTORY_DATE_TODAY); -} - -std::shared_ptr HistoryService::getHistoryYesterday() -{ - return getHistoryItems(BP_HISTORY_DATE_YESTERDAY); -} - -std::shared_ptr HistoryService::getHistoryLastWeek() -{ - return getHistoryItems(BP_HISTORY_DATE_LAST_7_DAYS); -} - -std::shared_ptr HistoryService::getHistoryLastMonth() -{ - return getHistoryItems(BP_HISTORY_DATE_LAST_MONTH); -} -std::shared_ptr HistoryService::getHistoryOlder() -{ - return getHistoryItems(BP_HISTORY_DATE_OLDER); -} - -std::shared_ptr HistoryService::getMostVisitedHistoryItems() -{ - std::shared_ptr ret_history_list(new HistoryItemVector); - - int *ids=nullptr; - int count=-1; - bp_history_rows_cond_fmt conds; - conds.limit = 5; //no of rows to get negative means no limitation - conds.offset = -1; //the first row's index - conds.order_offset = BP_HISTORY_O_FREQUENCY; // property to sort - conds.ordering = 1; //way of ordering 0 asc 1 desc - conds.period_offset = BP_HISTORY_O_DATE_CREATED; - //TODO: consider to change below line to BP_HISTORY_DATE_LAST_MONTH - conds.period_type = BP_HISTORY_DATE_ALL; // set from which period most visited sites are generated - - if(bp_history_adaptor_get_cond_ids_p(&ids ,&count, &conds, 0, nullptr, 0) < 0 ) { - errorPrint("bp_history_adaptor_get_cond_ids_p"); + void HistoryService::errorPrint(std::string method) const + { + int error_code = bp_history_adaptor_get_errorcode(); + BROWSER_LOGE("[%s:%d] %s error: %d (%s)", __PRETTY_FUNCTION__, + __LINE__, method.c_str(), error_code, + tools::capiWebError::historyErrorToString(error_code). + c_str()); } - bp_history_offset offset = (BP_HISTORY_O_URL | BP_HISTORY_O_TITLE | BP_HISTORY_O_FREQUENCY | BP_HISTORY_O_FAVICON | BP_HISTORY_O_DATE_CREATED | BP_HISTORY_O_THUMBNAIL); - - int freq_arr[1000] = {0, }; - for(int i = 0; i< count; i++){ - int freq; - if (0 == bp_history_adaptor_get_frequency(ids[i], &freq)) - { - freq_arr[i] = freq; - } + int HistoryService::getHistoryItemsCount() + { + int *ids = nullptr; + int count = 0; + bp_history_rows_cond_fmt conds; + conds.limit = -1; //no of rows to get negative means no limitation + conds.offset = -1; //the first row's index + conds.order_offset = BP_HISTORY_O_DATE_CREATED; // property to sort + conds.ordering = 1; //way of ordering 0 asc 1 desc + conds.period_offset = BP_HISTORY_O_DATE_CREATED; + conds.period_type = BP_HISTORY_DATE_TODAY; + if (bp_history_adaptor_get_cond_ids_p + (&ids, &count, &conds, 0, nullptr, 0) + < 0) { + errorPrint("bp_history_adaptor_get_cond_ids_p"); + } + + BROWSER_LOGD("[%s:%d] History Count %d", __PRETTY_FUNCTION__, __LINE__, + count); + return count; } - int index_array[6] = {0, }; - int j=0; - int maximum = freq_arr[0]; - int position = 0; - - for(int k=1; k<=5;k++){ - if(k > count || count == 0) - break; - - maximum = freq_arr[0]; - position = 0; - - for(int i =1;i maximum) - { - maximum = freq_arr[i]; - position = i; - } - } - index_array[j++] = position; - freq_arr[position] = -1; + bool HistoryService::isDuplicate(const char *url) const + { + M_ASSERT(url); + int *ids = nullptr; + int count = 0; + bp_history_rows_cond_fmt conds; + conds.limit = -1; //no of rows to get negative means no limitation + conds.offset = -1; //the first row's index + conds.order_offset = BP_HISTORY_O_DATE_CREATED; // property to sort + conds.ordering = 1; //way of ordering 0 asc 1 desc + conds.period_offset = BP_HISTORY_O_DATE_CREATED; + conds.period_type = BP_HISTORY_DATE_TODAY; + if (bp_history_adaptor_get_cond_ids_p + (&ids, &count, &conds, 0, nullptr, 0) < 0) + { + errorPrint("bp_history_adaptor_get_cond_ids_p"); + } + + bp_history_offset offset = + (BP_HISTORY_O_URL | BP_HISTORY_O_DATE_CREATED); + + for (int i = 0; i < count; i++) { + bp_history_info_fmt history_info; + if (bp_history_adaptor_get_info(ids[i], offset, &history_info) < 0) { + BROWSER_LOGE("[%s:%d] bp_history_adaptor_get_info error ", + __PRETTY_FUNCTION__, __LINE__); + return false; + } + if (!history_info.url) { + BROWSER_LOGD("Warning: history entry without url!"); + } else if (!strcmp(history_info.url, url)) { + int freq; + bp_history_adaptor_get_frequency(ids[i], &freq); + bp_history_adaptor_set_frequency(ids[i], freq + 1); + bp_history_adaptor_set_date_visited(ids[i], -1); + bp_history_adaptor_easy_free(&history_info); + return true; + } + bp_history_adaptor_easy_free(&history_info); + } + return false; } - for(int i = 0; i < j; i++){ - bp_history_info_fmt history_info; - if (bp_history_adaptor_get_info(ids[index_array[i]], offset, - &history_info) < 0) { - BROWSER_LOGE("[%s:%d] bp_history_adaptor_get_info error ", - __PRETTY_FUNCTION__, __LINE__); - return ret_history_list; - } - - if (!history_info.url) { - BROWSER_LOGW("[%s:%d] history_info.url is empty! Wrong DB entry found! ", __PRETTY_FUNCTION__, __LINE__); - continue; - } - std::shared_ptr history = std::make_shared(ids[index_array[i]], std::string(history_info.url)); - history->setUrl(std::string(history_info.url)); - history->setTitle(std::string(history_info.title ? history_info.title : "")); - - //thumbnail - if (history_info.thumbnail_length != -1) { - tools::BrowserImagePtr hi = std::make_shared( - history_info.thumbnail_width, - history_info.thumbnail_height, - history_info.thumbnail_length); - hi->setData((void*)history_info.thumbnail, false, tools::ImageType::ImageTypePNG); - history->setThumbnail(hi); - } else { - BROWSER_LOGD("history thumbnail lenght is -1"); - } - if(history_info.frequency > 0) - ret_history_list->push_back(history); - bp_history_adaptor_easy_free(&history_info); + std::shared_ptr < HistoryItemVector > HistoryService::getHistoryAll() { + return getHistoryItems(BP_HISTORY_DATE_ALL); } - free(ids); - return ret_history_list; -} - -void HistoryService::cleanMostVisitedHistoryItems() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - - int *ids=nullptr; - int count=-1; - bp_history_rows_cond_fmt conds; - conds.limit = -1; // no of rows to get negative means no limitation - conds.offset = -1; // the first row's index - conds.order_offset = BP_HISTORY_O_ALL; // property to sort - conds.ordering = 1; // way of ordering 0 asc 1 desc - conds.period_offset = BP_HISTORY_O_DATE_CREATED; - conds.period_type = BP_HISTORY_DATE_ALL; // set from which period most visited sites are generated - - if(bp_history_adaptor_get_cond_ids_p(&ids ,&count, &conds, 0, nullptr, 0) < 0 ) { - errorPrint("bp_history_adaptor_get_cond_ids_p"); - return; + std::shared_ptr < HistoryItemVector > HistoryService::getHistoryToday() { + return getHistoryItems(BP_HISTORY_DATE_TODAY); } - for(int i = 0; i < count; i++){ - bp_history_adaptor_set_frequency(ids[i], 0); + std::shared_ptr < HistoryItemVector > + HistoryService::getHistoryYesterday() { + return getHistoryItems(BP_HISTORY_DATE_YESTERDAY); } - BROWSER_LOGD("Deleted Most Visited Sites!"); -} -std::shared_ptr HistoryService::getHistoryItemsByKeyword( - const std::string & keyword, int maxItems) -{ - std::string search("%" + keyword + "%"); // add SQL 'any character' signs - - std::shared_ptr items(new HistoryItemVector); - int *ids=nullptr; - int count=-1; - bp_history_rows_cond_fmt conds; - conds.limit = maxItems; //no of rows to get negative means no limitation - conds.offset = -1; //the first row's index - conds.order_offset = BP_HISTORY_O_DATE_VISITED; // property to sort - conds.ordering = 1; //way of ordering 0 asc 1 desc - conds.period_offset = BP_HISTORY_O_DATE_VISITED; - conds.period_type = BP_HISTORY_DATE_ALL; - - if(bp_history_adaptor_get_cond_ids_p(&ids ,&count, &conds, BP_HISTORY_O_URL, search.c_str(), SEARCH_LIKE) < 0) { - errorPrint("bp_history_adaptor_get_cond_ids_p"); - return items; + std::shared_ptr < HistoryItemVector > HistoryService::getHistoryLastWeek() { + return getHistoryItems(BP_HISTORY_DATE_LAST_7_DAYS); } - bp_history_offset offset = (BP_HISTORY_O_URL | BP_HISTORY_O_TITLE | BP_HISTORY_O_DATE_VISITED); - for(int i = 0; i < count; i++) { - bp_history_info_fmt history_info; - if (bp_history_adaptor_get_info(ids[i], offset, &history_info) < 0) { - BROWSER_LOGE("[%s:%d] bp_history_adaptor_get_info error ", - __PRETTY_FUNCTION__, __LINE__); - return items; - } - - if (!history_info.url) { - BROWSER_LOGW("[%s:%d] history_info.url is empty! Wrong DB entry found! ", __PRETTY_FUNCTION__, __LINE__); - continue; - } - std::shared_ptr history = std::make_shared(ids[i], std::string(history_info.url)); - history->setTitle(std::string(history_info.title ? history_info.title : "")); - - items->push_back(history); - bp_history_adaptor_easy_free(&history_info); + std::shared_ptr < HistoryItemVector > + HistoryService::getHistoryLastMonth() { + return getHistoryItems(BP_HISTORY_DATE_LAST_MONTH); } - - free(ids); - return items; -} - -void HistoryService::addHistoryItem(const std::string & url, - const std::string & title, - tools::BrowserImagePtr favicon) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - - if (url.empty()) { - BROWSER_LOGW("[%s:%d] prevented writing empty history item!", __PRETTY_FUNCTION__, __LINE__); - return; + std::shared_ptr < HistoryItemVector > HistoryService::getHistoryOlder() { + return getHistoryItems(BP_HISTORY_DATE_OLDER); } - if (isDuplicate(url.c_str())) - return; - - int id = -1; - if(bp_history_adaptor_create(&id) < 0) { - errorPrint("bp_history_adaptor_create"); - } - if (bp_history_adaptor_set_url(id, url.c_str()) < 0) { - errorPrint("bp_history_adaptor_set_url"); - } - if (bp_history_adaptor_set_title(id, title.c_str()) < 0) { - errorPrint("bp_history_adaptor_set_title"); - } - if (bp_history_adaptor_set_date_visited(id,-1) < 0) { - errorPrint("bp_history_adaptor_set_date_visited"); - } - if (bp_history_adaptor_set_frequency(id, 1) < 0) { - errorPrint("bp_history_adaptor_set_frequency"); + std::shared_ptr < HistoryItemVector > + HistoryService::getMostVisitedHistoryItems() { + std::shared_ptr < HistoryItemVector > + ret_history_list(new HistoryItemVector); + + int *ids = nullptr; + int count = -1; + bp_history_rows_cond_fmt conds; + conds.limit = 5; //no of rows to get negative means no limitation + conds.offset = -1; //the first row's index + conds.order_offset = BP_HISTORY_O_FREQUENCY; // property to sort + conds.ordering = 1; //way of ordering 0 asc 1 desc + conds.period_offset = BP_HISTORY_O_DATE_CREATED; + //TODO: consider to change below line to BP_HISTORY_DATE_LAST_MONTH + conds.period_type = BP_HISTORY_DATE_ALL; // set from which period most visited sites are generated + + if (bp_history_adaptor_get_cond_ids_p + (&ids, &count, &conds, 0, nullptr, 0) < 0) { + errorPrint("bp_history_adaptor_get_cond_ids_p"); + } + + bp_history_offset offset = + (BP_HISTORY_O_URL | BP_HISTORY_O_TITLE | BP_HISTORY_O_FREQUENCY | + BP_HISTORY_O_FAVICON | BP_HISTORY_O_DATE_CREATED | + BP_HISTORY_O_THUMBNAIL); + + int freq_arr[1000] = { 0, }; + for (int i = 0; i < count; i++) { + int freq; + if (0 == bp_history_adaptor_get_frequency(ids[i], &freq)) { + freq_arr[i] = freq; + } + } + + int index_array[6] = { 0, }; + int j = 0; + int maximum = freq_arr[0]; + int position = 0; + + for (int k = 1; k <= 5; k++) { + if (k > count || count == 0) + break; + + maximum = freq_arr[0]; + position = 0; + + for (int i = 1; i < count; i++) { + if (freq_arr[i] > maximum) { + maximum = freq_arr[i]; + position = i; + } + } + index_array[j++] = position; + freq_arr[position] = -1; + } + + for (int i = 0; i < j; i++) { + bp_history_info_fmt history_info; + if (bp_history_adaptor_get_info(ids[index_array[i]], offset, + &history_info) < 0) { + BROWSER_LOGE("[%s:%d] bp_history_adaptor_get_info error ", + __PRETTY_FUNCTION__, __LINE__); + return ret_history_list; + } + + if (!history_info.url) { + BROWSER_LOGW + ("[%s:%d] history_info.url is empty! Wrong DB entry found! ", + __PRETTY_FUNCTION__, __LINE__); + continue; + } + std::shared_ptr < HistoryItem > history = + std::make_shared < HistoryItem > (ids[index_array[i]], + std::string(history_info.url)); + history->setUrl(std::string(history_info.url)); + history-> + setTitle(std::string(history_info.title ? history_info.title : "")); + + //thumbnail + if (history_info.thumbnail_length != -1) { + tools::BrowserImagePtr hi = + std::make_shared < tools::BrowserImage > + (history_info.thumbnail_width, history_info.thumbnail_height, + history_info.thumbnail_length); + hi->setData((void *) history_info.thumbnail, false, + tools::ImageType::ImageTypePNG); + history->setThumbnail(hi); + } else { + BROWSER_LOGD("history thumbnail lenght is -1"); + } + if (history_info.frequency > 0) + ret_history_list->push_back(history); + bp_history_adaptor_easy_free(&history_info); + } + + free(ids); + return ret_history_list; } - if (favicon) { - std::unique_ptr favicon_blob = tools::EflTools::getBlobPNG(favicon); - if (!favicon_blob){ - BROWSER_LOGW("getBlobPNG failed"); - return; - } - unsigned char * fav = std::move((unsigned char*)favicon_blob->getData()); - if (bp_history_adaptor_set_icon(id, favicon->getWidth(), favicon->getHeight(), fav, favicon_blob->getLength()) < 0) { - errorPrint("bp_history_adaptor_set_icon"); - } + void HistoryService::cleanMostVisitedHistoryItems() + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + + int *ids = nullptr; + int count = -1; + bp_history_rows_cond_fmt conds; + conds.limit = -1; // no of rows to get negative means no limitation + conds.offset = -1; // the first row's index + conds.order_offset = BP_HISTORY_O_ALL; // property to sort + conds.ordering = 1; // way of ordering 0 asc 1 desc + conds.period_offset = BP_HISTORY_O_DATE_CREATED; + conds.period_type = BP_HISTORY_DATE_ALL; // set from which period most visited sites are generated + + if (bp_history_adaptor_get_cond_ids_p + (&ids, &count, &conds, 0, nullptr, 0) < 0) { + errorPrint("bp_history_adaptor_get_cond_ids_p"); + return; + } + + for (int i = 0; i < count; i++) { + bp_history_adaptor_set_frequency(ids[i], 0); + } + BROWSER_LOGD("Deleted Most Visited Sites!"); } -} -void HistoryService::updateHistoryItemFavicon(const std::string & url, tools::BrowserImagePtr favicon) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - int id = getHistoryId(url); - if (id!=0) { - if (favicon) { - std::unique_ptr favicon_blob = tools::EflTools::getBlobPNG(favicon); - if (!favicon_blob){ - BROWSER_LOGW("getBlobPNG failed"); - return; - } - unsigned char * fav = std::move((unsigned char*)favicon_blob->getData()); - if (bp_history_adaptor_set_icon(id, favicon->getWidth(), favicon->getHeight(), fav, favicon_blob->getLength()) < 0) { - errorPrint("bp_history_adaptor_set_icon"); - } - } - } else { - BROWSER_LOGW("Cannot update favicon, there is no such history item!"); + std::shared_ptr < HistoryItemVector > + HistoryService::getHistoryItemsByKeyword(const std::string & keyword, + int maxItems) + { + std::string search("%" + keyword + "%"); // add SQL 'any character' signs + + std::shared_ptr < HistoryItemVector > items(new HistoryItemVector); + int *ids = nullptr; + int count = -1; + bp_history_rows_cond_fmt conds; + conds.limit = maxItems; //no of rows to get negative means no limitation + conds.offset = -1; //the first row's index + conds.order_offset = BP_HISTORY_O_DATE_VISITED; // property to sort + conds.ordering = 1; //way of ordering 0 asc 1 desc + conds.period_offset = BP_HISTORY_O_DATE_VISITED; + conds.period_type = BP_HISTORY_DATE_ALL; + + if (bp_history_adaptor_get_cond_ids_p + (&ids, &count, &conds, BP_HISTORY_O_URL, search.c_str(), + SEARCH_LIKE) < 0) { + errorPrint("bp_history_adaptor_get_cond_ids_p"); + return items; + } + + bp_history_offset offset = + (BP_HISTORY_O_URL | BP_HISTORY_O_TITLE | BP_HISTORY_O_DATE_VISITED); + for (int i = 0; i < count; i++) { + bp_history_info_fmt history_info; + if (bp_history_adaptor_get_info(ids[i], offset, &history_info) < 0) { + BROWSER_LOGE("[%s:%d] bp_history_adaptor_get_info error ", + __PRETTY_FUNCTION__, __LINE__); + return items; + } + + if (!history_info.url) { + BROWSER_LOGW + ("[%s:%d] history_info.url is empty! Wrong DB entry found! ", + __PRETTY_FUNCTION__, __LINE__); + continue; + } + std::shared_ptr < HistoryItem > history = + std::make_shared < HistoryItem > (ids[i], + std::string(history_info.url)); + history-> + setTitle(std::string(history_info.title ? history_info.title : "")); + + items->push_back(history); + bp_history_adaptor_easy_free(&history_info); + } + + free(ids); + return items; } -} -void HistoryService::updateHistoryItemSnapshot(const std::string & url, tools::BrowserImagePtr snapshot) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - int id = getHistoryId(url); - if (id != 0 && snapshot) { - std::unique_ptr snapshot_blob = tools::EflTools::getBlobPNG(snapshot); - if (!snapshot_blob){ - BROWSER_LOGW("getBlobPNG failed"); - return; - } - unsigned char * snap = std::move((unsigned char*)snapshot_blob->getData()); - if (bp_history_adaptor_set_snapshot(id, snapshot->getWidth(), snapshot->getHeight(), snap, - snapshot_blob->getLength()) < 0) - errorPrint("bp_history_adaptor_set_snapshot"); + void HistoryService::addHistoryItem(const std::string & url, + const std::string & title, + tools::BrowserImagePtr favicon) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + + if (url.empty()) { + BROWSER_LOGW("[%s:%d] prevented writing empty history item!", + __PRETTY_FUNCTION__, __LINE__); + return; + } + + if (isDuplicate(url.c_str())) + return; + + int id = -1; + if (bp_history_adaptor_create(&id) < 0) { + errorPrint("bp_history_adaptor_create"); + } + if (bp_history_adaptor_set_url(id, url.c_str()) < 0) { + errorPrint("bp_history_adaptor_set_url"); + } + if (bp_history_adaptor_set_title(id, title.c_str()) < 0) { + errorPrint("bp_history_adaptor_set_title"); + } + if (bp_history_adaptor_set_date_visited(id, -1) < 0) { + errorPrint("bp_history_adaptor_set_date_visited"); + } + if (bp_history_adaptor_set_frequency(id, 1) < 0) { + errorPrint("bp_history_adaptor_set_frequency"); + } + + if (favicon) { + std::unique_ptr < tools::Blob > favicon_blob = + tools::EflTools::getBlobPNG(favicon); + if (!favicon_blob) { + BROWSER_LOGW("getBlobPNG failed"); + return; + } + unsigned char *fav = + std::move((unsigned char *) favicon_blob->getData()); + if (bp_history_adaptor_set_icon + (id, favicon->getWidth(), favicon->getHeight(), fav, + favicon_blob->getLength()) < 0) { + errorPrint("bp_history_adaptor_set_icon"); + } + } } -} - -void HistoryService::clearAllHistory() -{ - bp_history_adaptor_reset(); - history_list.clear(); - historyAllDeleted(); -} -int HistoryService::getHistoryId(const std::string & url) -{ - bp_history_rows_cond_fmt conds; - conds.limit = -1; - conds.offset = 0; - conds.order_offset = BP_HISTORY_O_DATE_CREATED; - conds.ordering = 0; - conds.period_offset = BP_HISTORY_O_DATE_CREATED; - conds.period_type = BP_HISTORY_DATE_ALL; - int *ids = nullptr; - int ids_count = 0; - if(bp_history_adaptor_get_cond_ids_p(&ids ,&ids_count, &conds, BP_HISTORY_O_URL, url.c_str(), 0) < 0) { - errorPrint("bp_history_adaptor_get_cond_ids_p"); - } else if (ids_count != 0) { - int i = *ids; - free(ids); - return i; + void HistoryService::updateHistoryItemFavicon(const std::string & url, + tools:: + BrowserImagePtr favicon) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + int id = getHistoryId(url); + if (id != 0) { + if (favicon) { + std::unique_ptr < tools::Blob > favicon_blob = + tools::EflTools::getBlobPNG(favicon); + if (!favicon_blob) { + BROWSER_LOGW("getBlobPNG failed"); + return; + } + unsigned char *fav = + std::move((unsigned char *) favicon_blob->getData()); + if (bp_history_adaptor_set_icon + (id, favicon->getWidth(), favicon->getHeight(), fav, + favicon_blob->getLength()) < 0) { + errorPrint("bp_history_adaptor_set_icon"); + } + } + } else { + BROWSER_LOGW("Cannot update favicon, there is no such history item!"); + } } - return 0; -} - -void HistoryService::clearURLHistory(const std::string & url) -{ - int id = getHistoryId(url); - if (id!=0) - bp_history_adaptor_delete(id); - if(0 == getHistoryItemsCount()) - historyEmpty(true); - historyDeleted(url); -} -void HistoryService::deleteHistoryItem(int id) { - if (bp_history_adaptor_delete(id) < 0) { - errorPrint("bp_history_adaptor_delete"); + void HistoryService::updateHistoryItemSnapshot(const std::string & url, + tools:: + BrowserImagePtr snapshot) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + int id = getHistoryId(url); + if (id != 0 && snapshot) { + std::unique_ptr < tools::Blob > snapshot_blob = + tools::EflTools::getBlobPNG(snapshot); + if (!snapshot_blob) { + BROWSER_LOGW("getBlobPNG failed"); + return; + } + unsigned char *snap = + std::move((unsigned char *) snapshot_blob->getData()); + if (bp_history_adaptor_set_snapshot + (id, snapshot->getWidth(), snapshot->getHeight(), snap, + snapshot_blob->getLength()) < 0) + errorPrint("bp_history_adaptor_set_snapshot"); + } } -} -std::shared_ptr HistoryService::getHistoryItem(int * ids, int idNumber) -{ - bp_history_offset offset = (BP_HISTORY_O_URL | BP_HISTORY_O_TITLE | BP_HISTORY_O_FAVICON | BP_HISTORY_O_DATE_VISITED); - bp_history_info_fmt history_info; - if (bp_history_adaptor_get_info(ids[idNumber], offset, &history_info) < 0) { - BROWSER_LOGE("[%s:%d] bp_history_adaptor_get_info error ", - __PRETTY_FUNCTION__, __LINE__); - return std::shared_ptr(); + void HistoryService::clearAllHistory() + { + bp_history_adaptor_reset(); + history_list.clear(); + historyAllDeleted(); } - if (!history_info.url) { - BROWSER_LOGW("[%s:%d] history_info.url is empty! Wrong DB entry found! ", __PRETTY_FUNCTION__, __LINE__); - return std::shared_ptr(); + int HistoryService::getHistoryId(const std::string & url) + { + bp_history_rows_cond_fmt conds; + conds.limit = -1; + conds.offset = 0; + conds.order_offset = BP_HISTORY_O_DATE_CREATED; + conds.ordering = 0; + conds.period_offset = BP_HISTORY_O_DATE_CREATED; + conds.period_type = BP_HISTORY_DATE_ALL; + int *ids = nullptr; + int ids_count = 0; + if (bp_history_adaptor_get_cond_ids_p + (&ids, &ids_count, &conds, BP_HISTORY_O_URL, url.c_str(), 0) < 0) { + errorPrint("bp_history_adaptor_get_cond_ids_p"); + } else if (ids_count != 0) { + int i = *ids; + free(ids); + return i; + } + return 0; } - int date; - bp_history_adaptor_get_date_created(ids[idNumber], &date); - - time_t item_time = (time_t) date; - struct tm item_time_info; - if (gmtime_r(&item_time,&item_time_info) == NULL) { - BROWSER_LOGE("[%s:%d] History localtime_r error ", __PRETTY_FUNCTION__, __LINE__); - return std::shared_ptr(); + void HistoryService::clearURLHistory(const std::string & url) + { + int id = getHistoryId(url); + if (id != 0) + bp_history_adaptor_delete(id); + if (0 == getHistoryItemsCount()) + historyEmpty(true); + historyDeleted(url); } - int m_year = item_time_info.tm_year; - int m_month = item_time_info.tm_mon + 1; - int m_month_day = item_time_info.tm_mday; - int min = item_time_info.tm_min; - int hour = item_time_info.tm_hour; - int sec = item_time_info.tm_sec; - - m_year = 2000 + m_year % 100; - - std::shared_ptr history = std::make_shared (ids[idNumber], std::string(history_info.url)); - boost::gregorian::date d(m_year, m_month, m_month_day); - boost::posix_time::ptime t(d, boost::posix_time::time_duration(hour, min, sec)); - history->setLastVisit(t); - history->setUrl(std::string(history_info.url ? history_info.url : "")); - history->setTitle(std::string(history_info.title ? history_info.title : "")); - - tools::BrowserImagePtr thumbnail = std::make_shared( - history_info.thumbnail_width, - history_info.thumbnail_height, - history_info.thumbnail_length); - thumbnail->setData((void*)history_info.thumbnail, false, tools::ImageType::ImageTypePNG); - tools::BrowserImagePtr favIcon = std::make_shared( - history_info.favicon_width, - history_info.favicon_height, - history_info.favicon_length); - favIcon->setData((void*)history_info.favicon, false, tools::ImageType::ImageTypePNG); - history->setThumbnail(thumbnail); - history->setFavIcon(favIcon); - - bp_history_adaptor_easy_free(&history_info); - - return history; -} - -std::shared_ptr HistoryService::getHistoryItems(bp_history_date_defs period) -{ - std::shared_ptr ret_history_list(new HistoryItemVector); - - int *ids=nullptr; - int count=-1; - bp_history_rows_cond_fmt conds; - conds.limit = -1; //no of rows to get negative means no limitation - conds.offset = -1; //the first row's index - conds.order_offset = BP_HISTORY_O_DATE_VISITED; // property to sort - conds.ordering = 1; //way of ordering 0 asc 1 desc - conds.period_offset = BP_HISTORY_O_DATE_VISITED; - conds.period_type = period; - - if(bp_history_adaptor_get_cond_ids_p(&ids ,&count, &conds, 0, nullptr, 0) < 0) { - errorPrint("bp_history_adaptor_get_cond_ids_p"); + void HistoryService::deleteHistoryItem(int id) + { + if (bp_history_adaptor_delete(id) < 0) { + errorPrint("bp_history_adaptor_delete"); + } } - for(int i = 0; i< count; i++) { - std::shared_ptr item = getHistoryItem(ids, i); - if (!item) - BROWSER_LOGW("[%s:%d] empty history item! ", __PRETTY_FUNCTION__, __LINE__); - else - ret_history_list->push_back(item); + std::shared_ptr < HistoryItem > HistoryService::getHistoryItem(int *ids, + int + idNumber) + { + bp_history_offset offset = + (BP_HISTORY_O_URL | BP_HISTORY_O_TITLE | BP_HISTORY_O_FAVICON | + BP_HISTORY_O_DATE_VISITED); + bp_history_info_fmt history_info; + if (bp_history_adaptor_get_info(ids[idNumber], offset, &history_info) < + 0) { + BROWSER_LOGE("[%s:%d] bp_history_adaptor_get_info error ", + __PRETTY_FUNCTION__, __LINE__); + return std::shared_ptr < HistoryItem > (); + } + + if (!history_info.url) { + BROWSER_LOGW + ("[%s:%d] history_info.url is empty! Wrong DB entry found! ", + __PRETTY_FUNCTION__, __LINE__); + return std::shared_ptr < HistoryItem > (); + } + + int date; + bp_history_adaptor_get_date_created(ids[idNumber], &date); + + time_t item_time = (time_t) date; + struct tm item_time_info; + if (gmtime_r(&item_time, &item_time_info) == NULL) { + BROWSER_LOGE("[%s:%d] History localtime_r error ", + __PRETTY_FUNCTION__, __LINE__); + return std::shared_ptr < HistoryItem > (); + } + + int m_year = item_time_info.tm_year; + int m_month = item_time_info.tm_mon + 1; + int m_month_day = item_time_info.tm_mday; + int min = item_time_info.tm_min; + int hour = item_time_info.tm_hour; + int sec = item_time_info.tm_sec; + + m_year = 2000 + m_year % 100; + + std::shared_ptr < HistoryItem > history = + std::make_shared < HistoryItem > (ids[idNumber], + std::string(history_info.url)); + boost::gregorian::date d(m_year, m_month, m_month_day); + boost::posix_time::ptime t(d, + boost::posix_time::time_duration(hour, min, + sec)); + history->setLastVisit(t); + history->setUrl(std::string(history_info.url ? history_info.url : "")); + history-> + setTitle(std::string(history_info.title ? history_info.title : "")); + + tools::BrowserImagePtr thumbnail = + std::make_shared < tools::BrowserImage > + (history_info.thumbnail_width, history_info.thumbnail_height, + history_info.thumbnail_length); + thumbnail->setData((void *) history_info.thumbnail, false, + tools::ImageType::ImageTypePNG); + tools::BrowserImagePtr favIcon = + std::make_shared < tools::BrowserImage > (history_info.favicon_width, + history_info.favicon_height, + history_info. + favicon_length); + favIcon->setData((void *) history_info.favicon, false, + tools::ImageType::ImageTypePNG); + history->setThumbnail(thumbnail); + history->setFavIcon(favIcon); + + bp_history_adaptor_easy_free(&history_info); + + return history; } - free(ids); - return ret_history_list; -} - -std::shared_ptr HistoryService::getHistoryItemsByURL( - const std::string& url, int maxItems) -{ - return getHistoryItemsByKeyword(tools::extractDomain(url), maxItems); -} - -std::shared_ptr HistoryService::getHistoryItemsByKeywordsString( - const std::string& keywordsString, const int maxItems, - const unsigned int minKeywordLength, bool uniqueUrls) -{ - if (keywordsString.empty()) - return std::make_shared(); - - std::vector keywords; - tools::string_tools::splitString(keywordsString, keywords); - // the longer the keyword is, the faster search will be - const unsigned longestKeywordPos = tools::string_tools::getLongest(keywords); - std::string longestKeyword = keywords.at(longestKeywordPos); - boost::algorithm::to_lower(longestKeyword); - - // assumption: search starts when longest keyword is at least - // minKeywordLength characters long - if (longestKeyword.length() < minKeywordLength) { - return std::make_shared(); + std::shared_ptr < HistoryItemVector > + HistoryService::getHistoryItems(bp_history_date_defs period) { + std::shared_ptr < HistoryItemVector > + ret_history_list(new HistoryItemVector); + + int *ids = nullptr; + int count = -1; + bp_history_rows_cond_fmt conds; + conds.limit = -1; //no of rows to get negative means no limitation + conds.offset = -1; //the first row's index + conds.order_offset = BP_HISTORY_O_DATE_VISITED; // property to sort + conds.ordering = 1; //way of ordering 0 asc 1 desc + conds.period_offset = BP_HISTORY_O_DATE_VISITED; + conds.period_type = period; + + if (bp_history_adaptor_get_cond_ids_p + (&ids, &count, &conds, 0, nullptr, 0) < 0) { + errorPrint("bp_history_adaptor_get_cond_ids_p"); + } + + for (int i = 0; i < count; i++) { + std::shared_ptr < HistoryItem > item = getHistoryItem(ids, i); + if (!item) + BROWSER_LOGW("[%s:%d] empty history item! ", __PRETTY_FUNCTION__, + __LINE__); + else + ret_history_list->push_back(item); + } + free(ids); + return ret_history_list; } - // get all results for the longest keyword - std::shared_ptr historyItems = getHistoryItemsByKeyword( - longestKeyword, -1); - - if (keywords.size() > 1) { - // longestKeywordPos is already handled - keywords.erase(keywords.begin() + longestKeywordPos); - tools::string_tools::downcase(keywords); - removeMismatches(historyItems, keywords); + std::shared_ptr < HistoryItemVector > + HistoryService::getHistoryItemsByURL(const std::string & url, + int maxItems) { + return getHistoryItemsByKeyword(tools::extractDomain(url), maxItems); } - if (maxItems != -1) { - if (historyItems->size() > static_cast(maxItems)) { - historyItems->erase(historyItems->begin() + maxItems, - historyItems->end()); - } + std::shared_ptr < HistoryItemVector > + HistoryService::getHistoryItemsByKeywordsString(const std:: + string & keywordsString, + const int maxItems, + const unsigned int + minKeywordLength, + bool uniqueUrls) { + if (keywordsString.empty()) + return std::make_shared < HistoryItemVector > (); + + std::vector < std::string > keywords; + tools::string_tools::splitString(keywordsString, keywords); + + // the longer the keyword is, the faster search will be + const unsigned longestKeywordPos = + tools::string_tools::getLongest(keywords); + std::string longestKeyword = keywords.at(longestKeywordPos); + boost::algorithm::to_lower(longestKeyword); + + // assumption: search starts when longest keyword is at least + // minKeywordLength characters long + if (longestKeyword.length() < minKeywordLength) { + return std::make_shared < HistoryItemVector > (); + } + // get all results for the longest keyword + std::shared_ptr < HistoryItemVector > historyItems = + getHistoryItemsByKeyword(longestKeyword, -1); + + if (keywords.size() > 1) { + // longestKeywordPos is already handled + keywords.erase(keywords.begin() + longestKeywordPos); + tools::string_tools::downcase(keywords); + removeMismatches(historyItems, keywords); + } + + if (maxItems != -1) { + if (historyItems->size() > static_cast < unsigned int >(maxItems)) { + historyItems->erase(historyItems->begin() + maxItems, + historyItems->end()); + } + } + + if (uniqueUrls) + removeUrlDuplicates(historyItems); + return historyItems; } - if (uniqueUrls) - removeUrlDuplicates(historyItems); - return historyItems; -} - -} + } } diff --git a/services/HistoryService/HistoryService.h b/services/HistoryService/HistoryService.h old mode 100644 new mode 100755 index 83b24f02..51034949 --- a/services/HistoryService/HistoryService.h +++ b/services/HistoryService/HistoryService.h @@ -89,9 +89,9 @@ public: int getHistoryItemsCount(); void setStorageServiceTestMode(bool testmode = true); - boost::signals2::signalhistoryEmpty; - boost::signals2::signal historyDeleted; - boost::signals2::signal historyAllDeleted; + boost::signals2::signalhistoryEmpty; + boost::signals2::signal historyDeleted; + boost::signals2::signal historyAllDeleted; private: bool m_testDbMod;; diff --git a/services/HistoryService/HistoryServiceTools.cpp b/services/HistoryService/HistoryServiceTools.cpp old mode 100644 new mode 100755 diff --git a/services/HistoryService/HistoryServiceTools.h b/services/HistoryService/HistoryServiceTools.h old mode 100644 new mode 100755 diff --git a/services/HistoryUI/HistoryDaysListManager/HistoryDayItemData.h b/services/HistoryUI/HistoryDaysListManager/HistoryDayItemData.h old mode 100644 new mode 100755 diff --git a/services/HistoryUI/HistoryDaysListManager/HistoryDayItemDataTypedef.h b/services/HistoryUI/HistoryDaysListManager/HistoryDayItemDataTypedef.h old mode 100644 new mode 100755 diff --git a/services/HistoryUI/HistoryDaysListManager/HistoryDaysListManager.h b/services/HistoryUI/HistoryDaysListManager/HistoryDaysListManager.h old mode 100644 new mode 100755 index adf93bbb..ef98cde0 --- a/services/HistoryUI/HistoryDaysListManager/HistoryDaysListManager.h +++ b/services/HistoryUI/HistoryDaysListManager/HistoryDaysListManager.h @@ -39,8 +39,8 @@ public: // clear everything including efl objects (result: empty list) virtual void clear() = 0; virtual void setFocusChain(Evas_Object* obj) = 0; - boost::signals2::signal signalHistoryItemClicked; - boost::signals2::signal> itemIds)> signalDeleteHistoryItems; + boost::signals2::signal signalHistoryItemClicked; + boost::signals2::signal> itemIds)> signalDeleteHistoryItems; }; } diff --git a/services/HistoryUI/HistoryDaysListManager/HistoryDaysListManagerEdje.h b/services/HistoryUI/HistoryDaysListManager/HistoryDaysListManagerEdje.h old mode 100644 new mode 100755 diff --git a/services/HistoryUI/HistoryDaysListManager/HistoryDaysListManagerMob.cpp b/services/HistoryUI/HistoryDaysListManager/HistoryDaysListManagerMob.cpp old mode 100644 new mode 100755 index c7983512..12d97626 --- a/services/HistoryUI/HistoryDaysListManager/HistoryDaysListManagerMob.cpp +++ b/services/HistoryUI/HistoryDaysListManager/HistoryDaysListManagerMob.cpp @@ -28,249 +28,270 @@ #include #include -namespace tizen_browser { -namespace base_ui { +namespace tizen_browser +{ + namespace base_ui + { -HistoryDaysListManagerMob::HistoryDaysListManagerMob() - : m_edjeFiles(std::make_shared()) + HistoryDaysListManagerMob::HistoryDaysListManagerMob() + :m_edjeFiles(std::make_shared < HistoryDaysListManagerEdje > ()) , m_parent(nullptr) , m_scrollerDays(nullptr) , m_layoutScrollerDays(nullptr) , m_boxDays(nullptr) -{ - connectSignals(); -} - -HistoryDaysListManagerMob::~HistoryDaysListManagerMob() -{ - for (auto& dayItem : m_dayItems) - dayItem->setEflObjectsAsDeleted(); -} + { + connectSignals(); + } -Evas_Object* HistoryDaysListManagerMob::createDaysList( - Evas_Object* parent) -{ - m_parent = parent; - m_scrollerDays = elm_scroller_add(parent); - tools::EflTools::setExpandHints(m_scrollerDays); - - m_layoutScrollerDays = elm_layout_add(parent); - evas_object_size_hint_weight_set(m_layoutScrollerDays, EVAS_HINT_EXPAND, - 0.0); - evas_object_size_hint_align_set(m_layoutScrollerDays, EVAS_HINT_FILL, 0.0); - elm_layout_file_set(m_layoutScrollerDays, - m_edjeFiles->historyDaysList.c_str(), "layoutScrollerDays"); - - elm_object_content_set(m_scrollerDays, m_layoutScrollerDays); - - m_boxDays = elm_box_add(m_layoutScrollerDays); - tools::EflTools::setExpandHints(m_boxDays); - elm_box_horizontal_set(m_boxDays, EINA_FALSE); - elm_object_part_content_set(m_layoutScrollerDays, "boxDays", - m_boxDays); - - return m_scrollerDays; -} - -void HistoryDaysListManagerMob::addHistoryItems( - const std::map& items, - HistoryPeriod period) -{ - std::vector historyItems; - for (auto& itemPair : items) { - std::vector pageViewItems; - std::shared_ptr websiteFavicon = nullptr; - for (auto& hi : itemPair.second) { - pageViewItems.push_back( - std::make_shared(hi)); - if (!websiteFavicon && hi->getFavIcon()->getSize() > 0) - websiteFavicon = hi->getFavIcon(); - } - historyItems.push_back( - std::make_shared - (itemPair.first, itemPair.first, websiteFavicon, pageViewItems)); + HistoryDaysListManagerMob::~HistoryDaysListManagerMob() + { + for (auto & dayItem:m_dayItems) + dayItem->setEflObjectsAsDeleted(); } - sortDayItems(historyItems); - HistoryDayItemDataPtr dayItem = std::make_shared < HistoryDayItemData - > (toString(period), historyItems); - appendDayItem(dayItem); - showNoHistoryMessage(isHistoryDayListEmpty()); -} + Evas_Object *HistoryDaysListManagerMob::createDaysList(Evas_Object * + parent) + { + m_parent = parent; + m_scrollerDays = elm_scroller_add(parent); + tools::EflTools::setExpandHints(m_scrollerDays); + + m_layoutScrollerDays = elm_layout_add(parent); + evas_object_size_hint_weight_set(m_layoutScrollerDays, EVAS_HINT_EXPAND, + 0.0); + evas_object_size_hint_align_set(m_layoutScrollerDays, EVAS_HINT_FILL, + 0.0); + elm_layout_file_set(m_layoutScrollerDays, + m_edjeFiles->historyDaysList.c_str(), + "layoutScrollerDays"); + + elm_object_content_set(m_scrollerDays, m_layoutScrollerDays); + + m_boxDays = elm_box_add(m_layoutScrollerDays); + tools::EflTools::setExpandHints(m_boxDays); + elm_box_horizontal_set(m_boxDays, EINA_FALSE); + elm_object_part_content_set(m_layoutScrollerDays, "boxDays", m_boxDays); + + return m_scrollerDays; + } -void HistoryDaysListManagerMob::sortDayItems(std::vector& historyItems) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - - std::vector> sitesWithTime; - - for(auto& domainGroup : historyItems) { - time_t lastVisitTime = 0; - - // Get time determinant from multiple URLs inside one domain group - std::vector visitedURLs = domainGroup->websiteVisitItems; - for(auto& item : visitedURLs) { - time_t visitTime = item->historyItem->getLastVisitAsTimeT(); - if(visitTime > lastVisitTime) - lastVisitTime = visitTime; - } - auto pair = std::make_pair(lastVisitTime, domainGroup); - sitesWithTime.push_back(pair); + void HistoryDaysListManagerMob::addHistoryItems(const std::map < + std::string, + services:: + HistoryItemVector > + &items, + HistoryPeriod period) + { + std::vector < WebsiteHistoryItemDataPtr > historyItems; + for (auto & itemPair:items) { + std::vector < WebsiteVisitItemDataPtr > pageViewItems; + std::shared_ptr < tools::BrowserImage > websiteFavicon = nullptr; + for (auto & hi:itemPair.second) { + pageViewItems.push_back(std::make_shared < WebsiteVisitItemData > + (hi)); + if (!websiteFavicon && hi->getFavIcon()->getSize() > 0) + websiteFavicon = hi->getFavIcon(); + } + historyItems.push_back(std::make_shared < WebsiteHistoryItemData > + (itemPair.first, itemPair.first, + websiteFavicon, pageViewItems)); + } + + sortDayItems(historyItems); + HistoryDayItemDataPtr dayItem = std::make_shared < HistoryDayItemData + > (toString(period), historyItems); + appendDayItem(dayItem); + showNoHistoryMessage(isHistoryDayListEmpty()); } - // time descending order - std::sort(sitesWithTime.begin(), sitesWithTime.end(), []( - const std::pair& lhs, - const std::pair& rhs){ - return lhs.first > rhs.first; - }); + void HistoryDaysListManagerMob::sortDayItems(std::vector < + WebsiteHistoryItemDataPtr > + &historyItems) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + + std::vector < std::pair < time_t, + WebsiteHistoryItemDataPtr >> sitesWithTime; + + for (auto & domainGroup:historyItems) { + time_t lastVisitTime = 0; + + // Get time determinant from multiple URLs inside one domain group + std::vector < WebsiteVisitItemDataPtr > visitedURLs = + domainGroup->websiteVisitItems; + for (auto & item:visitedURLs) { + time_t visitTime = item->historyItem->getLastVisitAsTimeT(); + if (visitTime > lastVisitTime) + lastVisitTime = visitTime; + } + auto pair = std::make_pair(lastVisitTime, domainGroup); + sitesWithTime.push_back(pair); + } + + // time descending order + std::sort(sitesWithTime.begin(), sitesWithTime.end(), + [](const std::pair < time_t, WebsiteHistoryItemDataPtr > &lhs, + const std::pair < time_t, + WebsiteHistoryItemDataPtr > &rhs) { + return lhs.first > rhs.first;}); + + historyItems.clear(); + for (auto & item:sitesWithTime) { + historyItems.push_back(item.second); + } + } - historyItems.clear(); - for(auto& item : sitesWithTime) { - historyItems.push_back(item.second); + void HistoryDaysListManagerMob::clear() + { + elm_box_clear(m_boxDays); + m_dayItems.clear(); + showNoHistoryMessage(isHistoryDayListEmpty()); } -} -void HistoryDaysListManagerMob::clear() -{ - elm_box_clear(m_boxDays); - m_dayItems.clear(); - showNoHistoryMessage(isHistoryDayListEmpty()); -} + HistoryDayItemMobPtr HistoryDaysListManagerMob:: + getItem(HistoryDayItemDataPtrConst historyDayItemData) + { + for (auto & historyDayItem:m_dayItems) { + if (historyDayItem->getData() == historyDayItemData) + return historyDayItem; + } + return nullptr; + } -HistoryDayItemMobPtr HistoryDaysListManagerMob::getItem( - HistoryDayItemDataPtrConst historyDayItemData) -{ - for (auto& historyDayItem : m_dayItems) { - if (historyDayItem->getData() == historyDayItemData) - return historyDayItem; + void HistoryDaysListManagerMob::connectSignals() + { + HistoryDayItemMob::signaButtonClicked. + connect(boost:: + bind(&HistoryDaysListManagerMob:: + onHistoryDayItemButtonClicked, this, _1, _2)); + WebsiteHistoryItemTitleMob::signalButtonClicked. + connect(boost:: + bind(&HistoryDaysListManagerMob::onWebsiteHistoryItemClicked, + this, _1, _2)); + WebsiteHistoryItemVisitItemsMob::signalButtonClicked. + connect(boost:: + bind(&HistoryDaysListManagerMob:: + onWebsiteHistoryItemVisitItemClicked, this, _1, _2)); } - return nullptr; -} -void HistoryDaysListManagerMob::connectSignals() -{ - HistoryDayItemMob::signaButtonClicked.connect( - boost::bind(&HistoryDaysListManagerMob::onHistoryDayItemButtonClicked, - this, _1, _2)); - WebsiteHistoryItemTitleMob::signalButtonClicked.connect( - boost::bind(&HistoryDaysListManagerMob::onWebsiteHistoryItemClicked, - this, _1, _2)); - WebsiteHistoryItemVisitItemsMob::signalButtonClicked.connect( - boost::bind( - &HistoryDaysListManagerMob::onWebsiteHistoryItemVisitItemClicked, - this, _1, _2)); -} - - -void HistoryDaysListManagerMob::appendDayItem(HistoryDayItemDataPtr dayItemData) -{ - auto item = std::make_shared(dayItemData); - m_dayItems.push_back(item); - Evas_Object* dayItemLayout = item->init(m_parent, m_edjeFiles); - elm_box_pack_end(m_boxDays, dayItemLayout); -} + void HistoryDaysListManagerMob:: + appendDayItem(HistoryDayItemDataPtr dayItemData) + { + auto item = std::make_shared < HistoryDayItemMob > (dayItemData); + m_dayItems.push_back(item); -void HistoryDaysListManagerMob::showNoHistoryMessage(bool show) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (show) - elm_object_signal_emit(m_layoutScrollerDays, "show_empty_message", "ui"); - else - elm_object_signal_emit(m_layoutScrollerDays, "hide_empty_message", "ui"); -} - -void HistoryDaysListManagerMob::onHistoryDayItemButtonClicked( - const HistoryDayItemDataPtrConst clickedItem, bool remove) -{ - if (remove) - removeItem(clickedItem); -} + Evas_Object *dayItemLayout = item->init(m_parent, m_edjeFiles); + elm_box_pack_end(m_boxDays, dayItemLayout); + } -void HistoryDaysListManagerMob::onWebsiteHistoryItemClicked( - const WebsiteHistoryItemDataPtrConst clickedItem, bool remove) -{ - if (remove) - removeItem(clickedItem); - else - signalHistoryItemClicked( - tools::PROTOCOL_DEFAULT + clickedItem->websiteDomain, - clickedItem->websiteTitle); -} - -void HistoryDaysListManagerMob::onWebsiteHistoryItemVisitItemClicked( - const WebsiteVisitItemDataPtrConst clickedItem, bool remove) -{ - if (remove) { - removeItem(clickedItem); - signalDeleteHistoryItems( - std::make_shared>(std::initializer_list { - clickedItem->historyItem->getId() })); - } else - signalHistoryItemClicked(clickedItem->historyItem->getUrl(), - clickedItem->historyItem->getTitle()); -} - -void HistoryDaysListManagerMob::removeItem( - HistoryDayItemDataPtrConst historyDayItemData) -{ - if (!historyDayItemData) { - BROWSER_LOGE("%s remove error", __PRETTY_FUNCTION__); - return; + void HistoryDaysListManagerMob::showNoHistoryMessage(bool show) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + if (show) + elm_object_signal_emit(m_layoutScrollerDays, "show_empty_message", + "ui"); + else + elm_object_signal_emit(m_layoutScrollerDays, "hide_empty_message", + "ui"); } - auto item = getItem(historyDayItemData); - if (!item) - return; - // remove day item from vector, destructor will clear efl objects - remove(item); - elm_box_unpack(m_boxDays, item->getLayoutMain()); - showNoHistoryMessage(isHistoryDayListEmpty()); -} - -void HistoryDaysListManagerMob::removeItem( - WebsiteHistoryItemDataPtrConst websiteHistoryItemData) -{ - if (!websiteHistoryItemData) { - BROWSER_LOGE("%s remove error", __PRETTY_FUNCTION__); - return; + + void HistoryDaysListManagerMob:: + onHistoryDayItemButtonClicked(const HistoryDayItemDataPtrConst + clickedItem, bool remove) + { + if (remove) + removeItem(clickedItem); } - for (auto& dayItem : m_dayItems) { - auto websiteHistoryItem = dayItem->getItem(websiteHistoryItemData); - if (websiteHistoryItem) { - signalDeleteHistoryItems(websiteHistoryItem->getVisitItemsIds()); - dayItem->removeItem(websiteHistoryItemData); - return; - } + + void HistoryDaysListManagerMob:: + onWebsiteHistoryItemClicked(const WebsiteHistoryItemDataPtrConst + clickedItem, bool remove) + { + if (remove) + removeItem(clickedItem); + else + signalHistoryItemClicked(tools::PROTOCOL_DEFAULT + + clickedItem->websiteDomain, + clickedItem->websiteTitle); } -} -void HistoryDaysListManagerMob::removeItem( - WebsiteVisitItemDataPtrConst websiteVisitItemData) -{ - if (!websiteVisitItemData) { - BROWSER_LOGE("%s remove error", __PRETTY_FUNCTION__); - return; + void HistoryDaysListManagerMob:: + onWebsiteHistoryItemVisitItemClicked(const WebsiteVisitItemDataPtrConst + clickedItem, bool remove) + { + if (remove) { + removeItem(clickedItem); + signalDeleteHistoryItems(std::make_shared < std::vector < + int >>(std::initializer_list < int > + { + clickedItem->historyItem->getId()})); + } else { + signalHistoryItemClicked(clickedItem->historyItem->getUrl(), + clickedItem->historyItem->getTitle()); + } } - for (auto& dayItem : m_dayItems) { - if (dayItem->getItem(websiteVisitItemData)) { - dayItem->removeItem(websiteVisitItemData); - return; - } + + void HistoryDaysListManagerMob:: + removeItem(HistoryDayItemDataPtrConst historyDayItemData) + { + if (!historyDayItemData) { + BROWSER_LOGE("%s remove error", __PRETTY_FUNCTION__); + return; + } + auto item = getItem(historyDayItemData); + if (!item) + return; + // remove day item from vector, destructor will clear efl objects + remove(item); + elm_box_unpack(m_boxDays, item->getLayoutMain()); + showNoHistoryMessage(isHistoryDayListEmpty()); } -} -void HistoryDaysListManagerMob::remove(HistoryDayItemMobPtr historyDayItem) -{ - for (auto it = m_dayItems.begin(); it != m_dayItems.end();) { - if ((*it) == historyDayItem) { - m_dayItems.erase(it); - return; - } else { - ++it; - } + void HistoryDaysListManagerMob:: + removeItem(WebsiteHistoryItemDataPtrConst websiteHistoryItemData) + { + if (!websiteHistoryItemData) { + BROWSER_LOGE("%s remove error", __PRETTY_FUNCTION__); + return; + } + for (auto & dayItem:m_dayItems) { + auto websiteHistoryItem = dayItem->getItem(websiteHistoryItemData); + if (websiteHistoryItem) { + signalDeleteHistoryItems(websiteHistoryItem->getVisitItemsIds()); + dayItem->removeItem(websiteHistoryItemData); + return; + } + } + } + + void HistoryDaysListManagerMob:: + removeItem(WebsiteVisitItemDataPtrConst websiteVisitItemData) + { + if (!websiteVisitItemData) { + BROWSER_LOGE("%s remove error", __PRETTY_FUNCTION__); + return; + } + for (auto & dayItem:m_dayItems) { + if (dayItem->getItem(websiteVisitItemData)) { + dayItem->removeItem(websiteVisitItemData); + return; + } + } + } + + void HistoryDaysListManagerMob:: + remove(HistoryDayItemMobPtr historyDayItem) + { + for (auto it = m_dayItems.begin(); it != m_dayItems.end();) { + if ((*it) == historyDayItem) { + m_dayItems.erase(it); + return; + } else { + ++it; + } + } } -} -} /* namespace base_ui */ -} /* namespace tizen_browser */ + } /* namespace base_ui */ +} /* namespace tizen_browser */ diff --git a/services/HistoryUI/HistoryDaysListManager/HistoryDaysListManagerMob.h b/services/HistoryUI/HistoryDaysListManager/HistoryDaysListManagerMob.h old mode 100644 new mode 100755 diff --git a/services/HistoryUI/HistoryDaysListManager/HistoryDaysListManagerTv.cpp b/services/HistoryUI/HistoryDaysListManager/HistoryDaysListManagerTv.cpp old mode 100644 new mode 100755 index cffa41d5..5f6d7254 --- a/services/HistoryUI/HistoryDaysListManager/HistoryDaysListManagerTv.cpp +++ b/services/HistoryUI/HistoryDaysListManager/HistoryDaysListManagerTv.cpp @@ -29,233 +29,255 @@ #include #include -namespace tizen_browser { -namespace base_ui { +namespace tizen_browser +{ + namespace base_ui + { -HistoryDaysListManagerTv::HistoryDaysListManagerTv(HistoryDeleteManagerPtrConst deleteManager) - : m_edjeFiles(std::make_shared()) + HistoryDaysListManagerTv:: + HistoryDaysListManagerTv(HistoryDeleteManagerPtrConst deleteManager) + :m_edjeFiles(std::make_shared < HistoryDaysListManagerEdje > ()) , m_scrollerDaysColumns(nullptr) , m_layoutScrollerDaysColumns(nullptr) , m_boxDaysColumns(nullptr) , m_historyDeleteManager(deleteManager) -{ - connectSignals(); -} - -HistoryDaysListManagerTv::~HistoryDaysListManagerTv() -{ - for (auto& dayItem : m_dayItems) - dayItem->setEflObjectsAsDeleted(); -} - -Evas_Object* HistoryDaysListManagerTv::createDaysList(Evas_Object* parent) -{ - m_scrollerDaysColumns = elm_scroller_add(parent); - elm_scroller_bounce_set(m_scrollerDaysColumns, EINA_FALSE, EINA_FALSE); - tools::EflTools::setExpandHints(m_scrollerDaysColumns); - elm_scroller_policy_set(m_scrollerDaysColumns, ELM_SCROLLER_POLICY_OFF, - ELM_SCROLLER_POLICY_OFF); - elm_scroller_movement_block_set(m_scrollerDaysColumns, - ELM_SCROLLER_MOVEMENT_BLOCK_VERTICAL); + { + connectSignals(); + } - m_layoutScrollerDaysColumns = elm_layout_add(parent); - tools::EflTools::setExpandHints(m_layoutScrollerDaysColumns); - elm_layout_file_set(m_layoutScrollerDaysColumns, - m_edjeFiles->historyDaysList.c_str(), "historyDaysList"); + HistoryDaysListManagerTv::~HistoryDaysListManagerTv() + { + for (auto & dayItem:m_dayItems) + dayItem->setEflObjectsAsDeleted(); + } - elm_object_content_set(m_scrollerDaysColumns, m_layoutScrollerDaysColumns); + Evas_Object *HistoryDaysListManagerTv::createDaysList(Evas_Object * + parent) + { + m_scrollerDaysColumns = elm_scroller_add(parent); + elm_scroller_bounce_set(m_scrollerDaysColumns, EINA_FALSE, EINA_FALSE); + tools::EflTools::setExpandHints(m_scrollerDaysColumns); + elm_scroller_policy_set(m_scrollerDaysColumns, ELM_SCROLLER_POLICY_OFF, + ELM_SCROLLER_POLICY_OFF); + elm_scroller_movement_block_set(m_scrollerDaysColumns, + ELM_SCROLLER_MOVEMENT_BLOCK_VERTICAL); - m_boxDaysColumns = elm_box_add(parent); - tools::EflTools::setExpandHints(m_boxDaysColumns); - elm_box_horizontal_set(m_boxDaysColumns, EINA_TRUE); - elm_object_part_content_set(m_layoutScrollerDaysColumns, "daysColumns", - m_boxDaysColumns); - elm_box_padding_set(m_boxDaysColumns, 65, 0.0); + m_layoutScrollerDaysColumns = elm_layout_add(parent); + tools::EflTools::setExpandHints(m_layoutScrollerDaysColumns); + elm_layout_file_set(m_layoutScrollerDaysColumns, + m_edjeFiles->historyDaysList.c_str(), + "historyDaysList"); - return m_scrollerDaysColumns; -} + elm_object_content_set(m_scrollerDaysColumns, + m_layoutScrollerDaysColumns); -void HistoryDaysListManagerTv::connectSignals() -{ - HistoryDayItemTv::signaButtonClicked.connect( - boost::bind(&HistoryDaysListManagerTv::onHistoryDayItemClicked, - this, _1)); - WebsiteHistoryItemTitleTv::signalButtonClicked.connect( - boost::bind(&HistoryDaysListManagerTv::onWebsiteHistoryItemClicked, - this, _1)); - WebsiteHistoryItemVisitItemsTv::signalButtonClicked.connect( - boost::bind( - &HistoryDaysListManagerTv::onWebsiteHistoryItemVisitItemClicked, - this, _1)); -} + m_boxDaysColumns = elm_box_add(parent); + tools::EflTools::setExpandHints(m_boxDaysColumns); + elm_box_horizontal_set(m_boxDaysColumns, EINA_TRUE); + elm_object_part_content_set(m_layoutScrollerDaysColumns, "daysColumns", + m_boxDaysColumns); + elm_box_padding_set(m_boxDaysColumns, 65, 0.0); -void HistoryDaysListManagerTv::addHistoryItems( - const std::map& items, - HistoryPeriod period) -{ - std::vector historyItems; - for (auto& itemPair : items) { - std::vector pageViewItems; - std::shared_ptr websiteFavicon = nullptr; - for (auto& hi : itemPair.second) { - pageViewItems.push_back( - std::make_shared(hi)); - if (!websiteFavicon && hi->getFavIcon()->getSize() > 0) - websiteFavicon = hi->getFavIcon(); - } - historyItems.push_back( - std::make_shared - (_("IDS_BR_BODY_TITLE"), itemPair.first, websiteFavicon, pageViewItems)); + return m_scrollerDaysColumns; } - HistoryDayItemDataPtr dayItem = std::make_shared < HistoryDayItemData - > (toString(period), historyItems); - appendDayItem(dayItem); -} -int HistoryDaysListManagerTv::getHistoryItemIndex(const HistoryDayItemTv* item) -{ - int index = 0; - for (auto& dayItem : m_dayItems) { - if (dayItem.get() == item) - return index; - index++; + void HistoryDaysListManagerTv::connectSignals() + { + HistoryDayItemTv::signaButtonClicked. + connect(boost:: + bind(&HistoryDaysListManagerTv::onHistoryDayItemClicked, this, + _1)); + WebsiteHistoryItemTitleTv::signalButtonClicked. + connect(boost:: + bind(&HistoryDaysListManagerTv::onWebsiteHistoryItemClicked, + this, _1)); + WebsiteHistoryItemVisitItemsTv::signalButtonClicked. + connect(boost:: + bind(&HistoryDaysListManagerTv:: + onWebsiteHistoryItemVisitItemClicked, this, _1)); } - return -1; -} -HistoryDayItemTvPtr HistoryDaysListManagerTv::getItem( - HistoryDayItemDataPtrConst historyDayItemData) -{ - for (auto& historyDayItem : m_dayItems) - if (historyDayItem->getData() == historyDayItemData) - return historyDayItem; - BROWSER_LOGE("%s no item", __PRETTY_FUNCTION__); - return nullptr; -} + void HistoryDaysListManagerTv::addHistoryItems(const std::map < + std::string, + services:: + HistoryItemVector > &items, + HistoryPeriod period) + { + std::vector < WebsiteHistoryItemDataPtr > historyItems; + for (auto & itemPair:items) { + std::vector < WebsiteVisitItemDataPtr > pageViewItems; + std::shared_ptr < tools::BrowserImage > websiteFavicon = nullptr; + for (auto & hi:itemPair.second) { + pageViewItems.push_back(std::make_shared < WebsiteVisitItemData > + (hi)); + if (!websiteFavicon && hi->getFavIcon()->getSize() > 0) + websiteFavicon = hi->getFavIcon(); + } + historyItems.push_back(std::make_shared < WebsiteHistoryItemData > + (_("IDS_BR_BODY_TITLE"), itemPair.first, + websiteFavicon, pageViewItems)); + } + HistoryDayItemDataPtr dayItem = std::make_shared < HistoryDayItemData + > (toString(period), historyItems); + appendDayItem(dayItem); + } -void HistoryDaysListManagerTv::clear() -{ - // clear days items main layouts - elm_box_clear(m_boxDaysColumns); - m_dayItems.clear(); -} + int HistoryDaysListManagerTv::getHistoryItemIndex(const HistoryDayItemTv * + item) + { + int index = 0; + for (auto & dayItem:m_dayItems) { + if (dayItem.get() == item) + return index; + index++; + } + return -1; + } -void HistoryDaysListManagerTv::appendDayItem(HistoryDayItemDataPtr dayItemData) -{ - auto item = std::make_shared(dayItemData, m_historyDeleteManager); - m_dayItems.push_back(item); - elm_box_pack_end(m_boxDaysColumns, item->init(m_boxDaysColumns, m_edjeFiles)); -} + HistoryDayItemTvPtr HistoryDaysListManagerTv:: + getItem(HistoryDayItemDataPtrConst historyDayItemData) + { + for (auto & historyDayItem:m_dayItems) + if (historyDayItem->getData() == historyDayItemData) + return historyDayItem; + BROWSER_LOGE("%s no item", __PRETTY_FUNCTION__); + return nullptr; + } -void HistoryDaysListManagerTv::setFocusChain(Evas_Object* obj) -{ - for (auto& dayItem : m_dayItems) - dayItem->setFocusChain(obj); -} + void HistoryDaysListManagerTv::clear() + { + // clear days items main layouts + elm_box_clear(m_boxDaysColumns); + m_dayItems.clear(); + } -void HistoryDaysListManagerTv::onHistoryDayItemFocused( - const HistoryDayItemTv* focusedItem) -{ - scrollToDayItem(focusedItem); -} + void HistoryDaysListManagerTv:: + appendDayItem(HistoryDayItemDataPtr dayItemData) + { + auto item = + std::make_shared < HistoryDayItemTv > (dayItemData, + m_historyDeleteManager); + m_dayItems.push_back(item); + elm_box_pack_end(m_boxDaysColumns, + item->init(m_boxDaysColumns, m_edjeFiles)); + } -void HistoryDaysListManagerTv::onHistoryDayItemClicked( - const HistoryDayItemDataPtrConst clickedItem) -{ - if (m_historyDeleteManager->getDeleteMode()) - removeItem(clickedItem); -} + void HistoryDaysListManagerTv::setFocusChain(Evas_Object * obj) + { + for (auto & dayItem:m_dayItems) + dayItem->setFocusChain(obj); + } -void HistoryDaysListManagerTv::onWebsiteHistoryItemClicked( - const WebsiteHistoryItemDataPtrConst clickedItem) -{ - if (m_historyDeleteManager->getDeleteMode()) - removeItem(clickedItem); - else - signalHistoryItemClicked( - tools::PROTOCOL_DEFAULT + clickedItem->websiteDomain, - clickedItem->websiteTitle); -} + void HistoryDaysListManagerTv:: + onHistoryDayItemFocused(const HistoryDayItemTv * focusedItem) + { + scrollToDayItem(focusedItem); + } -void HistoryDaysListManagerTv::removeItem( - HistoryDayItemDataPtrConst historyDayItemData) -{ - auto item = getItem(historyDayItemData); - if (!item) - return; - signalDeleteHistoryItems(item->getVisitItemsIds()); - // remove day item from vector, destructor will clear efl objects - remove(item); - elm_box_unpack(m_boxDaysColumns, item->getLayoutMain()); -} + void HistoryDaysListManagerTv:: + onHistoryDayItemClicked(const HistoryDayItemDataPtrConst clickedItem) + { + if (m_historyDeleteManager->getDeleteMode()) + removeItem(clickedItem); + } -void HistoryDaysListManagerTv::removeItem( - WebsiteHistoryItemDataPtrConst websiteHistoryItemData) -{ - if (!websiteHistoryItemData) { - BROWSER_LOGE("%s remove error", __PRETTY_FUNCTION__); - return; + void HistoryDaysListManagerTv:: + onWebsiteHistoryItemClicked(const WebsiteHistoryItemDataPtrConst + clickedItem) + { + if (m_historyDeleteManager->getDeleteMode()) + removeItem(clickedItem); + else + signalHistoryItemClicked(tools::PROTOCOL_DEFAULT + + clickedItem->websiteDomain, + clickedItem->websiteTitle); } - for (auto& dayItem : m_dayItems) { - auto websiteHistoryItem = dayItem->getItem(websiteHistoryItemData); - if (websiteHistoryItem) { - signalDeleteHistoryItems(websiteHistoryItem->getVisitItemsIds()); - dayItem->removeItem(websiteHistoryItemData); - return; - } + + void HistoryDaysListManagerTv:: + removeItem(HistoryDayItemDataPtrConst historyDayItemData) + { + auto item = getItem(historyDayItemData); + if (!item) + return; + signalDeleteHistoryItems(item->getVisitItemsIds()); + // remove day item from vector, destructor will clear efl objects + remove(item); + elm_box_unpack(m_boxDaysColumns, item->getLayoutMain()); } - BROWSER_LOGE("%s remove error", __PRETTY_FUNCTION__); -} -void HistoryDaysListManagerTv::removeItem( - WebsiteVisitItemDataPtrConst websiteVisitItemData) -{ - if (!websiteVisitItemData) { - BROWSER_LOGE("%s remove error", __PRETTY_FUNCTION__); - return; + void HistoryDaysListManagerTv:: + removeItem(WebsiteHistoryItemDataPtrConst websiteHistoryItemData) + { + if (!websiteHistoryItemData) { + BROWSER_LOGE("%s remove error", __PRETTY_FUNCTION__); + return; + } + for (auto & dayItem:m_dayItems) { + auto websiteHistoryItem = dayItem->getItem(websiteHistoryItemData); + if (websiteHistoryItem) { + signalDeleteHistoryItems(websiteHistoryItem->getVisitItemsIds()); + dayItem->removeItem(websiteHistoryItemData); + return; + } + } + BROWSER_LOGE("%s remove error", __PRETTY_FUNCTION__); } - for (auto& dayItem : m_dayItems) { - if (dayItem->getItem(websiteVisitItemData)) { - dayItem->removeItem(websiteVisitItemData); - return; - } + + void HistoryDaysListManagerTv:: + removeItem(WebsiteVisitItemDataPtrConst websiteVisitItemData) + { + if (!websiteVisitItemData) { + BROWSER_LOGE("%s remove error", __PRETTY_FUNCTION__); + return; + } + for (auto & dayItem:m_dayItems) { + if (dayItem->getItem(websiteVisitItemData)) { + dayItem->removeItem(websiteVisitItemData); + return; + } + } + BROWSER_LOGE("%s remove error", __PRETTY_FUNCTION__); } - BROWSER_LOGE("%s remove error", __PRETTY_FUNCTION__); -} -void HistoryDaysListManagerTv::onWebsiteHistoryItemVisitItemClicked( - const WebsiteVisitItemDataPtrConst clickedItem) -{ - if (m_historyDeleteManager->getDeleteMode()) { - removeItem(clickedItem); - signalDeleteHistoryItems( - std::make_shared>(std::initializer_list { - clickedItem->historyItem->getId() })); - } else { - signalHistoryItemClicked(clickedItem->historyItem->getUrl(), - clickedItem->historyItem->getTitle()); + void HistoryDaysListManagerTv:: + onWebsiteHistoryItemVisitItemClicked(const WebsiteVisitItemDataPtrConst + clickedItem) + { + if (m_historyDeleteManager->getDeleteMode()) { + removeItem(clickedItem); + signalDeleteHistoryItems(std::make_shared < std::vector < + int >>(std::initializer_list < int > + { + clickedItem->historyItem->getId()})); + } else { + signalHistoryItemClicked(clickedItem->historyItem->getUrl(), + clickedItem->historyItem->getTitle()); + } } -} -void HistoryDaysListManagerTv::remove(HistoryDayItemTvPtr historyDayItem) -{ - for (auto it = m_dayItems.begin(); it != m_dayItems.end();) { - if ((*it) == historyDayItem) { - m_dayItems.erase(it); - return; - } else - ++it; + void HistoryDaysListManagerTv::remove(HistoryDayItemTvPtr historyDayItem) + { + for (auto it = m_dayItems.begin(); it != m_dayItems.end();) { + if ((*it) == historyDayItem) { + m_dayItems.erase(it); + return; + } else { + ++it; + } + } } -} -void HistoryDaysListManagerTv::scrollToDayItem(const HistoryDayItemTv* item) -{ - int itemX, itemY, itemW, itemH; - itemX = itemY = itemW = itemH = 0; - evas_object_geometry_get(item->getLayoutMain(), &itemX, &itemY, &itemW, &itemH); - int index = getHistoryItemIndex(item); - elm_scroller_region_show(m_scrollerDaysColumns, index*itemW, 1, 2*itemW, 1); -} + void HistoryDaysListManagerTv::scrollToDayItem(const HistoryDayItemTv * + item) + { + int itemX, itemY, itemW, itemH; + itemX = itemY = itemW = itemH = 0; + evas_object_geometry_get(item->getLayoutMain(), &itemX, &itemY, &itemW, + &itemH); + int index = getHistoryItemIndex(item); + elm_scroller_region_show(m_scrollerDaysColumns, index * itemW, 1, + 2 * itemW, 1); + } -} + } } diff --git a/services/HistoryUI/HistoryDaysListManager/HistoryDaysListManagerTv.h b/services/HistoryUI/HistoryDaysListManager/HistoryDaysListManagerTv.h old mode 100644 new mode 100755 diff --git a/services/HistoryUI/HistoryDaysListManager/mob/HistoryDayItemMob.cpp b/services/HistoryUI/HistoryDaysListManager/mob/HistoryDayItemMob.cpp old mode 100644 new mode 100755 index 32b3c7d9..2ce286bf --- a/services/HistoryUI/HistoryDaysListManager/mob/HistoryDayItemMob.cpp +++ b/services/HistoryUI/HistoryDaysListManager/mob/HistoryDayItemMob.cpp @@ -154,8 +154,9 @@ void HistoryDayItemMob::remove(WebsiteHistoryItemMobPtr websiteHistoryItem) if ((*it) == websiteHistoryItem) { m_websiteHistoryItems.erase(it); return; - } else + } else { ++it; + } } } diff --git a/services/HistoryUI/HistoryDaysListManager/mob/HistoryDayItemMob.h b/services/HistoryUI/HistoryDaysListManager/mob/HistoryDayItemMob.h old mode 100644 new mode 100755 diff --git a/services/HistoryUI/HistoryDaysListManager/mob/WebsiteHistoryItem/WebsiteHistoryItemMob.cpp b/services/HistoryUI/HistoryDaysListManager/mob/WebsiteHistoryItem/WebsiteHistoryItemMob.cpp old mode 100644 new mode 100755 diff --git a/services/HistoryUI/HistoryDaysListManager/mob/WebsiteHistoryItem/WebsiteHistoryItemMob.h b/services/HistoryUI/HistoryDaysListManager/mob/WebsiteHistoryItem/WebsiteHistoryItemMob.h old mode 100644 new mode 100755 diff --git a/services/HistoryUI/HistoryDaysListManager/mob/WebsiteHistoryItem/WebsiteHistoryItemTitleMob.cpp b/services/HistoryUI/HistoryDaysListManager/mob/WebsiteHistoryItem/WebsiteHistoryItemTitleMob.cpp old mode 100644 new mode 100755 diff --git a/services/HistoryUI/HistoryDaysListManager/mob/WebsiteHistoryItem/WebsiteHistoryItemTitleMob.h b/services/HistoryUI/HistoryDaysListManager/mob/WebsiteHistoryItem/WebsiteHistoryItemTitleMob.h old mode 100644 new mode 100755 diff --git a/services/HistoryUI/HistoryDaysListManager/mob/WebsiteHistoryItem/WebsiteHistoryItemVisitItemsMob.cpp b/services/HistoryUI/HistoryDaysListManager/mob/WebsiteHistoryItem/WebsiteHistoryItemVisitItemsMob.cpp index 0c8d803e..c1347d61 100755 --- a/services/HistoryUI/HistoryDaysListManager/mob/WebsiteHistoryItem/WebsiteHistoryItemVisitItemsMob.cpp +++ b/services/HistoryUI/HistoryDaysListManager/mob/WebsiteHistoryItem/WebsiteHistoryItemVisitItemsMob.cpp @@ -108,9 +108,9 @@ WebsiteHistoryItemVisitItemsMob::createLayoutVisitItem( ret.layout = layout; ret.buttonSelect = elm_object_part_content_get(layoutContent, "buttonSelect"); ret.layerGesture = layerGesture; - ret.boxMain= boxMain; + ret.boxMain = boxMain; ret.layoutButtonDelete = layoutButtonDelete; - ret.buttonDelete= elm_object_part_content_get(layoutButtonDelete, "buttonSelect"); + ret.buttonDelete = elm_object_part_content_get(layoutButtonDelete, "buttonSelect"); ret.clickBlocked = false; return ret; } @@ -134,11 +134,11 @@ Evas_Object* WebsiteHistoryItemVisitItemsMob::createLayoutContent(Evas_Object* p char buffer[80]; struct tm ts_ret; - if(localtime_r(&rawtime, &ts_ret)==NULL){ + if (localtime_r(&rawtime, &ts_ret) == NULL) { BROWSER_LOGE("[%s:%d] Warning: Unhandled localtime_r", __PRETTY_FUNCTION__, __LINE__); return nullptr; } - std::strftime(buffer,80,"%R",&ts_ret); + std::strftime(buffer, 80, "%R", &ts_ret); elm_object_part_text_set(layoutContent, "textTime", buffer); diff --git a/services/HistoryUI/HistoryDaysListManager/mob/WebsiteHistoryItem/WebsiteHistoryItemVisitItemsMob.h b/services/HistoryUI/HistoryDaysListManager/mob/WebsiteHistoryItem/WebsiteHistoryItemVisitItemsMob.h old mode 100644 new mode 100755 diff --git a/services/HistoryUI/HistoryDaysListManager/tv/HistoryDayItemTv.cpp b/services/HistoryUI/HistoryDaysListManager/tv/HistoryDayItemTv.cpp old mode 100644 new mode 100755 index a43d8bea..ef8bcd27 --- a/services/HistoryUI/HistoryDaysListManager/tv/HistoryDayItemTv.cpp +++ b/services/HistoryUI/HistoryDaysListManager/tv/HistoryDayItemTv.cpp @@ -44,7 +44,7 @@ HistoryDayItemTv::HistoryDayItemTv(HistoryDayItemDataPtr dayItemData, , m_boxWebsites(nullptr) , m_historyDeleteManager(deleteManager) { - for(auto& websiteHistoryItemData : dayItemData->websiteHistoryItems) { + for (auto& websiteHistoryItemData : dayItemData->websiteHistoryItems) { auto websiteHistoryItem = std::make_shared( websiteHistoryItemData, m_historyDeleteManager); m_websiteHistoryItems.push_back(websiteHistoryItem); @@ -126,7 +126,7 @@ void HistoryDayItemTv::setFocusChain(Evas_Object* obj) elm_object_focus_allow_set(m_buttonSelect, EINA_TRUE); elm_object_focus_custom_chain_append(obj, m_buttonSelect, NULL); - for(auto& websiteHistoryItem : m_websiteHistoryItems) { + for (auto& websiteHistoryItem : m_websiteHistoryItems) { websiteHistoryItem->setFocusChain(obj); } } @@ -276,8 +276,9 @@ void HistoryDayItemTv::remove(WebsiteHistoryItemTvPtr websiteHistoryItem) if ((*it) == websiteHistoryItem) { m_websiteHistoryItems.erase(it); return; - } else + } else { ++it; + } } } diff --git a/services/HistoryUI/HistoryDaysListManager/tv/HistoryDayItemTv.h b/services/HistoryUI/HistoryDaysListManager/tv/HistoryDayItemTv.h old mode 100644 new mode 100755 diff --git a/services/HistoryUI/HistoryDaysListManager/tv/WebsiteHistoryItem/WebsiteHistoryItemTitleTv.cpp b/services/HistoryUI/HistoryDaysListManager/tv/WebsiteHistoryItem/WebsiteHistoryItemTitleTv.cpp old mode 100644 new mode 100755 diff --git a/services/HistoryUI/HistoryDaysListManager/tv/WebsiteHistoryItem/WebsiteHistoryItemTitleTv.h b/services/HistoryUI/HistoryDaysListManager/tv/WebsiteHistoryItem/WebsiteHistoryItemTitleTv.h old mode 100644 new mode 100755 diff --git a/services/HistoryUI/HistoryDaysListManager/tv/WebsiteHistoryItem/WebsiteHistoryItemTv.cpp b/services/HistoryUI/HistoryDaysListManager/tv/WebsiteHistoryItem/WebsiteHistoryItemTv.cpp old mode 100644 new mode 100755 diff --git a/services/HistoryUI/HistoryDaysListManager/tv/WebsiteHistoryItem/WebsiteHistoryItemTv.h b/services/HistoryUI/HistoryDaysListManager/tv/WebsiteHistoryItem/WebsiteHistoryItemTv.h old mode 100644 new mode 100755 diff --git a/services/HistoryUI/HistoryDaysListManager/tv/WebsiteHistoryItem/WebsiteHistoryItemVisitItemsTv.cpp b/services/HistoryUI/HistoryDaysListManager/tv/WebsiteHistoryItem/WebsiteHistoryItemVisitItemsTv.cpp index d9bba0b2..3396333e 100755 --- a/services/HistoryUI/HistoryDaysListManager/tv/WebsiteHistoryItem/WebsiteHistoryItemVisitItemsTv.cpp +++ b/services/HistoryUI/HistoryDaysListManager/tv/WebsiteHistoryItem/WebsiteHistoryItemVisitItemsTv.cpp @@ -152,11 +152,11 @@ Evas_Object* WebsiteHistoryItemVisitItemsTv::createLayoutVisitItemDate( char buffer[80]; struct tm ts_ret; - if(localtime_r(&rawtime, &ts_ret)==NULL){ + if (localtime_r(&rawtime, &ts_ret) == NULL){ BROWSER_LOGD("[%s:%d] Warning: Unhandled localtime_r", __PRETTY_FUNCTION__, __LINE__); return nullptr; } - std::strftime(buffer,80,"%R",&ts_ret); + std::strftime(buffer, 80, "%R", &ts_ret); elm_object_text_set(layoutDate, buffer); return layoutDate; @@ -202,7 +202,7 @@ void WebsiteHistoryItemVisitItemsTv::_buttonSelectClicked(void* data, if (!data) return; VisitItemObjects* visitItemObject = static_cast(data); - signalButtonClicked((*visitItemObject).websiteVisitItemData ); + signalButtonClicked((*visitItemObject).websiteVisitItemData); } void WebsiteHistoryItemVisitItemsTv::_buttonSelectFocused(void* data, diff --git a/services/HistoryUI/HistoryDaysListManager/tv/WebsiteHistoryItem/WebsiteHistoryItemVisitItemsTv.h b/services/HistoryUI/HistoryDaysListManager/tv/WebsiteHistoryItem/WebsiteHistoryItemVisitItemsTv.h old mode 100644 new mode 100755 diff --git a/services/HistoryUI/HistoryDeleteManager.h b/services/HistoryUI/HistoryDeleteManager.h old mode 100644 new mode 100755 diff --git a/services/HistoryUI/HistoryPeriod.cpp b/services/HistoryUI/HistoryPeriod.cpp old mode 100644 new mode 100755 diff --git a/services/HistoryUI/HistoryPeriod.h b/services/HistoryUI/HistoryPeriod.h old mode 100644 new mode 100755 diff --git a/services/HistoryUI/HistoryUI.cpp b/services/HistoryUI/HistoryUI.cpp old mode 100644 new mode 100755 index ee8b226a..65b6e73d --- a/services/HistoryUI/HistoryUI.cpp +++ b/services/HistoryUI/HistoryUI.cpp @@ -34,205 +34,230 @@ #endif #include "HistoryDeleteManager.h" -namespace tizen_browser{ -namespace base_ui{ +namespace tizen_browser +{ + namespace base_ui + { -EXPORT_SERVICE(HistoryUI, "org.tizen.browser.historyui") + EXPORT_SERVICE(HistoryUI, "org.tizen.browser.historyui") -typedef struct _HistoryItemData -{ - std::shared_ptr item; - std::shared_ptr historyUI; -} HistoryItemData; + typedef struct _HistoryItemData + { + std::shared_ptr < tizen_browser::services::HistoryItem > item; + std::shared_ptr < tizen_browser::base_ui::HistoryUI > historyUI; + } HistoryItemData; -struct ItemData{ - tizen_browser::base_ui::HistoryUI* historyUI; - Elm_Object_Item * e_item; -}; + struct ItemData + { + tizen_browser::base_ui::HistoryUI * historyUI; + Elm_Object_Item *e_item; + }; -static std::vector _history_item_data; + static std::vector < HistoryItemData * >_history_item_data; -HistoryUI::HistoryUI() + HistoryUI::HistoryUI() : m_parent(nullptr) - , m_main_layout(nullptr) - , m_actionBar(nullptr) - , m_buttonClose(nullptr) - , m_buttonClear(nullptr) - , m_daysList(nullptr) - , m_historyDeleteManager(std::make_shared()) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - m_edjFilePath = EDJE_DIR; - m_edjFilePath.append("HistoryUI/History.edj"); + , m_main_layout(nullptr) + , m_actionBar(nullptr) + , m_buttonClose(nullptr) + , m_buttonClear(nullptr) + , m_daysList(nullptr) + , m_historyDeleteManager(std::make_shared < HistoryDeleteManager > ()) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + m_edjFilePath = EDJE_DIR; + m_edjFilePath.append("HistoryUI/History.edj"); #if PROFILE_MOBILE - m_historyDaysListManager = std::make_shared(); + m_historyDaysListManager = + std::make_shared < HistoryDaysListManagerMob > (); #else - m_historyDaysListManager = std::make_shared(m_historyDeleteManager); + m_historyDaysListManager = + std::make_shared < HistoryDaysListManagerTv > + (m_historyDeleteManager); #endif - m_historyDaysListManager->signalHistoryItemClicked.connect(signalHistoryItemClicked); - m_historyDaysListManager->signalDeleteHistoryItems.connect(signalDeleteHistoryItems); + m_historyDaysListManager->signalHistoryItemClicked. + connect(signalHistoryItemClicked); + m_historyDaysListManager->signalDeleteHistoryItems. + connect(signalDeleteHistoryItems); #if !PROFILE_MOBILE - m_focusManager = std::unique_ptr( - new HistoryUIFocusManager(m_historyDaysListManager)); + m_focusManager = + std::unique_ptr < HistoryUIFocusManager > + (new HistoryUIFocusManager(m_historyDaysListManager)); #endif -} + } -HistoryUI::~HistoryUI() -{ -} + HistoryUI::~HistoryUI() + { + } -void HistoryUI::showUI() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - M_ASSERT(m_main_layout); - evas_object_show(m_actionBar); - evas_object_show(m_main_layout); + void HistoryUI::showUI() + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + M_ASSERT(m_main_layout); + evas_object_show(m_actionBar); + evas_object_show(m_main_layout); #if !PROFILE_MOBILE - m_focusManager->refreshFocusChain(); + m_focusManager->refreshFocusChain(); #endif -} + } -void HistoryUI::hideUI() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - M_ASSERT(m_main_layout); - evas_object_hide(m_actionBar); - evas_object_hide(m_main_layout); - clearItems(); + void HistoryUI::hideUI() + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + M_ASSERT(m_main_layout); + evas_object_hide(m_actionBar); + evas_object_hide(m_main_layout); + clearItems(); #if !PROFILE_MOBILE - m_focusManager->unsetFocusChain(); + m_focusManager->unsetFocusChain(); #endif - m_historyDeleteManager->setDeleteMode(false); -} - - -void HistoryUI::init(Evas_Object* parent) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - M_ASSERT(parent); - m_parent = parent; -} + m_historyDeleteManager->setDeleteMode(false); + } -Evas_Object* HistoryUI::getContent() -{ - M_ASSERT(m_parent); - if (!m_main_layout) - createHistoryUILayout(m_parent); - return m_main_layout; -} -void HistoryUI::createHistoryUILayout(Evas_Object* parent) -{ - elm_theme_extension_add(nullptr, m_edjFilePath.c_str()); - m_main_layout = elm_layout_add(parent); + void HistoryUI::init(Evas_Object * parent) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + M_ASSERT(parent); + m_parent = parent; + } - elm_layout_file_set(m_main_layout, m_edjFilePath.c_str(), "history-layout"); - evas_object_size_hint_weight_set(m_main_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(m_main_layout, EVAS_HINT_FILL, EVAS_HINT_FILL); + Evas_Object *HistoryUI::getContent() + { + M_ASSERT(m_parent); + if (!m_main_layout) + createHistoryUILayout(m_parent); + return m_main_layout; + } - m_actionBar = createActionBar(m_main_layout); - m_daysList = createDaysList(m_main_layout); - clearItems(); + void HistoryUI::createHistoryUILayout(Evas_Object * parent) + { + elm_theme_extension_add(nullptr, m_edjFilePath.c_str()); + m_main_layout = elm_layout_add(parent); + + elm_layout_file_set(m_main_layout, m_edjFilePath.c_str(), + "history-layout"); + evas_object_size_hint_weight_set(m_main_layout, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(m_main_layout, EVAS_HINT_FILL, + EVAS_HINT_FILL); + + m_actionBar = createActionBar(m_main_layout); + m_daysList = createDaysList(m_main_layout); + clearItems(); #if !PROFILE_MOBILE - m_focusManager->setFocusObj(m_main_layout); + m_focusManager->setFocusObj(m_main_layout); #endif -} + } -std::map -HistoryUI::groupItemsByDomain(const services::HistoryItemVector& historyItems) { - std::map groupedMap; - for(auto& item : historyItems) { - std::string domain = tools::extractDomain(item->getUrl()); - if(groupedMap.find(domain) == groupedMap.end()) { - groupedMap.insert(std::pair(domain, {})); - } - groupedMap.find(domain)->second.push_back(item); + std::map < std::string, services::HistoryItemVector > + HistoryUI::groupItemsByDomain(const services:: + HistoryItemVector & historyItems) + { + std::map < std::string, services::HistoryItemVector > groupedMap; + for (auto & item:historyItems) { + std::string domain = tools::extractDomain(item->getUrl()); + if (groupedMap.find(domain) == groupedMap.end()) { + groupedMap.insert(std::pair < std::string, + services::HistoryItemVector > (domain, { + })); + } + groupedMap.find(domain)->second.push_back(item); + } + return groupedMap; } - return groupedMap; -} -Evas_Object *HistoryUI::createDaysList(Evas_Object *history_layout) -{ - M_ASSERT(history_layout); + Evas_Object *HistoryUI::createDaysList(Evas_Object * history_layout) + { + M_ASSERT(history_layout); - Evas_Object* list = m_historyDaysListManager->createDaysList( - history_layout); + Evas_Object *list = + m_historyDaysListManager->createDaysList(history_layout); - elm_object_part_content_set(history_layout, "history_list", list); + elm_object_part_content_set(history_layout, "history_list", list); - evas_object_size_hint_weight_set(list, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(list, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_size_hint_weight_set(list, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(list, EVAS_HINT_FILL, EVAS_HINT_FILL); - return list; -} + return list; + } -Evas_Object* HistoryUI::createActionBar(Evas_Object* history_layout) -{ - Evas_Object* actionBar = elm_layout_add(history_layout); - elm_object_part_content_set(history_layout, "action_bar_history", actionBar); - evas_object_size_hint_weight_set(actionBar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(actionBar, EVAS_HINT_FILL, EVAS_HINT_FILL); - - elm_layout_file_set(actionBar, m_edjFilePath.c_str(), "action_bar"); - - m_buttonClear = elm_button_add(actionBar); - elm_object_style_set(m_buttonClear, "history_button"); - evas_object_smart_callback_add(m_buttonClear, "clicked", HistoryUI::_clearHistory_clicked, this); - elm_object_part_content_set(actionBar, "clearhistory_click", m_buttonClear); - - m_buttonClose = elm_button_add(actionBar); - elm_object_style_set(m_buttonClose, "close_history_button"); - evas_object_smart_callback_add(m_buttonClose, "clicked", HistoryUI::_close_clicked_cb, this); - elm_object_part_content_set(actionBar, "close_click", m_buttonClose); + Evas_Object *HistoryUI::createActionBar(Evas_Object * history_layout) + { + Evas_Object *actionBar = elm_layout_add(history_layout); + elm_object_part_content_set(history_layout, "action_bar_history", + actionBar); + evas_object_size_hint_weight_set(actionBar, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(actionBar, EVAS_HINT_FILL, + EVAS_HINT_FILL); + + elm_layout_file_set(actionBar, m_edjFilePath.c_str(), "action_bar"); + + m_buttonClear = elm_button_add(actionBar); + elm_object_style_set(m_buttonClear, "history_button"); + evas_object_smart_callback_add(m_buttonClear, "clicked", + HistoryUI::_clearHistory_clicked, this); + elm_object_part_content_set(actionBar, "clearhistory_click", + m_buttonClear); + + m_buttonClose = elm_button_add(actionBar); + elm_object_style_set(m_buttonClose, "close_history_button"); + evas_object_smart_callback_add(m_buttonClose, "clicked", + HistoryUI::_close_clicked_cb, this); + elm_object_part_content_set(actionBar, "close_click", m_buttonClose); #if !PROFILE_MOBILE - m_focusManager->setHistoryUIButtons(m_buttonClose, m_buttonClear); + m_focusManager->setHistoryUIButtons(m_buttonClose, m_buttonClear); #endif - return actionBar; -} + return actionBar; + } -void HistoryUI::_close_clicked_cb(void * data, Evas_Object*, void*) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (data) { - HistoryUI *historyUI = static_cast(data); - historyUI->closeHistoryUIClicked(); + void HistoryUI::_close_clicked_cb(void *data, Evas_Object *, void *) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + if (data) { + HistoryUI *historyUI = static_cast < HistoryUI * >(data); + historyUI->closeHistoryUIClicked(); + } } -} -void HistoryUI::_clearHistory_clicked(void* data, Evas_Object*, void*) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (!data) return; - HistoryUI *historyUI = static_cast(data); + void HistoryUI::_clearHistory_clicked(void *data, Evas_Object *, void *) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + if (!data) + return; + HistoryUI *historyUI = static_cast < HistoryUI * >(data); #if PROFILE_MOBILE - historyUI->clearItems(); - historyUI->clearHistoryClicked(); + historyUI->clearItems(); + historyUI->clearHistoryClicked(); #else - historyUI->getHistoryDeleteManager()->toggleDeleteMode(); + historyUI->getHistoryDeleteManager()->toggleDeleteMode(); #endif + } -} - -void HistoryUI::addHistoryItems(std::shared_ptr items, - HistoryPeriod period) -{ - if(items->size() == 0) return; - auto grouped = groupItemsByDomain(*items); - m_historyDaysListManager->addHistoryItems(grouped, period); -} + void HistoryUI::addHistoryItems(std::shared_ptr < + services::HistoryItemVector > items, + HistoryPeriod period) + { + if (items->size() == 0) + return; + auto grouped = groupItemsByDomain(*items); + m_historyDaysListManager->addHistoryItems(grouped, period); + } -void HistoryUI::removeHistoryItem(const std::string& uri) -{ - BROWSER_LOGD("[%s] uri=%s", __func__, uri.c_str()); -} + void HistoryUI::removeHistoryItem(const std::string & uri) + { + BROWSER_LOGD("[%s] uri=%s", __func__, uri.c_str()); + } -void HistoryUI::clearItems() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - m_historyDaysListManager->clear(); -} + void HistoryUI::clearItems() + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + m_historyDaysListManager->clear(); + } -} + } } diff --git a/services/HistoryUI/HistoryUI.h b/services/HistoryUI/HistoryUI.h index 6d086444..9ff17b72 100755 --- a/services/HistoryUI/HistoryUI.h +++ b/services/HistoryUI/HistoryUI.h @@ -58,10 +58,10 @@ public: void removeHistoryItem(const std::string& uri); Evas_Object* createActionBar(Evas_Object* history_layout); void addItems(); - boost::signals2::signal closeHistoryUIClicked; - boost::signals2::signal clearHistoryClicked; - boost::signals2::signal> itemIds)> signalDeleteHistoryItems; - boost::signals2::signal signalHistoryItemClicked; + boost::signals2::signal closeHistoryUIClicked; + boost::signals2::signal clearHistoryClicked; + boost::signals2::signal> itemIds)> signalDeleteHistoryItems; + boost::signals2::signal signalHistoryItemClicked; private: void clearItems(); void createHistoryUILayout(Evas_Object* parent); @@ -92,7 +92,6 @@ private: HistoryUIFocusManagerPtrUnique m_focusManager; #endif HistoryDeleteManagerPtr m_historyDeleteManager; - }; } diff --git a/services/HistoryUI/HistoryUIFocusManager.cpp b/services/HistoryUI/HistoryUIFocusManager.cpp old mode 100644 new mode 100755 diff --git a/services/HistoryUI/HistoryUIFocusManager.h b/services/HistoryUI/HistoryUIFocusManager.h old mode 100644 new mode 100755 diff --git a/services/MoreMenuUI/MoreMenuUI.cpp b/services/MoreMenuUI/MoreMenuUI.cpp index d58ea1dc..6269f1f9 100755 --- a/services/MoreMenuUI/MoreMenuUI.cpp +++ b/services/MoreMenuUI/MoreMenuUI.cpp @@ -25,752 +25,856 @@ #include "BrowserLogger.h" #include "BrowserImage.h" -namespace tizen_browser{ -namespace base_ui{ +namespace tizen_browser +{ + namespace base_ui + { -EXPORT_SERVICE(MoreMenuUI, "org.tizen.browser.moremenuui") + EXPORT_SERVICE(MoreMenuUI, "org.tizen.browser.moremenuui") -struct ItemData{ - tizen_browser::base_ui::MoreMenuUI * m_moreMenu; - std::shared_ptr h_item; - Elm_Object_Item * e_item; + struct ItemData + { + tizen_browser::base_ui::MoreMenuUI * m_moreMenu; + std::shared_ptr < tizen_browser::services::HistoryItem > h_item; + Elm_Object_Item *e_item; }; -typedef struct _MoreItemData -{ - ItemType item; - std::shared_ptr moreMenuUI; -} MoreMenuItemData; + typedef struct _MoreItemData + { + ItemType item; + std::shared_ptr < tizen_browser::base_ui::MoreMenuUI > moreMenuUI; + } MoreMenuItemData; -MoreMenuUI::MoreMenuUI() + MoreMenuUI::MoreMenuUI() : m_current_tab_bar(nullptr) - , m_mm_layout(nullptr) - , m_gengrid(nullptr) - , m_parent(nullptr) - , m_toastPopup(nullptr) - , m_icon(nullptr) - , m_bookmarkIcon(nullptr) - , m_item_class(nullptr) - , m_desktopMode(true) + , m_mm_layout(nullptr) + , m_gengrid(nullptr) + , m_parent(nullptr) + , m_toastPopup(nullptr) + , m_icon(nullptr) + , m_bookmarkIcon(nullptr) + , m_item_class(nullptr) + , m_desktopMode(true) #if PROFILE_MOBILE - , m_shouldShowFindOnPage(false) - , m_blockThumbnails(false) + , m_shouldShowFindOnPage(false) + , m_blockThumbnails(false) #endif - , m_isVisible(false) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - m_edjFilePath = EDJE_DIR; - m_edjFilePath.append("MoreMenuUI/MoreMenu.edj"); - m_item_class = createItemClass(); -} + , m_isVisible(false) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + m_edjFilePath = EDJE_DIR; + m_edjFilePath.append("MoreMenuUI/MoreMenu.edj"); + m_item_class = createItemClass(); + } -MoreMenuUI::~MoreMenuUI() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (m_item_class) - elm_gengrid_item_class_free(m_item_class); - evas_object_del(m_gengrid); -} + MoreMenuUI::~MoreMenuUI() + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + if (m_item_class) + elm_gengrid_item_class_free(m_item_class); + evas_object_del(m_gengrid); + } -Elm_Gengrid_Item_Class* MoreMenuUI::createItemClass() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - Elm_Gengrid_Item_Class* item_class = elm_gengrid_item_class_new(); - item_class->item_style = "menu_item"; - item_class->func.text_get = _grid_text_get; - item_class->func.content_get = _grid_content_get; - item_class->func.state_get = NULL; - item_class->func.del = NULL; - return item_class; -} + Elm_Gengrid_Item_Class *MoreMenuUI::createItemClass() + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + Elm_Gengrid_Item_Class *item_class = elm_gengrid_item_class_new(); + item_class->item_style = "menu_item"; + item_class->func.text_get = _grid_text_get; + item_class->func.content_get = _grid_content_get; + item_class->func.state_get = NULL; + item_class->func.del = NULL; + return item_class; + } -void MoreMenuUI::init(Evas_Object* parent) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - M_ASSERT(parent); - m_parent = parent; -} + void MoreMenuUI::init(Evas_Object * parent) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + M_ASSERT(parent); + m_parent = parent; + } #if PROFILE_MOBILE -void MoreMenuUI::updateBookmarkButton() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - elm_gengrid_item_update(m_map_menu_views[ADD_TO_BOOKMARK]); -} + void MoreMenuUI::updateBookmarkButton() + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + elm_gengrid_item_update(m_map_menu_views[ADD_TO_BOOKMARK]); + } #endif -void MoreMenuUI::showUI() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (!m_mm_layout) - createMoreMenuLayout(); - createGengrid(); // recreate gengrid because icons could have changed - addItems(); + void MoreMenuUI::showUI() + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + if (!m_mm_layout) + createMoreMenuLayout(); + createGengrid(); // recreate gengrid because icons could have changed + addItems(); #if !PROFILE_MOBILE - m_focusManager.startFocusManager(m_gengrid); - setFocus(EINA_TRUE); + m_focusManager.startFocusManager(m_gengrid); + setFocus(EINA_TRUE); #endif - evas_object_show(m_mm_layout); - evas_object_show(elm_object_part_content_get(m_mm_layout,"current_tab_bar")); + evas_object_show(m_mm_layout); + evas_object_show(elm_object_part_content_get + (m_mm_layout, "current_tab_bar")); #if PROFILE_MOBILE - resetContent(); + resetContent(); #endif - m_isVisible = true; -} + m_isVisible = true; + } -void MoreMenuUI::hideUI() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - M_ASSERT(m_mm_layout); + void MoreMenuUI::hideUI() + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + M_ASSERT(m_mm_layout); - evas_object_hide(m_mm_layout); - evas_object_hide(elm_object_part_content_get(m_mm_layout,"current_tab_bar")); - clearItems(); - evas_object_del(m_gengrid); + evas_object_hide(m_mm_layout); + evas_object_hide(elm_object_part_content_get + (m_mm_layout, "current_tab_bar")); + clearItems(); + evas_object_del(m_gengrid); #if PROFILE_MOBILE - elm_object_signal_emit(m_parent, "hide_moremenu", "ui"); - deleteMoreMenuLayout(); + elm_object_signal_emit(m_parent, "hide_moremenu", "ui"); + deleteMoreMenuLayout(); #else - setFocus(EINA_FALSE); - m_focusManager.stopFocusManager(); + setFocus(EINA_FALSE); + m_focusManager.stopFocusManager(); #endif - m_isVisible = false; -} + m_isVisible = false; + } -Evas_Object* MoreMenuUI::getContent() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + Evas_Object *MoreMenuUI::getContent() + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if(!m_mm_layout) - createMoreMenuLayout(); - return m_mm_layout; -} + if (!m_mm_layout) + createMoreMenuLayout(); + return m_mm_layout; + } #if PROFILE_MOBILE -void MoreMenuUI::resetContent() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - boost::optional rotated = isRotated(); - if (rotated) { - if (*rotated) { - elm_gengrid_item_size_set(m_gengrid, ELM_SCALE_SIZE(GENGRID_ITEM_WIDTH_LANDSCAPE), - ELM_SCALE_SIZE(GENGRID_ITEM_HEIGHT_LANDSCAPE)); - elm_object_signal_emit(m_mm_layout, "switch_landscape", "ui"); - if (evas_object_visible_get(m_mm_layout)) - elm_object_signal_emit(m_parent, "show_moremenu_landscape", "ui"); - } else { - elm_gengrid_item_size_set(m_gengrid, ELM_SCALE_SIZE(GENGRID_ITEM_WIDTH), - ELM_SCALE_SIZE(GENGRID_ITEM_HEIGHT)); - elm_object_signal_emit(m_mm_layout, "switch_vertical", "ui"); - if (evas_object_visible_get(m_mm_layout)) - elm_object_signal_emit(m_parent, "show_moremenu_vertical", "ui"); - } - } else - BROWSER_LOGE("[%s:%d] Signal not found", __PRETTY_FUNCTION__, __LINE__); -} + void MoreMenuUI::resetContent() + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + boost::optional < bool > rotated = isRotated(); + if (rotated) { + if (*rotated) { + elm_gengrid_item_size_set(m_gengrid, + ELM_SCALE_SIZE + (GENGRID_ITEM_WIDTH_LANDSCAPE), + ELM_SCALE_SIZE + (GENGRID_ITEM_HEIGHT_LANDSCAPE)); + elm_object_signal_emit(m_mm_layout, "switch_landscape", "ui"); + if (evas_object_visible_get(m_mm_layout)) + elm_object_signal_emit(m_parent, "show_moremenu_landscape", "ui"); + } else { + elm_gengrid_item_size_set(m_gengrid, + ELM_SCALE_SIZE(GENGRID_ITEM_WIDTH), + ELM_SCALE_SIZE(GENGRID_ITEM_HEIGHT)); + elm_object_signal_emit(m_mm_layout, "switch_vertical", "ui"); + if (evas_object_visible_get(m_mm_layout)) + elm_object_signal_emit(m_parent, "show_moremenu_vertical", "ui"); + } + } else { + BROWSER_LOGE("[%s:%d] Signal not found", __PRETTY_FUNCTION__, + __LINE__); + } + } #endif -void MoreMenuUI::createMoreMenuLayout() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - M_ASSERT(m_parent); - elm_theme_extension_add(NULL, m_edjFilePath.c_str()); - m_mm_layout = elm_layout_add(m_parent); - elm_layout_file_set(m_mm_layout, m_edjFilePath.c_str(), "moremenu-layout"); - evas_object_size_hint_weight_set(m_mm_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(m_mm_layout, EVAS_HINT_FILL, EVAS_HINT_FILL); + void MoreMenuUI::createMoreMenuLayout() + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + M_ASSERT(m_parent); + elm_theme_extension_add(NULL, m_edjFilePath.c_str()); + m_mm_layout = elm_layout_add(m_parent); + elm_layout_file_set(m_mm_layout, m_edjFilePath.c_str(), + "moremenu-layout"); + evas_object_size_hint_weight_set(m_mm_layout, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(m_mm_layout, EVAS_HINT_FILL, + EVAS_HINT_FILL); #if PROFILE_MOBILE - elm_object_part_content_set(m_parent, "moremenu", m_mm_layout); - elm_object_tree_focus_allow_set(m_mm_layout, EINA_FALSE); + elm_object_part_content_set(m_parent, "moremenu", m_mm_layout); + elm_object_tree_focus_allow_set(m_mm_layout, EINA_FALSE); #endif -} + } #if PROFILE_MOBILE -void MoreMenuUI::deleteMoreMenuLayout() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + void MoreMenuUI::deleteMoreMenuLayout() + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - M_ASSERT(m_parent); - M_ASSERT(m_mm_layout); + M_ASSERT(m_parent); + M_ASSERT(m_mm_layout); - evas_object_del(m_gengrid); - evas_object_hide(m_mm_layout); - elm_object_signal_emit(m_parent, "hide_moremenu", "ui"); - evas_object_del(m_mm_layout); + evas_object_del(m_gengrid); + evas_object_hide(m_mm_layout); + elm_object_signal_emit(m_parent, "hide_moremenu", "ui"); + evas_object_del(m_mm_layout); - m_mm_layout = nullptr; -} + m_mm_layout = nullptr; + } #endif -void MoreMenuUI::createGengrid() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - m_gengrid = elm_gengrid_add(m_mm_layout); - elm_object_part_content_set(m_mm_layout, "elm.swallow.grid", m_gengrid); - 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); + void MoreMenuUI::createGengrid() + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + m_gengrid = elm_gengrid_add(m_mm_layout); + elm_object_part_content_set(m_mm_layout, "elm.swallow.grid", m_gengrid); + 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); #if PROFILE_MOBILE - elm_scroller_bounce_set(m_gengrid, EINA_FALSE, EINA_FALSE); - elm_object_scroll_lock_x_set(m_gengrid, EINA_TRUE); + elm_scroller_bounce_set(m_gengrid, EINA_FALSE, EINA_FALSE); + elm_object_scroll_lock_x_set(m_gengrid, EINA_TRUE); #else - elm_scroller_page_size_set(m_gengrid, 0, 327); - elm_gengrid_item_size_set(m_gengrid, ELM_SCALE_SIZE(GENGRID_ITEM_WIDTH), ELM_SCALE_SIZE(GENGRID_ITEM_HEIGHT)); + elm_scroller_page_size_set(m_gengrid, 0, 327); + elm_gengrid_item_size_set(m_gengrid, ELM_SCALE_SIZE(GENGRID_ITEM_WIDTH), + ELM_SCALE_SIZE(GENGRID_ITEM_HEIGHT)); #endif - 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); -} + 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); + } -void MoreMenuUI::showCurrentTab() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - m_current_tab_bar = elm_layout_add(m_mm_layout); - elm_layout_file_set(m_current_tab_bar, m_edjFilePath.c_str(), "current_tab_layout"); - evas_object_size_hint_weight_set(m_current_tab_bar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - elm_object_part_content_set(m_mm_layout, "current_tab_bar", m_current_tab_bar); - - Evas_Object* button = elm_button_add(m_current_tab_bar); - elm_object_style_set(button, "hidden_button"); - evas_object_smart_callback_add(button, "clicked", _close_clicked, this); - elm_object_part_content_set(m_current_tab_bar, "close_click", button); - evas_object_show(button); - elm_object_focus_set(button, EINA_TRUE); - - m_bookmarkButton = elm_button_add(m_mm_layout); - elm_object_style_set(m_bookmarkButton, "hidden_button"); - evas_object_show(m_bookmarkButton); - evas_object_smart_callback_add(m_bookmarkButton, "clicked", _bookmarkButton_clicked, this); - - m_bookmarkIcon = elm_icon_add(m_mm_layout); - elm_object_part_content_set(m_current_tab_bar, "bookmark_ico", m_bookmarkIcon); - elm_object_part_content_set(m_current_tab_bar, "star_click", m_bookmarkButton); + void MoreMenuUI::showCurrentTab() + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + m_current_tab_bar = elm_layout_add(m_mm_layout); + elm_layout_file_set(m_current_tab_bar, m_edjFilePath.c_str(), + "current_tab_layout"); + evas_object_size_hint_weight_set(m_current_tab_bar, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + elm_object_part_content_set(m_mm_layout, "current_tab_bar", + m_current_tab_bar); + + Evas_Object *button = elm_button_add(m_current_tab_bar); + elm_object_style_set(button, "hidden_button"); + evas_object_smart_callback_add(button, "clicked", _close_clicked, this); + elm_object_part_content_set(m_current_tab_bar, "close_click", button); + evas_object_show(button); + elm_object_focus_set(button, EINA_TRUE); + + m_bookmarkButton = elm_button_add(m_mm_layout); + elm_object_style_set(m_bookmarkButton, "hidden_button"); + evas_object_show(m_bookmarkButton); + evas_object_smart_callback_add(m_bookmarkButton, "clicked", + _bookmarkButton_clicked, this); + + m_bookmarkIcon = elm_icon_add(m_mm_layout); + elm_object_part_content_set(m_current_tab_bar, "bookmark_ico", + m_bookmarkIcon); + elm_object_part_content_set(m_current_tab_bar, "star_click", + m_bookmarkButton); #if !PROFILE_MOBILE - createFocusVector(); + createFocusVector(); #endif -} - -void MoreMenuUI::setFavIcon(tools::BrowserImagePtr favicon) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if(favicon && favicon->getSize() > 0) { - if(m_icon) - evas_object_del(m_icon); - - m_icon = favicon->getEvasImage(m_current_tab_bar); - if(m_icon) { - evas_object_size_hint_weight_set(m_icon, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(m_icon, EVAS_HINT_FILL, EVAS_HINT_FILL); - elm_object_part_content_set(m_current_tab_bar, "favicon", m_icon); - evas_object_show(m_icon); - } } - else { - setDocIcon(); - } -} -void MoreMenuUI::setDocIcon() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if(m_icon) - evas_object_del(m_icon); - - m_icon = elm_icon_add(m_mm_layout); - elm_image_file_set(m_icon, m_edjFilePath.c_str(), "ico_url.png"); - evas_object_size_hint_weight_set(m_icon, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(m_icon, EVAS_HINT_FILL, EVAS_HINT_FILL); - elm_object_part_content_set(m_current_tab_bar, "favicon", m_icon); -} + void MoreMenuUI::setFavIcon(tools::BrowserImagePtr favicon) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + if (favicon && favicon->getSize() > 0) { + if (m_icon) + evas_object_del(m_icon); + + m_icon = favicon->getEvasImage(m_current_tab_bar); + if (m_icon) { + evas_object_size_hint_weight_set(m_icon, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(m_icon, EVAS_HINT_FILL, + EVAS_HINT_FILL); + elm_object_part_content_set(m_current_tab_bar, "favicon", m_icon); + evas_object_show(m_icon); + } + } else { + setDocIcon(); + } + } -void MoreMenuUI::setWebTitle(const std::string& title) -{ - BROWSER_LOGD("[%s:%d] %s", __PRETTY_FUNCTION__, __LINE__, title.c_str()); - elm_object_part_text_set(m_current_tab_bar, "webpage_title", title.c_str()); -} + void MoreMenuUI::setDocIcon() + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + if (m_icon) + evas_object_del(m_icon); + + m_icon = elm_icon_add(m_mm_layout); + elm_image_file_set(m_icon, m_edjFilePath.c_str(), "ico_url.png"); + evas_object_size_hint_weight_set(m_icon, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(m_icon, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_object_part_content_set(m_current_tab_bar, "favicon", m_icon); + } -void MoreMenuUI::setURL(const std::string& url) -{ - BROWSER_LOGD("[%s:%d] %s", __PRETTY_FUNCTION__, __LINE__, url.c_str()); - - boost::optional bookmark = isBookmark(); - if (bookmark) { - if (!url.empty()) { - elm_object_part_text_set(m_current_tab_bar, "webpage_url", url.c_str()); - if (*bookmark) { - changeBookmarkStatus(true); - enableAddToBookmarkButton(true); - } else { - changeBookmarkStatus(false); - enableAddToBookmarkButton(true); - } - } else { - elm_object_part_text_set(m_current_tab_bar, "webpage_url", ""); - elm_object_part_text_set(m_current_tab_bar, "webpage_title", "No Content"); - changeBookmarkStatus(false); - enableAddToBookmarkButton(false); - } - } else - BROWSER_LOGE("[%s:%d] Signal not found", __PRETTY_FUNCTION__, __LINE__); -} + void MoreMenuUI::setWebTitle(const std::string & title) + { + BROWSER_LOGD("[%s:%d] %s", __PRETTY_FUNCTION__, __LINE__, + title.c_str()); + elm_object_part_text_set(m_current_tab_bar, "webpage_title", + title.c_str()); + } -void MoreMenuUI::setHomePageInfo() -{ - setDocIcon(); - setURL(""); -} + void MoreMenuUI::setURL(const std::string & url) + { + BROWSER_LOGD("[%s:%d] %s", __PRETTY_FUNCTION__, __LINE__, url.c_str()); + + boost::optional < bool > bookmark = isBookmark(); + if (bookmark) { + if (!url.empty()) { + elm_object_part_text_set(m_current_tab_bar, "webpage_url", + url.c_str()); + if (*bookmark) { + changeBookmarkStatus(true); + enableAddToBookmarkButton(true); + } else { + changeBookmarkStatus(false); + enableAddToBookmarkButton(true); + } + } else { + elm_object_part_text_set(m_current_tab_bar, "webpage_url", ""); + elm_object_part_text_set(m_current_tab_bar, "webpage_title", + "No Content"); + changeBookmarkStatus(false); + enableAddToBookmarkButton(false); + } + } else { + BROWSER_LOGE("[%s:%d] Signal not found", __PRETTY_FUNCTION__, + __LINE__); + } + } -void MoreMenuUI::changeBookmarkStatus(bool data) -{ - if (data) { - elm_object_part_text_set(m_current_tab_bar, "add_to_bookmark_text", "Remove Bookmark"); - elm_image_file_set(m_bookmarkIcon, m_edjFilePath.c_str(), "ic_add_bookmark.png"); + void MoreMenuUI::setHomePageInfo() + { + setDocIcon(); + setURL(""); } - else { - elm_object_part_text_set(m_current_tab_bar, "add_to_bookmark_text", "Add to Bookmark"); - elm_image_file_set(m_bookmarkIcon, m_edjFilePath.c_str(), "ic_add_bookmark_new.png"); + + void MoreMenuUI::changeBookmarkStatus(bool data) + { + if (data) { + elm_object_part_text_set(m_current_tab_bar, "add_to_bookmark_text", + "Remove Bookmark"); + elm_image_file_set(m_bookmarkIcon, m_edjFilePath.c_str(), + "ic_add_bookmark.png"); + } else { + elm_object_part_text_set(m_current_tab_bar, "add_to_bookmark_text", + "Add to Bookmark"); + elm_image_file_set(m_bookmarkIcon, m_edjFilePath.c_str(), + "ic_add_bookmark_new.png"); + } } -} -void MoreMenuUI::enableAddToBookmarkButton(bool data) -{ - if (m_bookmarkButton) { - elm_object_disabled_set(m_bookmarkButton, data ? EINA_FALSE : EINA_TRUE); - elm_object_style_set(m_bookmarkButton, data ? "hidden_button" : "dimmed_button"); + void MoreMenuUI::enableAddToBookmarkButton(bool data) + { + if (m_bookmarkButton) { + elm_object_disabled_set(m_bookmarkButton, + data ? EINA_FALSE : EINA_TRUE); + elm_object_style_set(m_bookmarkButton, + data ? "hidden_button" : "dimmed_button"); + } } -} -void MoreMenuUI::createToastPopup(const char* text) -{ - m_toastPopup = elm_popup_add(m_mm_layout); - elm_object_style_set(m_toastPopup, "toast"); - evas_object_size_hint_weight_set(m_toastPopup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(m_toastPopup, EVAS_HINT_FILL, EVAS_HINT_FILL); - elm_object_part_content_set(m_current_tab_bar, "toast_popup", m_toastPopup); - elm_object_part_text_set(m_current_tab_bar, "toast_text", text); - evas_object_smart_callback_add(m_toastPopup, "timeout", _timeout, this); - elm_popup_timeout_set(m_toastPopup, 3.0); -} + void MoreMenuUI::createToastPopup(const char *text) + { + m_toastPopup = elm_popup_add(m_mm_layout); + elm_object_style_set(m_toastPopup, "toast"); + evas_object_size_hint_weight_set(m_toastPopup, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(m_toastPopup, EVAS_HINT_FILL, + EVAS_HINT_FILL); + elm_object_part_content_set(m_current_tab_bar, "toast_popup", + m_toastPopup); + elm_object_part_text_set(m_current_tab_bar, "toast_text", text); + evas_object_smart_callback_add(m_toastPopup, "timeout", _timeout, this); + elm_popup_timeout_set(m_toastPopup, 3.0); + } -void MoreMenuUI::_timeout(void *data, Evas_Object*, void*) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - MoreMenuUI *moreMenuUI = static_cast(data); - elm_object_part_text_set(moreMenuUI->m_current_tab_bar, "toast_text", ""); - evas_object_del(moreMenuUI->m_toastPopup); -} + void MoreMenuUI::_timeout(void *data, Evas_Object *, void *) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + MoreMenuUI *moreMenuUI = static_cast < MoreMenuUI * >(data); + elm_object_part_text_set(moreMenuUI->m_current_tab_bar, "toast_text", + ""); + evas_object_del(moreMenuUI->m_toastPopup); + } -void MoreMenuUI::_bookmarkButton_clicked(void* data, Evas_Object*, void*) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if(data) { - MoreMenuUI *moreMenuUI = static_cast(data); - boost::optional bookmark = moreMenuUI->isBookmark(); - if (bookmark) - moreMenuUI->bookmarkFlowClicked(*bookmark); - else - BROWSER_LOGE("[%s:%d] Signal not found", __PRETTY_FUNCTION__, __LINE__); + void MoreMenuUI::_bookmarkButton_clicked(void *data, Evas_Object *, + void *) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + if (data) { + MoreMenuUI *moreMenuUI = static_cast < MoreMenuUI * >(data); + boost::optional < bool > bookmark = moreMenuUI->isBookmark(); + if (bookmark) + moreMenuUI->bookmarkFlowClicked(*bookmark); + else + BROWSER_LOGE("[%s:%d] Signal not found", __PRETTY_FUNCTION__, + __LINE__); + } } -} -void MoreMenuUI::_close_clicked(void* data, Evas_Object*, void*) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (data) { - MoreMenuUI *moreMenuUI = static_cast(data); - moreMenuUI->closeMoreMenuClicked(); + void MoreMenuUI::_close_clicked(void *data, Evas_Object *, void *) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + if (data) { + MoreMenuUI *moreMenuUI = static_cast < MoreMenuUI * >(data); + moreMenuUI->closeMoreMenuClicked(); + } } -} -void MoreMenuUI::addItems() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + void MoreMenuUI::addItems() + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); #if PROFILE_MOBILE - for (int i = 0; i <= FIND_ON_PAGE; i++) { - ItemType type = static_cast(i); - if (type == ItemType::FIND_ON_PAGE && !m_shouldShowFindOnPage) - continue; - addItem(type); - } + for (int i = 0; i <= FIND_ON_PAGE; i++) { + ItemType type = static_cast < ItemType > (i); + if (type == ItemType::FIND_ON_PAGE && !m_shouldShowFindOnPage) + continue; + addItem(type); + } #else - for (int i = 0; i <= EXIT_BROWSER; i++) { - ItemType type = static_cast(i); - // take proper image for desktop/mobile view - if (type == ItemType::VIEW_DESKTOP_WEB && m_desktopMode) - continue; - if (type == ItemType::VIEW_MOBILE_WEB && !m_desktopMode) - continue; - addItem(type); - } + for (int i = 0; i <= EXIT_BROWSER; i++) { + ItemType type = static_cast < ItemType > (i); + // take proper image for desktop/mobile view + if (type == ItemType::VIEW_DESKTOP_WEB && m_desktopMode) + continue; + if (type == ItemType::VIEW_MOBILE_WEB && !m_desktopMode) + continue; + addItem(type); + } #endif -} - -void MoreMenuUI::addItem(ItemType type) -{ - MoreMenuItemData *itemData = new MoreMenuItemData(); - itemData->item = type; - itemData->moreMenuUI = std::shared_ptr(this); - Elm_Object_Item* bookmarkView = elm_gengrid_item_append(m_gengrid, m_item_class, itemData, _thumbSelected, itemData); - m_map_menu_views.insert(std::pair(itemData->item, bookmarkView)); - elm_gengrid_item_selected_set(bookmarkView, EINA_FALSE); -} + } -void MoreMenuUI::clearItems() -{ - BROWSER_LOGD("[%s:%d]", __PRETTY_FUNCTION__, __LINE__); - for (auto it = m_map_menu_views.begin(); it != m_map_menu_views.end(); ++it) { - Elm_Object_Item* bookmarkView = it->second; - Evas_Object *button = elm_object_item_part_content_get(bookmarkView, "thumbbutton_item"); - evas_object_event_callback_del(button, EVAS_CALLBACK_MOUSE_IN, __cb_mouse_in); - evas_object_event_callback_del(button, EVAS_CALLBACK_MOUSE_OUT, __cb_mouse_out); + void MoreMenuUI::addItem(ItemType type) + { + MoreMenuItemData *itemData = new MoreMenuItemData(); + itemData->item = type; + itemData->moreMenuUI = + std::shared_ptr < tizen_browser::base_ui::MoreMenuUI > (this); + Elm_Object_Item *bookmarkView = + elm_gengrid_item_append(m_gengrid, m_item_class, itemData, + _thumbSelected, itemData); + m_map_menu_views.insert(std::pair < ItemType, + Elm_Object_Item * >(itemData->item, + bookmarkView)); + elm_gengrid_item_selected_set(bookmarkView, EINA_FALSE); } - elm_gengrid_clear(m_gengrid); - m_map_menu_views.clear(); -} + void MoreMenuUI::clearItems() + { + BROWSER_LOGD("[%s:%d]", __PRETTY_FUNCTION__, __LINE__); + for (auto it = m_map_menu_views.begin(); it != m_map_menu_views.end(); + ++it) { + Elm_Object_Item *bookmarkView = it->second; + Evas_Object *button = + elm_object_item_part_content_get(bookmarkView, "thumbbutton_item"); + evas_object_event_callback_del(button, EVAS_CALLBACK_MOUSE_IN, + __cb_mouse_in); + evas_object_event_callback_del(button, EVAS_CALLBACK_MOUSE_OUT, + __cb_mouse_out); + } + + elm_gengrid_clear(m_gengrid); + m_map_menu_views.clear(); + } -char* MoreMenuUI::_grid_text_get(void* data, Evas_Object*, const char* part) -{ - BROWSER_LOGD("[%s:%d] part=%s", __PRETTY_FUNCTION__, __LINE__, part); - if (data && part) { - MoreMenuItemData *itemData = static_cast(data); + char *MoreMenuUI::_grid_text_get(void *data, Evas_Object *, + const char *part) + { + BROWSER_LOGD("[%s:%d] part=%s", __PRETTY_FUNCTION__, __LINE__, part); + if (data && part) { + MoreMenuItemData *itemData = static_cast < MoreMenuItemData * >(data); #if PROFILE_MOBILE - const char *part_name = "thumbnail_text"; + const char *part_name = "thumbnail_text"; #else - const char *part_name = "menu_label"; + const char *part_name = "menu_label"; #endif - static const int part_name_len = strlen(part_name); - - if (!strncmp(part_name, part, part_name_len)) { - const char* item_name = NULL; - switch (itemData->item) { - case HISTORY: - item_name = "History Manager"; - break; - case BOOKMARK_MANAGER: - item_name = "Bookmark Manager"; - break; - case SETTINGS: - item_name = _("IDS_BR_OPT_SETTINGS"); - break; + static const int part_name_len = strlen(part_name); + + if (!strncmp(part_name, part, part_name_len)) { + const char *item_name = NULL; + switch (itemData->item) { + case HISTORY: + item_name = "History Manager"; + break; + case BOOKMARK_MANAGER: + item_name = "Bookmark Manager"; + break; + case SETTINGS: + item_name = _("IDS_BR_OPT_SETTINGS"); + break; #if PROFILE_MOBILE - case ADD_TO_BOOKMARK: { - boost::optional bookmark = itemData->moreMenuUI->isBookmark(); - if (bookmark) - item_name = *bookmark ? "Edit Bookmark" : "Add to Bookmark"; - else - BROWSER_LOGE("[%s:%d] Signal not found", __PRETTY_FUNCTION__, __LINE__); - } - break; + case ADD_TO_BOOKMARK:{ + boost::optional < bool > bookmark = + itemData->moreMenuUI->isBookmark(); + if (bookmark) + item_name = *bookmark ? "Edit Bookmark" : "Add to Bookmark"; + else + BROWSER_LOGE("[%s:%d] Signal not found", __PRETTY_FUNCTION__, + __LINE__); + } + break; #ifdef READER_MODE_ENABLED - case READER_MODE: - item_name = _("IDS_BR_OPT_READER_MODE_TTS"); - break; + case READER_MODE: + item_name = _("IDS_BR_OPT_READER_MODE_TTS"); + break; #endif - case FIND_ON_PAGE: - item_name = _("IDS_BR_OPT_FIND_ON_PAGE"); - break; + case FIND_ON_PAGE: + item_name = _("IDS_BR_OPT_FIND_ON_PAGE"); + break; #else #ifdef READER_MODE_ENABLED - case READER_MODE: - item_name = _("IDS_BR_OPT_READER_MODE_TTS"); - break; + case READER_MODE: + item_name = _("IDS_BR_OPT_READER_MODE_TTS"); + break; #endif - case SCREEN_ZOOM: - item_name = "Screen Zoom"; - break; + case SCREEN_ZOOM: + item_name = "Screen Zoom"; + break; #ifdef START_MINIBROWSER_ENABLED - case START_MINIBROWSER: - item_name = "Start Mini Browser"; - break; + case START_MINIBROWSER: + item_name = "Start Mini Browser"; + break; #endif - case VIEW_MOBILE_WEB: - item_name = "View Mobile Web"; - break; - case VIEW_DESKTOP_WEB: - item_name = "View Desktop Web"; - break; - case EXIT_BROWSER: - item_name = "Exit Browser"; - break; + case VIEW_MOBILE_WEB: + item_name = "View Mobile Web"; + break; + case VIEW_DESKTOP_WEB: + item_name = "View Desktop Web"; + break; + case EXIT_BROWSER: + item_name = "Exit Browser"; + break; #endif - default: - item_name = ""; - } - return strdup(item_name); - } + default: + item_name = ""; + } + return strdup(item_name); + } + } + return NULL; } - return NULL; -} -static const char* getImageFileNameForType(ItemType type, bool focused, Eina_Bool bookmarked) -{ + static const char *getImageFileNameForType(ItemType type, bool focused, + Eina_Bool bookmarked) + { #if PROFILE_MOBILE - M_UNUSED(focused); + M_UNUSED(focused); #else - M_UNUSED(bookmarked); + M_UNUSED(bookmarked); #endif - const char* file_name = NULL; - switch (type) { + const char *file_name = NULL; + switch (type) { #if PROFILE_MOBILE - case ADD_TO_BOOKMARK: - file_name = bookmarked == EINA_TRUE ? "moremenu_ic_01_edit.png" : "moremenu_ic_01.png"; - break; + case ADD_TO_BOOKMARK: + file_name = + bookmarked == + EINA_TRUE ? "moremenu_ic_01_edit.png" : "moremenu_ic_01.png"; + break; #ifdef READER_MODE_ENABLED - case READER_MODE: - file_name = "moremenu_ic_02.png"; - break; + case READER_MODE: + file_name = "moremenu_ic_02.png"; + break; #endif - case HISTORY: - file_name = "moremenu_ic_04.png"; - break; - case BOOKMARK_MANAGER: - file_name = "moremenu_ic_05.png"; - break; - case SETTINGS: - file_name = "moremenu_ic_06.png"; - break; - case FIND_ON_PAGE: - file_name = "moremenu_ic_07.png"; - break; + case HISTORY: + file_name = "moremenu_ic_04.png"; + break; + case BOOKMARK_MANAGER: + file_name = "moremenu_ic_05.png"; + break; + case SETTINGS: + file_name = "moremenu_ic_06.png"; + break; + case FIND_ON_PAGE: + file_name = "moremenu_ic_07.png"; + break; #else - #ifdef READER_MODE_ENABLED - case READER_MODE: - file_name = focused ? "ic_more_readermode_foc.png" : "ic_more_readermode_nor.png"; - break; - #endif - case BOOKMARK_MANAGER: - file_name = focused ? "ic_more_bookmark_foc.png" : "ic_more_bookmark_nor.png"; - break; - case HISTORY: - file_name = focused ? "ic_more_history_foc.png" : "ic_more_history_nor.png"; - break; - case SCREEN_ZOOM: - file_name = focused ? "ic_more_zoom_foc.png" : "ic_more_zoom_nor.png"; - break; - #ifdef START_MINIBROWSER_ENABLED - case START_MINIBROWSER: - file_name = focused ? "ic_more_minibrowser_foc.png" : "ic_more_minibrowser_nor.png"; - break; - #endif - case VIEW_MOBILE_WEB: - file_name = focused ? "ic_more_mobileview_foc.png" : "ic_more_mobileview_nor.png"; - break; - case VIEW_DESKTOP_WEB: - file_name = focused ? "ic_more_desktopview_foc.png" : "ic_more_desktopview_nor.png"; - break; - case SETTINGS: - file_name = focused ? "ic_more_setting_foc.png" : "ic_more_setting_nor.png"; - break; - case EXIT_BROWSER: - file_name = focused ? "ic_more_exit_foc.png" : "ic_more_exit_nor.png"; - break; +#ifdef READER_MODE_ENABLED + case READER_MODE: + file_name = + focused ? "ic_more_readermode_foc.png" : + "ic_more_readermode_nor.png"; + break; +#endif + case BOOKMARK_MANAGER: + file_name = + focused ? "ic_more_bookmark_foc.png" : "ic_more_bookmark_nor.png"; + break; + case HISTORY: + file_name = + focused ? "ic_more_history_foc.png" : "ic_more_history_nor.png"; + break; + case SCREEN_ZOOM: + file_name = focused ? "ic_more_zoom_foc.png" : "ic_more_zoom_nor.png"; + break; +#ifdef START_MINIBROWSER_ENABLED + case START_MINIBROWSER: + file_name = + focused ? "ic_more_minibrowser_foc.png" : + "ic_more_minibrowser_nor.png"; + break; +#endif + case VIEW_MOBILE_WEB: + file_name = + focused ? "ic_more_mobileview_foc.png" : + "ic_more_mobileview_nor.png"; + break; + case VIEW_DESKTOP_WEB: + file_name = + focused ? "ic_more_desktopview_foc.png" : + "ic_more_desktopview_nor.png"; + break; + case SETTINGS: + file_name = + focused ? "ic_more_setting_foc.png" : "ic_more_setting_nor.png"; + break; + case EXIT_BROWSER: + file_name = focused ? "ic_more_exit_foc.png" : "ic_more_exit_nor.png"; + break; #endif - default: - file_name = ""; + default: + file_name = ""; + } + return file_name; } - return file_name; -} -Evas_Object * MoreMenuUI::_grid_content_get(void *data, Evas_Object *obj, const char *part) -{ - BROWSER_LOGD("[%s:%d] part=%s", __PRETTY_FUNCTION__, __LINE__, part); - if (data && obj && part) { - MoreMenuItemData *itemData = static_cast(data); + Evas_Object *MoreMenuUI::_grid_content_get(void *data, Evas_Object * obj, + const char *part) + { + BROWSER_LOGD("[%s:%d] part=%s", __PRETTY_FUNCTION__, __LINE__, part); + if (data && obj && part) { + MoreMenuItemData *itemData = static_cast < MoreMenuItemData * >(data); #if PROFILE_MOBILE - const char *part_name1 = "thumbnail_icon"; + const char *part_name1 = "thumbnail_icon"; #else - const char *part_name1 = "thumbnail_item"; + const char *part_name1 = "thumbnail_item"; #endif - static const int part_name1_len = strlen(part_name1); - const char *part_name2 = "thumbbutton_item"; - static const int part_name2_len = strlen(part_name2); - - if (!strncmp(part_name1, part, part_name1_len)) { - Evas_Object* thumb_nail = elm_icon_add(obj); - boost::optional bookmark = itemData->moreMenuUI->isBookmark(); - if (bookmark) { - const char* file_name = getImageFileNameForType(itemData->item, false, *bookmark); - elm_image_file_set(thumb_nail, itemData->moreMenuUI->m_edjFilePath.c_str(), file_name); - return thumb_nail; - } else - BROWSER_LOGE("[%s:%d] Signal not found", __PRETTY_FUNCTION__, __LINE__); - } - - if (!strncmp(part_name2, part, part_name2_len)) { - Evas_Object *thumbButton = elm_button_add(obj); + static const int part_name1_len = strlen(part_name1); + const char *part_name2 = "thumbbutton_item"; + static const int part_name2_len = strlen(part_name2); + + if (!strncmp(part_name1, part, part_name1_len)) { + Evas_Object *thumb_nail = elm_icon_add(obj); + boost::optional < bool > bookmark = + itemData->moreMenuUI->isBookmark(); + if (bookmark) { + const char *file_name = + getImageFileNameForType(itemData->item, false, *bookmark); + elm_image_file_set(thumb_nail, + itemData->moreMenuUI->m_edjFilePath.c_str(), + file_name); + return thumb_nail; + } else { + BROWSER_LOGE("[%s:%d] Signal not found", __PRETTY_FUNCTION__, + __LINE__); + } + } + + if (!strncmp(part_name2, part, part_name2_len)) { + Evas_Object *thumbButton = elm_button_add(obj); #if PROFILE_MOBILE - elm_object_style_set(thumbButton, "invisible_button"); - evas_object_smart_callback_add(thumbButton, "clicked", _thumbSelected, data); - elm_object_part_content_set(obj, "thumbnail_click", thumbButton); + elm_object_style_set(thumbButton, "invisible_button"); + evas_object_smart_callback_add(thumbButton, "clicked", + _thumbSelected, data); + elm_object_part_content_set(obj, "thumbnail_click", thumbButton); #else - elm_object_style_set(thumbButton, "clickButton"); - 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); + elm_object_style_set(thumbButton, "clickButton"); + 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); #endif - return thumbButton; - } + return thumbButton; + } + } + return NULL; } - return NULL; -} -void MoreMenuUI::__cb_mouse_in(void * data, Evas *, Evas_Object *obj, void *) -{ - BROWSER_LOGD("[%s:%d]", __PRETTY_FUNCTION__, __LINE__); + void MoreMenuUI::__cb_mouse_in(void *data, Evas *, Evas_Object * obj, + void *) + { + BROWSER_LOGD("[%s:%d]", __PRETTY_FUNCTION__, __LINE__); #if PROFILE_MOBILE - M_UNUSED(data); - M_UNUSED(obj); + M_UNUSED(data); + M_UNUSED(obj); #else - if (data && obj) { - elm_object_focus_set(obj, EINA_TRUE); - MoreMenuItemData *itemData = static_cast(data); - Elm_Object_Item *selected = itemData->moreMenuUI->m_map_menu_views[itemData->item]; - Evas_Object *thumb_nail = elm_object_item_part_content_get(selected, "thumbnail_item"); - boost::optional bookmark = itemData->moreMenuUI->isBookmark(); - if (bookmark) { - const char *file_name = getImageFileNameForType(itemData->item, true, *bookmark); - elm_image_file_set(thumb_nail, itemData->moreMenuUI->m_edjFilePath.c_str(), file_name); - } else - BROWSER_LOGE("[%s:%d] Signal not found", __PRETTY_FUNCTION__, __LINE__); - } + if (data && obj) { + elm_object_focus_set(obj, EINA_TRUE); + MoreMenuItemData *itemData = static_cast < MoreMenuItemData * >(data); + Elm_Object_Item *selected = + itemData->moreMenuUI->m_map_menu_views[itemData->item]; + Evas_Object *thumb_nail = + elm_object_item_part_content_get(selected, "thumbnail_item"); + boost::optional < bool > bookmark = + itemData->moreMenuUI->isBookmark(); + if (bookmark) { + const char *file_name = + getImageFileNameForType(itemData->item, true, *bookmark); + elm_image_file_set(thumb_nail, + itemData->moreMenuUI->m_edjFilePath.c_str(), + file_name); + } else { + BROWSER_LOGE("[%s:%d] Signal not found", __PRETTY_FUNCTION__, + __LINE__); + } + } #endif -} + } -void MoreMenuUI::__cb_mouse_out(void * data, Evas *, Evas_Object *obj, void *) -{ - BROWSER_LOGD("[%s:%d]", __PRETTY_FUNCTION__, __LINE__); + void MoreMenuUI::__cb_mouse_out(void *data, Evas *, Evas_Object * obj, + void *) + { + BROWSER_LOGD("[%s:%d]", __PRETTY_FUNCTION__, __LINE__); #if PROFILE_MOBILE - M_UNUSED(data); - M_UNUSED(obj); + M_UNUSED(data); + M_UNUSED(obj); #else - if (data && obj) { - elm_object_focus_set(obj, EINA_FALSE); - MoreMenuItemData *itemData = static_cast(data); - Elm_Object_Item *selected = itemData->moreMenuUI->m_map_menu_views[itemData->item]; - Evas_Object *thumb_nail = elm_object_item_part_content_get(selected, "thumbnail_item"); - boost::optional bookmark = itemData->moreMenuUI->isBookmark(); - if (bookmark) { - const char *file_name = getImageFileNameForType(itemData->item, false, *bookmark); - elm_image_file_set(thumb_nail, itemData->moreMenuUI->m_edjFilePath.c_str(), file_name); - } else - BROWSER_LOGE("[%s:%d] Signal not found", __PRETTY_FUNCTION__, __LINE__); - } + if (data && obj) { + elm_object_focus_set(obj, EINA_FALSE); + MoreMenuItemData *itemData = static_cast < MoreMenuItemData * >(data); + Elm_Object_Item *selected = + itemData->moreMenuUI->m_map_menu_views[itemData->item]; + Evas_Object *thumb_nail = + elm_object_item_part_content_get(selected, "thumbnail_item"); + boost::optional < bool > bookmark = + itemData->moreMenuUI->isBookmark(); + if (bookmark) { + const char *file_name = + getImageFileNameForType(itemData->item, false, *bookmark); + elm_image_file_set(thumb_nail, + itemData->moreMenuUI->m_edjFilePath.c_str(), + file_name); + } else { + BROWSER_LOGE("[%s:%d] Signal not found", __PRETTY_FUNCTION__, + __LINE__); + } + } #endif -} + } -void MoreMenuUI::_thumbSelected(void* data, Evas_Object*, void*) -{ - BROWSER_LOGD("[%s:%d]", __PRETTY_FUNCTION__, __LINE__); - if (data) { - MoreMenuItemData *itemData = static_cast(data); - BROWSER_LOGD("type: %d", itemData->item); - switch (itemData->item) { - case HISTORY: - itemData->moreMenuUI->historyUIClicked(); - break; - case SETTINGS: - itemData->moreMenuUI->settingsClicked(); - break; - case BOOKMARK_MANAGER: - itemData->moreMenuUI->bookmarkManagerClicked(); - break; + void MoreMenuUI::_thumbSelected(void *data, Evas_Object *, void *) + { + BROWSER_LOGD("[%s:%d]", __PRETTY_FUNCTION__, __LINE__); + if (data) { + MoreMenuItemData *itemData = static_cast < MoreMenuItemData * >(data); + BROWSER_LOGD("type: %d", itemData->item); + switch (itemData->item) { + case HISTORY: + itemData->moreMenuUI->historyUIClicked(); + break; + case SETTINGS: + itemData->moreMenuUI->settingsClicked(); + break; + case BOOKMARK_MANAGER: + itemData->moreMenuUI->bookmarkManagerClicked(); + break; #if PROFILE_MOBILE - case FIND_ON_PAGE: - itemData->moreMenuUI->closeMoreMenuClicked(); - itemData->moreMenuUI->findOnPageClicked(); - break; - case ADD_TO_BOOKMARK: - if (!itemData->moreMenuUI->m_blockThumbnails) { - elm_object_focus_allow_set(itemData->moreMenuUI->m_gengrid, EINA_FALSE); - boost::optional bookmark = itemData->moreMenuUI->isBookmark(); - if (bookmark) - itemData->moreMenuUI->bookmarkFlowClicked(*bookmark); - else - BROWSER_LOGE("[%s:%d] Signal not found", __PRETTY_FUNCTION__, __LINE__); - } - break; + case FIND_ON_PAGE: + itemData->moreMenuUI->closeMoreMenuClicked(); + itemData->moreMenuUI->findOnPageClicked(); + break; + case ADD_TO_BOOKMARK: + if (!itemData->moreMenuUI->m_blockThumbnails) { + elm_object_focus_allow_set(itemData->moreMenuUI->m_gengrid, + EINA_FALSE); + boost::optional < bool > bookmark = + itemData->moreMenuUI->isBookmark(); + if (bookmark) + itemData->moreMenuUI->bookmarkFlowClicked(*bookmark); + else + BROWSER_LOGE("[%s:%d] Signal not found", __PRETTY_FUNCTION__, + __LINE__); + } + break; #ifdef READER_MODE_ENABLED - case READER_MODE: - //TODO: Implement reader mode - break; + case READER_MODE: + //TODO: Implement reader mode + break; #endif #else #ifdef READER_MODE_ENABLED - case READER_MODE: - //TODO: Implement reader mode - break; + case READER_MODE: + //TODO: Implement reader mode + break; #endif - case SCREEN_ZOOM: - itemData->moreMenuUI->zoomUIClicked(); - break; + case SCREEN_ZOOM: + itemData->moreMenuUI->zoomUIClicked(); + break; #ifdef START_MINIBROWSER_ENABLED - case START_MINIBROWSER: - //TODO: Implement minibrowser launching - break; + case START_MINIBROWSER: + //TODO: Implement minibrowser launching + break; #endif - case VIEW_MOBILE_WEB: - itemData->moreMenuUI->switchToMobileMode(); - itemData->moreMenuUI->m_desktopMode = false; - itemData->moreMenuUI->closeMoreMenuClicked(); - break; - case VIEW_DESKTOP_WEB: - itemData->moreMenuUI->switchToDesktopMode(); - itemData->moreMenuUI->m_desktopMode = true; - itemData->moreMenuUI->closeMoreMenuClicked(); - break; - case EXIT_BROWSER: - _exitClicked(); - break; + case VIEW_MOBILE_WEB: + itemData->moreMenuUI->switchToMobileMode(); + itemData->moreMenuUI->m_desktopMode = false; + itemData->moreMenuUI->closeMoreMenuClicked(); + break; + case VIEW_DESKTOP_WEB: + itemData->moreMenuUI->switchToDesktopMode(); + itemData->moreMenuUI->m_desktopMode = true; + itemData->moreMenuUI->closeMoreMenuClicked(); + break; + case EXIT_BROWSER: + _exitClicked(); + break; #endif - default: - BROWSER_LOGD("[%s:%d] Warning: Unhandled button.", __PRETTY_FUNCTION__, __LINE__); - break; - } + default: + BROWSER_LOGD("[%s:%d] Warning: Unhandled button.", + __PRETTY_FUNCTION__, __LINE__); + break; + } + } } -} -void MoreMenuUI::_exitClicked() -{ - BROWSER_LOGD("[%s:%d]", __PRETTY_FUNCTION__, __LINE__); - elm_exit(); -} + void MoreMenuUI::_exitClicked() + { + BROWSER_LOGD("[%s:%d]", __PRETTY_FUNCTION__, __LINE__); + elm_exit(); + } -void MoreMenuUI::setFocus(Eina_Bool focusable) -{ - BROWSER_LOGD("[%s:%d]", __PRETTY_FUNCTION__, __LINE__); - elm_object_tree_focus_allow_set(getContent(), focusable); - if (focusable == EINA_TRUE) - elm_object_focus_set(elm_object_part_content_get(m_current_tab_bar, "close_click"), focusable); -} + void MoreMenuUI::setFocus(Eina_Bool focusable) + { + BROWSER_LOGD("[%s:%d]", __PRETTY_FUNCTION__, __LINE__); + elm_object_tree_focus_allow_set(getContent(), focusable); + if (focusable == EINA_TRUE) + elm_object_focus_set(elm_object_part_content_get + (m_current_tab_bar, "close_click"), focusable); + } #if PROFILE_MOBILE -void MoreMenuUI::shouldShowFindOnPage(bool show) -{ - m_shouldShowFindOnPage = show; -} + void MoreMenuUI::shouldShowFindOnPage(bool show) + { + m_shouldShowFindOnPage = show; + } -void MoreMenuUI::blockThumbnails(bool blockThumbnails) -{ - m_blockThumbnails = blockThumbnails; -} + void MoreMenuUI::blockThumbnails(bool blockThumbnails) + { + m_blockThumbnails = blockThumbnails; + } #endif #if !PROFILE_MOBILE -void MoreMenuUI::createFocusVector() -{ - BROWSER_LOGD("[%s:%d]", __PRETTY_FUNCTION__, __LINE__); - m_focusManager.addItem(elm_object_part_content_get(m_current_tab_bar, "close_click")); - m_focusManager.addItem(m_bookmarkButton); - m_focusManager.addItem(m_gengrid); - m_focusManager.setIterator(); -} + void MoreMenuUI::createFocusVector() + { + BROWSER_LOGD("[%s:%d]", __PRETTY_FUNCTION__, __LINE__); + m_focusManager. + addItem(elm_object_part_content_get + (m_current_tab_bar, "close_click")); + m_focusManager.addItem(m_bookmarkButton); + m_focusManager.addItem(m_gengrid); + m_focusManager.setIterator(); + } #endif -} + } } diff --git a/services/MoreMenuUI/MoreMenuUI.h b/services/MoreMenuUI/MoreMenuUI.h index 2433d1f2..1eb49b7e 100755 --- a/services/MoreMenuUI/MoreMenuUI.h +++ b/services/MoreMenuUI/MoreMenuUI.h @@ -39,140 +39,155 @@ #define M_UNUSED(x) (void)(x) -namespace tizen_browser{ -namespace base_ui{ +namespace tizen_browser +{ + namespace base_ui + { -class SimpleUI; -enum ItemType { + class SimpleUI; + enum ItemType + { #if PROFILE_MOBILE - ADD_TO_BOOKMARK, + ADD_TO_BOOKMARK, #ifdef READER_MODE_ENABLED - READER_MODE, + READER_MODE, #endif - HISTORY, - BOOKMARK_MANAGER, - SETTINGS, - FIND_ON_PAGE + HISTORY, + BOOKMARK_MANAGER, + SETTINGS, + FIND_ON_PAGE #else #ifdef READER_MODE_ENABLED - READER_MODE, + READER_MODE, #endif - BOOKMARK_MANAGER, - HISTORY, - SCREEN_ZOOM, + BOOKMARK_MANAGER, + HISTORY, + SCREEN_ZOOM, #ifdef START_MINIBROWSER_ENABLED - START_MINIBROWSER, + START_MINIBROWSER, #endif - VIEW_MOBILE_WEB, - VIEW_DESKTOP_WEB, - SETTINGS, - EXIT_BROWSER + VIEW_MOBILE_WEB, + VIEW_DESKTOP_WEB, + SETTINGS, + EXIT_BROWSER #endif -} item; - -class BROWSER_EXPORT MoreMenuUI - : public tizen_browser::interfaces::AbstractUIComponent - , public tizen_browser::core::AbstractService -{ -public: - MoreMenuUI(); - ~MoreMenuUI(); - - //AbstractUIComponent interface methods - void init(Evas_Object* parent); - Evas_Object* getContent(); - void showUI(); - void hideUI(); - bool isVisible() { return m_isVisible; } - - void setDesktopMode(bool desktopMode) {m_desktopMode = desktopMode;} - - void showCurrentTab(); - virtual std::string getName(); - void setFavIcon(tools::BrowserImagePtr favicon); - void setWebTitle(const std::string& title); - void setURL(const std::string& url); - void setHomePageInfo(); - - void changeBookmarkStatus(bool data); - void enableAddToBookmarkButton(bool data); - void createToastPopup(const char* text); - void setFocus(Eina_Bool focusable); + } item; + + class BROWSER_EXPORT MoreMenuUI:public tizen_browser::interfaces:: + AbstractUIComponent, public tizen_browser::core::AbstractService + { + public: + MoreMenuUI(); + ~MoreMenuUI(); + + //AbstractUIComponent interface methods + void init(Evas_Object * parent); + Evas_Object *getContent(); + void showUI(); + void hideUI(); + bool isVisible() + { + return m_isVisible; + } + + void setDesktopMode(bool desktopMode) + { + m_desktopMode = desktopMode; + } + + void showCurrentTab(); + virtual std::string getName(); + void setFavIcon(tools::BrowserImagePtr favicon); + void setWebTitle(const std::string & title); + void setURL(const std::string & url); + void setHomePageInfo(); + + void changeBookmarkStatus(bool data); + void enableAddToBookmarkButton(bool data); + void createToastPopup(const char *text); + void setFocus(Eina_Bool focusable); #if PROFILE_MOBILE - void updateBookmarkButton(); - void blockThumbnails(bool blockThumbnails); - void shouldShowFindOnPage(bool show); - void resetContent(); + void updateBookmarkButton(); + void blockThumbnails(bool blockThumbnails); + void shouldShowFindOnPage(bool show); + void resetContent(); - boost::signals2::signal findOnPageClicked; - boost::signals2::signal isRotated; + boost::signals2::signal < void() > findOnPageClicked; + boost::signals2::signal < bool() > isRotated; #endif - boost::signals2::signal addToBookmarkClicked; - boost::signals2::signal bookmarkManagerClicked; - boost::signals2::signal historyUIClicked; - boost::signals2::signal settingsClicked; - boost::signals2::signal closeMoreMenuClicked; - boost::signals2::signal zoomUIClicked; - boost::signals2::signal switchToMobileMode; - boost::signals2::signal switchToDesktopMode; - boost::signals2::signal isBookmark; - boost::signals2::signal bookmarkFlowClicked; -private: - Elm_Gengrid_Item_Class* createItemClass(); - void createMoreMenuLayout(); + boost::signals2::signal < void(int) > addToBookmarkClicked; + boost::signals2::signal < void() > bookmarkManagerClicked; + boost::signals2::signal < void() > historyUIClicked; + boost::signals2::signal < void() > settingsClicked; + boost::signals2::signal < void() > closeMoreMenuClicked; + boost::signals2::signal < void() > zoomUIClicked; + boost::signals2::signal < void() > switchToMobileMode; + boost::signals2::signal < void() > switchToDesktopMode; + boost::signals2::signal < bool() > isBookmark; + boost::signals2::signal < void(bool) > bookmarkFlowClicked; + private: + Elm_Gengrid_Item_Class * createItemClass(); + void createMoreMenuLayout(); #if PROFILE_MOBILE - void deleteMoreMenuLayout(); + void deleteMoreMenuLayout(); #endif - void createGengrid(); - void addItems(); - void addItem(ItemType item); - void clearItems(); - static char* _grid_text_get(void *data, Evas_Object *obj, const char *part); - static Evas_Object * _grid_content_get(void *data, Evas_Object *obj, const char *part); - static void _thumbSelected(void * data, Evas_Object * obj, void * event_info); - static void _exitClicked(); + void createGengrid(); + void addItems(); + void addItem(ItemType item); + void clearItems(); + static char *_grid_text_get(void *data, Evas_Object * obj, + const char *part); + static Evas_Object *_grid_content_get(void *data, Evas_Object * obj, + const char *part); + static void _thumbSelected(void *data, Evas_Object * obj, + void *event_info); + static void _exitClicked(); #if !PROFILE_MOBILE - void createFocusVector(); + void createFocusVector(); #endif - void setDocIcon(); - - static void _bookmarkButton_clicked(void *data, Evas_Object *obj, void *event_info); - static void _close_clicked(void *data, Evas_Object *obj, void *event_info); - - static void _timeout(void *data, Evas_Object *obj, void *event_info); - - 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); - Evas_Object *m_current_tab_bar; - Evas_Object *m_mm_layout; - Evas_Object *m_gengrid; - Evas_Object *m_parent; - Evas_Object *m_toastPopup; - Evas_Object *m_icon; - Evas_Object *m_bookmarkIcon; - Evas_Object *m_bookmarkButton; - Elm_Gengrid_Item_Class * m_item_class; - std::map m_map_menu_views; - std::string m_edjFilePath; - bool m_gengridSetup; - bool m_desktopMode; + void setDocIcon(); + + static void _bookmarkButton_clicked(void *data, Evas_Object * obj, + void *event_info); + static void _close_clicked(void *data, Evas_Object * obj, + void *event_info); + + static void _timeout(void *data, Evas_Object * obj, void *event_info); + + 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); + Evas_Object *m_current_tab_bar; + Evas_Object *m_mm_layout; + Evas_Object *m_gengrid; + Evas_Object *m_parent; + Evas_Object *m_toastPopup; + Evas_Object *m_icon; + Evas_Object *m_bookmarkIcon; + Evas_Object *m_bookmarkButton; + Elm_Gengrid_Item_Class *m_item_class; + std::map < ItemType, Elm_Object_Item * >m_map_menu_views; + std::string m_edjFilePath; + bool m_gengridSetup; + bool m_desktopMode; #if PROFILE_MOBILE - bool m_shouldShowFindOnPage; - bool m_blockThumbnails; - const unsigned int GENGRID_ITEM_WIDTH = 228; - const unsigned int GENGRID_ITEM_HEIGHT = 213; - const unsigned int GENGRID_ITEM_WIDTH_LANDSCAPE = 208; - const unsigned int GENGRID_ITEM_HEIGHT_LANDSCAPE = 213; + bool m_shouldShowFindOnPage; + bool m_blockThumbnails; + const unsigned int GENGRID_ITEM_WIDTH = 228; + const unsigned int GENGRID_ITEM_HEIGHT = 213; + const unsigned int GENGRID_ITEM_WIDTH_LANDSCAPE = 208; + const unsigned int GENGRID_ITEM_HEIGHT_LANDSCAPE = 213; #else - FocusManager m_focusManager; - const unsigned int GENGRID_ITEM_WIDTH = 364; - const unsigned int GENGRID_ITEM_HEIGHT = 320; + FocusManager m_focusManager; + const unsigned int GENGRID_ITEM_WIDTH = 364; + const unsigned int GENGRID_ITEM_HEIGHT = 320; #endif - bool m_isVisible; -}; + bool m_isVisible; + }; -} + } } #endif // BOOKMARKSUI_H diff --git a/services/PlatformInputManager/PlatformInputManager.cpp b/services/PlatformInputManager/PlatformInputManager.cpp old mode 100644 new mode 100755 index 49126dcd..b03eb66c --- a/services/PlatformInputManager/PlatformInputManager.cpp +++ b/services/PlatformInputManager/PlatformInputManager.cpp @@ -37,128 +37,136 @@ namespace tizen_browser { -namespace services -{ + namespace services + { -EXPORT_SERVICE(PlatformInputManager, "org.tizen.browser.platforminputmanager") + EXPORT_SERVICE(PlatformInputManager, + "org.tizen.browser.platforminputmanager") -PlatformInputManager::PlatformInputManager() + PlatformInputManager::PlatformInputManager() #if PROFILE_MOBILE - : m_HWKeyCallbackRegistered(false) + :m_HWKeyCallbackRegistered(false) #endif -{ - -} + { + } -void PlatformInputManager::init(Evas_Object* mainWindow) -{ - M_ASSERT(mainWindow); - //Suppress compilation warning - (void) mainWindow; - ecore_event_filter_add(NULL, __filter, NULL, this); -} + void PlatformInputManager::init(Evas_Object * mainWindow) + { + M_ASSERT(mainWindow); + //Suppress compilation warning + (void) mainWindow; + ecore_event_filter_add(NULL, __filter, NULL, this); + } #if PROFILE_MOBILE -void PlatformInputManager::registerHWKeyCallback(Evas_Object* view) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - M_ASSERT(view); - if (m_HWKeyCallbackRegistered) - return; - eext_object_event_callback_add(view, EEXT_CALLBACK_BACK, onHWBack, this); - eext_object_event_callback_add(view, EEXT_CALLBACK_MORE, onHWMore, this); - m_HWKeyCallbackRegistered = true; -} + void PlatformInputManager::registerHWKeyCallback(Evas_Object * view) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + M_ASSERT(view); + if (m_HWKeyCallbackRegistered) + return; + eext_object_event_callback_add(view, EEXT_CALLBACK_BACK, onHWBack, + this); + eext_object_event_callback_add(view, EEXT_CALLBACK_MORE, onHWMore, + this); + m_HWKeyCallbackRegistered = true; + } -void PlatformInputManager::unregisterHWKeyCallback(Evas_Object* view) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - M_ASSERT(view); - if (!m_HWKeyCallbackRegistered) - return; - eext_object_event_callback_del(view, EEXT_CALLBACK_BACK, onHWBack); - eext_object_event_callback_del(view, EEXT_CALLBACK_MORE, onHWMore); - m_HWKeyCallbackRegistered = false; -} + void PlatformInputManager::unregisterHWKeyCallback(Evas_Object * view) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + M_ASSERT(view); + if (!m_HWKeyCallbackRegistered) + return; + eext_object_event_callback_del(view, EEXT_CALLBACK_BACK, onHWBack); + eext_object_event_callback_del(view, EEXT_CALLBACK_MORE, onHWMore); + m_HWKeyCallbackRegistered = false; + } -void PlatformInputManager::onHWBack(void* data, Evas_Object*, void*) -{ - PlatformInputManager *self = static_cast(data); - self->backPressed(); -} + void PlatformInputManager::onHWBack(void *data, Evas_Object *, void *) + { + PlatformInputManager *self = + static_cast < PlatformInputManager * >(data); + self->backPressed(); + } -void PlatformInputManager::onHWMore(void* data, Evas_Object*, void*) -{ - PlatformInputManager *self = static_cast(data); - self->menuButtonPressed(); -} + void PlatformInputManager::onHWMore(void *data, Evas_Object *, void *) + { + PlatformInputManager *self = + static_cast < PlatformInputManager * >(data); + self->menuButtonPressed(); + } #endif -Eina_Bool PlatformInputManager::__filter(void *data, void */*loop_data*/, int type, void *event) -{ - PlatformInputManager *self = static_cast(data); + Eina_Bool PlatformInputManager::__filter(void *data, + void * /*loop_data */ , int type, + void *event) + { + PlatformInputManager *self = + static_cast < PlatformInputManager * >(data); - if (type == ECORE_EVENT_KEY_DOWN) { - M_ASSERT(event); - Ecore_Event_Key *ev = static_cast(event); + if (type == ECORE_EVENT_KEY_DOWN) { + M_ASSERT(event); + Ecore_Event_Key *ev = static_cast < Ecore_Event_Key * >(event); - if(!ev->keyname) - return EINA_TRUE; + if (!ev->keyname) + return EINA_TRUE; - BROWSER_LOGD("Pressed key: %s", ev->keyname); - const std::string keyName = ev->keyname; + BROWSER_LOGD("Pressed key: %s", ev->keyname); + const std::string keyName = ev->keyname; - /** + /** * Because MENU button launches org.tizen.menu * we use blue 'D' button on remote control or F4 on keyboard as substitution of MENU button */ - if(!keyName.compare("KEY_MENU") || !keyName.compare("KEY_BLUE")) { - self->menuPressed(); - return EINA_FALSE; - } - - if(!keyName.compare("KEY_RETURN")) - self->returnPressed(); - else if(!keyName.compare("KEY_LEFT")) - self->leftPressed(); - else if(!keyName.compare("KEY_RIGHT")) - self->rightPressed(); - else if(!keyName.compare("KEY_ENTER")) - self->enterPressed(); + if (!keyName.compare("KEY_MENU") || !keyName.compare("KEY_BLUE")) { + self->menuPressed(); + return EINA_FALSE; + } + + if (!keyName.compare("KEY_RETURN")) + self->returnPressed(); + else if (!keyName.compare("KEY_LEFT")) + self->leftPressed(); + else if (!keyName.compare("KEY_RIGHT")) + self->rightPressed(); + else if (!keyName.compare("KEY_ENTER")) + self->enterPressed(); #if PROFILE_MOBILE - else if(!keyName.compare("XF86Back")) - self->XF86BackPressed(); + else if (!keyName.compare("XF86Back")) + self->XF86BackPressed(); #else - else if(!keyName.compare("F11") || !keyName.compare("XF86Back")) - self->backPressed(); - else if(!keyName.compare("XF86Red")) // F4 - Red - self->redPressed(); - else if(!keyName.compare("XF86Green")) // F5 - Green - self->greenPressed(); - else if(!keyName.compare("XF86Yellow")) // F6 - Yellow - self->yellowPressed(); - else if(!keyName.compare("XF86Blue")) // F7 - Blue - self->bluePressed(); + else if (!keyName.compare("F11") || !keyName.compare("XF86Back")) + self->backPressed(); + else if (!keyName.compare("XF86Red")) // F4 - Red + self->redPressed(); + else if (!keyName.compare("XF86Green")) // F5 - Green + self->greenPressed(); + else if (!keyName.compare("XF86Yellow")) // F6 - Yellow + self->yellowPressed(); + else if (!keyName.compare("XF86Blue")) // F7 - Blue + self->bluePressed(); #endif - else if(!keyName.compare("Escape")) - self->escapePressed(); + else if (!keyName.compare("Escape")) + self->escapePressed(); - } else if(type == ECORE_EVENT_KEY_UP) { - M_ASSERT(event); - Ecore_Event_Key *ev = static_cast(event); + } else if (type == ECORE_EVENT_KEY_UP) { + M_ASSERT(event); + Ecore_Event_Key *ev = static_cast < Ecore_Event_Key * >(event); - if(!ev->keyname) - return EINA_TRUE; + if (!ev->keyname) + return EINA_TRUE; - BROWSER_LOGD("Released key: %s", ev->keyname); - } else if (type == ECORE_EVENT_MOUSE_BUTTON_DOWN) { - M_ASSERT(event); - Ecore_Event_Mouse_Button *ev = static_cast(event); - self->mouseClicked(ev->x, ev->y); + BROWSER_LOGD("Released key: %s", ev->keyname); + } else if (type == ECORE_EVENT_MOUSE_BUTTON_DOWN) { + M_ASSERT(event); + Ecore_Event_Mouse_Button *ev = + static_cast < Ecore_Event_Mouse_Button * >(event); + self->mouseClicked(ev->x, ev->y); + } + return EINA_TRUE; } - return EINA_TRUE; -} -} + } } diff --git a/services/PlatformInputManager/PlatformInputManager.h b/services/PlatformInputManager/PlatformInputManager.h old mode 100644 new mode 100755 index a2a8e107..0d956ecb --- a/services/PlatformInputManager/PlatformInputManager.h +++ b/services/PlatformInputManager/PlatformInputManager.h @@ -29,77 +29,80 @@ namespace tizen_browser { -namespace services -{ + namespace services + { -class BROWSER_EXPORT PlatformInputManager : public tizen_browser::core::AbstractService -{ -public: + class BROWSER_EXPORT PlatformInputManager:public tizen_browser::core:: + AbstractService + { + public: /** * @brief Default constructor with variable initialization. */ - PlatformInputManager(); + PlatformInputManager(); /** * @brief Initialization of the object, adding event filter, setting cursor to be always visible. */ - void init(Evas_Object *mainWindow); + void init(Evas_Object * mainWindow); /** * Signals emitted after certain button on keyboard/remote controller press. */ - boost::signals2::signal menuPressed; - boost::signals2::signal returnPressed; - boost::signals2::signal enterPressed; - boost::signals2::signal leftPressed; - boost::signals2::signal rightPressed; - boost::signals2::signal backPressed; - boost::signals2::signal escapePressed; + boost::signals2::signal < void() > menuPressed; + boost::signals2::signal < void() > returnPressed; + boost::signals2::signal < void() > enterPressed; + boost::signals2::signal < void() > leftPressed; + boost::signals2::signal < void() > rightPressed; + boost::signals2::signal < void() > backPressed; + boost::signals2::signal < void() > escapePressed; #if PROFILE_MOBILE - boost::signals2::signal XF86BackPressed; - boost::signals2::signal menuButtonPressed; + boost::signals2::signal < void() > XF86BackPressed; + boost::signals2::signal < void() > menuButtonPressed; #else - boost::signals2::signal redPressed; - boost::signals2::signal greenPressed; - boost::signals2::signal yellowPressed; - boost::signals2::signal bluePressed; + boost::signals2::signal < void() > redPressed; + boost::signals2::signal < void() > greenPressed; + boost::signals2::signal < void() > yellowPressed; + boost::signals2::signal < void() > bluePressed; #endif - boost::signals2::signal mouseClicked; + boost::signals2::signal < void(int, int) > mouseClicked; /** * @brief Returns current service's name. */ - virtual std::string getName(); + virtual std::string getName(); #if PROFILE_MOBILE - void unregisterHWKeyCallback(Evas_Object* view); - void registerHWKeyCallback(Evas_Object* view); + void unregisterHWKeyCallback(Evas_Object * view); + void registerHWKeyCallback(Evas_Object * view); #endif -private: + private: /** * @brief Struct holding parameters of mouse movement. * It is used in pointer mode to simulate mouse move after pressing arrows. */ - struct MouseMovementParams { - bool moveMousePointer; - int xMod, yMod; - int counter, speed; - }; + struct MouseMovementParams + { + bool moveMousePointer; + int xMod, yMod; + int counter, speed; + }; #if PROFILE_MOBILE - bool m_HWKeyCallbackRegistered; - static void onHWBack(void* data, Evas_Object*, void*); - static void onHWMore(void* data, Evas_Object*, void*); + bool m_HWKeyCallbackRegistered; + static void onHWBack(void *data, Evas_Object *, void *); + static void onHWMore(void *data, Evas_Object *, void *); #endif /** * @brief It process every input event and handles it if necessary. */ - static Eina_Bool __filter(void */*data*/, void */*loop_data*/, int /*type*/, void */*event*/); -}; + static Eina_Bool __filter(void * /*data */ , void * /*loop_data */ , + int /*type */ , void * /*event */); + }; -} + } } -#endif // PLATFORMINPUTMANAGER_H +#endif // PLATFORMINPUTMANAGER_H diff --git a/services/QuickAccess/DetailPopup.h b/services/QuickAccess/DetailPopup.h old mode 100644 new mode 100755 index 3b8670b1..9e7d406e --- a/services/QuickAccess/DetailPopup.h +++ b/services/QuickAccess/DetailPopup.h @@ -45,7 +45,7 @@ namespace base_ui{ bool isVisible() { return m_layout; } - boost::signals2::signal, bool)> openURL; + boost::signals2::signal, bool)> openURL; static const int HISTORY_ITEMS_NO; private: diff --git a/services/QuickAccess/QuickAccess.h b/services/QuickAccess/QuickAccess.h old mode 100644 new mode 100755 index 7b80c996..d24900bc --- a/services/QuickAccess/QuickAccess.h +++ b/services/QuickAccess/QuickAccess.h @@ -64,12 +64,12 @@ public: void refreshFocusChain(); #endif - boost::signals2::signal, int)> mostVisitedTileClicked; - boost::signals2::signal, bool)> openURL; - boost::signals2::signal getMostVisitedItems; - boost::signals2::signal getBookmarksItems; - boost::signals2::signal bookmarkManagerClicked; - boost::signals2::signal switchViewToWebPage; + boost::signals2::signal, int)> mostVisitedTileClicked; + boost::signals2::signal, bool)> openURL; + boost::signals2::signal getMostVisitedItems; + boost::signals2::signal getBookmarksItems; + boost::signals2::signal bookmarkManagerClicked; + boost::signals2::signal switchViewToWebPage; static const int MAX_THUMBNAIL_WIDTH; static const int MAX_THUMBNAIL_HEIGHT; diff --git a/services/SettingsUI/AutoFillForm/AutoFillFormComposeView.cpp b/services/SettingsUI/AutoFillForm/AutoFillFormComposeView.cpp old mode 100644 new mode 100755 index 81e001d8..01f78fa8 --- a/services/SettingsUI/AutoFillForm/AutoFillFormComposeView.cpp +++ b/services/SettingsUI/AutoFillForm/AutoFillFormComposeView.cpp @@ -338,9 +338,9 @@ Eina_Bool AutoFillFormComposeView::applyEntryData(void) full_name_str = _trim(full_name_str); full_name = full_name_str.c_str(); - if (full_name && strlen(full_name) && !isEntryHasOnlySpace(full_name)) + if (full_name && strlen(full_name) && !isEntryHasOnlySpace(full_name)) { m_itemForCompose->setName(full_name); - else { + } else { elm_object_focus_set(m_cancelButton, EINA_TRUE); // Closing virtual keyboard by changing the focus*/ return EINA_FALSE; } @@ -364,7 +364,6 @@ Eina_Bool AutoFillFormComposeView::applyEntryData(void) m_itemForCompose->setEmailAddress(email); if (m_itemForCompose->getItemComposeMode() == profile_edit) { - m_editErrorcode = m_itemForCompose->updateItem(); if (m_editErrorcode == profile_edit_failed || m_editErrorcode == profile_already_exist) { BROWSER_LOGD("Update failed!"); @@ -432,8 +431,7 @@ void AutoFillFormComposeView::__entry_changed_cb(void* data, Evas_Object* obj, v const char* text = elm_entry_entry_get(obj); if (text && strlen(text) > 0) { elm_object_signal_emit(cb_data->editfield, "show,clear,button,signal", ""); - } - else { + } else { elm_object_signal_emit(cb_data->editfield, "hide,clear,button,signal", ""); } @@ -444,7 +442,6 @@ void AutoFillFormComposeView::__entry_changed_cb(void* data, Evas_Object* obj, v elm_object_signal_emit(view->m_action_bar, "dim,done,button,signal", "but_vis"); elm_object_disabled_set(view->m_doneButton, EINA_TRUE); } - } void AutoFillFormComposeView::__entry_clicked_cb(void* data, Evas_Object* /*obj*/, void* /*event_info*/) diff --git a/services/SettingsUI/AutoFillForm/AutoFillFormComposeView.h b/services/SettingsUI/AutoFillForm/AutoFillFormComposeView.h old mode 100644 new mode 100755 diff --git a/services/SettingsUI/AutoFillForm/AutoFillFormItem.cpp b/services/SettingsUI/AutoFillForm/AutoFillFormItem.cpp old mode 100644 new mode 100755 index cd0753f8..070a06b5 --- a/services/SettingsUI/AutoFillForm/AutoFillFormItem.cpp +++ b/services/SettingsUI/AutoFillForm/AutoFillFormItem.cpp @@ -30,7 +30,7 @@ AutoFillFormItem::AutoFillFormItem(AutoFillFormItemData *item_data) m_itemData.profile_id = -1; if (item_data) { - m_itemData.profile_id= item_data->profile_id; + m_itemData.profile_id = item_data->profile_id; m_itemData.name = item_data->name; m_itemData.company = item_data->company; m_itemData.primary_address = item_data->primary_address; diff --git a/services/SettingsUI/AutoFillForm/AutoFillFormItem.h b/services/SettingsUI/AutoFillForm/AutoFillFormItem.h old mode 100644 new mode 100755 diff --git a/services/SettingsUI/AutoFillForm/AutoFillFormListView.cpp b/services/SettingsUI/AutoFillForm/AutoFillFormListView.cpp old mode 100644 new mode 100755 index fe202325..ea4acc87 --- a/services/SettingsUI/AutoFillForm/AutoFillFormListView.cpp +++ b/services/SettingsUI/AutoFillForm/AutoFillFormListView.cpp @@ -20,11 +20,13 @@ #include "AutoProfileDeleteView.h" #include "BrowserLogger.h" -namespace tizen_browser{ -namespace base_ui{ +namespace tizen_browser +{ + namespace base_ui + { -AutoFillFormListView::AutoFillFormListView(AutoFillFormManager *affm) - : m_manager(affm) + AutoFillFormListView::AutoFillFormListView(AutoFillFormManager * affm) + :m_manager(affm) , m_parent(nullptr) , m_mainLayout(nullptr) , m_add_btn(nullptr) @@ -32,220 +34,267 @@ AutoFillFormListView::AutoFillFormListView(AutoFillFormManager *affm) , m_genlist(nullptr) , m_action_bar(nullptr) , m_itemClass(nullptr) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - m_edjFilePath = EDJE_DIR; - m_edjFilePath.append("SettingsUI/SettingsMobileUI.edj"); -} - -AutoFillFormListView::~AutoFillFormListView(void) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - - evas_object_smart_callback_del(m_add_btn, "clicked", __add_profile_button_cb); - evas_object_smart_callback_del(m_del_btn, "clicked", __delete_profile_button_cb); - - if (m_genlist) { - elm_genlist_clear(m_genlist); - evas_object_del(m_genlist); - } - if (m_mainLayout) { - evas_object_hide(m_mainLayout); - evas_object_del(m_mainLayout); + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + m_edjFilePath = EDJE_DIR; + m_edjFilePath.append("SettingsUI/SettingsMobileUI.edj"); } - m_mainLayout = nullptr; - m_genlist = nullptr; -} - -Evas_Object* AutoFillFormListView::show(Evas_Object* parent, Evas_Object* action_bar) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - - elm_theme_extension_add(nullptr, m_edjFilePath.c_str()); - m_action_bar = action_bar; - elm_object_translatable_part_text_set(m_action_bar, "settings_title", "IDS_BR_BODY_AUTO_FILL_FORMS_T_TTS"); - - m_mainLayout = createMainLayout(parent); - evas_object_size_hint_weight_set(m_mainLayout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(m_mainLayout, EVAS_HINT_FILL, EVAS_HINT_FILL); - if (!m_mainLayout) { - BROWSER_LOGE("createMainLayout failed"); - return EINA_FALSE; + AutoFillFormListView::~AutoFillFormListView(void) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + + evas_object_smart_callback_del(m_add_btn, "clicked", + __add_profile_button_cb); + evas_object_smart_callback_del(m_del_btn, "clicked", + __delete_profile_button_cb); + + if (m_genlist) + { + elm_genlist_clear(m_genlist); + evas_object_del(m_genlist); + } + if (m_mainLayout) + { + evas_object_hide(m_mainLayout); + evas_object_del(m_mainLayout); + } + m_mainLayout = nullptr; + m_genlist = nullptr; } - m_add_btn = elm_button_add(m_mainLayout); - elm_object_style_set(m_add_btn, "basic_button"); - evas_object_smart_callback_add(m_add_btn, "clicked", __add_profile_button_cb, this); - elm_object_part_content_set(m_mainLayout, "add_profile_button", m_add_btn); - - m_del_btn = elm_button_add(m_mainLayout); - elm_object_style_set(m_del_btn, "basic_button"); - evas_object_smart_callback_add(m_del_btn, "clicked", __delete_profile_button_cb, this); - elm_object_part_content_set(m_mainLayout, "delete_profile_button", m_del_btn); - - evas_object_show(m_mainLayout); - elm_layout_content_set(parent, "autofill_sub_swallow", m_mainLayout); - m_parent = parent; - - return m_mainLayout; -} - -void AutoFillFormListView::refreshView(void) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - elm_genlist_clear(m_genlist); - appendGenlist(m_genlist); -} - -Evas_Object *AutoFillFormListView::createMainLayout(Evas_Object *parent) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - - Evas_Object *layout = elm_layout_add(parent); - if (!layout) { - BROWSER_LOGD("elm_layout_add failed"); - return nullptr; - } - elm_layout_file_set(layout, m_edjFilePath.c_str(), "afflv-layout"); - evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL); - - elm_object_translatable_part_text_set(layout, "title_text", "IDS_BR_BODY_AUTO_FILL_FORMS_T_TTS"); - elm_object_translatable_part_text_set(layout, "profile_text", "IDS_BR_HEADER_PROFILES"); - elm_object_translatable_part_text_set(layout, "add_profile_text", "IDS_BR_OPT_ADD"); - elm_object_translatable_part_text_set(layout, "delete_profile_text", "IDS_BR_SK_DELETE_ABB"); - - m_genlist = createGenlist(layout); - if (!m_genlist) { - BROWSER_LOGE("elm_genlist_add failed"); - return nullptr; + Evas_Object *AutoFillFormListView::show(Evas_Object * parent, + Evas_Object * action_bar) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + + elm_theme_extension_add(nullptr, m_edjFilePath.c_str()); + + m_action_bar = action_bar; + elm_object_translatable_part_text_set(m_action_bar, "settings_title", + "IDS_BR_BODY_AUTO_FILL_FORMS_T_TTS"); + + m_mainLayout = createMainLayout(parent); + evas_object_size_hint_weight_set(m_mainLayout, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(m_mainLayout, EVAS_HINT_FILL, + EVAS_HINT_FILL); + if (!m_mainLayout) { + BROWSER_LOGE("createMainLayout failed"); + return EINA_FALSE; + } + + m_add_btn = elm_button_add(m_mainLayout); + elm_object_style_set(m_add_btn, "basic_button"); + evas_object_smart_callback_add(m_add_btn, "clicked", + __add_profile_button_cb, this); + elm_object_part_content_set(m_mainLayout, "add_profile_button", + m_add_btn); + + m_del_btn = elm_button_add(m_mainLayout); + elm_object_style_set(m_del_btn, "basic_button"); + evas_object_smart_callback_add(m_del_btn, "clicked", + __delete_profile_button_cb, this); + elm_object_part_content_set(m_mainLayout, "delete_profile_button", + m_del_btn); + + evas_object_show(m_mainLayout); + elm_layout_content_set(parent, "autofill_sub_swallow", m_mainLayout); + m_parent = parent; + + return m_mainLayout; } - evas_object_show(m_genlist); - elm_object_part_content_set(layout, "afflv_genlist", m_genlist); - return layout; -} -Evas_Object *AutoFillFormListView::createGenlist(Evas_Object *parent) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - - Evas_Object *genlist = elm_genlist_add(parent); - evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL); - if (!genlist) { - BROWSER_LOGE("elm_genlist_add failed"); - return nullptr; + void AutoFillFormListView::refreshView(void) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + elm_genlist_clear(m_genlist); + appendGenlist(m_genlist); } - m_itemClass = elm_genlist_item_class_new(); - if (!m_itemClass) { - BROWSER_LOGE("elm_genlist_item_class_new for description_item_class failed"); - return EINA_FALSE; + Evas_Object *AutoFillFormListView::createMainLayout(Evas_Object * parent) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + + Evas_Object *layout = elm_layout_add(parent); + if (!layout) { + BROWSER_LOGD("elm_layout_add failed"); + return nullptr; + } + elm_layout_file_set(layout, m_edjFilePath.c_str(), "afflv-layout"); + evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL); + + elm_object_translatable_part_text_set(layout, "title_text", + "IDS_BR_BODY_AUTO_FILL_FORMS_T_TTS"); + elm_object_translatable_part_text_set(layout, "profile_text", + "IDS_BR_HEADER_PROFILES"); + elm_object_translatable_part_text_set(layout, "add_profile_text", + "IDS_BR_OPT_ADD"); + elm_object_translatable_part_text_set(layout, "delete_profile_text", + "IDS_BR_SK_DELETE_ABB"); + + m_genlist = createGenlist(layout); + if (!m_genlist) { + BROWSER_LOGE("elm_genlist_add failed"); + return nullptr; + } + evas_object_show(m_genlist); + elm_object_part_content_set(layout, "afflv_genlist", m_genlist); + return layout; } - m_itemClass->item_style = "afflv_item"; - m_itemClass->func.content_get = nullptr; - - m_itemClass->func.text_get = __text_get_cb; - m_itemClass->func.state_get = nullptr; - m_itemClass->func.del = nullptr; - - m_manager->refreshListView(); - return genlist; -} - -const char *AutoFillFormListView::getEachItemFullName(unsigned int index) -{ - if (m_manager->getAutoFillFormItemCount() == 0) - return nullptr; - return (m_manager->getItemList())[index]->getName(); -} - -Eina_Bool AutoFillFormListView::appendGenlist(Evas_Object *genlist) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - - unsigned int item_count = m_manager->getAutoFillFormItemCount(); - BROWSER_LOGD("Item count : [%d]", item_count); - if (item_count > 0) { - for (unsigned int i = 0; i < item_count; i++) { - genlistCallbackData* item_callback_data = new genlistCallbackData; - item_callback_data->menu_index = i; - item_callback_data->user_data = this; - item_callback_data->it = elm_genlist_item_append(genlist, m_itemClass, - item_callback_data, NULL, ELM_GENLIST_ITEM_NONE, __genlist_item_clicked_cb, item_callback_data); - } - if (m_mainLayout) { - elm_object_signal_emit(m_mainLayout, "show,del,button,signal", ""); - elm_object_disabled_set(m_del_btn, false); - } - } - else { - if (m_mainLayout) { - elm_object_signal_emit(m_mainLayout, "dim,del,button,signal", ""); - elm_object_disabled_set(m_del_btn, true); - } + Evas_Object *AutoFillFormListView::createGenlist(Evas_Object * parent) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + + Evas_Object *genlist = elm_genlist_add(parent); + evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, + EVAS_HINT_FILL); + if (!genlist) { + BROWSER_LOGE("elm_genlist_add failed"); + return nullptr; + } + + m_itemClass = elm_genlist_item_class_new(); + if (!m_itemClass) { + BROWSER_LOGE + ("elm_genlist_item_class_new for description_item_class failed"); + return EINA_FALSE; + } + m_itemClass->item_style = "afflv_item"; + m_itemClass->func.content_get = nullptr; + + m_itemClass->func.text_get = __text_get_cb; + m_itemClass->func.state_get = nullptr; + m_itemClass->func.del = nullptr; + + m_manager->refreshListView(); + + return genlist; } - return EINA_TRUE; -} - -char *AutoFillFormListView::__text_get_cb(void* data, Evas_Object* /*obj*/, const char *part) -{ - BROWSER_LOGD("part[%s]", part); - - genlistCallbackData *callback_data = static_cast(data); - AutoFillFormListView *view = static_cast(callback_data->user_data); - - if (!strcmp(part, "item_title")) { - const char *item_full_name = view->getEachItemFullName((unsigned int)callback_data->menu_index); - if (item_full_name) - return strdup(item_full_name); + const char *AutoFillFormListView::getEachItemFullName(unsigned int index) + { + if (m_manager->getAutoFillFormItemCount() == 0) + return nullptr; + return (m_manager->getItemList())[index]->getName(); } - return nullptr; - -} -void AutoFillFormListView::__add_profile_button_cb(void* data, Evas_Object* /*obj*/, void* /*event_info*/) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - - /* create new profile */ - AutoFillFormListView *list_view = static_cast(data); - list_view->m_manager->showComposeView(); -} + Eina_Bool AutoFillFormListView::appendGenlist(Evas_Object * genlist) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + + unsigned int item_count = m_manager->getAutoFillFormItemCount(); + BROWSER_LOGD("Item count : [%d]", item_count); + if (item_count > 0) { + for (unsigned int i = 0; i < item_count; i++) { + genlistCallbackData *item_callback_data = new genlistCallbackData; + item_callback_data->menu_index = i; + item_callback_data->user_data = this; + item_callback_data->it = + elm_genlist_item_append(genlist, m_itemClass, item_callback_data, + NULL, ELM_GENLIST_ITEM_NONE, + __genlist_item_clicked_cb, + item_callback_data); + } + if (m_mainLayout) { + elm_object_signal_emit(m_mainLayout, "show,del,button,signal", ""); + elm_object_disabled_set(m_del_btn, false); + } + } else { + if (m_mainLayout) { + elm_object_signal_emit(m_mainLayout, "dim,del,button,signal", ""); + elm_object_disabled_set(m_del_btn, true); + } + } + + return EINA_TRUE; + } -void AutoFillFormListView::__delete_profile_button_cb(void* data, Evas_Object* /*obj*/, void* /*event_info*/) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - AutoFillFormListView *afflv = static_cast(data); - afflv->m_manager->showDeleteView(); -} + char *AutoFillFormListView::__text_get_cb(void *data, + Evas_Object * /*obj */ , + const char *part) + { + BROWSER_LOGD("part[%s]", part); + + genlistCallbackData *callback_data = + static_cast < genlistCallbackData * >(data); + AutoFillFormListView *view = + static_cast < AutoFillFormListView * >(callback_data->user_data); + + if (!strcmp(part, "item_title")) { + const char *item_full_name = + view->getEachItemFullName((unsigned int) callback_data->menu_index); + if (item_full_name) + return strdup(item_full_name); + } + return nullptr; + } -void AutoFillFormListView::__back_button_cb(void* data, Evas_Object* /*obj*/, void* /*event_info*/) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - AutoFillFormListView *list_view = static_cast(data); - list_view->hide(); -} + void AutoFillFormListView::__add_profile_button_cb(void *data, + Evas_Object * /*obj */ + , + void * /*event_info */ + ) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + + /* create new profile */ + AutoFillFormListView *list_view = + static_cast < AutoFillFormListView * >(data); + list_view->m_manager->showComposeView(); + } -void AutoFillFormListView::__genlist_item_clicked_cb(void* data, Evas_Object* /*obj*/, void* /*event_info*/) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + void AutoFillFormListView::__delete_profile_button_cb(void *data, + Evas_Object * + /*obj */ , + void * + /*event_info */ ) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + AutoFillFormListView *afflv = + static_cast < AutoFillFormListView * >(data); + afflv->m_manager->showDeleteView(); + } - genlistCallbackData *callback_data = static_cast(data); - AutoFillFormListView *view = static_cast(callback_data->user_data); + void AutoFillFormListView::__back_button_cb(void *data, + Evas_Object * /*obj */ , + void * /*event_info */ ) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + AutoFillFormListView *list_view = + static_cast < AutoFillFormListView * >(data); + list_view->hide(); + } - elm_genlist_item_selected_set(callback_data->it, EINA_FALSE); - view->m_manager->showComposeView((view->m_manager->getItemList())[callback_data->menu_index]); -} + void AutoFillFormListView::__genlist_item_clicked_cb(void *data, + Evas_Object * + /*obj */ , + void * + /*event_info */ ) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + + genlistCallbackData *callback_data = + static_cast < genlistCallbackData * >(data); + AutoFillFormListView *view = + static_cast < AutoFillFormListView * >(callback_data->user_data); + + elm_genlist_item_selected_set(callback_data->it, EINA_FALSE); + view->m_manager-> + showComposeView((view->m_manager->getItemList())[callback_data-> + menu_index]); + } -void AutoFillFormListView::hide() -{ - evas_object_hide(m_mainLayout); - m_manager->listViewBackClicked(); -} + void AutoFillFormListView::hide() + { + evas_object_hide(m_mainLayout); + m_manager->listViewBackClicked(); + } -} + } } diff --git a/services/SettingsUI/AutoFillForm/AutoFillFormListView.h b/services/SettingsUI/AutoFillForm/AutoFillFormListView.h old mode 100644 new mode 100755 diff --git a/services/SettingsUI/AutoFillForm/AutoFillFormManager.cpp b/services/SettingsUI/AutoFillForm/AutoFillFormManager.cpp index b733f787..5b074e07 100755 --- a/services/SettingsUI/AutoFillForm/AutoFillFormManager.cpp +++ b/services/SettingsUI/AutoFillForm/AutoFillFormManager.cpp @@ -21,41 +21,43 @@ #include "AutoFillFormComposeView.h" #include "BrowserLogger.h" -namespace tizen_browser{ -namespace base_ui{ +namespace tizen_browser +{ + namespace base_ui + { -AutoFillFormManager::AutoFillFormManager(void) + AutoFillFormManager::AutoFillFormManager(void) : m_listView(nullptr) - , m_composer(nullptr) - , m_deleteView(nullptr) - , m_ewkContext(ewk_context_default_get()) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + , m_composer(nullptr) + , m_deleteView(nullptr) + , m_ewkContext(ewk_context_default_get()) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - m_AutoFillFormItemList = loadEntireItemList(); -} + m_AutoFillFormItemList = loadEntireItemList(); + } -AutoFillFormManager::~AutoFillFormManager(void) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + AutoFillFormManager::~AutoFillFormManager(void) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (m_listView) - delete m_listView; - m_listView = nullptr; + if (m_listView) + delete m_listView; + m_listView = nullptr; - if (m_deleteView) - delete m_deleteView; - m_deleteView = nullptr; + if (m_deleteView) + delete m_deleteView; + m_deleteView = nullptr; - if(m_composer) - delete m_composer; - m_composer = nullptr; -} + if (m_composer) + delete m_composer; + m_composer = nullptr; + } -void AutoFillFormManager::refreshListView() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - m_timer = ecore_timer_add(0.3, load_list_timer, this); + void AutoFillFormManager::refreshListView() + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + m_timer = ecore_timer_add(0.3, load_list_timer, this); // TODO: Delete above workaround and uncomment bellow when task is fixed. // http://165.213.149.170/jira/browse/TWF-471 // http://165.213.149.170/jira/browse/TWF-541 @@ -63,229 +65,265 @@ void AutoFillFormManager::refreshListView() // loadEntireItemList(); // if (m_listView) // m_listView->refreshView(); -} + } -Eina_Bool AutoFillFormManager::load_list_timer(void *data) -{ - BROWSER_LOGD("[%s,%d]", __func__, __LINE__); - AutoFillFormManager * aff = static_cast(data); + Eina_Bool AutoFillFormManager::load_list_timer(void *data) + { + BROWSER_LOGD("[%s,%d]", __func__, __LINE__); + AutoFillFormManager *aff = static_cast < AutoFillFormManager * >(data); - aff->loadEntireItemList(); - if (aff->m_listView) - aff->m_listView->refreshView(); - if (aff->m_deleteView) - aff->m_deleteView->refreshView(); + aff->loadEntireItemList(); + if (aff->m_listView) + aff->m_listView->refreshView(); + if (aff->m_deleteView) + aff->m_deleteView->refreshView(); - ecore_timer_del(aff->m_timer); - return ECORE_CALLBACK_CANCEL; -} + ecore_timer_del(aff->m_timer); + return ECORE_CALLBACK_CANCEL; + } -std::vector AutoFillFormManager::loadEntireItemList(void) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + std::vector < + AutoFillFormItem * >AutoFillFormManager::loadEntireItemList(void) { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + + m_AutoFillFormItemList.clear(); - m_AutoFillFormItemList.clear(); + Eina_List *entire_item_list = + ewk_context_form_autofill_profile_get_all(m_ewkContext); - Eina_List *entire_item_list = ewk_context_form_autofill_profile_get_all(m_ewkContext); + Eina_List *list = nullptr; + void *item_data = nullptr; - Eina_List *list = nullptr; - void *item_data = nullptr; + EINA_LIST_FOREACH(entire_item_list, list, item_data) { + if (item_data) { + Ewk_Autofill_Profile *profile = + static_cast < Ewk_Autofill_Profile * >(item_data); + AutoFillFormItem *item = createNewAutoFillFormItem(profile); + if (item) + m_AutoFillFormItemList.push_back(item); + } + } - EINA_LIST_FOREACH(entire_item_list, list, item_data) { - if (item_data) { - Ewk_Autofill_Profile *profile = static_cast(item_data); - AutoFillFormItem *item = createNewAutoFillFormItem(profile); - if (item) - m_AutoFillFormItemList.push_back(item); - } + BROWSER_LOGD("----------- List size : [%d] ---------", + m_AutoFillFormItemList.size()); + return m_AutoFillFormItemList; } - BROWSER_LOGD("----------- List size : [%d] ---------", m_AutoFillFormItemList.size()); - return m_AutoFillFormItemList; -} + Eina_Bool AutoFillFormManager::addItemToList(AutoFillFormItem * item) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + m_AutoFillFormItemList.push_back(item); + return EINA_TRUE; + } -Eina_Bool AutoFillFormManager::addItemToList(AutoFillFormItem *item) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - m_AutoFillFormItemList.push_back(item); - return EINA_TRUE; -} + Eina_Bool AutoFillFormManager::deleteAutoFillFormItem(AutoFillFormItem * + item) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + + m_AutoFillFormItemList. + erase(std:: + remove_if(m_AutoFillFormItemList.begin(), + m_AutoFillFormItemList.end(), + [&](AutoFillFormItem * el)->Eina_Bool { + return (el->getProfileId() == + item-> + getProfileId())? + ewk_context_form_autofill_profile_remove(m_ewkContext, + item-> + getProfileId + ()) : + EINA_FALSE;}), m_AutoFillFormItemList.end() + ); + return EINA_TRUE; + } -Eina_Bool AutoFillFormManager::deleteAutoFillFormItem(AutoFillFormItem *item) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - - m_AutoFillFormItemList.erase( - std::remove_if( - m_AutoFillFormItemList.begin(), - m_AutoFillFormItemList.end(), - [&](AutoFillFormItem* el) -> Eina_Bool { - return (el->getProfileId() == item->getProfileId()) ? - ewk_context_form_autofill_profile_remove(m_ewkContext, item->getProfileId()) : - EINA_FALSE; - } - ), - m_AutoFillFormItemList.end() - ); - return EINA_TRUE; -} + Eina_Bool AutoFillFormManager::deleteAllAutoFillFormItems(void) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + m_AutoFillFormItemList.clear(); -Eina_Bool AutoFillFormManager::deleteAllAutoFillFormItems(void) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - m_AutoFillFormItemList.clear(); + Eina_List *entire_item_list = + ewk_context_form_autofill_profile_get_all(m_ewkContext); - Eina_List *entire_item_list = ewk_context_form_autofill_profile_get_all(m_ewkContext); + Eina_List *list = nullptr; + void *item_data = nullptr; - Eina_List *list = nullptr; - void *item_data = nullptr; + EINA_LIST_FOREACH(entire_item_list, list, item_data) { + if (item_data) { + Ewk_Autofill_Profile *profile = + static_cast < Ewk_Autofill_Profile * >(item_data); + ewk_context_form_autofill_profile_remove(m_ewkContext, + ewk_autofill_profile_id_get + (profile)); + } + } - EINA_LIST_FOREACH(entire_item_list, list, item_data) { - if (item_data) { - Ewk_Autofill_Profile *profile = static_cast(item_data); - ewk_context_form_autofill_profile_remove(m_ewkContext, ewk_autofill_profile_id_get(profile)); - } + return EINA_TRUE; } - return EINA_TRUE; -} - -unsigned int AutoFillFormManager::getAutoFillFormItemCount(void) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - return m_AutoFillFormItemList.size(); -} - -AutoFillFormItem *AutoFillFormManager::createNewAutoFillFormItem(Ewk_Autofill_Profile *profile) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - AutoFillFormItem *item = nullptr; - if (!profile) - item = new AutoFillFormItem(nullptr); - else { - AutoFillFormItemData *item_data = new AutoFillFormItemData; - if (!item_data) { - BROWSER_LOGE("Malloc failed to get item_data"); - return nullptr; - } - memset(item_data, 0x00, sizeof(AutoFillFormItemData)); - item_data->profile_id = ewk_autofill_profile_id_get(profile); - item_data->name = ewk_autofill_profile_data_get(profile, EWK_PROFILE_NAME); - item_data->company = ewk_autofill_profile_data_get(profile, EWK_PROFILE_COMPANY); - item_data->primary_address = ewk_autofill_profile_data_get(profile, EWK_PROFILE_ADDRESS1); - item_data->secondary_address = ewk_autofill_profile_data_get(profile, EWK_PROFILE_ADDRESS2); - item_data->city_town = ewk_autofill_profile_data_get(profile, EWK_PROFILE_CITY_TOWN); - item_data->state_province_region = ewk_autofill_profile_data_get(profile, EWK_PROFILE_STATE_PROVINCE_REGION); - item_data->post_code = ewk_autofill_profile_data_get(profile, EWK_PROFILE_ZIPCODE); - item_data->country = ewk_autofill_profile_data_get(profile, EWK_PROFILE_COUNTRY); - item_data->phone_number = ewk_autofill_profile_data_get(profile, EWK_PROFILE_PHONE); - item_data->email_address = ewk_autofill_profile_data_get(profile, EWK_PROFILE_EMAIL); - item_data->activation = false; - item_data->compose_mode = profile_edit; - - item = new AutoFillFormItem(item_data); - delete item_data; - item_data= nullptr; + unsigned int AutoFillFormManager::getAutoFillFormItemCount(void) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + return m_AutoFillFormItemList.size(); } - return item; -} + AutoFillFormItem *AutoFillFormManager:: + createNewAutoFillFormItem(Ewk_Autofill_Profile * profile) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + AutoFillFormItem *item = nullptr; + if (!profile) { + item = new AutoFillFormItem(nullptr); + } else { + AutoFillFormItemData *item_data = new AutoFillFormItemData; + if (!item_data) { + BROWSER_LOGE("Malloc failed to get item_data"); + return nullptr; + } + memset(item_data, 0x00, sizeof(AutoFillFormItemData)); + item_data->profile_id = ewk_autofill_profile_id_get(profile); + item_data->name = + ewk_autofill_profile_data_get(profile, EWK_PROFILE_NAME); + item_data->company = + ewk_autofill_profile_data_get(profile, EWK_PROFILE_COMPANY); + item_data->primary_address = + ewk_autofill_profile_data_get(profile, EWK_PROFILE_ADDRESS1); + item_data->secondary_address = + ewk_autofill_profile_data_get(profile, EWK_PROFILE_ADDRESS2); + item_data->city_town = + ewk_autofill_profile_data_get(profile, EWK_PROFILE_CITY_TOWN); + item_data->state_province_region = + ewk_autofill_profile_data_get(profile, + EWK_PROFILE_STATE_PROVINCE_REGION); + item_data->post_code = + ewk_autofill_profile_data_get(profile, EWK_PROFILE_ZIPCODE); + item_data->country = + ewk_autofill_profile_data_get(profile, EWK_PROFILE_COUNTRY); + item_data->phone_number = + ewk_autofill_profile_data_get(profile, EWK_PROFILE_PHONE); + item_data->email_address = + ewk_autofill_profile_data_get(profile, EWK_PROFILE_EMAIL); + item_data->activation = false; + item_data->compose_mode = profile_edit; + + item = new AutoFillFormItem(item_data); + delete item_data; + item_data = nullptr; + } + + return item; + } -Evas_Object* AutoFillFormManager::showListView(void) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + Evas_Object *AutoFillFormManager::showListView(void) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (m_listView) - deleteListView(); + if (m_listView) + deleteListView(); - m_listView = new AutoFillFormListView(this); - elm_object_signal_emit(m_action_bar,"back,icon,change", "del_but"); - return m_listView->show(m_parent, m_action_bar); -} + m_listView = new AutoFillFormListView(this); + elm_object_signal_emit(m_action_bar, "back,icon,change", "del_but"); + return m_listView->show(m_parent, m_action_bar); + } -Evas_Object* AutoFillFormManager::showComposeView(AutoFillFormItem *item) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + Evas_Object *AutoFillFormManager::showComposeView(AutoFillFormItem * item) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (m_composer) - deleteComposer(); + if (m_composer) + deleteComposer(); - m_composer = new AutoFillFormComposeView(this, item); + m_composer = new AutoFillFormComposeView(this, item); - return m_composer->show(m_parent, m_action_bar); -} + return m_composer->show(m_parent, m_action_bar); + } -Evas_Object* AutoFillFormManager::showDeleteView(void) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + Evas_Object *AutoFillFormManager::showDeleteView(void) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (m_deleteView) - deleteDeleteView(); + if (m_deleteView) + deleteDeleteView(); - elm_object_signal_emit(m_action_bar,"back,icon,change", "del_but"); - m_deleteView = new AutoProfileDeleteView(this); + elm_object_signal_emit(m_action_bar, "back,icon,change", "del_but"); + m_deleteView = new AutoProfileDeleteView(this); - return m_deleteView->show(m_parent, m_action_bar); -} + return m_deleteView->show(m_parent, m_action_bar); + } -Eina_Bool AutoFillFormManager::deleteListView(void) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (m_listView) { - delete m_listView; - m_listView = nullptr; + Eina_Bool AutoFillFormManager::deleteListView(void) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + if (m_listView) { + delete m_listView; + m_listView = nullptr; + } + return EINA_TRUE; } - return EINA_TRUE; -} -Eina_Bool AutoFillFormManager::deleteComposer(void) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + Eina_Bool AutoFillFormManager::deleteComposer(void) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (m_composer) { - delete m_composer; - m_composer = nullptr; + if (m_composer) { + delete m_composer; + m_composer = nullptr; + } + return EINA_TRUE; } - return EINA_TRUE; -} -Eina_Bool AutoFillFormManager::deleteDeleteView(void) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (m_deleteView) { - delete m_deleteView; - m_deleteView = nullptr; + Eina_Bool AutoFillFormManager::deleteDeleteView(void) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + if (m_deleteView) { + delete m_deleteView; + m_deleteView = nullptr; + } + elm_object_signal_emit(m_action_bar, "back,icon,change", "del_but"); + return EINA_TRUE; } - elm_object_signal_emit(m_action_bar, "back,icon,change", "del_but"); - return EINA_TRUE; -} -void AutoFillFormManager::seeAllData(void) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - - for (unsigned int i = 0; i < m_AutoFillFormItemList.size(); i++) { - BROWSER_LOGD("m_AutoFillFormItemList[%d] item - start", i); - BROWSER_LOGD("************************************************************************************"); - BROWSER_LOGD("m_AutoFillFormItemList[%d].id[%d]", i, m_AutoFillFormItemList[i]->getProfileId()); - BROWSER_LOGD("m_AutoFillFormItemList[%d].m_name[%s]", i, m_AutoFillFormItemList[i]->getName()); - BROWSER_LOGD("m_AutoFillFormItemList[%d].m_company[%s]", i, m_AutoFillFormItemList[i]->getCompany()); - BROWSER_LOGD("m_AutoFillFormItemList[%d].m_primary_address[%s]", i, m_AutoFillFormItemList[i]->getPrimaryAddress()); - BROWSER_LOGD("m_AutoFillFormItemList[%d].m_secondary_address[%s]", i, m_AutoFillFormItemList[i]->getSecondaryAddress2()); - BROWSER_LOGD("m_AutoFillFormItemList[%d].m_city_town[%s]", i, m_AutoFillFormItemList[i]->getCityTown()); - BROWSER_LOGD("m_AutoFillFormItemList[%d].m_state_province_region[%s]", i, m_AutoFillFormItemList[i]->getStateProvince()); - BROWSER_LOGD("m_AutoFillFormItemList[%d].m_post_code[%s]", i, m_AutoFillFormItemList[i]->getPostCode()); - BROWSER_LOGD("m_AutoFillFormItemList[%d].m_country_region[%s]", i, m_AutoFillFormItemList[i]->getCountry()); - BROWSER_LOGD("m_AutoFillFormItemList[%d].m_phone_number[%s]", i, m_AutoFillFormItemList[i]->getPhoneNumber()); - BROWSER_LOGD("m_AutoFillFormItemList[%d].m_email_address[%s]", i, m_AutoFillFormItemList[i]->getEmailAddress()); - BROWSER_LOGD("m_AutoFillFormItemList[%d].m_activation[%d]", i, m_AutoFillFormItemList[i]->getActivation()); - BROWSER_LOGD("************************************************************************************"); - BROWSER_LOGD("m_AutoFillFormItemList[%d] item - end", i); + void AutoFillFormManager::seeAllData(void) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + + for (unsigned int i = 0; i < m_AutoFillFormItemList.size(); i++) { + BROWSER_LOGD("m_AutoFillFormItemList[%d] item - start", i); + BROWSER_LOGD + ("************************************************************************************"); + BROWSER_LOGD("m_AutoFillFormItemList[%d].id[%d]", i, + m_AutoFillFormItemList[i]->getProfileId()); + BROWSER_LOGD("m_AutoFillFormItemList[%d].m_name[%s]", i, + m_AutoFillFormItemList[i]->getName()); + BROWSER_LOGD("m_AutoFillFormItemList[%d].m_company[%s]", i, + m_AutoFillFormItemList[i]->getCompany()); + BROWSER_LOGD("m_AutoFillFormItemList[%d].m_primary_address[%s]", i, + m_AutoFillFormItemList[i]->getPrimaryAddress()); + BROWSER_LOGD("m_AutoFillFormItemList[%d].m_secondary_address[%s]", i, + m_AutoFillFormItemList[i]->getSecondaryAddress2()); + BROWSER_LOGD("m_AutoFillFormItemList[%d].m_city_town[%s]", i, + m_AutoFillFormItemList[i]->getCityTown()); + BROWSER_LOGD("m_AutoFillFormItemList[%d].m_state_province_region[%s]", + i, m_AutoFillFormItemList[i]->getStateProvince()); + BROWSER_LOGD("m_AutoFillFormItemList[%d].m_post_code[%s]", i, + m_AutoFillFormItemList[i]->getPostCode()); + BROWSER_LOGD("m_AutoFillFormItemList[%d].m_country_region[%s]", i, + m_AutoFillFormItemList[i]->getCountry()); + BROWSER_LOGD("m_AutoFillFormItemList[%d].m_phone_number[%s]", i, + m_AutoFillFormItemList[i]->getPhoneNumber()); + BROWSER_LOGD("m_AutoFillFormItemList[%d].m_email_address[%s]", i, + m_AutoFillFormItemList[i]->getEmailAddress()); + BROWSER_LOGD("m_AutoFillFormItemList[%d].m_activation[%d]", i, + m_AutoFillFormItemList[i]->getActivation()); + BROWSER_LOGD + ("************************************************************************************"); + BROWSER_LOGD("m_AutoFillFormItemList[%d] item - end", i); + } + + return; } - return; -} - -} + } } diff --git a/services/SettingsUI/AutoFillForm/AutoFillFormManager.h b/services/SettingsUI/AutoFillForm/AutoFillFormManager.h old mode 100644 new mode 100755 index 822d7966..7d40afb7 --- a/services/SettingsUI/AutoFillForm/AutoFillFormManager.h +++ b/services/SettingsUI/AutoFillForm/AutoFillFormManager.h @@ -71,7 +71,7 @@ public: static Eina_Bool load_list_timer(void *data); - boost::signals2::signal listViewBackClicked; + boost::signals2::signal listViewBackClicked; /* test */ void seeAllData(void); diff --git a/services/SettingsUI/AutoFillForm/AutoProfileDeleteView.cpp b/services/SettingsUI/AutoFillForm/AutoProfileDeleteView.cpp old mode 100644 new mode 100755 index dbf944c3..38a82758 --- a/services/SettingsUI/AutoFillForm/AutoProfileDeleteView.cpp +++ b/services/SettingsUI/AutoFillForm/AutoProfileDeleteView.cpp @@ -20,11 +20,14 @@ #include "AutoFillFormItem.h" #include "BrowserLogger.h" -namespace tizen_browser{ -namespace base_ui{ +namespace tizen_browser +{ + namespace base_ui + { -AutoProfileDeleteView::AutoProfileDeleteView(AutoFillFormManager* manager) - : m_manager(manager) + AutoProfileDeleteView::AutoProfileDeleteView(AutoFillFormManager * + manager) + :m_manager(manager) , m_parent(nullptr) , m_back_button(nullptr) , m_del_button(nullptr) @@ -34,353 +37,429 @@ AutoProfileDeleteView::AutoProfileDeleteView(AutoFillFormManager* manager) , m_action_bar(nullptr) , m_itemClass(nullptr) , m_checked_count(0) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - m_edjFilePath = EDJE_DIR; - m_edjFilePath.append("SettingsUI/AutoFillMobileUI.edj"); -} - -AutoProfileDeleteView::~AutoProfileDeleteView(void) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - - evas_object_smart_callback_del(m_back_button, "clicked", __back_button_cb); - evas_object_smart_callback_del(m_del_button, "clicked", __delete_button_cb); - evas_object_smart_callback_del(m_checkbox, "clicked", __select_all_checkbox_changed_cb); - - elm_object_signal_emit(m_action_bar, "hide,autofill,close,icon", "del_but"); - elm_object_signal_emit(m_action_bar, "show,close,icon", "del_but"); - - if (m_genlist) { - elm_genlist_clear(m_genlist); - evas_object_del(m_genlist); + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + m_edjFilePath = EDJE_DIR; + m_edjFilePath.append("SettingsUI/AutoFillMobileUI.edj"); } - if (m_mainLayout) { - evas_object_hide(m_mainLayout); - evas_object_del(m_mainLayout); - } - m_mainLayout = nullptr; - m_genlist = nullptr; -} - -Evas_Object* AutoProfileDeleteView::show(Evas_Object* parent, Evas_Object* action_bar) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - elm_theme_extension_add(nullptr, m_edjFilePath.c_str()); - - m_action_bar = action_bar; - elm_object_translatable_part_text_set(m_action_bar, "settings_title", "Auto Fill Delete"); - - m_mainLayout = createMainLayout(parent); - if (!m_mainLayout) { - BROWSER_LOGE("createMainLayout failed"); - return nullptr; + AutoProfileDeleteView::~AutoProfileDeleteView(void) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + + evas_object_smart_callback_del(m_back_button, "clicked", + __back_button_cb); + evas_object_smart_callback_del(m_del_button, "clicked", + __delete_button_cb); + evas_object_smart_callback_del(m_checkbox, "clicked", + __select_all_checkbox_changed_cb); + + elm_object_signal_emit(m_action_bar, "hide,autofill,close,icon", + "del_but"); + elm_object_signal_emit(m_action_bar, "show,close,icon", "del_but"); + + if (m_genlist) + { + elm_genlist_clear(m_genlist); + evas_object_del(m_genlist); + } + if (m_mainLayout) + { + evas_object_hide(m_mainLayout); + evas_object_del(m_mainLayout); + } + m_mainLayout = nullptr; + m_genlist = nullptr; } - m_back_button = elm_button_add(m_mainLayout); - elm_object_style_set(m_back_button, "basic_button"); - evas_object_smart_callback_add(m_back_button, "clicked", __back_button_cb, this); - elm_object_part_content_set(m_action_bar, "close_autofill_del_click", m_back_button); - elm_object_signal_emit(m_action_bar, "hide,close,icon", "del_but"); - elm_object_signal_emit(m_action_bar, "show,autofill,close,icon", "del_but"); - - m_del_button = elm_button_add(m_mainLayout); - elm_object_style_set(m_del_button, "basic_button"); - evas_object_smart_callback_add(m_del_button, "clicked", __delete_button_cb, this); - elm_object_part_content_set(m_mainLayout, "del_button", m_del_button); - elm_object_signal_emit(m_mainLayout, "dim,del,button,signal", ""); - elm_object_disabled_set(m_del_button, true); - - evas_object_show(m_mainLayout); - elm_layout_content_set(parent, "autofill_del_swallow", m_mainLayout); - m_parent = parent; - return m_mainLayout; -} - -Evas_Object *AutoProfileDeleteView::createMainLayout(Evas_Object *parent) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - - Evas_Object *layout = elm_layout_add(parent); - if (!layout) { - BROWSER_LOGD("elm_layout_add failed"); - return nullptr; + Evas_Object *AutoProfileDeleteView::show(Evas_Object * parent, + Evas_Object * action_bar) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + + elm_theme_extension_add(nullptr, m_edjFilePath.c_str()); + + m_action_bar = action_bar; + elm_object_translatable_part_text_set(m_action_bar, "settings_title", + "Auto Fill Delete"); + + m_mainLayout = createMainLayout(parent); + if (!m_mainLayout) { + BROWSER_LOGE("createMainLayout failed"); + return nullptr; + } + + m_back_button = elm_button_add(m_mainLayout); + elm_object_style_set(m_back_button, "basic_button"); + evas_object_smart_callback_add(m_back_button, "clicked", + __back_button_cb, this); + elm_object_part_content_set(m_action_bar, "close_autofill_del_click", + m_back_button); + elm_object_signal_emit(m_action_bar, "hide,close,icon", "del_but"); + elm_object_signal_emit(m_action_bar, "show,autofill,close,icon", + "del_but"); + + m_del_button = elm_button_add(m_mainLayout); + elm_object_style_set(m_del_button, "basic_button"); + evas_object_smart_callback_add(m_del_button, "clicked", + __delete_button_cb, this); + elm_object_part_content_set(m_mainLayout, "del_button", m_del_button); + elm_object_signal_emit(m_mainLayout, "dim,del,button,signal", ""); + elm_object_disabled_set(m_del_button, true); + + evas_object_show(m_mainLayout); + elm_layout_content_set(parent, "autofill_del_swallow", m_mainLayout); + m_parent = parent; + return m_mainLayout; } - elm_layout_file_set(layout, m_edjFilePath.c_str(), "affdv-layout"); - evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL); - elm_object_translatable_part_text_set(layout, "select_all_text", "IDS_BR_OPT_SELECT_ALL"); - elm_object_translatable_part_text_set(layout, "del_text", "IDS_BR_SK_DELETE"); - - Evas_Object* checkbox = elm_check_add(layout); - if (!checkbox) { - BROWSER_LOGE("Failed to add check"); - return nullptr; - } - elm_object_style_set(checkbox, "custom_check"); - Eina_Bool checked = false; - elm_check_state_pointer_set(checkbox, &checked); - evas_object_propagate_events_set(checkbox, EINA_FALSE); - elm_object_part_content_set(layout, "select_all_checkbox", checkbox); - - m_checkbox = elm_button_add(layout); - if (!m_checkbox) { - BROWSER_LOGE("Failed to add button"); - return nullptr; + Evas_Object *AutoProfileDeleteView::createMainLayout(Evas_Object * parent) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + + Evas_Object *layout = elm_layout_add(parent); + if (!layout) { + BROWSER_LOGD("elm_layout_add failed"); + return nullptr; + } + elm_layout_file_set(layout, m_edjFilePath.c_str(), "affdv-layout"); + evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL); + + elm_object_translatable_part_text_set(layout, "select_all_text", + "IDS_BR_OPT_SELECT_ALL"); + elm_object_translatable_part_text_set(layout, "del_text", + "IDS_BR_SK_DELETE"); + + Evas_Object *checkbox = elm_check_add(layout); + if (!checkbox) { + BROWSER_LOGE("Failed to add check"); + return nullptr; + } + elm_object_style_set(checkbox, "custom_check"); + Eina_Bool checked = false; + elm_check_state_pointer_set(checkbox, &checked); + evas_object_propagate_events_set(checkbox, EINA_FALSE); + elm_object_part_content_set(layout, "select_all_checkbox", checkbox); + + m_checkbox = elm_button_add(layout); + if (!m_checkbox) { + BROWSER_LOGE("Failed to add button"); + return nullptr; + } + elm_object_style_set(m_checkbox, "basic_button"); + evas_object_smart_callback_add(m_checkbox, "clicked", + __select_all_checkbox_changed_cb, this); + elm_object_part_content_set(layout, "select_all_checkbox_button", + m_checkbox); + + m_genlist = createGenlist(layout); + if (!m_genlist) { + BROWSER_LOGE("elm_genlist_add failed"); + return nullptr; + } + evas_object_show(m_genlist); + elm_object_part_content_set(layout, "affdv_genlist", m_genlist); + + return layout; } - elm_object_style_set(m_checkbox, "basic_button"); - evas_object_smart_callback_add(m_checkbox, "clicked", __select_all_checkbox_changed_cb, this); - elm_object_part_content_set(layout, "select_all_checkbox_button", m_checkbox); - - m_genlist = createGenlist(layout); - if (!m_genlist) { - BROWSER_LOGE("elm_genlist_add failed"); - return nullptr; - } - evas_object_show(m_genlist); - elm_object_part_content_set(layout, "affdv_genlist", m_genlist); - - return layout; -} - -Evas_Object *AutoProfileDeleteView::createGenlist(Evas_Object *parent) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - Evas_Object *genlist = elm_genlist_add(parent); - if (!genlist) { - BROWSER_LOGE("elm_genlist_add failed"); - return nullptr; + Evas_Object *AutoProfileDeleteView::createGenlist(Evas_Object * parent) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + + Evas_Object *genlist = elm_genlist_add(parent); + if (!genlist) { + BROWSER_LOGE("elm_genlist_add failed"); + return nullptr; + } + + elm_scroller_policy_set(genlist, ELM_SCROLLER_POLICY_OFF, + ELM_SCROLLER_POLICY_OFF); + elm_genlist_homogeneous_set(genlist, EINA_TRUE); + elm_genlist_multi_select_set(genlist, EINA_FALSE); + elm_genlist_select_mode_set(genlist, ELM_OBJECT_SELECT_MODE_ALWAYS); + elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS); + evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, + EVAS_HINT_FILL); + + m_itemClass = elm_genlist_item_class_new(); + if (!m_itemClass) { + BROWSER_LOGE + ("elm_genlist_item_class_new for description_item_class failed"); + return nullptr; + } + m_itemClass->item_style = "affdv_item"; + m_itemClass->func.content_get = __content_get_cb; + + m_itemClass->func.text_get = __text_get_cb; + m_itemClass->func.state_get = NULL; + m_itemClass->func.del = NULL; + + appendGenlist(genlist); + + return genlist; } - elm_scroller_policy_set(genlist, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF); - elm_genlist_homogeneous_set(genlist, EINA_TRUE); - elm_genlist_multi_select_set(genlist, EINA_FALSE); - elm_genlist_select_mode_set(genlist, ELM_OBJECT_SELECT_MODE_ALWAYS); - elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS); - evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL); - - m_itemClass = elm_genlist_item_class_new(); - if (!m_itemClass) { - BROWSER_LOGE("elm_genlist_item_class_new for description_item_class failed"); - return nullptr; + Eina_Bool AutoProfileDeleteView::appendGenlist(Evas_Object * genlist) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + + m_checkbox_delete_state_map.clear(); + unsigned int item_count = m_manager->getAutoFillFormItemCount(); + if (item_count > 0) { + for (unsigned int i = 0; i < item_count; i++) { + genlistCallbackData *item_callback_data = new genlistCallbackData; + item_callback_data->menu_index = i; + item_callback_data->user_data = this; + item_callback_data->it = + elm_genlist_item_append(genlist, m_itemClass, item_callback_data, + NULL, ELM_GENLIST_ITEM_NONE, + __genlist_item_selected_cb, + item_callback_data); + m_checkbox_delete_state_map.insert(std::pair < Elm_Object_Item *, + bool > (item_callback_data->it, + false)); + } + } + + return EINA_TRUE; } - m_itemClass->item_style = "affdv_item"; - m_itemClass->func.content_get = __content_get_cb; - - m_itemClass->func.text_get = __text_get_cb; - m_itemClass->func.state_get = NULL; - m_itemClass->func.del = NULL; - - appendGenlist(genlist); - - return genlist; -} -Eina_Bool AutoProfileDeleteView::appendGenlist(Evas_Object *genlist) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - - m_checkbox_delete_state_map.clear(); - unsigned int item_count = m_manager->getAutoFillFormItemCount(); - if (item_count > 0) { - for (unsigned int i = 0; i < item_count; i++) { - genlistCallbackData* item_callback_data = new genlistCallbackData; - item_callback_data->menu_index = i; - item_callback_data->user_data = this; - item_callback_data->it = elm_genlist_item_append(genlist, m_itemClass, - item_callback_data, NULL, ELM_GENLIST_ITEM_NONE, - __genlist_item_selected_cb, item_callback_data); - m_checkbox_delete_state_map.insert(std::pair(item_callback_data->it, false)); - } + void AutoProfileDeleteView::__select_all_checkbox_changed_cb(void *data, + Evas_Object * + /*obj */ , + void * + /*event_info */ + ) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + AutoProfileDeleteView *apdv = + static_cast < AutoProfileDeleteView * >(data); + Evas_Object *sel_all_checkbox = + elm_object_part_content_get(apdv->m_mainLayout, + "select_all_checkbox"); + bool sel_all_state = elm_check_state_get(sel_all_checkbox) == EINA_TRUE; + elm_check_state_set(sel_all_checkbox, !sel_all_state); + + for (auto it = apdv->m_checkbox_delete_state_map.begin(); + it != apdv->m_checkbox_delete_state_map.end(); ++it) + if (it->second == sel_all_state) { + it->second = !sel_all_state; + elm_genlist_item_update(it->first); + } + + elm_genlist_realized_items_update(apdv->m_genlist); + + if (sel_all_state) + apdv->m_checked_count = 0; + else + apdv->m_checked_count = elm_genlist_items_count(apdv->m_genlist); + + if (apdv->m_checked_count >= 1) { + elm_object_signal_emit(apdv->m_mainLayout, "show,del,button,signal", + ""); + elm_object_disabled_set(elm_object_part_content_get + (apdv->m_mainLayout, "del_button"), false); + } else { + elm_object_signal_emit(apdv->m_mainLayout, "dim,del,button,signal", + ""); + elm_object_disabled_set(elm_object_part_content_get + (apdv->m_mainLayout, "del_button"), true); + } } - return EINA_TRUE; -} - -void AutoProfileDeleteView::__select_all_checkbox_changed_cb(void* data, Evas_Object* /*obj*/, void* /*event_info*/) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - AutoProfileDeleteView *apdv = static_cast(data); - Evas_Object* sel_all_checkbox = elm_object_part_content_get(apdv->m_mainLayout, "select_all_checkbox"); - bool sel_all_state = elm_check_state_get(sel_all_checkbox) == EINA_TRUE; - elm_check_state_set(sel_all_checkbox, !sel_all_state); - - for (auto it = apdv->m_checkbox_delete_state_map.begin(); it != apdv->m_checkbox_delete_state_map.end(); ++it) - if (it->second == sel_all_state) { - it->second = !sel_all_state; - elm_genlist_item_update(it->first); - } - - elm_genlist_realized_items_update(apdv->m_genlist); - - if (sel_all_state) - apdv->m_checked_count = 0; - else - apdv->m_checked_count = elm_genlist_items_count(apdv->m_genlist); - - if (apdv->m_checked_count >= 1) { - elm_object_signal_emit(apdv->m_mainLayout, "show,del,button,signal", ""); - elm_object_disabled_set(elm_object_part_content_get(apdv->m_mainLayout, "del_button"), false); - } - else { - elm_object_signal_emit(apdv->m_mainLayout, "dim,del,button,signal", ""); - elm_object_disabled_set(elm_object_part_content_get(apdv->m_mainLayout, "del_button"), true); + void AutoProfileDeleteView::__back_button_cb(void *data, + Evas_Object * /*obj */ , + void * /*event_info */ ) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + AutoProfileDeleteView *view = + static_cast < AutoProfileDeleteView * >(data); + elm_object_translatable_part_text_set(view->m_action_bar, + "settings_title", + "IDS_BR_BODY_AUTO_FILL_FORMS_T_TTS"); + view->hide(); } -} - -void AutoProfileDeleteView::__back_button_cb(void* data, Evas_Object* /*obj*/, void* /*event_info*/) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - AutoProfileDeleteView *view = static_cast(data); - elm_object_translatable_part_text_set(view->m_action_bar, "settings_title", "IDS_BR_BODY_AUTO_FILL_FORMS_T_TTS"); - view->hide(); -} -void AutoProfileDeleteView::__genlist_item_selected_cb(void* data, Evas_Object* /*obj*/, void* event_info) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - genlistCallbackData *callback_data = static_cast(data); - - Elm_Object_Item *item = static_cast(event_info); - elm_genlist_item_selected_set(item, EINA_FALSE); - Evas_Object *checkbox = elm_object_item_part_content_get(item, "checkbox"); - Eina_Bool state = elm_check_state_get(checkbox); - elm_check_state_set(checkbox, !state); - callback_data->user_data->m_checkbox_delete_state_map[item] = !callback_data->user_data->m_checkbox_delete_state_map[item]; - elm_genlist_item_update(item); - - if (state) - callback_data->user_data->m_checked_count--; - else - callback_data->user_data->m_checked_count++; - - BROWSER_LOGD("----Checked count : [%d]---- ", callback_data->user_data->m_checked_count); - Evas_Object* sel_all_checkbox = elm_object_part_content_get(callback_data->user_data->m_mainLayout, "select_all_checkbox"); - if (callback_data->user_data->m_checked_count == elm_genlist_items_count(callback_data->user_data->m_genlist)) - elm_check_state_set(sel_all_checkbox, true); - else - elm_check_state_set(sel_all_checkbox, false); - - if (callback_data->user_data->m_checked_count == 0) { - elm_object_signal_emit(callback_data->user_data->m_mainLayout, "dim,del,button,signal", ""); - elm_object_disabled_set(elm_object_part_content_get(callback_data->user_data->m_mainLayout, "del_button"), true); - } else { - elm_object_signal_emit(callback_data->user_data->m_mainLayout, "show,del,button,signal", ""); - elm_object_disabled_set(elm_object_part_content_get(callback_data->user_data->m_mainLayout, "del_button"), false); + void AutoProfileDeleteView::__genlist_item_selected_cb(void *data, + Evas_Object * + /*obj */ , + void *event_info) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + genlistCallbackData *callback_data = + static_cast < genlistCallbackData * >(data); + + Elm_Object_Item *item = static_cast < Elm_Object_Item * >(event_info); + elm_genlist_item_selected_set(item, EINA_FALSE); + Evas_Object *checkbox = + elm_object_item_part_content_get(item, "checkbox"); + Eina_Bool state = elm_check_state_get(checkbox); + elm_check_state_set(checkbox, !state); + callback_data->user_data->m_checkbox_delete_state_map[item] = + !callback_data->user_data->m_checkbox_delete_state_map[item]; + elm_genlist_item_update(item); + + if (state) + callback_data->user_data->m_checked_count--; + else + callback_data->user_data->m_checked_count++; + + BROWSER_LOGD("----Checked count : [%d]---- ", + callback_data->user_data->m_checked_count); + Evas_Object *sel_all_checkbox = + elm_object_part_content_get(callback_data->user_data->m_mainLayout, + "select_all_checkbox"); + if (callback_data->user_data->m_checked_count == + elm_genlist_items_count(callback_data->user_data->m_genlist)) + elm_check_state_set(sel_all_checkbox, true); + else + elm_check_state_set(sel_all_checkbox, false); + + if (callback_data->user_data->m_checked_count == 0) { + elm_object_signal_emit(callback_data->user_data->m_mainLayout, + "dim,del,button,signal", ""); + elm_object_disabled_set(elm_object_part_content_get + (callback_data->user_data->m_mainLayout, + "del_button"), true); + } else { + elm_object_signal_emit(callback_data->user_data->m_mainLayout, + "show,del,button,signal", ""); + elm_object_disabled_set(elm_object_part_content_get + (callback_data->user_data->m_mainLayout, + "del_button"), false); + } } -} -void AutoProfileDeleteView::refreshView(void) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - elm_genlist_clear(m_genlist); - appendGenlist(m_genlist); -} - -void AutoProfileDeleteView::__delete_button_cb(void* data, Evas_Object* /*obj*/,void* /*event_info*/) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - AutoProfileDeleteView *apdv = static_cast(data); - if (apdv->m_checked_count == elm_genlist_items_count(apdv->m_genlist)) - apdv->deleteAllItems(); - else - apdv->deleteSelectedItems(); - elm_genlist_realized_items_update(apdv->m_genlist); - auto sel_all_checkbox = elm_object_part_content_get(apdv->m_mainLayout, "select_all_checkbox"); - if (elm_check_state_get(sel_all_checkbox) == EINA_TRUE) { - elm_check_state_set(sel_all_checkbox, EINA_FALSE); - elm_object_signal_emit(apdv->m_mainLayout, "dim,del,button,signal", ""); - elm_object_disabled_set(elm_object_part_content_get(apdv->m_mainLayout, "del_button"), true); + void AutoProfileDeleteView::refreshView(void) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + elm_genlist_clear(m_genlist); + appendGenlist(m_genlist); } -} -void AutoProfileDeleteView::deleteAllItems(void) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + void AutoProfileDeleteView::__delete_button_cb(void *data, + Evas_Object * /*obj */ , + void * /*event_info */ ) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + AutoProfileDeleteView *apdv = + static_cast < AutoProfileDeleteView * >(data); + if (apdv->m_checked_count == elm_genlist_items_count(apdv->m_genlist)) + apdv->deleteAllItems(); + else + apdv->deleteSelectedItems(); + elm_genlist_realized_items_update(apdv->m_genlist); + auto sel_all_checkbox = + elm_object_part_content_get(apdv->m_mainLayout, + "select_all_checkbox"); + if (elm_check_state_get(sel_all_checkbox) == EINA_TRUE) { + elm_check_state_set(sel_all_checkbox, EINA_FALSE); + elm_object_signal_emit(apdv->m_mainLayout, "dim,del,button,signal", + ""); + elm_object_disabled_set(elm_object_part_content_get + (apdv->m_mainLayout, "del_button"), true); + } + } - m_checkbox_delete_state_map.clear(); - m_manager->deleteAllAutoFillFormItems(); - m_manager->refreshListView(); -} + void AutoProfileDeleteView::deleteAllItems(void) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); -void AutoProfileDeleteView::deleteSelectedItems(void) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - - genlistCallbackData *cb_data = nullptr; - Elm_Object_Item *it = elm_genlist_first_item_get(m_genlist); - Evas_Object *checkbox; - int del_count = 0; - - while (it) { - checkbox = elm_object_item_part_content_get(it, "checkbox"); - cb_data = static_cast(elm_object_item_data_get(it)); - if (elm_check_state_get(checkbox)) { - AutoFillFormItem *item = m_manager->getItem(cb_data->menu_index - del_count); - m_manager->deleteAutoFillFormItem(item); - del_count++; - m_checkbox_delete_state_map.erase(it); - } - it = elm_genlist_item_next_get(it); + m_checkbox_delete_state_map.clear(); + m_manager->deleteAllAutoFillFormItems(); + m_manager->refreshListView(); } - BROWSER_LOGD("Total items deleted %d",del_count); - m_manager->refreshListView(); -} - -char *AutoProfileDeleteView::__text_get_cb(void* data, Evas_Object* /*obj*/, const char *part) -{ - BROWSER_LOGD("part[%s]", part); - genlistCallbackData *callback_data = static_cast(data); + void AutoProfileDeleteView::deleteSelectedItems(void) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + + genlistCallbackData *cb_data = nullptr; + Elm_Object_Item *it = elm_genlist_first_item_get(m_genlist); + Evas_Object *checkbox; + int del_count = 0; + + while (it) { + checkbox = elm_object_item_part_content_get(it, "checkbox"); + cb_data = + static_cast < genlistCallbackData * >(elm_object_item_data_get(it)); + if (elm_check_state_get(checkbox)) { + AutoFillFormItem *item = + m_manager->getItem(cb_data->menu_index - del_count); + m_manager->deleteAutoFillFormItem(item); + del_count++; + m_checkbox_delete_state_map.erase(it); + } + it = elm_genlist_item_next_get(it); + } + BROWSER_LOGD("Total items deleted %d", del_count); + m_manager->refreshListView(); + } - if (!strcmp(part, "item_title")) { - const char *item_full_name = callback_data->user_data->getEachItemFullName( - (unsigned int)callback_data->menu_index); - if (item_full_name) - return strdup(item_full_name); + char *AutoProfileDeleteView::__text_get_cb(void *data, + Evas_Object * /*obj */ , + const char *part) + { + BROWSER_LOGD("part[%s]", part); + + genlistCallbackData *callback_data = + static_cast < genlistCallbackData * >(data); + + if (!strcmp(part, "item_title")) { + const char *item_full_name = + callback_data->user_data-> + getEachItemFullName((unsigned int) callback_data->menu_index); + if (item_full_name) + return strdup(item_full_name); + } + return NULL; } - return NULL; -} -const char *AutoProfileDeleteView::getEachItemFullName(unsigned int index) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (m_manager->getAutoFillFormItemCount() == 0) - return NULL; - return (m_manager->getItem(index))->getName(); -} + const char *AutoProfileDeleteView::getEachItemFullName(unsigned int index) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + if (m_manager->getAutoFillFormItemCount() == 0) + return NULL; + return (m_manager->getItem(index))->getName(); + } -Evas_Object *AutoProfileDeleteView::__content_get_cb(void* data, Evas_Object* obj, const char *part) -{ - BROWSER_LOGD("part[%s]", part); - - if (!strcmp(part, "checkbox")) { - Evas_Object *checkbox = elm_check_add(obj); - if (!checkbox) { - BROWSER_LOGE("Failed to add check"); - return NULL; - } - - genlistCallbackData *itemData = static_cast(data); - elm_object_style_set(checkbox, "custom_check"); - elm_check_state_set(checkbox, itemData->user_data->m_checkbox_delete_state_map[itemData->it] - ? EINA_TRUE : EINA_FALSE); - evas_object_propagate_events_set(checkbox, EINA_FALSE); - return checkbox; + Evas_Object *AutoProfileDeleteView::__content_get_cb(void *data, + Evas_Object * obj, + const char *part) + { + BROWSER_LOGD("part[%s]", part); + + if (!strcmp(part, "checkbox")) { + Evas_Object *checkbox = elm_check_add(obj); + if (!checkbox) { + BROWSER_LOGE("Failed to add check"); + return NULL; + } + + genlistCallbackData *itemData = + static_cast < genlistCallbackData * >(data); + elm_object_style_set(checkbox, "custom_check"); + elm_check_state_set(checkbox, + itemData->user_data-> + m_checkbox_delete_state_map[itemData->it] + ? EINA_TRUE : EINA_FALSE); + evas_object_propagate_events_set(checkbox, EINA_FALSE); + return checkbox; + } + return NULL; } - return NULL; -} -void AutoProfileDeleteView::hide(void) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (m_manager) - m_manager->deleteDeleteView(); -} + void AutoProfileDeleteView::hide(void) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + if (m_manager) + m_manager->deleteDeleteView(); + } -} + } } diff --git a/services/SettingsUI/AutoFillForm/AutoProfileDeleteView.h b/services/SettingsUI/AutoFillForm/AutoProfileDeleteView.h old mode 100644 new mode 100755 index 3ad4eb64..6af1502b --- a/services/SettingsUI/AutoFillForm/AutoProfileDeleteView.h +++ b/services/SettingsUI/AutoFillForm/AutoProfileDeleteView.h @@ -22,7 +22,6 @@ namespace base_ui{ class AutoFillFormManager; class AutoProfileDeleteView { - public: AutoProfileDeleteView(AutoFillFormManager* manager); ~AutoProfileDeleteView(void); diff --git a/services/SettingsUI/SettingsUI.cpp b/services/SettingsUI/SettingsUI.cpp old mode 100644 new mode 100755 index 8d16a2b6..f0e50ff9 --- a/services/SettingsUI/SettingsUI.cpp +++ b/services/SettingsUI/SettingsUI.cpp @@ -25,283 +25,337 @@ #include "BrowserLogger.h" #include "Tools/EflTools.h" -namespace tizen_browser{ -namespace base_ui{ +namespace tizen_browser +{ + namespace base_ui + { -EXPORT_SERVICE(SettingsUI, "org.tizen.browser.settingsui") + EXPORT_SERVICE(SettingsUI, "org.tizen.browser.settingsui") -struct ItemData { - tizen_browser::base_ui::SettingsUI* settingsUI; - Elm_Object_Item * e_item; -}; + struct ItemData + { + tizen_browser::base_ui::SettingsUI * settingsUI; + Elm_Object_Item *e_item; + }; -SettingsUI::SettingsUI() + SettingsUI::SettingsUI() : m_settings_layout(nullptr) - , m_actionBar(nullptr) - , m_scroller(nullptr) - , m_items_layout(nullptr) - , m_parent(nullptr) - , m_item_class(nullptr) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - m_edjFilePath = EDJE_DIR; - m_edjFilePath.append("SettingsUI/SettingsUI.edj"); -} - -SettingsUI::~SettingsUI() -{ + , m_actionBar(nullptr) + , m_scroller(nullptr) + , m_items_layout(nullptr) + , m_parent(nullptr) + , m_item_class(nullptr) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + m_edjFilePath = EDJE_DIR; + m_edjFilePath.append("SettingsUI/SettingsUI.edj"); + } -} + SettingsUI::~SettingsUI() + { + } -void SettingsUI::init(Evas_Object* parent) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - M_ASSERT(parent); - m_parent = parent; -} + void SettingsUI::init(Evas_Object * parent) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + M_ASSERT(parent); + m_parent = parent; + } -Evas_Object* SettingsUI::getContent() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - M_ASSERT(m_parent); - if (!m_settings_layout) - m_settings_layout = createSettingsUILayout(m_parent); - return m_settings_layout; -} + Evas_Object *SettingsUI::getContent() + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + M_ASSERT(m_parent); + if (!m_settings_layout) + m_settings_layout = createSettingsUILayout(m_parent); + return m_settings_layout; + } -void SettingsUI::showUI() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - evas_object_show(m_scroller); - evas_object_show(m_items_layout); - evas_object_show(m_settings_layout); - evas_object_show(m_actionBar); - elm_object_focus_set(elm_object_part_content_get(m_actionBar, "close_click"), EINA_TRUE); -} + void SettingsUI::showUI() + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + evas_object_show(m_scroller); + evas_object_show(m_items_layout); + evas_object_show(m_settings_layout); + evas_object_show(m_actionBar); + elm_object_focus_set(elm_object_part_content_get + (m_actionBar, "close_click"), EINA_TRUE); + } -void SettingsUI::hideUI() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - evas_object_hide(m_scroller); - evas_object_hide(m_items_layout); - evas_object_hide(m_settings_layout); - evas_object_hide(m_actionBar); -} + void SettingsUI::hideUI() + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + evas_object_hide(m_scroller); + evas_object_hide(m_items_layout); + evas_object_hide(m_settings_layout); + evas_object_hide(m_actionBar); + } -Evas_Object* SettingsUI::createSettingsUILayout(Evas_Object* parent) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - M_ASSERT(parent); - elm_theme_extension_add(nullptr, m_edjFilePath.c_str()); - Evas_Object* settings_layout = elm_layout_add(parent); - elm_layout_file_set(settings_layout, m_edjFilePath.c_str(), "settings-layout"); - evas_object_size_hint_weight_set(settings_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(settings_layout, EVAS_HINT_FILL, EVAS_HINT_FILL); - - m_actionBar = createActionBar(settings_layout); - m_scroller = createSettingsPage(settings_layout); - return settings_layout; -} + Evas_Object *SettingsUI::createSettingsUILayout(Evas_Object * parent) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + M_ASSERT(parent); + elm_theme_extension_add(nullptr, m_edjFilePath.c_str()); + Evas_Object *settings_layout = elm_layout_add(parent); + elm_layout_file_set(settings_layout, m_edjFilePath.c_str(), + "settings-layout"); + evas_object_size_hint_weight_set(settings_layout, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(settings_layout, EVAS_HINT_FILL, + EVAS_HINT_FILL); + + m_actionBar = createActionBar(settings_layout); + m_scroller = createSettingsPage(settings_layout); + return settings_layout; + } -Evas_Object* SettingsUI::createActionBar(Evas_Object* settings_layout) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - Evas_Object* actionBar = elm_layout_add(settings_layout); - elm_object_part_content_set(settings_layout, "actionbar_swallow", actionBar); - evas_object_size_hint_weight_set(actionBar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(actionBar, EVAS_HINT_FILL, EVAS_HINT_FILL); - - elm_layout_file_set(actionBar, m_edjFilePath.c_str(), "action_bar"); - Evas_Object *close_click_btn = elm_button_add(actionBar); - elm_object_style_set(close_click_btn, "basic_button"); - evas_object_smart_callback_add(close_click_btn, "clicked", SettingsUI::close_clicked_cb, this); - elm_object_part_content_set(actionBar, "close_click", close_click_btn); - elm_object_translatable_part_text_set(actionBar, "settings_title", "IDS_BR_BODY_SETTINGS"); - - return actionBar; -} + Evas_Object *SettingsUI::createActionBar(Evas_Object * settings_layout) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + Evas_Object *actionBar = elm_layout_add(settings_layout); + elm_object_part_content_set(settings_layout, "actionbar_swallow", + actionBar); + evas_object_size_hint_weight_set(actionBar, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(actionBar, EVAS_HINT_FILL, + EVAS_HINT_FILL); + + elm_layout_file_set(actionBar, m_edjFilePath.c_str(), "action_bar"); + Evas_Object *close_click_btn = elm_button_add(actionBar); + elm_object_style_set(close_click_btn, "basic_button"); + evas_object_smart_callback_add(close_click_btn, "clicked", + SettingsUI::close_clicked_cb, this); + elm_object_part_content_set(actionBar, "close_click", close_click_btn); + elm_object_translatable_part_text_set(actionBar, "settings_title", + "IDS_BR_BODY_SETTINGS"); + + return actionBar; + } -Evas_Object* SettingsUI::createSettingsPage(Evas_Object* settings_layout) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - - ItemData *id = new ItemData; - id->settingsUI = this; - - Evas_Object* scroller = elm_scroller_add(settings_layout); - m_items_layout = elm_layout_add(scroller); - elm_object_content_set(scroller, m_items_layout); - elm_layout_file_set(m_items_layout, m_edjFilePath.c_str(), "settings_items"); - elm_object_part_content_set(settings_layout, "settings_scroller_swallow", scroller); - evas_object_size_hint_weight_set(scroller, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(scroller, EVAS_HINT_FILL, EVAS_HINT_FILL); - elm_scroller_policy_set(m_items_layout, ELM_SCROLLER_POLICY_ON, ELM_SCROLLER_POLICY_AUTO); - elm_scroller_bounce_set(scroller, EINA_TRUE, EINA_FALSE); - elm_scroller_propagate_events_set(scroller, EINA_TRUE); - - Evas_Object *del_selected_data_button = elm_button_add(m_items_layout); - elm_object_style_set(del_selected_data_button, "basic_button"); - evas_object_smart_callback_add(del_selected_data_button, "clicked", _del_selected_data_clicked_cb, (void*)id); - elm_layout_content_set(m_items_layout, "del_selected_data_click", del_selected_data_button); - - Evas_Object *reset_mv_button = elm_button_add(m_items_layout); - elm_object_style_set(reset_mv_button, "basic_button"); - evas_object_smart_callback_add(reset_mv_button, "clicked", _reset_mv_clicked_cb, (void*)id); - elm_layout_content_set(m_items_layout, "reset_mv_click", reset_mv_button); - - Evas_Object *reset_browser_button = elm_button_add(m_items_layout); - elm_object_style_set(reset_browser_button, "basic_button"); - evas_object_smart_callback_add(reset_browser_button, "clicked", _reset_browser_clicked_cb, (void*)id); - elm_layout_content_set(m_items_layout, "reset_browser_click", reset_browser_button); - - - Evas_Object *cache_checkbox = elm_check_add(m_items_layout); - elm_layout_content_set(m_items_layout, "cache_cb", cache_checkbox); - elm_check_state_set(cache_checkbox, EINA_TRUE); - edje_object_signal_callback_add(elm_layout_edje_get(m_items_layout), "mouse,clicked,1", "cache_cb_text", __checkbox_label_click_cb, (void*)id); - elm_object_translatable_part_text_set(m_items_layout, "cache_cb_text", "IDS_BR_OPT_CACHE"); - - Evas_Object *cookies_checkbox = elm_check_add(m_items_layout); - elm_layout_content_set(m_items_layout, "cookies_cb", cookies_checkbox); - elm_check_state_set(cookies_checkbox, EINA_TRUE); - edje_object_signal_callback_add(elm_layout_edje_get(m_items_layout), "mouse,clicked,1", "cookies_cb_text", __checkbox_label_click_cb, (void*)id); - elm_object_translatable_part_text_set(m_items_layout, "cookies_cb_text", "IDS_BR_BODY_COOKIES"); - - Evas_Object *history_checkbox = elm_check_add(m_items_layout); - elm_layout_content_set(m_items_layout, "history_cb", history_checkbox); - elm_check_state_set(history_checkbox, EINA_TRUE); - edje_object_signal_callback_add(elm_layout_edje_get(m_items_layout), "mouse,clicked,1", "history_cb_text", __checkbox_label_click_cb, (void*)id); - elm_object_translatable_part_text_set(m_items_layout, "history_cb_text", "IDS_BR_MBODY_HISTORY"); - - Evas_Object *accept_all_rb = elm_radio_add(m_items_layout); - elm_object_style_set(accept_all_rb, "settings_radio"); - elm_layout_content_set(m_items_layout, "accept_all_rb", accept_all_rb); - Evas_Object *sharingRequestGroup = accept_all_rb; - elm_radio_state_value_set(accept_all_rb, SR_ACCEPT_ALL); - - Evas_Object *ask_rb = elm_radio_add(m_items_layout); - elm_object_style_set(ask_rb, "settings_radio"); - elm_layout_content_set(m_items_layout, "ask_rb", ask_rb); - elm_radio_group_add(ask_rb, sharingRequestGroup); - elm_radio_state_value_set(ask_rb, SR_ASK); - - Evas_Object *sr_disable_rb = elm_radio_add(m_items_layout); - elm_object_style_set(sr_disable_rb, "settings_radio"); - elm_layout_content_set(m_items_layout, "sr_disable_rb", sr_disable_rb); - elm_radio_group_add(sr_disable_rb, sharingRequestGroup); - elm_radio_state_value_set(sr_disable_rb, SR_DISABLE); - - Evas_Object *bs_enable_rb = elm_radio_add(m_items_layout); - elm_object_style_set(bs_enable_rb, "settings_radio"); - elm_layout_content_set(m_items_layout, "bs_enable_rb", bs_enable_rb); - Evas_Object *bookmarkSyncGroup = bs_enable_rb; - elm_radio_state_value_set(bs_enable_rb, BS_ENABLE); - elm_object_translatable_part_text_set(m_items_layout, "bs_enable_rb_text", "IDS_BR_BUTTON_ENABLE_ABB"); - - Evas_Object *bs_disable_rb = elm_radio_add(m_items_layout); - elm_object_style_set(bs_disable_rb, "settings_radio"); - elm_layout_content_set(m_items_layout, "bs_disable_rb", bs_disable_rb); - elm_radio_group_add(bs_disable_rb, bookmarkSyncGroup); - elm_radio_state_value_set(bs_disable_rb, BS_DISABLE); - - Evas_Object *ts_enable_rb = elm_radio_add(m_items_layout); - elm_object_style_set(ts_enable_rb, "settings_radio"); - elm_layout_content_set(m_items_layout, "ts_enable_rb", ts_enable_rb); - Evas_Object *tabSyncGroup = ts_enable_rb; - elm_radio_state_value_set(ts_enable_rb, TS_ENABLE); - elm_object_translatable_part_text_set(m_items_layout, "ts_enable_rb_text", "IDS_BR_BUTTON_ENABLE_ABB"); - - Evas_Object *ts_disable_rb = elm_radio_add(m_items_layout); - elm_object_style_set(ts_disable_rb, "settings_radio"); - elm_layout_content_set(m_items_layout, "ts_disable_rb", ts_disable_rb); - elm_radio_group_add(ts_disable_rb, tabSyncGroup); - elm_radio_state_value_set(ts_disable_rb, TS_DISABLE); - - return scroller; -} + Evas_Object *SettingsUI::createSettingsPage(Evas_Object * settings_layout) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + + ItemData *id = new ItemData; + id->settingsUI = this; + + Evas_Object *scroller = elm_scroller_add(settings_layout); + m_items_layout = elm_layout_add(scroller); + elm_object_content_set(scroller, m_items_layout); + elm_layout_file_set(m_items_layout, m_edjFilePath.c_str(), + "settings_items"); + elm_object_part_content_set(settings_layout, + "settings_scroller_swallow", scroller); + evas_object_size_hint_weight_set(scroller, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(scroller, EVAS_HINT_FILL, + EVAS_HINT_FILL); + elm_scroller_policy_set(m_items_layout, ELM_SCROLLER_POLICY_ON, + ELM_SCROLLER_POLICY_AUTO); + elm_scroller_bounce_set(scroller, EINA_TRUE, EINA_FALSE); + elm_scroller_propagate_events_set(scroller, EINA_TRUE); + + Evas_Object *del_selected_data_button = elm_button_add(m_items_layout); + elm_object_style_set(del_selected_data_button, "basic_button"); + evas_object_smart_callback_add(del_selected_data_button, "clicked", + _del_selected_data_clicked_cb, + (void *) id); + elm_layout_content_set(m_items_layout, "del_selected_data_click", + del_selected_data_button); + + Evas_Object *reset_mv_button = elm_button_add(m_items_layout); + elm_object_style_set(reset_mv_button, "basic_button"); + evas_object_smart_callback_add(reset_mv_button, "clicked", + _reset_mv_clicked_cb, (void *) id); + elm_layout_content_set(m_items_layout, "reset_mv_click", + reset_mv_button); + + Evas_Object *reset_browser_button = elm_button_add(m_items_layout); + elm_object_style_set(reset_browser_button, "basic_button"); + evas_object_smart_callback_add(reset_browser_button, "clicked", + _reset_browser_clicked_cb, (void *) id); + elm_layout_content_set(m_items_layout, "reset_browser_click", + reset_browser_button); + + + Evas_Object *cache_checkbox = elm_check_add(m_items_layout); + elm_layout_content_set(m_items_layout, "cache_cb", cache_checkbox); + elm_check_state_set(cache_checkbox, EINA_TRUE); + edje_object_signal_callback_add(elm_layout_edje_get(m_items_layout), + "mouse,clicked,1", "cache_cb_text", + __checkbox_label_click_cb, (void *) id); + elm_object_translatable_part_text_set(m_items_layout, "cache_cb_text", + "IDS_BR_OPT_CACHE"); + + Evas_Object *cookies_checkbox = elm_check_add(m_items_layout); + elm_layout_content_set(m_items_layout, "cookies_cb", cookies_checkbox); + elm_check_state_set(cookies_checkbox, EINA_TRUE); + edje_object_signal_callback_add(elm_layout_edje_get(m_items_layout), + "mouse,clicked,1", "cookies_cb_text", + __checkbox_label_click_cb, (void *) id); + elm_object_translatable_part_text_set(m_items_layout, "cookies_cb_text", + "IDS_BR_BODY_COOKIES"); + + Evas_Object *history_checkbox = elm_check_add(m_items_layout); + elm_layout_content_set(m_items_layout, "history_cb", history_checkbox); + elm_check_state_set(history_checkbox, EINA_TRUE); + edje_object_signal_callback_add(elm_layout_edje_get(m_items_layout), + "mouse,clicked,1", "history_cb_text", + __checkbox_label_click_cb, (void *) id); + elm_object_translatable_part_text_set(m_items_layout, "history_cb_text", + "IDS_BR_MBODY_HISTORY"); + + Evas_Object *accept_all_rb = elm_radio_add(m_items_layout); + elm_object_style_set(accept_all_rb, "settings_radio"); + elm_layout_content_set(m_items_layout, "accept_all_rb", accept_all_rb); + Evas_Object *sharingRequestGroup = accept_all_rb; + elm_radio_state_value_set(accept_all_rb, SR_ACCEPT_ALL); + + Evas_Object *ask_rb = elm_radio_add(m_items_layout); + elm_object_style_set(ask_rb, "settings_radio"); + elm_layout_content_set(m_items_layout, "ask_rb", ask_rb); + elm_radio_group_add(ask_rb, sharingRequestGroup); + elm_radio_state_value_set(ask_rb, SR_ASK); + + Evas_Object *sr_disable_rb = elm_radio_add(m_items_layout); + elm_object_style_set(sr_disable_rb, "settings_radio"); + elm_layout_content_set(m_items_layout, "sr_disable_rb", sr_disable_rb); + elm_radio_group_add(sr_disable_rb, sharingRequestGroup); + elm_radio_state_value_set(sr_disable_rb, SR_DISABLE); + + Evas_Object *bs_enable_rb = elm_radio_add(m_items_layout); + elm_object_style_set(bs_enable_rb, "settings_radio"); + elm_layout_content_set(m_items_layout, "bs_enable_rb", bs_enable_rb); + Evas_Object *bookmarkSyncGroup = bs_enable_rb; + elm_radio_state_value_set(bs_enable_rb, BS_ENABLE); + elm_object_translatable_part_text_set(m_items_layout, + "bs_enable_rb_text", + "IDS_BR_BUTTON_ENABLE_ABB"); + + Evas_Object *bs_disable_rb = elm_radio_add(m_items_layout); + elm_object_style_set(bs_disable_rb, "settings_radio"); + elm_layout_content_set(m_items_layout, "bs_disable_rb", bs_disable_rb); + elm_radio_group_add(bs_disable_rb, bookmarkSyncGroup); + elm_radio_state_value_set(bs_disable_rb, BS_DISABLE); + + Evas_Object *ts_enable_rb = elm_radio_add(m_items_layout); + elm_object_style_set(ts_enable_rb, "settings_radio"); + elm_layout_content_set(m_items_layout, "ts_enable_rb", ts_enable_rb); + Evas_Object *tabSyncGroup = ts_enable_rb; + elm_radio_state_value_set(ts_enable_rb, TS_ENABLE); + elm_object_translatable_part_text_set(m_items_layout, + "ts_enable_rb_text", + "IDS_BR_BUTTON_ENABLE_ABB"); + + Evas_Object *ts_disable_rb = elm_radio_add(m_items_layout); + elm_object_style_set(ts_disable_rb, "settings_radio"); + elm_layout_content_set(m_items_layout, "ts_disable_rb", ts_disable_rb); + elm_radio_group_add(ts_disable_rb, tabSyncGroup); + elm_radio_state_value_set(ts_disable_rb, TS_DISABLE); + + return scroller; + } -Evas_Object* SettingsUI::listActionBarContentGet(void* data, Evas_Object* obj , const char* part) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (obj && part) { - const char *part_name = "close_click"; - static const int part_name_len = strlen(part_name); - if (!strncmp(part_name, part, part_name_len)) { - Evas_Object *close_click = elm_button_add(obj); - elm_object_style_set(close_click, "basic_button"); - evas_object_smart_callback_add(close_click, "clicked", SettingsUI::close_clicked_cb, data); - return close_click; - } + Evas_Object *SettingsUI::listActionBarContentGet(void *data, + Evas_Object * obj, + const char *part) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + if (obj && part) { + const char *part_name = "close_click"; + static const int part_name_len = strlen(part_name); + if (!strncmp(part_name, part, part_name_len)) { + Evas_Object *close_click = elm_button_add(obj); + elm_object_style_set(close_click, "basic_button"); + evas_object_smart_callback_add(close_click, "clicked", + SettingsUI::close_clicked_cb, data); + return close_click; + } + } + return nullptr; } - return nullptr; -} -void SettingsUI::__checkbox_label_click_cb(void *data, Evas_Object*, const char*, const char *source) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (data) { - ItemData *id = static_cast(data); - - if(strcmp(source, "cache_cb_text") == 0 ){ - Evas_Object *cache_check = elm_layout_content_get(id->settingsUI->m_items_layout, "cache_cb"); - elm_check_state_set(cache_check, !elm_check_state_get(cache_check)); - } - else if (strcmp(source, "cookies_cb_text") == 0 ){ - Evas_Object *cookies_check = elm_layout_content_get(id->settingsUI->m_items_layout, "cookies_cb"); - elm_check_state_set(cookies_check, !elm_check_state_get(cookies_check)); - } - else if (strcmp(source, "history_cb_text") == 0 ){ - Evas_Object *history_check = elm_layout_content_get(id->settingsUI->m_items_layout, "history_cb"); - elm_check_state_set(history_check, !elm_check_state_get(history_check)); - } - else{ - BROWSER_LOGD("[%s:%d] - no matched source", __PRETTY_FUNCTION__, __LINE__); - } + void SettingsUI::__checkbox_label_click_cb(void *data, Evas_Object *, + const char *, + const char *source) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + if (data) { + ItemData *id = static_cast < ItemData * >(data); + + if (strcmp(source, "cache_cb_text") == 0) { + Evas_Object *cache_check = + elm_layout_content_get(id->settingsUI->m_items_layout, + "cache_cb"); + elm_check_state_set(cache_check, !elm_check_state_get(cache_check)); + } else if (strcmp(source, "cookies_cb_text") == 0) { + Evas_Object *cookies_check = + elm_layout_content_get(id->settingsUI->m_items_layout, + "cookies_cb"); + elm_check_state_set(cookies_check, + !elm_check_state_get(cookies_check)); + } else if (strcmp(source, "history_cb_text") == 0) { + Evas_Object *history_check = + elm_layout_content_get(id->settingsUI->m_items_layout, + "history_cb"); + elm_check_state_set(history_check, + !elm_check_state_get(history_check)); + } else { + BROWSER_LOGD("[%s:%d] - no matched source", __PRETTY_FUNCTION__, + __LINE__); + } + } } -} -void SettingsUI::close_clicked_cb(void* data, Evas_Object*, void*) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (data) { - SettingsUI * s_ui = static_cast(data); - s_ui->closeSettingsUIClicked(); + void SettingsUI::close_clicked_cb(void *data, Evas_Object *, void *) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + if (data) { + SettingsUI *s_ui = static_cast < SettingsUI * >(data); + s_ui->closeSettingsUIClicked(); + } } -} -void SettingsUI::_del_selected_data_clicked_cb(void *data, Evas_Object*, void*) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (data) { - ItemData *id = static_cast(data); - Evas_Object *cache_check = elm_layout_content_get(id->settingsUI->m_items_layout, "cache_cb"); - Evas_Object *cookies_check = elm_layout_content_get(id->settingsUI->m_items_layout, "cookies_cb"); - Evas_Object *history_check = elm_layout_content_get(id->settingsUI->m_items_layout, "history_cb"); - std::string type; - elm_check_state_get(cache_check) ? type += "_CACHE" : ""; - elm_check_state_get(cookies_check) ? type += "_COOKIES" : ""; - elm_check_state_get(history_check) ? type += "_HISTORY" : ""; - id->settingsUI->deleteSelectedDataClicked(type); + void SettingsUI::_del_selected_data_clicked_cb(void *data, Evas_Object *, + void *) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + if (data) { + ItemData *id = static_cast < ItemData * >(data); + Evas_Object *cache_check = + elm_layout_content_get(id->settingsUI->m_items_layout, "cache_cb"); + Evas_Object *cookies_check = + elm_layout_content_get(id->settingsUI->m_items_layout, + "cookies_cb"); + Evas_Object *history_check = + elm_layout_content_get(id->settingsUI->m_items_layout, + "history_cb"); + std::string type; + elm_check_state_get(cache_check) ? type += "_CACHE" : ""; + elm_check_state_get(cookies_check) ? type += "_COOKIES" : ""; + elm_check_state_get(history_check) ? type += "_HISTORY" : ""; + id->settingsUI->deleteSelectedDataClicked(type); + } } -} -void SettingsUI::_reset_mv_clicked_cb(void *data, Evas_Object*, void*) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (data) { - ItemData* itemData = static_cast(data); - itemData->settingsUI->resetMostVisitedClicked(); + void SettingsUI::_reset_mv_clicked_cb(void *data, Evas_Object *, void *) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + if (data) { + ItemData *itemData = static_cast < ItemData * >(data); + itemData->settingsUI->resetMostVisitedClicked(); + } } -} -void SettingsUI::_reset_browser_clicked_cb(void *data, Evas_Object*, void*) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (data) { - ItemData* itemData = static_cast(data); - itemData->settingsUI->resetBrowserClicked(); + void SettingsUI::_reset_browser_clicked_cb(void *data, Evas_Object *, + void *) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + if (data) { + ItemData *itemData = static_cast < ItemData * >(data); + itemData->settingsUI->resetBrowserClicked(); + } } -} -} + } } diff --git a/services/SettingsUI/SettingsUI.h b/services/SettingsUI/SettingsUI.h old mode 100644 new mode 100755 index 2561000b..49c96e81 --- a/services/SettingsUI/SettingsUI.h +++ b/services/SettingsUI/SettingsUI.h @@ -44,10 +44,10 @@ public: Evas_Object* createActionBar(Evas_Object* settings_layout); Evas_Object* createSettingsPage(Evas_Object* settings_layout); - boost::signals2::signal resetBrowserClicked; - boost::signals2::signal resetMostVisitedClicked; - boost::signals2::signal deleteSelectedDataClicked; - boost::signals2::signal closeSettingsUIClicked; + boost::signals2::signal resetBrowserClicked; + boost::signals2::signal resetMostVisitedClicked; + boost::signals2::signal deleteSelectedDataClicked; + boost::signals2::signal closeSettingsUIClicked; private: Evas_Object* createSettingsUILayout(Evas_Object* parent); diff --git a/services/SettingsUI/SettingsUI_mob.cpp b/services/SettingsUI/SettingsUI_mob.cpp index 40680e04..674867d5 100755 --- a/services/SettingsUI/SettingsUI_mob.cpp +++ b/services/SettingsUI/SettingsUI_mob.cpp @@ -28,904 +28,1146 @@ #include "AutoFillForm/AutoFillFormManager.h" #include "UserAgentStrings.h" -namespace tizen_browser{ -namespace base_ui{ - -enum SettingsOptions { - BASIC, - ADVANCED, - DEL_WEB_BRO, - RESET_MOST_VIS, - RESET_BRO, - AUTO_FILL, - CONTENT, - PRIVACY, - DEVELOPER -}; - -typedef struct _genlistCallbackData { - UserAgentItem uaItem; - void *user_data; - Elm_Object_Item *it; -} genlistCallbackData; - -EXPORT_SERVICE(SettingsUI, "org.tizen.browser.settingsui") - -SettingsUI::SettingsUI() - : m_settings_layout(nullptr) - , m_subpage_layout(nullptr) - , m_items_layout(nullptr) - , m_parent(nullptr) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - m_edjFilePath = EDJE_DIR; - m_edjFilePath.append("SettingsUI/SettingsMobileUI.edj"); - elm_theme_extension_add(nullptr, m_edjFilePath.c_str()); - - m_setting_item_class = elm_genlist_item_class_new(); - m_setting_item_class->item_style = "settings_button"; - m_setting_item_class->func.text_get = _gengrid_item_text_get; - m_setting_item_class->func.content_get = nullptr; - m_setting_item_class->func.state_get = nullptr; - m_setting_item_class->func.del = nullptr; - - m_setting_parent_item_class = elm_genlist_item_class_new(); - m_setting_parent_item_class->item_style = "settings_parent_button"; - m_setting_parent_item_class->func.text_get = _gengrid_item_text_get; - m_setting_parent_item_class->func.content_get = nullptr; - m_setting_parent_item_class->func.state_get = nullptr; - m_setting_parent_item_class->func.del = nullptr; - - updateButtonMap(); -} - -SettingsUI::~SettingsUI() -{ - if(m_setting_item_class) - elm_genlist_item_class_free(m_setting_item_class); - if(m_setting_parent_item_class) - elm_genlist_item_class_free(m_setting_parent_item_class); -} - -void SettingsUI::init(Evas_Object* parent) +namespace tizen_browser { - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - M_ASSERT(parent); - m_parent = parent; -} - -void SettingsUI::updateButtonMap() { - ItemData deleteWebBrowsing; - //TODO Add translation API - deleteWebBrowsing.buttonText="Delete Web Browsing Data"; - - ItemData resetMostVisited; - resetMostVisited.buttonText="Reset Most Visited Site"; - - ItemData resetBrowser; - resetBrowser.buttonText="Reset Browser"; - - ItemData autoFill; - autoFill.buttonText=_("IDS_BR_BODY_AUTO_FILL_FORMS_T_TTS"); - - ItemData content; - content.buttonText="Content Settings"; - - ItemData privacy; - privacy.buttonText="Privacy"; - - ItemData developer; - developer.buttonText="Developer Options"; - - ItemData basic; - basic.buttonText="Basic"; - - ItemData advanced; - advanced.buttonText="Advanced"; - - m_buttonsMap[SettingsOptions::BASIC]=basic; - m_buttonsMap[SettingsOptions::ADVANCED]=advanced; - m_buttonsMap[SettingsOptions::DEL_WEB_BRO]=deleteWebBrowsing; - m_buttonsMap[SettingsOptions::RESET_MOST_VIS]=resetMostVisited; - m_buttonsMap[SettingsOptions::RESET_BRO]=resetBrowser; - m_buttonsMap[SettingsOptions::AUTO_FILL]=autoFill; - m_buttonsMap[SettingsOptions::CONTENT]=content; - m_buttonsMap[SettingsOptions::PRIVACY]=privacy; - m_buttonsMap[SettingsOptions::DEVELOPER]=developer; -} - -Evas_Object* SettingsUI::getContent() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - M_ASSERT(m_parent); - if (!m_settings_layout) - m_settings_layout = createSettingsUILayout(m_parent); - return m_settings_layout; -} - -void SettingsUI::showUI() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - evas_object_show(m_settings_layout); - evas_object_show(m_actionBar); -} - -void SettingsUI::hideUI() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - evas_object_hide(m_settings_layout); - evas_object_hide(m_actionBar); -} - -Evas_Object* SettingsUI::createSettingsUILayout(Evas_Object* parent) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - M_ASSERT(parent); - Evas_Object* settings_layout = elm_layout_add(parent); - elm_layout_file_set(settings_layout, m_edjFilePath.c_str(), "settings-layout"); - evas_object_size_hint_weight_set(settings_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(settings_layout, EVAS_HINT_FILL, EVAS_HINT_FILL); - - m_actionBar = createActionBar(settings_layout); - m_items_layout = createSettingsMobilePage(settings_layout); - elm_object_tree_focus_allow_set(settings_layout, EINA_FALSE); - - orientationChanged(); - - return settings_layout; -} - -void SettingsUI::orientationChanged(){ - auto rot = isLandscape(); - if (rot && *rot) { - if (m_actionBar) - elm_object_signal_emit(m_actionBar,"rotation,landscape", "rot"); - if (m_items_layout) { - elm_object_signal_emit(m_items_layout, "rotation,landscape,main", "rot"); - } - if (m_subpage_layout) - elm_object_signal_emit(m_subpage_layout,"rotation,landscape,sub", "rot"); - } else { - if (m_actionBar) - elm_object_signal_emit(m_actionBar,"rotation,portrait", "rot"); - if (m_items_layout) { - elm_object_signal_emit(m_items_layout,"rotation,portrait,main", "rot"); - } - if (m_subpage_layout) - elm_object_signal_emit(m_subpage_layout, "rotation,portrait,sub", "rot"); + namespace base_ui + { + + enum SettingsOptions + { + BASIC, + ADVANCED, + DEL_WEB_BRO, + RESET_MOST_VIS, + RESET_BRO, + AUTO_FILL, + CONTENT, + PRIVACY, + DEVELOPER + }; + + typedef struct _genlistCallbackData + { + UserAgentItem uaItem; + void *user_data; + Elm_Object_Item *it; + } genlistCallbackData; + + EXPORT_SERVICE(SettingsUI, "org.tizen.browser.settingsui") + + SettingsUI::SettingsUI() + : m_settings_layout(nullptr) + , m_subpage_layout(nullptr) + , m_items_layout(nullptr) + , m_parent(nullptr) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + m_edjFilePath = EDJE_DIR; + m_edjFilePath.append("SettingsUI/SettingsMobileUI.edj"); + elm_theme_extension_add(nullptr, m_edjFilePath.c_str()); + + m_setting_item_class = elm_genlist_item_class_new(); + m_setting_item_class->item_style = "settings_button"; + m_setting_item_class->func.text_get = _gengrid_item_text_get; + m_setting_item_class->func.content_get = nullptr; + m_setting_item_class->func.state_get = nullptr; + m_setting_item_class->func.del = nullptr; + + m_setting_parent_item_class = elm_genlist_item_class_new(); + m_setting_parent_item_class->item_style = "settings_parent_button"; + m_setting_parent_item_class->func.text_get = _gengrid_item_text_get; + m_setting_parent_item_class->func.content_get = nullptr; + m_setting_parent_item_class->func.state_get = nullptr; + m_setting_parent_item_class->func.del = nullptr; + + updateButtonMap(); } -} -Evas_Object* SettingsUI::createActionBar(Evas_Object* settings_layout) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - Evas_Object* actionBar = elm_layout_add(settings_layout); - elm_object_part_content_set(settings_layout, "actionbar_swallow", actionBar); - evas_object_size_hint_weight_set(actionBar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(actionBar, EVAS_HINT_FILL, EVAS_HINT_FILL); - - elm_layout_file_set(actionBar, m_edjFilePath.c_str(), "action_bar"); - Evas_Object *close_click_btn = elm_button_add(actionBar); - elm_object_style_set(close_click_btn, "basic_button"); - evas_object_smart_callback_add(close_click_btn, "clicked", SettingsUI::close_clicked_cb, this); - elm_object_part_content_set(actionBar, "close_click", close_click_btn); - elm_object_translatable_part_text_set(actionBar, "settings_title", "IDS_BR_BODY_SETTINGS"); - - return actionBar; -} - -Evas_Object* SettingsUI::createBackActionBar(Evas_Object* settings_layout) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - Evas_Object* actionBar = elm_layout_add(settings_layout); - elm_object_part_content_set(settings_layout, "actionbar_swallow", actionBar); - evas_object_size_hint_weight_set(actionBar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(actionBar, EVAS_HINT_FILL, EVAS_HINT_FILL); - - elm_layout_file_set(actionBar, m_edjFilePath.c_str(), "action_bar"); - Evas_Object *close_click_btn = elm_button_add(actionBar); - elm_object_style_set(close_click_btn, "basic_button"); - evas_object_smart_callback_add(close_click_btn, "clicked", SettingsUI::back_clicked_cb, this); - elm_object_part_content_set(actionBar, "close_click", close_click_btn); - - return actionBar; -} - -char* SettingsUI::_gengrid_item_text_get(void* data, Evas_Object* /*obj*/, const char* part) -{ - M_ASSERT(data); - if (!data) - return nullptr; - - ItemData* it = static_cast(data); - - if (strcmp(part, "button_text") == 0) { - //TODO Implement translation API - const char* item_name = it->buttonText.c_str(); - if (item_name) - return strdup(item_name); - } - return nullptr; -} - -void SettingsUI::_language_changed(void *data, Evas_Object* obj, void*) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (data) { - SettingsUI* self = static_cast(data); - self->updateButtonMap(); - elm_genlist_realized_items_update(obj); + SettingsUI::~SettingsUI() + { + if (m_setting_item_class) + elm_genlist_item_class_free(m_setting_item_class); + if (m_setting_parent_item_class) + elm_genlist_item_class_free(m_setting_parent_item_class); } -} -Evas_Object* SettingsUI::createSettingsMobilePage(Evas_Object* settings_layout) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - - Evas_Object* layout = createMainView(settings_layout); + void SettingsUI::init(Evas_Object * parent) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + M_ASSERT(parent); + m_parent = parent; + } - elm_object_focus_set(elm_object_part_content_get(m_actionBar, "close_click"), EINA_TRUE); + void SettingsUI::updateButtonMap() + { + ItemData deleteWebBrowsing; + //TODO Add translation API + deleteWebBrowsing.buttonText = "Delete Web Browsing Data"; - Evas_Object* scroller = elm_genlist_add(layout); - elm_genlist_homogeneous_set(scroller, EINA_TRUE); - elm_scroller_movement_block_set(scroller, ELM_SCROLLER_MOVEMENT_BLOCK_HORIZONTAL); + ItemData resetMostVisited; + resetMostVisited.buttonText = "Reset Most Visited Site"; - evas_object_size_hint_weight_set(scroller, EVAS_HINT_EXPAND, 0.0); - evas_object_size_hint_align_set(scroller, EVAS_HINT_FILL, 0.0); - elm_genlist_select_mode_set(scroller, ELM_OBJECT_SELECT_MODE_ALWAYS); - elm_genlist_multi_select_set(scroller, EINA_FALSE); - elm_scroller_policy_set(scroller, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF); - elm_scroller_bounce_set(scroller, EINA_FALSE, EINA_FALSE); - evas_object_smart_callback_add(scroller, "language,changed", _language_changed, this); + ItemData resetBrowser; + resetBrowser.buttonText = "Reset Browser"; - auto it = elm_genlist_item_append(scroller, m_setting_parent_item_class, &m_buttonsMap[SettingsOptions::BASIC], nullptr, ELM_GENLIST_ITEM_GROUP, nullptr, this); - elm_genlist_item_append(scroller, m_setting_item_class, &m_buttonsMap[SettingsOptions::AUTO_FILL], it, ELM_GENLIST_ITEM_NONE,_auto_fill_data_menu_clicked_cb, this); - elm_genlist_item_append(scroller, m_setting_item_class, &m_buttonsMap[SettingsOptions::RESET_MOST_VIS], it, ELM_GENLIST_ITEM_NONE, _reset_mv_menu_clicked_cb, this); - elm_genlist_item_append(scroller, m_setting_item_class, &m_buttonsMap[SettingsOptions::DEL_WEB_BRO], it, ELM_GENLIST_ITEM_NONE, _del_selected_data_menu_clicked_cb, this); + ItemData autoFill; + autoFill.buttonText = _("IDS_BR_BODY_AUTO_FILL_FORMS_T_TTS"); - it = elm_genlist_item_append(scroller, m_setting_parent_item_class, &m_buttonsMap[SettingsOptions::ADVANCED], nullptr, ELM_GENLIST_ITEM_GROUP, nullptr, this); - elm_genlist_item_append(scroller, m_setting_item_class, &m_buttonsMap[SettingsOptions::PRIVACY], it, ELM_GENLIST_ITEM_NONE,_privacy_menu_clicked_cb, this); - elm_genlist_item_append(scroller, m_setting_item_class, &m_buttonsMap[SettingsOptions::CONTENT], it, ELM_GENLIST_ITEM_NONE,_content_settings_menu_clicked_cb, this); - elm_genlist_item_append(scroller, m_setting_item_class, &m_buttonsMap[SettingsOptions::RESET_BRO], it, ELM_GENLIST_ITEM_NONE,_reset_browser_menu_clicked_cb, this); - elm_genlist_item_append(scroller, m_setting_item_class, &m_buttonsMap[SettingsOptions::DEVELOPER], it, ELM_GENLIST_ITEM_NONE,_developer_menu_clicked_cb, this); + ItemData content; + content.buttonText = "Content Settings"; - elm_object_part_content_set(layout, "options_swallow", scroller); - evas_object_show(scroller); + ItemData privacy; + privacy.buttonText = "Privacy"; - return layout; -} - -Evas_Object* SettingsUI::createMainView(Evas_Object* settings_layout) -{ - auto main = elm_layout_add(settings_layout); - elm_layout_file_set(main, m_edjFilePath.c_str(), "settings_items"); - elm_object_part_content_set(settings_layout, "settings_subpage_swallow", main); - evas_object_size_hint_weight_set(main, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(main, EVAS_HINT_FILL, EVAS_HINT_FILL); - - return main; -} - -Evas_Object* SettingsUI::createInfoField(const char* name, const char* text, Evas_Object* parent) -{ - auto info_field = elm_button_add(parent); - elm_object_style_set(info_field, name); - elm_layout_content_set(parent, "info_swallow", info_field); + ItemData developer; + developer.buttonText = "Developer Options"; - elm_object_translatable_part_text_set(info_field, "text", text); // TODO Add translation API - return info_field; -} + ItemData basic; + basic.buttonText = "Basic"; -Evas_Object* SettingsUI::createDelDataMobilePage(Evas_Object* settings_layout) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + ItemData advanced; + advanced.buttonText = "Advanced"; - auto main = createMainView(settings_layout); + m_buttonsMap[SettingsOptions::BASIC] = basic; + m_buttonsMap[SettingsOptions::ADVANCED] = advanced; + m_buttonsMap[SettingsOptions::DEL_WEB_BRO] = deleteWebBrowsing; + m_buttonsMap[SettingsOptions::RESET_MOST_VIS] = resetMostVisited; + m_buttonsMap[SettingsOptions::RESET_BRO] = resetBrowser; + m_buttonsMap[SettingsOptions::AUTO_FILL] = autoFill; + m_buttonsMap[SettingsOptions::CONTENT] = content; + m_buttonsMap[SettingsOptions::PRIVACY] = privacy; + m_buttonsMap[SettingsOptions::DEVELOPER] = developer; + } - elm_object_signal_emit(m_actionBar,"back,icon,change", "del_but"); - elm_object_translatable_part_text_set(m_actionBar, "settings_title", "Delete Web Browsing Data"); + Evas_Object *SettingsUI::getContent() + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + M_ASSERT(m_parent); + if (!m_settings_layout) + m_settings_layout = createSettingsUILayout(m_parent); + return m_settings_layout; + } - createInfoField("info_field", "You can delete Web Browsing Data optionally.", main); + void SettingsUI::showUI() + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + evas_object_show(m_settings_layout); + evas_object_show(m_actionBar); + } - auto check_boxes = createDelDataMobileCheckBoxes(main); + void SettingsUI::hideUI() + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + evas_object_hide(m_settings_layout); + evas_object_hide(m_actionBar); + } - auto scroller = elm_scroller_add(main); - elm_scroller_policy_set(scroller, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF); - evas_object_size_hint_weight_set(scroller, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(scroller, EVAS_HINT_FILL, EVAS_HINT_FILL); - elm_scroller_bounce_set(scroller, EINA_FALSE, EINA_TRUE); - elm_scroller_loop_set(scroller, EINA_FALSE, EINA_FALSE); - elm_scroller_propagate_events_set(scroller, EINA_TRUE); - elm_scroller_page_relative_set(scroller, 0, 1); - elm_object_content_set(scroller, check_boxes); - evas_object_show(scroller); + Evas_Object *SettingsUI::createSettingsUILayout(Evas_Object * parent) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + M_ASSERT(parent); + Evas_Object *settings_layout = elm_layout_add(parent); + elm_layout_file_set(settings_layout, m_edjFilePath.c_str(), + "settings-layout"); + evas_object_size_hint_weight_set(settings_layout, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(settings_layout, EVAS_HINT_FILL, + EVAS_HINT_FILL); + + m_actionBar = createActionBar(settings_layout); + m_items_layout = createSettingsMobilePage(settings_layout); + elm_object_tree_focus_allow_set(settings_layout, EINA_FALSE); + + orientationChanged(); + + return settings_layout; + } - elm_object_part_content_set(main, "options_swallow", scroller); + void SettingsUI::orientationChanged() + { + auto rot = isLandscape(); + if (rot && *rot) { + if (m_actionBar) + elm_object_signal_emit(m_actionBar, "rotation,landscape", "rot"); + if (m_items_layout) { + elm_object_signal_emit(m_items_layout, "rotation,landscape,main", + "rot"); + } + if (m_subpage_layout) + elm_object_signal_emit(m_subpage_layout, "rotation,landscape,sub", + "rot"); + } else { + if (m_actionBar) + elm_object_signal_emit(m_actionBar, "rotation,portrait", "rot"); + if (m_items_layout) { + elm_object_signal_emit(m_items_layout, "rotation,portrait,main", + "rot"); + } + if (m_subpage_layout) + elm_object_signal_emit(m_subpage_layout, "rotation,portrait,sub", + "rot"); + } + } - return main; -} + Evas_Object *SettingsUI::createActionBar(Evas_Object * settings_layout) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + Evas_Object *actionBar = elm_layout_add(settings_layout); + elm_object_part_content_set(settings_layout, "actionbar_swallow", + actionBar); + evas_object_size_hint_weight_set(actionBar, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(actionBar, EVAS_HINT_FILL, + EVAS_HINT_FILL); + + elm_layout_file_set(actionBar, m_edjFilePath.c_str(), "action_bar"); + Evas_Object *close_click_btn = elm_button_add(actionBar); + elm_object_style_set(close_click_btn, "basic_button"); + evas_object_smart_callback_add(close_click_btn, "clicked", + SettingsUI::close_clicked_cb, this); + elm_object_part_content_set(actionBar, "close_click", close_click_btn); + elm_object_translatable_part_text_set(actionBar, "settings_title", + "IDS_BR_BODY_SETTINGS"); + + return actionBar; + } -Evas_Object* SettingsUI::createDelDataMobileCheckBoxes(Evas_Object* parent) -{ - auto box = elm_box_add(parent); - elm_box_horizontal_set(box, EINA_FALSE); - elm_object_content_set(parent, box); - evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_show(box); - - m_checkbox_layout = elm_layout_add(box); - evas_object_size_hint_weight_set(m_checkbox_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(m_checkbox_layout, EVAS_HINT_FILL, EVAS_HINT_FILL); - elm_layout_file_set(m_checkbox_layout, m_edjFilePath.c_str(), "delete_browsing_data_mobile"); - - auto cache_checkbox = createCheckBox(m_checkbox_layout, "cache", __checkbox_label_click_cb, this); - auto cookies_checkbox = createCheckBox(m_checkbox_layout, "cookies", __checkbox_label_click_cb, this); - auto history_checkbox = createCheckBox(m_checkbox_layout, "history", __checkbox_label_click_cb, this); - auto password_checkbox = createCheckBox(m_checkbox_layout, "password", __checkbox_label_click_cb, this); - auto formdata_checkbox = createCheckBox(m_checkbox_layout, "formdata", __checkbox_label_click_cb, this); - - elm_check_state_set(cache_checkbox, EINA_TRUE); - elm_check_state_set(cookies_checkbox, EINA_TRUE); - elm_check_state_set(history_checkbox, EINA_TRUE); - elm_check_state_set(password_checkbox, EINA_TRUE); - elm_check_state_set(formdata_checkbox, EINA_TRUE); - - evas_object_show(m_checkbox_layout); - elm_box_pack_end(box, m_checkbox_layout); - - auto button_layout = elm_layout_add(box); - elm_layout_file_set(button_layout, m_edjFilePath.c_str(), "delete_browsing_data_button"); - evas_object_size_hint_weight_set(button_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(button_layout, EVAS_HINT_FILL, EVAS_HINT_FILL); - - auto del_selected_data_button = elm_button_add(button_layout); - elm_object_style_set(del_selected_data_button, "custom_button"); - elm_layout_content_set(button_layout, "del_selected_data_click", del_selected_data_button); - evas_object_show(del_selected_data_button); - - evas_object_smart_callback_add(del_selected_data_button, "clicked", _del_selected_data_clicked_cb, this); - elm_object_translatable_part_text_set(del_selected_data_button, "button_text", "Delete Selected Data"); // TODO Add translation API - evas_object_show(button_layout); - elm_box_pack_end(box, button_layout); - - return box; -} + Evas_Object *SettingsUI::createBackActionBar(Evas_Object * + settings_layout) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + Evas_Object *actionBar = elm_layout_add(settings_layout); + elm_object_part_content_set(settings_layout, "actionbar_swallow", + actionBar); + evas_object_size_hint_weight_set(actionBar, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(actionBar, EVAS_HINT_FILL, + EVAS_HINT_FILL); + + elm_layout_file_set(actionBar, m_edjFilePath.c_str(), "action_bar"); + Evas_Object *close_click_btn = elm_button_add(actionBar); + elm_object_style_set(close_click_btn, "basic_button"); + evas_object_smart_callback_add(close_click_btn, "clicked", + SettingsUI::back_clicked_cb, this); + elm_object_part_content_set(actionBar, "close_click", close_click_btn); + + return actionBar; + } -Evas_Object* SettingsUI::createRemoveMostVisitedMobilePage(Evas_Object* settings_layout) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + char *SettingsUI::_gengrid_item_text_get(void *data, + Evas_Object * /*obj */ , + const char *part) + { + M_ASSERT(data); + if (!data) + return nullptr; + + ItemData *it = static_cast < ItemData * >(data); + + if (strcmp(part, "button_text") == 0) { + //TODO Implement translation API + const char *item_name = it->buttonText.c_str(); + if (item_name) + return strdup(item_name); + } + return nullptr; + } - Evas_Object* layout = elm_layout_add(settings_layout); - elm_layout_file_set(layout, m_edjFilePath.c_str(), "reset_most_visited"); - elm_object_part_content_set(settings_layout, "settings_subpage_swallow", layout); - evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL); + void SettingsUI::_language_changed(void *data, Evas_Object * obj, void *) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + if (data) { + SettingsUI *self = static_cast < SettingsUI * >(data); + self->updateButtonMap(); + elm_genlist_realized_items_update(obj); + } + } - elm_object_signal_emit(m_actionBar,"back,icon,change", "del_but"); - elm_object_translatable_part_text_set(m_actionBar, "settings_title", "Reset Most Visited Site"); - elm_object_focus_set(elm_object_part_content_get(m_actionBar, "close_click"), EINA_TRUE); + Evas_Object *SettingsUI::createSettingsMobilePage(Evas_Object * + settings_layout) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + + Evas_Object *layout = createMainView(settings_layout); + + elm_object_focus_set(elm_object_part_content_get + (m_actionBar, "close_click"), EINA_TRUE); + + Evas_Object *scroller = elm_genlist_add(layout); + elm_genlist_homogeneous_set(scroller, EINA_TRUE); + elm_scroller_movement_block_set(scroller, + ELM_SCROLLER_MOVEMENT_BLOCK_HORIZONTAL); + + evas_object_size_hint_weight_set(scroller, EVAS_HINT_EXPAND, 0.0); + evas_object_size_hint_align_set(scroller, EVAS_HINT_FILL, 0.0); + elm_genlist_select_mode_set(scroller, ELM_OBJECT_SELECT_MODE_ALWAYS); + elm_genlist_multi_select_set(scroller, EINA_FALSE); + elm_scroller_policy_set(scroller, ELM_SCROLLER_POLICY_OFF, + ELM_SCROLLER_POLICY_OFF); + elm_scroller_bounce_set(scroller, EINA_FALSE, EINA_FALSE); + evas_object_smart_callback_add(scroller, "language,changed", + _language_changed, this); + + auto it = + elm_genlist_item_append(scroller, m_setting_parent_item_class, + &m_buttonsMap[SettingsOptions::BASIC], + nullptr, ELM_GENLIST_ITEM_GROUP, nullptr, + this); + elm_genlist_item_append(scroller, m_setting_item_class, + &m_buttonsMap[SettingsOptions::AUTO_FILL], it, + ELM_GENLIST_ITEM_NONE, + _auto_fill_data_menu_clicked_cb, this); + elm_genlist_item_append(scroller, m_setting_item_class, + &m_buttonsMap[SettingsOptions::RESET_MOST_VIS], + it, ELM_GENLIST_ITEM_NONE, + _reset_mv_menu_clicked_cb, this); + elm_genlist_item_append(scroller, m_setting_item_class, + &m_buttonsMap[SettingsOptions::DEL_WEB_BRO], it, + ELM_GENLIST_ITEM_NONE, + _del_selected_data_menu_clicked_cb, this); + + it = + elm_genlist_item_append(scroller, m_setting_parent_item_class, + &m_buttonsMap[SettingsOptions::ADVANCED], + nullptr, ELM_GENLIST_ITEM_GROUP, nullptr, + this); + elm_genlist_item_append(scroller, m_setting_item_class, + &m_buttonsMap[SettingsOptions::PRIVACY], it, + ELM_GENLIST_ITEM_NONE, _privacy_menu_clicked_cb, + this); + elm_genlist_item_append(scroller, m_setting_item_class, + &m_buttonsMap[SettingsOptions::CONTENT], it, + ELM_GENLIST_ITEM_NONE, + _content_settings_menu_clicked_cb, this); + elm_genlist_item_append(scroller, m_setting_item_class, + &m_buttonsMap[SettingsOptions::RESET_BRO], it, + ELM_GENLIST_ITEM_NONE, + _reset_browser_menu_clicked_cb, this); + elm_genlist_item_append(scroller, m_setting_item_class, + &m_buttonsMap[SettingsOptions::DEVELOPER], it, + ELM_GENLIST_ITEM_NONE, + _developer_menu_clicked_cb, this); + + elm_object_part_content_set(layout, "options_swallow", scroller); + evas_object_show(scroller); + + return layout; + } - Evas_Object *reset_mv_button = elm_button_add(layout); - elm_object_style_set(reset_mv_button, "basic_button"); - evas_object_smart_callback_add(reset_mv_button, "clicked", _reset_mv_clicked_cb, this); - elm_layout_content_set(layout, "reset_most_visited_click", reset_mv_button); + Evas_Object *SettingsUI::createMainView(Evas_Object * settings_layout) + { + auto main = elm_layout_add(settings_layout); + elm_layout_file_set(main, m_edjFilePath.c_str(), "settings_items"); + elm_object_part_content_set(settings_layout, "settings_subpage_swallow", + main); + evas_object_size_hint_weight_set(main, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(main, EVAS_HINT_FILL, EVAS_HINT_FILL); + + return main; + } - elm_object_translatable_part_text_set(layout, "reset_most_visited_sub_text", "You can delete all items of Most Visited Site."); + Evas_Object *SettingsUI::createInfoField(const char *name, + const char *text, + Evas_Object * parent) + { + auto info_field = elm_button_add(parent); + elm_object_style_set(info_field, name); + elm_layout_content_set(parent, "info_swallow", info_field); - return layout; -} + elm_object_translatable_part_text_set(info_field, "text", text); // TODO Add translation API + return info_field; + } -Evas_Object* SettingsUI::createRemoveBrowserDataMobilePage(Evas_Object* settings_layout) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + Evas_Object *SettingsUI::createDelDataMobilePage(Evas_Object * + settings_layout) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - Evas_Object* layout = elm_layout_add(settings_layout); - elm_layout_file_set(layout, m_edjFilePath.c_str(), "reset_browser"); - elm_object_part_content_set(settings_layout, "settings_swallow", layout); - evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL); + auto main = createMainView(settings_layout); - elm_object_signal_emit(m_actionBar,"back,icon,change", "del_but"); - elm_object_translatable_part_text_set(m_actionBar, "settings_title", "Reset Browser"); - elm_object_focus_set(elm_object_part_content_get(m_actionBar, "close_click"), EINA_TRUE); + elm_object_signal_emit(m_actionBar, "back,icon,change", "del_but"); + elm_object_translatable_part_text_set(m_actionBar, "settings_title", + "Delete Web Browsing Data"); - Evas_Object *reset_browser_button = elm_button_add(layout); - elm_object_style_set(reset_browser_button, "basic_button"); - evas_object_smart_callback_add(reset_browser_button, "clicked", _reset_browser_clicked_cb, this); - elm_layout_content_set(layout, "reset_browser_click", reset_browser_button); + createInfoField("info_field", + "You can delete Web Browsing Data optionally.", main); - elm_object_translatable_part_text_set(layout, "reset_browser_sub_text", "You can delete all data and return to initial setting."); + auto check_boxes = createDelDataMobileCheckBoxes(main); - return layout; -} - -Evas_Object* SettingsUI::createDeveloperOptionsMobilePage(Evas_Object* settings_layout) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + auto scroller = elm_scroller_add(main); + elm_scroller_policy_set(scroller, ELM_SCROLLER_POLICY_OFF, + ELM_SCROLLER_POLICY_OFF); + evas_object_size_hint_weight_set(scroller, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(scroller, EVAS_HINT_FILL, + EVAS_HINT_FILL); + elm_scroller_bounce_set(scroller, EINA_FALSE, EINA_TRUE); + elm_scroller_loop_set(scroller, EINA_FALSE, EINA_FALSE); + elm_scroller_propagate_events_set(scroller, EINA_TRUE); + elm_scroller_page_relative_set(scroller, 0, 1); + elm_object_content_set(scroller, check_boxes); + evas_object_show(scroller); - Evas_Object* layout = elm_layout_add(settings_layout); - elm_layout_file_set(layout, m_edjFilePath.c_str(), "developer_options"); - elm_object_part_content_set(settings_layout, "settings_swallow", layout); - evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_object_part_content_set(main, "options_swallow", scroller); - elm_object_signal_emit(m_actionBar,"back,icon,change", "del_but"); - elm_object_translatable_part_text_set(m_actionBar, "settings_title", "Developer Options"); - elm_object_focus_set(elm_object_part_content_get(m_actionBar, "close_click"), EINA_TRUE); + return main; + } - Evas_Object *override_ua_button = elm_button_add(layout); - elm_object_style_set(override_ua_button, "basic_button"); - evas_object_smart_callback_add(override_ua_button, "clicked", _override_useragent_clicked_cb, this); - elm_layout_content_set(layout, "override_useragent_click", override_ua_button); + Evas_Object *SettingsUI::createDelDataMobileCheckBoxes(Evas_Object * + parent) + { + auto box = elm_box_add(parent); + elm_box_horizontal_set(box, EINA_FALSE); + elm_object_content_set(parent, box); + evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_show(box); + + m_checkbox_layout = elm_layout_add(box); + evas_object_size_hint_weight_set(m_checkbox_layout, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(m_checkbox_layout, EVAS_HINT_FILL, + EVAS_HINT_FILL); + elm_layout_file_set(m_checkbox_layout, m_edjFilePath.c_str(), + "delete_browsing_data_mobile"); + + auto cache_checkbox = + createCheckBox(m_checkbox_layout, "cache", __checkbox_label_click_cb, + this); + auto cookies_checkbox = + createCheckBox(m_checkbox_layout, "cookies", + __checkbox_label_click_cb, this); + auto history_checkbox = + createCheckBox(m_checkbox_layout, "history", + __checkbox_label_click_cb, this); + auto password_checkbox = + createCheckBox(m_checkbox_layout, "password", + __checkbox_label_click_cb, this); + auto formdata_checkbox = + createCheckBox(m_checkbox_layout, "formdata", + __checkbox_label_click_cb, this); + + elm_check_state_set(cache_checkbox, EINA_TRUE); + elm_check_state_set(cookies_checkbox, EINA_TRUE); + elm_check_state_set(history_checkbox, EINA_TRUE); + elm_check_state_set(password_checkbox, EINA_TRUE); + elm_check_state_set(formdata_checkbox, EINA_TRUE); + + evas_object_show(m_checkbox_layout); + elm_box_pack_end(box, m_checkbox_layout); + + auto button_layout = elm_layout_add(box); + elm_layout_file_set(button_layout, m_edjFilePath.c_str(), + "delete_browsing_data_button"); + evas_object_size_hint_weight_set(button_layout, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(button_layout, EVAS_HINT_FILL, + EVAS_HINT_FILL); + + auto del_selected_data_button = elm_button_add(button_layout); + elm_object_style_set(del_selected_data_button, "custom_button"); + elm_layout_content_set(button_layout, "del_selected_data_click", + del_selected_data_button); + evas_object_show(del_selected_data_button); + + evas_object_smart_callback_add(del_selected_data_button, "clicked", + _del_selected_data_clicked_cb, this); + elm_object_translatable_part_text_set(del_selected_data_button, "button_text", "Delete Selected Data"); // TODO Add translation API + evas_object_show(button_layout); + elm_box_pack_end(box, button_layout); + + return box; + } - elm_object_translatable_part_text_set(layout, "developer_options_sub_text", "You can override the Browser's UserAgent to desired string."); + Evas_Object *SettingsUI::createRemoveMostVisitedMobilePage(Evas_Object * + settings_layout) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + + Evas_Object *layout = elm_layout_add(settings_layout); + elm_layout_file_set(layout, m_edjFilePath.c_str(), + "reset_most_visited"); + elm_object_part_content_set(settings_layout, "settings_subpage_swallow", + layout); + evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL); + + elm_object_signal_emit(m_actionBar, "back,icon,change", "del_but"); + elm_object_translatable_part_text_set(m_actionBar, "settings_title", + "Reset Most Visited Site"); + elm_object_focus_set(elm_object_part_content_get + (m_actionBar, "close_click"), EINA_TRUE); + + Evas_Object *reset_mv_button = elm_button_add(layout); + elm_object_style_set(reset_mv_button, "basic_button"); + evas_object_smart_callback_add(reset_mv_button, "clicked", + _reset_mv_clicked_cb, this); + elm_layout_content_set(layout, "reset_most_visited_click", + reset_mv_button); + + elm_object_translatable_part_text_set(layout, + "reset_most_visited_sub_text", + "You can delete all items of Most Visited Site."); + + return layout; + } - return layout; -} + Evas_Object *SettingsUI::createRemoveBrowserDataMobilePage(Evas_Object * + settings_layout) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + + Evas_Object *layout = elm_layout_add(settings_layout); + elm_layout_file_set(layout, m_edjFilePath.c_str(), "reset_browser"); + elm_object_part_content_set(settings_layout, "settings_swallow", + layout); + evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL); + + elm_object_signal_emit(m_actionBar, "back,icon,change", "del_but"); + elm_object_translatable_part_text_set(m_actionBar, "settings_title", + "Reset Browser"); + elm_object_focus_set(elm_object_part_content_get + (m_actionBar, "close_click"), EINA_TRUE); + + Evas_Object *reset_browser_button = elm_button_add(layout); + elm_object_style_set(reset_browser_button, "basic_button"); + evas_object_smart_callback_add(reset_browser_button, "clicked", + _reset_browser_clicked_cb, this); + elm_layout_content_set(layout, "reset_browser_click", + reset_browser_button); + + elm_object_translatable_part_text_set(layout, "reset_browser_sub_text", + "You can delete all data and return to initial setting."); + + return layout; + } -Evas_Object* SettingsUI::createCheckBox(Evas_Object* layout, const std::string name, Edje_Signal_Cb func, void* data) -{ - Evas_Object* edje = elm_layout_edje_get(layout); - Evas_Object* checkbox = elm_check_add(layout); - elm_object_style_set(checkbox, "custom_check"); - elm_layout_content_set(layout, (name + "_cb").c_str(), checkbox); - edje_object_signal_callback_add(edje, "mouse,clicked,1", (name + "_cb_text_bg").c_str(), func, data); - evas_object_show(checkbox); - return checkbox; -} + Evas_Object *SettingsUI::createDeveloperOptionsMobilePage(Evas_Object * + settings_layout) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + + Evas_Object *layout = elm_layout_add(settings_layout); + elm_layout_file_set(layout, m_edjFilePath.c_str(), "developer_options"); + elm_object_part_content_set(settings_layout, "settings_swallow", + layout); + evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL); + + elm_object_signal_emit(m_actionBar, "back,icon,change", "del_but"); + elm_object_translatable_part_text_set(m_actionBar, "settings_title", + "Developer Options"); + elm_object_focus_set(elm_object_part_content_get + (m_actionBar, "close_click"), EINA_TRUE); + + Evas_Object *override_ua_button = elm_button_add(layout); + elm_object_style_set(override_ua_button, "basic_button"); + evas_object_smart_callback_add(override_ua_button, "clicked", + _override_useragent_clicked_cb, this); + elm_layout_content_set(layout, "override_useragent_click", + override_ua_button); + + elm_object_translatable_part_text_set(layout, + "developer_options_sub_text", + "You can override the Browser's UserAgent to desired string."); + + return layout; + } -void SettingsUI::__checkbox_label_click_cb(void *data, Evas_Object*, const char*, const char *source) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (data) { - SettingsUI* self = static_cast(data); - - if (strcmp(source, "cache_cb_text_bg") == 0 ){ - Evas_Object *cache_check = elm_layout_content_get(self->m_checkbox_layout, "cache_cb"); - elm_check_state_set(cache_check, !elm_check_state_get(cache_check)); - } - else if (strcmp(source, "cookies_cb_text_bg") == 0 ){ - Evas_Object *cookies_check = elm_layout_content_get(self->m_checkbox_layout, "cookies_cb"); - elm_check_state_set(cookies_check, !elm_check_state_get(cookies_check)); - } - else if (strcmp(source, "history_cb_text_bg") == 0 ){ - Evas_Object *history_check = elm_layout_content_get(self->m_checkbox_layout, "history_cb"); - elm_check_state_set(history_check, !elm_check_state_get(history_check)); - } - else if (strcmp(source, "password_cb_text_bg") == 0 ){ - Evas_Object *password_check = elm_layout_content_get(self->m_checkbox_layout, "password_cb"); - elm_check_state_set(password_check, !elm_check_state_get(password_check)); - } - else if (strcmp(source, "formdata_cb_text_bg") == 0 ){ - Evas_Object *formdata_check = elm_layout_content_get(self->m_checkbox_layout, "formdata_cb"); - elm_check_state_set(formdata_check, !elm_check_state_get(formdata_check)); - } - else{ - BROWSER_LOGD("[%s:%d] - no matched source", __PRETTY_FUNCTION__, __LINE__); - } + Evas_Object *SettingsUI::createCheckBox(Evas_Object * layout, + const std::string name, + Edje_Signal_Cb func, void *data) + { + Evas_Object *edje = elm_layout_edje_get(layout); + Evas_Object *checkbox = elm_check_add(layout); + elm_object_style_set(checkbox, "custom_check"); + elm_layout_content_set(layout, (name + "_cb").c_str(), checkbox); + edje_object_signal_callback_add(edje, "mouse,clicked,1", + (name + "_cb_text_bg").c_str(), func, + data); + evas_object_show(checkbox); + return checkbox; } -} -Evas_Object* SettingsUI::createContentSettingsPage(Evas_Object* settings_layout) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - - auto main = createMainView(settings_layout); - - elm_object_signal_emit(m_actionBar,"back,icon,change", "del_but"); - elm_object_translatable_part_text_set(m_actionBar, "settings_title", "Content Settings"); - - createInfoField("info_field", "Choose web page content", main); - - auto box = elm_box_add(main); - elm_box_horizontal_set(box, EINA_FALSE); - elm_object_content_set(main, box); - evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_show(box); - - m_checkbox_layout = elm_layout_add(box); - evas_object_size_hint_weight_set(m_checkbox_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(m_checkbox_layout, EVAS_HINT_FILL, EVAS_HINT_FILL); - elm_layout_file_set(m_checkbox_layout, m_edjFilePath.c_str(), "content_settings_mobile"); - - boost::optional sig = getWebEngineSettingsParam(basic_webengine::WebEngineSettings::PAGE_OVERVIEW); - Eina_Bool flag = (sig && *sig) ? EINA_TRUE : EINA_FALSE; - Evas_Object* overview_checkbox = createCheckBox(m_checkbox_layout, "overview", __checkbox_content_settings_label_click_cb, this); - elm_check_state_set(overview_checkbox, flag); - - sig = getWebEngineSettingsParam(basic_webengine::WebEngineSettings::LOAD_IMAGES); - flag = (sig && *sig) ? EINA_TRUE : EINA_FALSE; - Evas_Object* images_checkbox = createCheckBox(m_checkbox_layout, "images", __checkbox_content_settings_label_click_cb, this); - elm_check_state_set(images_checkbox, flag); - - sig = getWebEngineSettingsParam(basic_webengine::WebEngineSettings::ENABLE_JAVASCRIPT); - flag = (sig && *sig) ? EINA_TRUE : EINA_FALSE; - Evas_Object* javascript_checkbox = createCheckBox(m_checkbox_layout, "javascript", __checkbox_content_settings_label_click_cb, this); - elm_check_state_set(javascript_checkbox, flag); - - evas_object_show(m_checkbox_layout); - elm_box_pack_end(box, m_checkbox_layout); - - auto scroller = elm_scroller_add(main); - elm_scroller_policy_set(scroller, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF); - evas_object_size_hint_weight_set(scroller, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(scroller, EVAS_HINT_FILL, EVAS_HINT_FILL); - elm_scroller_bounce_set(scroller, EINA_FALSE, EINA_TRUE); - elm_scroller_loop_set(scroller, EINA_FALSE, EINA_FALSE); - elm_scroller_propagate_events_set(scroller, EINA_TRUE); - elm_scroller_page_relative_set(scroller, 0, 1); - elm_object_content_set(scroller, box); - evas_object_show(scroller); - - elm_object_part_content_set(main, "options_swallow", scroller); - - return main; -} + void SettingsUI::__checkbox_label_click_cb(void *data, Evas_Object *, + const char *, + const char *source) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + if (data) { + SettingsUI *self = static_cast < SettingsUI * >(data); + + if (strcmp(source, "cache_cb_text_bg") == 0) { + Evas_Object *cache_check = + elm_layout_content_get(self->m_checkbox_layout, "cache_cb"); + elm_check_state_set(cache_check, !elm_check_state_get(cache_check)); + } else if (strcmp(source, "cookies_cb_text_bg") == 0) { + Evas_Object *cookies_check = + elm_layout_content_get(self->m_checkbox_layout, "cookies_cb"); + elm_check_state_set(cookies_check, + !elm_check_state_get(cookies_check)); + } else if (strcmp(source, "history_cb_text_bg") == 0) { + Evas_Object *history_check = + elm_layout_content_get(self->m_checkbox_layout, "history_cb"); + elm_check_state_set(history_check, + !elm_check_state_get(history_check)); + } else if (strcmp(source, "password_cb_text_bg") == 0) { + Evas_Object *password_check = + elm_layout_content_get(self->m_checkbox_layout, "password_cb"); + elm_check_state_set(password_check, + !elm_check_state_get(password_check)); + } else if (strcmp(source, "formdata_cb_text_bg") == 0) { + Evas_Object *formdata_check = + elm_layout_content_get(self->m_checkbox_layout, "formdata_cb"); + elm_check_state_set(formdata_check, + !elm_check_state_get(formdata_check)); + } else { + BROWSER_LOGD("[%s:%d] - no matched source", __PRETTY_FUNCTION__, + __LINE__); + } + } + } -Evas_Object* SettingsUI::createPrivacyPage(Evas_Object* settings_layout) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - - auto main = createMainView(settings_layout); - - elm_object_signal_emit(m_actionBar,"back,icon,change", "del_but"); - elm_object_translatable_part_text_set(m_actionBar, "settings_title", "Privacy"); - - createInfoField("info_field", "Choose privacy settings", main); - - auto box = elm_box_add(main); - elm_box_horizontal_set(box, EINA_FALSE); - elm_object_content_set(main, box); - evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_show(box); - - m_checkbox_layout = elm_layout_add(box); - elm_layout_file_set(m_checkbox_layout, m_edjFilePath.c_str(), "privacy_mobile"); - evas_object_size_hint_weight_set(m_checkbox_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(m_checkbox_layout, EVAS_HINT_FILL, EVAS_HINT_FILL); - - boost::optional sig = getWebEngineSettingsParam(basic_webengine::WebEngineSettings::REMEMBER_FROM_DATA); - Eina_Bool flag = (sig && *sig) ? EINA_TRUE : EINA_FALSE; - Evas_Object* form_data_checkbox = createCheckBox(m_checkbox_layout, "form_data", __checkbox_privacy_label_click_cb, this); - elm_check_state_set(form_data_checkbox, flag); - - sig = getWebEngineSettingsParam(basic_webengine::WebEngineSettings::REMEMBER_PASSWORDS); - flag = (sig && *sig) ? EINA_TRUE : EINA_FALSE; - Evas_Object* passwd_checkbox = createCheckBox(m_checkbox_layout, "passwords", __checkbox_privacy_label_click_cb, this); - elm_check_state_set(passwd_checkbox, flag); - - evas_object_show(m_checkbox_layout); - elm_box_pack_end(box, m_checkbox_layout); - - auto scroller = elm_scroller_add(main); - elm_scroller_policy_set(scroller, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF); - evas_object_size_hint_weight_set(scroller, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(scroller, EVAS_HINT_FILL, EVAS_HINT_FILL); - elm_scroller_bounce_set(scroller, EINA_FALSE, EINA_TRUE); - elm_scroller_loop_set(scroller, EINA_FALSE, EINA_FALSE); - elm_scroller_propagate_events_set(scroller, EINA_TRUE); - elm_scroller_page_relative_set(scroller, 0, 1); - elm_object_content_set(scroller, box); - evas_object_show(scroller); - - elm_object_part_content_set(main, "options_swallow", scroller); - - return main; -} + Evas_Object *SettingsUI::createContentSettingsPage(Evas_Object * + settings_layout) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + + auto main = createMainView(settings_layout); + + elm_object_signal_emit(m_actionBar, "back,icon,change", "del_but"); + elm_object_translatable_part_text_set(m_actionBar, "settings_title", + "Content Settings"); + + createInfoField("info_field", "Choose web page content", main); + + auto box = elm_box_add(main); + elm_box_horizontal_set(box, EINA_FALSE); + elm_object_content_set(main, box); + evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_show(box); + + m_checkbox_layout = elm_layout_add(box); + evas_object_size_hint_weight_set(m_checkbox_layout, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(m_checkbox_layout, EVAS_HINT_FILL, + EVAS_HINT_FILL); + elm_layout_file_set(m_checkbox_layout, m_edjFilePath.c_str(), + "content_settings_mobile"); + + boost::optional < bool > sig = + getWebEngineSettingsParam(basic_webengine::WebEngineSettings:: + PAGE_OVERVIEW); + Eina_Bool flag = (sig && *sig) ? EINA_TRUE : EINA_FALSE; + Evas_Object *overview_checkbox = + createCheckBox(m_checkbox_layout, "overview", + __checkbox_content_settings_label_click_cb, this); + elm_check_state_set(overview_checkbox, flag); + + sig = + getWebEngineSettingsParam(basic_webengine::WebEngineSettings:: + LOAD_IMAGES); + flag = (sig && *sig) ? EINA_TRUE : EINA_FALSE; + Evas_Object *images_checkbox = + createCheckBox(m_checkbox_layout, "images", + __checkbox_content_settings_label_click_cb, this); + elm_check_state_set(images_checkbox, flag); + + sig = + getWebEngineSettingsParam(basic_webengine::WebEngineSettings:: + ENABLE_JAVASCRIPT); + flag = (sig && *sig) ? EINA_TRUE : EINA_FALSE; + Evas_Object *javascript_checkbox = + createCheckBox(m_checkbox_layout, "javascript", + __checkbox_content_settings_label_click_cb, this); + elm_check_state_set(javascript_checkbox, flag); + + evas_object_show(m_checkbox_layout); + elm_box_pack_end(box, m_checkbox_layout); + + auto scroller = elm_scroller_add(main); + elm_scroller_policy_set(scroller, ELM_SCROLLER_POLICY_OFF, + ELM_SCROLLER_POLICY_OFF); + evas_object_size_hint_weight_set(scroller, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(scroller, EVAS_HINT_FILL, + EVAS_HINT_FILL); + elm_scroller_bounce_set(scroller, EINA_FALSE, EINA_TRUE); + elm_scroller_loop_set(scroller, EINA_FALSE, EINA_FALSE); + elm_scroller_propagate_events_set(scroller, EINA_TRUE); + elm_scroller_page_relative_set(scroller, 0, 1); + elm_object_content_set(scroller, box); + evas_object_show(scroller); + + elm_object_part_content_set(main, "options_swallow", scroller); + + return main; + } -void SettingsUI::__checkbox_content_settings_label_click_cb(void* data, Evas_Object*, const char*, const char* source) -{ - if (data) { - auto self = static_cast(data); - - if (strcmp(source, "overview_cb_text_bg") == 0 ) { - Evas_Object *checkbox = elm_layout_content_get(self->m_checkbox_layout, "overview_cb"); - Eina_Bool value = !elm_check_state_get(checkbox); - elm_check_state_set(checkbox, value); - self->setWebEngineSettingsParam(basic_webengine::WebEngineSettings::PAGE_OVERVIEW, static_cast(value)); - } else if (strcmp(source, "images_cb_text_bg") == 0 ) { - Evas_Object *checkbox = elm_layout_content_get(self->m_checkbox_layout, "images_cb"); - Eina_Bool value = !elm_check_state_get(checkbox); - elm_check_state_set(checkbox, value); - self->setWebEngineSettingsParam(basic_webengine::WebEngineSettings::LOAD_IMAGES, static_cast(value)); - } else if (strcmp(source, "javascript_cb_text_bg") == 0 ) { - Evas_Object *checkbox = elm_layout_content_get(self->m_checkbox_layout, "javascript_cb"); - Eina_Bool value = !elm_check_state_get(checkbox); - elm_check_state_set(checkbox, value); - self->setWebEngineSettingsParam(basic_webengine::WebEngineSettings::ENABLE_JAVASCRIPT, static_cast(value)); - } else { - BROWSER_LOGD("[%s:%d] - no matched source", __PRETTY_FUNCTION__, __LINE__); - } - } else { - BROWSER_LOGD("[%s:%d] Warning no data specified!", __PRETTY_FUNCTION__, __LINE__); + Evas_Object *SettingsUI::createPrivacyPage(Evas_Object * settings_layout) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + + auto main = createMainView(settings_layout); + + elm_object_signal_emit(m_actionBar, "back,icon,change", "del_but"); + elm_object_translatable_part_text_set(m_actionBar, "settings_title", + "Privacy"); + + createInfoField("info_field", "Choose privacy settings", main); + + auto box = elm_box_add(main); + elm_box_horizontal_set(box, EINA_FALSE); + elm_object_content_set(main, box); + evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_show(box); + + m_checkbox_layout = elm_layout_add(box); + elm_layout_file_set(m_checkbox_layout, m_edjFilePath.c_str(), + "privacy_mobile"); + evas_object_size_hint_weight_set(m_checkbox_layout, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(m_checkbox_layout, EVAS_HINT_FILL, + EVAS_HINT_FILL); + + boost::optional < bool > sig = + getWebEngineSettingsParam(basic_webengine::WebEngineSettings:: + REMEMBER_FROM_DATA); + Eina_Bool flag = (sig && *sig) ? EINA_TRUE : EINA_FALSE; + Evas_Object *form_data_checkbox = + createCheckBox(m_checkbox_layout, "form_data", + __checkbox_privacy_label_click_cb, this); + elm_check_state_set(form_data_checkbox, flag); + + sig = + getWebEngineSettingsParam(basic_webengine::WebEngineSettings:: + REMEMBER_PASSWORDS); + flag = (sig && *sig) ? EINA_TRUE : EINA_FALSE; + Evas_Object *passwd_checkbox = + createCheckBox(m_checkbox_layout, "passwords", + __checkbox_privacy_label_click_cb, this); + elm_check_state_set(passwd_checkbox, flag); + + evas_object_show(m_checkbox_layout); + elm_box_pack_end(box, m_checkbox_layout); + + auto scroller = elm_scroller_add(main); + elm_scroller_policy_set(scroller, ELM_SCROLLER_POLICY_OFF, + ELM_SCROLLER_POLICY_OFF); + evas_object_size_hint_weight_set(scroller, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(scroller, EVAS_HINT_FILL, + EVAS_HINT_FILL); + elm_scroller_bounce_set(scroller, EINA_FALSE, EINA_TRUE); + elm_scroller_loop_set(scroller, EINA_FALSE, EINA_FALSE); + elm_scroller_propagate_events_set(scroller, EINA_TRUE); + elm_scroller_page_relative_set(scroller, 0, 1); + elm_object_content_set(scroller, box); + evas_object_show(scroller); + + elm_object_part_content_set(main, "options_swallow", scroller); + + return main; } -} -void SettingsUI::__checkbox_privacy_label_click_cb(void* data, Evas_Object*, const char*, const char* source) -{ - if (data) { - auto self = static_cast(data); - - if (strcmp(source, "form_data_cb_text_bg") == 0 ) { - Evas_Object *checkbox = elm_layout_content_get(self->m_checkbox_layout, "form_data_cb"); - Eina_Bool value = !elm_check_state_get(checkbox); - elm_check_state_set(checkbox, value); - self->setWebEngineSettingsParam(basic_webengine::WebEngineSettings::REMEMBER_FROM_DATA, static_cast(value)); - } else if (strcmp(source, "passwords_cb_text_bg") == 0 ) { - Evas_Object *checkbox = elm_layout_content_get(self->m_checkbox_layout, "passwords_cb"); - Eina_Bool value = !elm_check_state_get(checkbox); - elm_check_state_set(checkbox, value); - self->setWebEngineSettingsParam(basic_webengine::WebEngineSettings::REMEMBER_PASSWORDS, static_cast(value)); - } else { - BROWSER_LOGD("[%s:%d] - no matched source", __PRETTY_FUNCTION__, __LINE__); - } - } else { - BROWSER_LOGD("[%s:%d] Warning no data specified!", __PRETTY_FUNCTION__, __LINE__); + void SettingsUI::__checkbox_content_settings_label_click_cb(void *data, + Evas_Object *, + const char *, + const char + *source) + { + if (data) { + auto self = static_cast < SettingsUI * >(data); + + if (strcmp(source, "overview_cb_text_bg") == 0) { + Evas_Object *checkbox = + elm_layout_content_get(self->m_checkbox_layout, "overview_cb"); + Eina_Bool value = !elm_check_state_get(checkbox); + elm_check_state_set(checkbox, value); + self-> + setWebEngineSettingsParam(basic_webengine::WebEngineSettings:: + PAGE_OVERVIEW, + static_cast < bool > (value)); + } else if (strcmp(source, "images_cb_text_bg") == 0) { + Evas_Object *checkbox = + elm_layout_content_get(self->m_checkbox_layout, "images_cb"); + Eina_Bool value = !elm_check_state_get(checkbox); + elm_check_state_set(checkbox, value); + self-> + setWebEngineSettingsParam(basic_webengine::WebEngineSettings:: + LOAD_IMAGES, + static_cast < bool > (value)); + } else if (strcmp(source, "javascript_cb_text_bg") == 0) { + Evas_Object *checkbox = + elm_layout_content_get(self->m_checkbox_layout, "javascript_cb"); + Eina_Bool value = !elm_check_state_get(checkbox); + elm_check_state_set(checkbox, value); + self-> + setWebEngineSettingsParam(basic_webengine::WebEngineSettings:: + ENABLE_JAVASCRIPT, + static_cast < bool > (value)); + } else { + BROWSER_LOGD("[%s:%d] - no matched source", __PRETTY_FUNCTION__, + __LINE__); + } + } else { + BROWSER_LOGD("[%s:%d] Warning no data specified!", + __PRETTY_FUNCTION__, __LINE__); + } } -} -void SettingsUI::close_clicked_cb(void* data, Evas_Object*, void*) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (data) { - SettingsUI * s_ui = static_cast(data); - s_ui->closeSettingsUIClicked(); + void SettingsUI::__checkbox_privacy_label_click_cb(void *data, + Evas_Object *, + const char *, + const char *source) + { + if (data) { + auto self = static_cast < SettingsUI * >(data); + + if (strcmp(source, "form_data_cb_text_bg") == 0) { + Evas_Object *checkbox = + elm_layout_content_get(self->m_checkbox_layout, "form_data_cb"); + Eina_Bool value = !elm_check_state_get(checkbox); + elm_check_state_set(checkbox, value); + self-> + setWebEngineSettingsParam(basic_webengine::WebEngineSettings:: + REMEMBER_FROM_DATA, + static_cast < bool > (value)); + } else if (strcmp(source, "passwords_cb_text_bg") == 0) { + Evas_Object *checkbox = + elm_layout_content_get(self->m_checkbox_layout, "passwords_cb"); + Eina_Bool value = !elm_check_state_get(checkbox); + elm_check_state_set(checkbox, value); + self-> + setWebEngineSettingsParam(basic_webengine::WebEngineSettings:: + REMEMBER_PASSWORDS, + static_cast < bool > (value)); + } else { + BROWSER_LOGD("[%s:%d] - no matched source", __PRETTY_FUNCTION__, + __LINE__); + } + } else { + BROWSER_LOGD("[%s:%d] Warning no data specified!", + __PRETTY_FUNCTION__, __LINE__); + } } -} -void SettingsUI::back_clicked_cb(void* data, Evas_Object*, void*) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (data) { - SettingsUI * s_ui = static_cast(data); - s_ui->onBackKey(); + void SettingsUI::close_clicked_cb(void *data, Evas_Object *, void *) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + if (data) { + SettingsUI *s_ui = static_cast < SettingsUI * >(data); + s_ui->closeSettingsUIClicked(); + } } -} -void SettingsUI::initializeAutoFillManager() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - M_ASSERT(m_parent); - resetItemsLayoutContent(); - - m_actionBar = createBackActionBar(m_settings_layout); - auto main = createMainView(m_settings_layout); - m_autoFillManager = std::unique_ptr(new AutoFillFormManager()); - m_autoFillManager->listViewBackClicked.connect(boost::bind(&SettingsUI::destroyAutoFillManager, this)); - m_autoFillManager->init(main, m_actionBar); - - m_subpage_layout = m_autoFillManager->showListView(); - elm_object_tree_focus_allow_set(m_settings_layout, EINA_TRUE); -} + void SettingsUI::back_clicked_cb(void *data, Evas_Object *, void *) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + if (data) { + SettingsUI *s_ui = static_cast < SettingsUI * >(data); + s_ui->onBackKey(); + } + } -void SettingsUI::destroyAutoFillManager() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - elm_object_tree_focus_allow_set(m_settings_layout, EINA_FALSE); -} + void SettingsUI::initializeAutoFillManager() + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + M_ASSERT(m_parent); + resetItemsLayoutContent(); + + m_actionBar = createBackActionBar(m_settings_layout); + auto main = createMainView(m_settings_layout); + m_autoFillManager = + std::unique_ptr < AutoFillFormManager > (new AutoFillFormManager()); + m_autoFillManager->listViewBackClicked. + connect(boost::bind(&SettingsUI::destroyAutoFillManager, this)); + m_autoFillManager->init(main, m_actionBar); + + m_subpage_layout = m_autoFillManager->showListView(); + elm_object_tree_focus_allow_set(m_settings_layout, EINA_TRUE); + } -void SettingsUI::_auto_fill_data_menu_clicked_cb(void* data, Evas_Object*, void*) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (data) { - SettingsUI* self = static_cast(data); - self->initializeAutoFillManager(); + void SettingsUI::destroyAutoFillManager() + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + elm_object_tree_focus_allow_set(m_settings_layout, EINA_FALSE); } -} -void SettingsUI::_del_selected_data_clicked_cb(void *data, Evas_Object*, void*) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (data) { - SettingsUI* self = static_cast(data); - Evas_Object *cache_check = elm_layout_content_get(self->m_checkbox_layout, "cache_cb"); - Evas_Object *cookies_check = elm_layout_content_get(self->m_checkbox_layout, "cookies_cb"); - Evas_Object *history_check = elm_layout_content_get(self->m_checkbox_layout, "history_cb"); - Evas_Object *password_check = elm_layout_content_get(self->m_checkbox_layout, "password_cb"); - Evas_Object *formdata_check = elm_layout_content_get(self->m_checkbox_layout, "formdata_cb"); - std::string type; - elm_check_state_get(cache_check) ? type += "_CACHE" : ""; - elm_check_state_get(cookies_check) ? type += "_COOKIES" : ""; - elm_check_state_get(history_check) ? type += "_HISTORY" : ""; - elm_check_state_get(password_check) ? type += "_PASSWORD" : ""; - elm_check_state_get(formdata_check) ? type += "_FORMDATA" : ""; - - self->deleteSelectedDataClicked(type); + void SettingsUI::_auto_fill_data_menu_clicked_cb(void *data, + Evas_Object *, void *) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + if (data) { + SettingsUI *self = static_cast < SettingsUI * >(data); + self->initializeAutoFillManager(); + } } -} -void SettingsUI::_del_selected_data_menu_clicked_cb(void *data, Evas_Object*, void*) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (data) { - SettingsUI* self = static_cast(data); - self->resetItemsLayoutContent(); - self->m_actionBar = self->createBackActionBar(self->m_settings_layout); - self->m_subpage_layout = self->createDelDataMobilePage(self->m_settings_layout); - self->orientationChanged(); + void SettingsUI::_del_selected_data_clicked_cb(void *data, Evas_Object *, + void *) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + if (data) { + SettingsUI *self = static_cast < SettingsUI * >(data); + Evas_Object *cache_check = + elm_layout_content_get(self->m_checkbox_layout, "cache_cb"); + Evas_Object *cookies_check = + elm_layout_content_get(self->m_checkbox_layout, "cookies_cb"); + Evas_Object *history_check = + elm_layout_content_get(self->m_checkbox_layout, "history_cb"); + Evas_Object *password_check = + elm_layout_content_get(self->m_checkbox_layout, "password_cb"); + Evas_Object *formdata_check = + elm_layout_content_get(self->m_checkbox_layout, "formdata_cb"); + std::string type; + elm_check_state_get(cache_check) ? type += "_CACHE" : ""; + elm_check_state_get(cookies_check) ? type += "_COOKIES" : ""; + elm_check_state_get(history_check) ? type += "_HISTORY" : ""; + elm_check_state_get(password_check) ? type += "_PASSWORD" : ""; + elm_check_state_get(formdata_check) ? type += "_FORMDATA" : ""; + + self->deleteSelectedDataClicked(type); + } } -} -void SettingsUI::_reset_mv_clicked_cb(void *data, Evas_Object*, void*) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (data) { - SettingsUI* self = static_cast(data); - self->resetMostVisitedClicked(); - self->orientationChanged(); + void SettingsUI::_del_selected_data_menu_clicked_cb(void *data, + Evas_Object *, void *) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + if (data) { + SettingsUI *self = static_cast < SettingsUI * >(data); + self->resetItemsLayoutContent(); + self->m_actionBar = + self->createBackActionBar(self->m_settings_layout); + self->m_subpage_layout = + self->createDelDataMobilePage(self->m_settings_layout); + self->orientationChanged(); + } } -} -void SettingsUI::_reset_mv_menu_clicked_cb(void *data, Evas_Object*, void*) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (data) { - SettingsUI* self = static_cast(data); - self->resetItemsLayoutContent(); - self->m_actionBar = self->createBackActionBar(self->m_settings_layout); - self->m_subpage_layout = self->createRemoveMostVisitedMobilePage(self->m_settings_layout); - self->orientationChanged(); + void SettingsUI::_reset_mv_clicked_cb(void *data, Evas_Object *, void *) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + if (data) { + SettingsUI *self = static_cast < SettingsUI * >(data); + self->resetMostVisitedClicked(); + self->orientationChanged(); + } } -} -void SettingsUI::_reset_browser_clicked_cb(void *data, Evas_Object*, void*) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (data) { - SettingsUI* self = static_cast(data); - self->resetBrowserClicked(); - self->orientationChanged(); + void SettingsUI::_reset_mv_menu_clicked_cb(void *data, Evas_Object *, + void *) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + if (data) { + SettingsUI *self = static_cast < SettingsUI * >(data); + self->resetItemsLayoutContent(); + self->m_actionBar = + self->createBackActionBar(self->m_settings_layout); + self->m_subpage_layout = + self->createRemoveMostVisitedMobilePage(self->m_settings_layout); + self->orientationChanged(); + } } -} -void SettingsUI::_reset_browser_menu_clicked_cb(void *data, Evas_Object*, void*) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (data) { - SettingsUI* self = static_cast(data); - self->resetItemsLayoutContent(); - self->m_actionBar = self->createBackActionBar(self->m_settings_layout); - self->m_subpage_layout = self->createRemoveBrowserDataMobilePage(self->m_settings_layout); - self->orientationChanged(); + void SettingsUI::_reset_browser_clicked_cb(void *data, Evas_Object *, + void *) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + if (data) { + SettingsUI *self = static_cast < SettingsUI * >(data); + self->resetBrowserClicked(); + self->orientationChanged(); + } } -} -void SettingsUI::_content_settings_menu_clicked_cb(void* data, Evas_Object*, void*) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (data) { - auto self = static_cast(data); - self->resetItemsLayoutContent(); - self->m_actionBar = self->createBackActionBar(self->m_settings_layout); - self->m_subpage_layout = self->createContentSettingsPage(self->m_settings_layout); - self->orientationChanged(); + void SettingsUI::_reset_browser_menu_clicked_cb(void *data, Evas_Object *, + void *) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + if (data) { + SettingsUI *self = static_cast < SettingsUI * >(data); + self->resetItemsLayoutContent(); + self->m_actionBar = + self->createBackActionBar(self->m_settings_layout); + self->m_subpage_layout = + self->createRemoveBrowserDataMobilePage(self->m_settings_layout); + self->orientationChanged(); + } } -} -void SettingsUI::_privacy_menu_clicked_cb(void* data, Evas_Object*, void*) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (data) { - auto self = static_cast(data); - self->resetItemsLayoutContent(); - self->m_actionBar = self->createBackActionBar(self->m_settings_layout); - self->m_subpage_layout = self->createPrivacyPage(self->m_settings_layout); - self->orientationChanged(); + void SettingsUI::_content_settings_menu_clicked_cb(void *data, + Evas_Object *, void *) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + if (data) { + auto self = static_cast < SettingsUI * >(data); + self->resetItemsLayoutContent(); + self->m_actionBar = + self->createBackActionBar(self->m_settings_layout); + self->m_subpage_layout = + self->createContentSettingsPage(self->m_settings_layout); + self->orientationChanged(); + } } -} -void SettingsUI::_developer_menu_clicked_cb(void *data, Evas_Object*, void*) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (data) { - SettingsUI* self = static_cast(data); - self->resetItemsLayoutContent(); - self->m_actionBar = self->createBackActionBar(self->m_settings_layout); - self->m_subpage_layout = self->createDeveloperOptionsMobilePage(self->m_settings_layout); - self->orientationChanged(); + void SettingsUI::_privacy_menu_clicked_cb(void *data, Evas_Object *, + void *) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + if (data) { + auto self = static_cast < SettingsUI * >(data); + self->resetItemsLayoutContent(); + self->m_actionBar = + self->createBackActionBar(self->m_settings_layout); + self->m_subpage_layout = + self->createPrivacyPage(self->m_settings_layout); + self->orientationChanged(); + } } -} -void SettingsUI::_override_useragent_clicked_cb(void *data, Evas_Object*, void*) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (data) { - SettingsUI* self = static_cast(data); - self->resetItemsLayoutContent(); - self->m_actionBar = self->createBackActionBar(self->m_settings_layout); - self->m_subpage_layout = self->createUserAgentGenList(self->m_settings_layout); - self->orientationChanged(); + void SettingsUI::_developer_menu_clicked_cb(void *data, Evas_Object *, + void *) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + if (data) { + SettingsUI *self = static_cast < SettingsUI * >(data); + self->resetItemsLayoutContent(); + self->m_actionBar = + self->createBackActionBar(self->m_settings_layout); + self->m_subpage_layout = + self->createDeveloperOptionsMobilePage(self->m_settings_layout); + self->orientationChanged(); + } } -} -Evas_Object* SettingsUI::createUserAgentGenList(Evas_Object* settings_layout) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - - Evas_Object* layout = elm_layout_add(settings_layout); - elm_layout_file_set(layout, m_edjFilePath.c_str(), "useragent_list"); - elm_object_part_content_set(settings_layout, "settings_swallow", layout); - evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL); - - elm_object_translatable_part_text_set(m_actionBar, "settings_title", "Override UserAgent"); - elm_object_focus_set(elm_object_part_content_get(m_actionBar, "close_click"), EINA_TRUE); - - Evas_Object *genlist = elm_genlist_add(layout); - if (!genlist) { - BROWSER_LOGE("elm_genlist_add failed"); - return NULL; - } - Elm_Genlist_Item_Class* itemClass = elm_genlist_item_class_new(); - itemClass->item_style = "useragent_item"; - itemClass->func.content_get = NULL; - itemClass->func.text_get = _ua_text_get_cb; - itemClass->func.state_get = NULL; - itemClass->func.del = NULL; - - for (unsigned int i = 0; i < UA_ITEMS_COUNT; i++) { - genlistCallbackData* item_callback_data = new genlistCallbackData; - item_callback_data->uaItem = {uaList[i].name, uaList[i].uaString}; - item_callback_data->user_data = this; - item_callback_data->it = elm_genlist_item_append(genlist, itemClass, item_callback_data, NULL, - ELM_GENLIST_ITEM_NONE, _useragent_item_clicked_cb, item_callback_data); - } - evas_object_show(genlist); - elm_object_part_content_set(layout, "ua_genlist_swallow", genlist); - - return layout; -} + void SettingsUI::_override_useragent_clicked_cb(void *data, Evas_Object *, + void *) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + if (data) { + SettingsUI *self = static_cast < SettingsUI * >(data); + self->resetItemsLayoutContent(); + self->m_actionBar = + self->createBackActionBar(self->m_settings_layout); + self->m_subpage_layout = + self->createUserAgentGenList(self->m_settings_layout); + self->orientationChanged(); + } + } -void SettingsUI::_useragent_item_clicked_cb(void *data, Evas_Object*, void*) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if (data) { - genlistCallbackData *callback_data = static_cast(data); - SettingsUI *self = static_cast(callback_data->user_data); - self->userAgentItemClicked(std::string(callback_data->uaItem.uaString)); + Evas_Object *SettingsUI::createUserAgentGenList(Evas_Object * + settings_layout) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + + Evas_Object *layout = elm_layout_add(settings_layout); + elm_layout_file_set(layout, m_edjFilePath.c_str(), "useragent_list"); + elm_object_part_content_set(settings_layout, "settings_swallow", + layout); + evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL); + + elm_object_translatable_part_text_set(m_actionBar, "settings_title", + "Override UserAgent"); + elm_object_focus_set(elm_object_part_content_get + (m_actionBar, "close_click"), EINA_TRUE); + + Evas_Object *genlist = elm_genlist_add(layout); + if (!genlist) { + BROWSER_LOGE("elm_genlist_add failed"); + return NULL; + } + Elm_Genlist_Item_Class *itemClass = elm_genlist_item_class_new(); + itemClass->item_style = "useragent_item"; + itemClass->func.content_get = NULL; + itemClass->func.text_get = _ua_text_get_cb; + itemClass->func.state_get = NULL; + itemClass->func.del = NULL; + + for (unsigned int i = 0; i < UA_ITEMS_COUNT; i++) { + genlistCallbackData *item_callback_data = new genlistCallbackData; + item_callback_data->uaItem = { + uaList[i].name, uaList[i].uaString}; + item_callback_data->user_data = this; + item_callback_data->it = + elm_genlist_item_append(genlist, itemClass, item_callback_data, + NULL, ELM_GENLIST_ITEM_NONE, + _useragent_item_clicked_cb, + item_callback_data); + } + evas_object_show(genlist); + elm_object_part_content_set(layout, "ua_genlist_swallow", genlist); + + return layout; } -} -char* SettingsUI::_ua_text_get_cb(void* data, Evas_Object* /*obj*/, const char *part) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - BROWSER_LOGD("part[%s]", part); + void SettingsUI::_useragent_item_clicked_cb(void *data, Evas_Object *, + void *) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + if (data) { + genlistCallbackData *callback_data = + static_cast < genlistCallbackData * >(data); + SettingsUI *self = + static_cast < SettingsUI * >(callback_data->user_data); + self-> + userAgentItemClicked(std::string(callback_data->uaItem.uaString)); + } + } - genlistCallbackData *callback_data = static_cast(data); - if (!strcmp(part, "item_title")) - return strdup(callback_data->uaItem.name); - return NULL; -} + char *SettingsUI::_ua_text_get_cb(void *data, Evas_Object * /*obj */ , + const char *part) + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + BROWSER_LOGD("part[%s]", part); + + genlistCallbackData *callback_data = + static_cast < genlistCallbackData * >(data); + if (!strcmp(part, "item_title")) + return strdup(callback_data->uaItem.name); + return NULL; + } -void SettingsUI::resetItemsLayoutContent() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - elm_object_part_content_unset(this->m_settings_layout, "settings_swallow"); - evas_object_del(this->m_actionBar); - evas_object_del(this->m_items_layout); - evas_object_del(this->m_subpage_layout); - evas_object_del(this->m_checkbox_layout); - this->destroyAutoFillManager(); - this->m_subpage_layout = nullptr; - this->m_checkbox_layout = nullptr; - this->m_items_layout = nullptr; - this->m_actionBar = nullptr; -} + void SettingsUI::resetItemsLayoutContent() + { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + elm_object_part_content_unset(this->m_settings_layout, + "settings_swallow"); + evas_object_del(this->m_actionBar); + evas_object_del(this->m_items_layout); + evas_object_del(this->m_subpage_layout); + evas_object_del(this->m_checkbox_layout); + this->destroyAutoFillManager(); + this->m_subpage_layout = nullptr; + this->m_checkbox_layout = nullptr; + this->m_items_layout = nullptr; + this->m_actionBar = nullptr; + } -bool SettingsUI::isSubpage() -{ - return (m_subpage_layout != nullptr); -} + bool SettingsUI::isSubpage() + { + return (m_subpage_layout != nullptr); + } -void SettingsUI::onBackKey() -{ - resetItemsLayoutContent(); - m_actionBar = createActionBar(m_settings_layout); - m_items_layout = createSettingsMobilePage(m_settings_layout); - this->orientationChanged(); -} -} + void SettingsUI::onBackKey() + { + resetItemsLayoutContent(); + m_actionBar = createActionBar(m_settings_layout); + m_items_layout = createSettingsMobilePage(m_settings_layout); + this->orientationChanged(); + } + } } diff --git a/services/SettingsUI/SettingsUI_mob.h b/services/SettingsUI/SettingsUI_mob.h old mode 100644 new mode 100755 index c0a8a2e8..2fca421e --- a/services/SettingsUI/SettingsUI_mob.h +++ b/services/SettingsUI/SettingsUI_mob.h @@ -68,13 +68,13 @@ public: Evas_Object* createDeveloperOptionsMobilePage(Evas_Object* settings_layout); Evas_Object* createUserAgentGenList(Evas_Object* settings_layout); - boost::signals2::signal resetBrowserClicked; - boost::signals2::signal resetMostVisitedClicked; - boost::signals2::signal deleteSelectedDataClicked; - boost::signals2::signal userAgentItemClicked; - boost::signals2::signal closeSettingsUIClicked; - boost::signals2::signal getWebEngineSettingsParam; - boost::signals2::signal setWebEngineSettingsParam; + boost::signals2::signal resetBrowserClicked; + boost::signals2::signal resetMostVisitedClicked; + boost::signals2::signal deleteSelectedDataClicked; + boost::signals2::signal userAgentItemClicked; + boost::signals2::signal closeSettingsUIClicked; + boost::signals2::signal getWebEngineSettingsParam; + boost::signals2::signal setWebEngineSettingsParam; private: Evas_Object* createSettingsUILayout(Evas_Object* parent); diff --git a/services/SimpleUI/ContentPopup_mob.h b/services/SimpleUI/ContentPopup_mob.h old mode 100644 new mode 100755 index b46955e1..0d494e84 --- a/services/SimpleUI/ContentPopup_mob.h +++ b/services/SimpleUI/ContentPopup_mob.h @@ -30,61 +30,71 @@ namespace tizen_browser { -namespace base_ui -{ - -class ContentPopup : public interfaces::AbstractPopup -{ -public: - static ContentPopup* createPopup(Evas_Object* parent); - static ContentPopup* createPopup(Evas_Object* parent, const std::string& title); - - void show(); - void dismiss(); - void onBackPressed(); - void orientationChanged() override { } - - void setTitle(const std::string& title); - void setContent(Evas_Object* content); - void addButton(const PopupButtons& button, bool dismissOnClick = true); - boost::signals2::signal buttonClicked; - boost::signals2::signal isLandscape; - - ~ContentPopup(); - - Evas_Object* getMainLayout() { return m_scroller; } -private: - ContentPopup(Evas_Object* parent); - ContentPopup(Evas_Object* parent, const std::string& title); - void createLayout(); - - static void _layout_resize_cb(void *data, Evas *e, Evas_Object *obj, void *event_info); - static void _response_cb(void* data, Evas_Object* obj, void* event_info); - - struct Button { - Button(PopupButtons type, bool dismissOnClick, Evas_Object* object) - : m_type(type) - , m_dismissOnClick(dismissOnClick) - , m_evasObject(object) - {}; - PopupButtons m_type; - bool m_dismissOnClick; - Evas_Object* m_evasObject; + namespace base_ui + { + + class ContentPopup:public interfaces::AbstractPopup + { + public: + static ContentPopup *createPopup(Evas_Object * parent); + static ContentPopup *createPopup(Evas_Object * parent, + const std::string & title); + + void show(); + void dismiss(); + void onBackPressed(); + void orientationChanged() override + { + } + + void setTitle(const std::string & title); + void setContent(Evas_Object * content); + void addButton(const PopupButtons & button, bool dismissOnClick = true); + boost::signals2::signal < void(PopupButtons) > buttonClicked; + boost::signals2::signal < bool() > isLandscape; + + ~ContentPopup(); + + Evas_Object *getMainLayout() + { + return m_scroller; + } + private: + ContentPopup(Evas_Object * parent); + ContentPopup(Evas_Object * parent, const std::string & title); + void createLayout(); + + static void _layout_resize_cb(void *data, Evas * e, Evas_Object * obj, + void *event_info); + static void _response_cb(void *data, Evas_Object * obj, + void *event_info); + + struct Button + { + Button(PopupButtons type, bool dismissOnClick, Evas_Object * object) + :m_type(type) + , m_dismissOnClick(dismissOnClick) + , m_evasObject(object) + { + }; + PopupButtons m_type; + bool m_dismissOnClick; + Evas_Object *m_evasObject; + }; + + Evas_Object *m_parent; + Evas_Object *m_layout; + Evas_Object *m_buttons_box; + Evas_Object *m_scroller; + Evas_Object *m_content; + std::vector < Button > m_buttons; + std::string m_title; + std::string m_message; + std::string m_edjFilePath; + static const int MARGIN = 44; }; - Evas_Object* m_parent; - Evas_Object* m_layout; - Evas_Object* m_buttons_box; - Evas_Object* m_scroller; - Evas_Object* m_content; - std::vector