m_naviframe->setTitle(_(Translations::SettingsAdvancedTitle.c_str()));
m_genlistItems[SettingsAdvancedOptions::ENABLE_JS] =
- appendGenlist(genlist, m_setting_check_on_of_item_class, &m_buttonsMap[SettingsAdvancedOptions::ENABLE_JS], _enable_js_cb);
+ appendGenlist(genlist, m_setting_check_on_of_item_class, &m_buttonsMap[SettingsAdvancedOptions::ENABLE_JS], _check_cb);
m_genlistItems[SettingsAdvancedOptions::BLOCK_POPUPS] =
- appendGenlist(genlist, m_setting_check_on_of_item_class, &m_buttonsMap[SettingsAdvancedOptions::BLOCK_POPUPS], _block_popups_cb);
+ appendGenlist(genlist, m_setting_check_on_of_item_class, &m_buttonsMap[SettingsAdvancedOptions::BLOCK_POPUPS], _check_cb);
m_genlistItems[SettingsAdvancedOptions::SAVE_CONTENT] =
appendGenlist(genlist, m_setting_item_class, &m_buttonsMap[SettingsAdvancedOptions::SAVE_CONTENT], _save_content_cb);
-
+ evas_object_smart_callback_add(genlist, "realized", _realized_cb, this);
changeGenlistStorage();
return true;
}
+void SettingsAdvanced::_realized_cb(void* data, Evas_Object*, void* event_info)
+{
+ BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+
+ auto ev = static_cast<Elm_Object_Item*>(event_info);
+ auto item = static_cast<ItemData*>(elm_object_item_data_get(ev));
+ auto sp = static_cast<SettingsAdvanced*>(data);
+ auto check = sp->m_checkboxes[item->id];
+ switch (item->id) {
+ case SettingsAdvancedOptions::ENABLE_JS:
+ evas_object_smart_callback_del(check, "changed", _enable_js_cb);
+ evas_object_smart_callback_add(check, "changed", _enable_js_cb, nullptr);
+ break;
+ case SettingsAdvancedOptions::BLOCK_POPUPS:
+ evas_object_smart_callback_del(check, "changed", _block_popups_cb);
+ evas_object_smart_callback_add(check, "changed", _block_popups_cb, nullptr);
+ break;
+ default:
+ break;
+ }
+}
+
Evas_Object* SettingsAdvanced::createOnOffCheckBox(Evas_Object* obj, ItemData* itd)
{
BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
auto check = elm_check_add(obj);
elm_object_style_set(check, "on&off");
elm_check_state_set(check, getOriginalState(itd->id));
- evas_object_smart_callback_add(check, "changed", grid_item_check_changed, itd);
+ evas_object_propagate_events_set(check, EINA_FALSE);
+
return check;
}
return (sig && *sig) ? EINA_TRUE : EINA_FALSE;
}
-void SettingsAdvanced::_enable_js_cb(void *, Evas_Object* obj, void*)
+void SettingsAdvanced::_check_cb(void*, Evas_Object* obj, void*)
{
BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
auto el = elm_genlist_selected_item_get(obj);
auto value = !elm_check_state_get(check);
elm_check_state_set(check, value);
+ evas_object_smart_callback_call(check, "changed", nullptr);
+}
+
+void SettingsAdvanced::_enable_js_cb(void *, Evas_Object* obj, void*)
+{
+ BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+ auto value = elm_check_state_get(obj);
+
SPSC.setWebEngineSettingsParam(
basic_webengine::WebEngineSettings::ENABLE_JAVASCRIPT,
static_cast<bool>(value));
void SettingsAdvanced::_block_popups_cb(void *, Evas_Object* obj, void*)
{
BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- auto el = elm_genlist_selected_item_get(obj);
- auto check = elm_object_item_part_content_get(el, "elm.swallow.end");
- auto value = !elm_check_state_get(check);
+ auto value = elm_check_state_get(obj);
- elm_check_state_set(check, value);
SPSC.setWebEngineSettingsParam(
basic_webengine::WebEngineSettings::SCRIPTS_CAN_OPEN_PAGES,
static_cast<bool>(value));
public:
SettingsAdvanced(Evas_Object* parent);
virtual ~SettingsAdvanced();
- virtual bool populateList(Evas_Object* genlist) override;
- virtual void updateButtonMap() override;
- Evas_Object* createOnOffCheckBox(Evas_Object* obj, ItemData*);
+ bool populateList(Evas_Object* genlist) override;
+ void updateButtonMap() override;
+ Evas_Object* createOnOffCheckBox(Evas_Object* obj, ItemData*) override;
Eina_Bool getOriginalState(int id);
void changeGenlistStorage();
+ static void _realized_cb(void* data, Evas_Object*, void* event_info);
+ static void _check_cb(void* data, Evas_Object* obj, void* event_info);
static void _enable_js_cb(void *data, Evas_Object*obj , void* event_info);
static void _block_popups_cb(void *data, Evas_Object*obj , void* event_info);
static void _save_content_cb(void *data, Evas_Object*obj , void* event_info);
appendGenlist(genlist, m_setting_item_class, &m_buttonsMap[SettingsMainOptions::ADVANCED], _advanced_cb);
m_genlistItems[SettingsMainOptions::USER_AGENT] =
appendGenlist(genlist, m_setting_item_class, &m_buttonsMap[SettingsMainOptions::USER_AGENT], _user_agent_cb);
+ evas_object_smart_callback_add(genlist, "realized", _realized_cb, this);
+
return true;
}
-Evas_Object* SettingsMain::createOnOffCheckBox(Evas_Object* obj, ItemData* itd)
+void SettingsMain::_realized_cb(void* data, Evas_Object*, void* event_info)
+{
+ BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+
+ auto ev = static_cast<Elm_Object_Item*>(event_info);
+ auto item = static_cast<ItemData*>(elm_object_item_data_get(ev));
+ auto sp = static_cast<SettingsMain*>(data);
+ auto check = sp->m_checkboxes[item->id];
+ switch (item->id) {
+ case SettingsMainOptions::ZOOM:
+ evas_object_smart_callback_del(check, "changed", grid_item_check_changed);
+ evas_object_smart_callback_add(check, "changed", grid_item_check_changed, nullptr);
+ break;
+ default:
+ break;
+ }
+}
+
+Evas_Object* SettingsMain::createOnOffCheckBox(Evas_Object* obj, ItemData*)
{
BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
auto check = elm_check_add(obj);
elm_object_style_set(check, "on&off");
elm_check_state_set(check, getOriginalZoomState());
- evas_object_smart_callback_add(check, "changed", grid_item_check_changed, itd);
+ evas_object_propagate_events_set(check, EINA_FALSE);
return check;
}
void SettingsMain::_zoom_cb(void *, Evas_Object* obj, void*)
{
BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+
auto el = elm_genlist_selected_item_get(obj);
auto check = elm_object_item_part_content_get(el, "elm.swallow.end");
auto value = !elm_check_state_get(check);
elm_check_state_set(check, value);
- SPSC.setWebEngineSettingsParam(
- basic_webengine::WebEngineSettings::PAGE_OVERVIEW,
- static_cast<bool>(value));
+ evas_object_smart_callback_call(check, "changed", nullptr);
}
void SettingsMain::_advanced_cb(void*, Evas_Object*, void*)
{
BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- auto value = !elm_check_state_get(obj);
+ auto value = elm_check_state_get(obj);
- elm_check_state_set(obj, value);
SPSC.setWebEngineSettingsParam(
basic_webengine::WebEngineSettings::PAGE_OVERVIEW,
static_cast<bool>(value));
SettingsMain(){};
SettingsMain(Evas_Object* parent);
virtual ~SettingsMain();
- virtual bool populateList(Evas_Object* genlist) override;
- Evas_Object* createOnOffCheckBox(Evas_Object* obj, ItemData* itd);
+ bool populateList(Evas_Object* genlist) override;
+ Evas_Object* createOnOffCheckBox(Evas_Object* obj, ItemData* itd) override;
Eina_Bool getOriginalZoomState();
std::string getHomePage();
- virtual void updateButtonMap() override;
- virtual void connectSignals() override {};
- virtual void disconnectSignals() override {};
+ void updateButtonMap() override;
+ void connectSignals() override {};
+ void disconnectSignals() override {};
+ static void _realized_cb(void* data, Evas_Object*, void* event_info);
static void _home_page_cb(void *data, Evas_Object*obj , void* event_info);
static void _search_engine_cb(void *data, Evas_Object*obj , void* event_info);
static void _zoom_cb(void *data, Evas_Object*obj , void* event_info);
namespace base_ui{
-SettingsPrivacy::SettingsPrivacy(Evas_Object* parent){
+SettingsPrivacy::SettingsPrivacy(Evas_Object* parent)
+{
init(parent);
updateButtonMap();
};
void SettingsPrivacy::updateButtonMap()
{
+ BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+
ItemData cookies;
cookies.buttonText = _(Translations::SettingsPrivacyAcceptCookies.c_str());
cookies.subText = _(Translations::SettingsPrivacyAcceptCookiesSub.c_str());
cookies.sui = this;
+ cookies.id = SettingsPrivacyOptions::COOKIES;
ItemData signIn;
signIn.buttonText = _(Translations::SettingsPrivacySaveSigninInfo.c_str());
signIn.subText = _(Translations::SettingsPrivacySaveSigninInfo.c_str());
signIn.sui = this;
+ signIn.id = SettingsPrivacyOptions::SIGNIN_INFO;
ItemData delPerData;
delPerData.buttonText = _(Translations::SettingsPrivacyDeletePersonalData.c_str());
delPerData.sui = this;
+ delPerData.id = SettingsPrivacyOptions::DEL_PER_DATA;
m_buttonsMap[SettingsPrivacyOptions::COOKIES] = cookies;
m_buttonsMap[SettingsPrivacyOptions::SIGNIN_INFO] = signIn;
bool SettingsPrivacy::populateList(Evas_Object* genlist)
{
+ BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+
m_naviframe->setLeftButtonVisible(false);
m_naviframe->setRightButtonVisible(false);
m_naviframe->setPrevButtonVisible(true);
m_naviframe->setTitle(_(Translations::SettingsPrivacyTitle.c_str()));
- appendGenlist(genlist, m_setting_check_on_of_item_class, &m_buttonsMap[SettingsPrivacyOptions::COOKIES], _cookies_cb);
- appendGenlist(genlist, m_setting_check_on_of_item_class, &m_buttonsMap[SettingsPrivacyOptions::SIGNIN_INFO], _signin_cb);
+ appendGenlist(genlist, m_setting_check_on_of_item_class, &m_buttonsMap[SettingsPrivacyOptions::COOKIES], _check_cb);
+ appendGenlist(genlist, m_setting_check_on_of_item_class, &m_buttonsMap[SettingsPrivacyOptions::SIGNIN_INFO], _check_cb);
appendGenlist(genlist, m_setting_item_class, &m_buttonsMap[SettingsPrivacyOptions::DEL_PER_DATA], _del_per_data_cb);
+ evas_object_smart_callback_add(genlist, "realized", _realized_cb, this);
return true;
}
-void SettingsPrivacy::_cookies_cb(void *, Evas_Object* obj, void*)
+void SettingsPrivacy::_realized_cb(void* data, Evas_Object*, void* event_info)
+{
+ BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+
+ auto ev = static_cast<Elm_Object_Item*>(event_info);
+ auto item = static_cast<ItemData*>(elm_object_item_data_get(ev));
+ auto sp = static_cast<SettingsPrivacy*>(data);
+ auto check = sp->m_checkboxes[item->id];
+ switch (item->id) {
+ case SettingsPrivacyOptions::COOKIES:
+ evas_object_smart_callback_del(check, "changed", _cookies_cb);
+ evas_object_smart_callback_add(check, "changed", _cookies_cb, nullptr);
+ break;
+ case SettingsPrivacyOptions::SIGNIN_INFO:
+ evas_object_smart_callback_del(check, "changed", _signin_cb);
+ evas_object_smart_callback_add(check, "changed", _signin_cb, nullptr);
+ break;
+ default:
+ break;
+ }
+}
+
+void SettingsPrivacy::_check_cb(void*, Evas_Object* obj, void*)
{
BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
auto el = elm_genlist_selected_item_get(obj);
auto value = !elm_check_state_get(check);
elm_check_state_set(check, value);
+ evas_object_smart_callback_call(check, "changed", nullptr);
+}
+
+void SettingsPrivacy::_cookies_cb(void*, Evas_Object* obj, void*)
+{
+ BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+ auto value = elm_check_state_get(obj);
if (value == EINA_TRUE)
ewk_cookie_manager_accept_policy_set(
ewk_context_cookie_manager_get(ewk_context_default_get()), EWK_COOKIE_ACCEPT_POLICY_ALWAYS);
ewk_context_cookie_manager_get(ewk_context_default_get()), EWK_COOKIE_ACCEPT_POLICY_NEVER);
}
-void SettingsPrivacy::_signin_cb(void *, Evas_Object* obj, void*)
+void SettingsPrivacy::_signin_cb(void*, Evas_Object* obj, void*)
{
BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- auto el = elm_genlist_selected_item_get(obj);
- auto check = elm_object_item_part_content_get(el, "elm.swallow.end");
- auto value = !elm_check_state_get(check);
-
- elm_check_state_set(check, value);
+ auto value = elm_check_state_get(obj);
SPSC.setWebEngineSettingsParam(
basic_webengine::WebEngineSettings::REMEMBER_PASSWORDS,
static_cast<bool>(value));
SettingsPrivacy(){};
SettingsPrivacy(Evas_Object* parent);
virtual ~SettingsPrivacy();
- virtual bool populateList(Evas_Object* genlist);
- virtual void updateButtonMap();
+ bool populateList(Evas_Object* genlist) override;
+ void updateButtonMap() override;
static void _cookies_cb(void *data, Evas_Object*obj , void* event_info);
static void _signin_cb(void *data, Evas_Object*obj , void* event_info);
static void _del_per_data_cb(void *data, Evas_Object*obj , void* event_info);
+ static void _realized_cb(void* data, Evas_Object* obj, void* event_info);
+ static void _check_cb(void* data, Evas_Object* obj, void* event_info);
};
}