1.Limit the max length of Network connection profile
[apps/core/preloaded/settings.git] / setting-common / src / setting-common-draw-genlist.c
index 61b0998..f680703 100755 (executable)
@@ -117,6 +117,7 @@ static void __radio_changed(void *data, Evas_Object *obj, void *event_info)
 static void __entry_changed(void *data, Evas_Object *obj, void *event_info)
 {
        retm_if(data == NULL, "Data parameter is NULL");
+       SETTING_TRACE_BEGIN;
        Setting_GenGroupItem_Data *list_item =
            (Setting_GenGroupItem_Data *) data;
        list_item->sub_desc = (char *)g_strdup(elm_entry_entry_get(obj));
@@ -130,8 +131,11 @@ static void __entry_changed(void *data, Evas_Object *obj, void *event_info)
                }
                else
                {
-                       elm_object_signal_emit(entry_container, "elm,state,guidetext,hide", "elm");
-                       elm_object_signal_emit(entry_container, "elm,state,eraser,show", "elm");
+                       if (elm_object_focus_get(obj)) //only do when entry is focused
+                       {
+                               elm_object_signal_emit(entry_container, "elm,state,guidetext,hide", "elm");
+                               elm_object_signal_emit(entry_container, "elm,state,eraser,show", "elm");
+                       }
                }
        }
 }
@@ -139,6 +143,7 @@ static void __entry_changed(void *data, Evas_Object *obj, void *event_info)
 static void __entry_unfocused(void *data, Evas_Object *obj, void *event_info) // Unfocused callback will show guidetext and hide X marked button.
 {
        ret_if(!data);
+       SETTING_TRACE_BEGIN;
        Evas_Object *entry_container = data;
        //whe entry unfocused, its guidetext will becomes "Input here"
        elm_object_part_text_set(entry_container, "elm.guidetext", _("IDS_ST_BODY_TAP_TO_INSERT"));
@@ -149,6 +154,7 @@ static void __entry_unfocused(void *data, Evas_Object *obj, void *event_info) //
 static void __entry_focused(void *data, Evas_Object *obj, void *event_info) // Focused callback will show X marked button and hide guidetext.
 {
        ret_if(!data);
+       SETTING_TRACE_BEGIN;
        Evas_Object *entry_container = data;
        //whe entry focused, its guidetext will becomes "Input here"
        elm_object_part_text_set(entry_container, "elm.guidetext", _("IDS_ST_BODY_TAP_TO_INSERT"));
@@ -207,17 +213,26 @@ static void __max_len_reached(void *data, Evas_Object *obj, void *event_info)
 static void __entry_keydown(void *data, Evas *e, Evas_Object *obj, void *event_info)
 {
        ret_if(event_info == NULL);
-       Evas_Event_Key_Down *ev = (Evas_Event_Key_Down *)event_info;    
-       SETTING_TRACE_DEBUG("ev->key : %s", ev->key);
-       SETTING_TRACE("obj:%p, %s", obj, elm_entry_entry_get(obj));
-       
-       Evas_Object *entry_container = elm_object_parent_widget_get(obj);
-       if(safeStrLen(elm_entry_entry_get(obj)) > 0) {
-               elm_object_signal_emit(entry_container, "elm,state,guidetext,hide", "elm");
+       Evas_Event_Key_Down *ev = (Evas_Event_Key_Down *)event_info;
+       if(safeStrCmp(ev->key, "Return") == 0) //to disable the 'Enter' orginal function
+       {
+               SETTING_TRACE("ENTER %s ev->key:%s", __FUNCTION__, ev->key);            
+               //hide the eraser button
+               //format like:xx<br/>
+               const char *entry_str = remove_first_substring(elm_entry_entry_get(obj), "<br/>");              
+               elm_entry_entry_set(obj, entry_str);
+               FREE(entry_str);
+               elm_entry_cursor_end_set(obj);
+               setting_hide_input_pannel_cb(obj);
        } else {
-               //elm_object_part_text_set(entry_container, "elm.guidetext", _("IDS_ST_BODY_TAP_TO_INSERT"));
-               elm_object_signal_emit(entry_container, "elm,state,guidetext,show", "elm");
+               Evas_Object *entry_container = elm_object_parent_widget_get(obj);
+               if(safeStrLen(elm_entry_entry_get(obj)) > 0) {
+                       elm_object_signal_emit(entry_container, "elm,state,guidetext,hide", "elm");
+               } else {
+                       elm_object_signal_emit(entry_container, "elm,state,guidetext,show", "elm");
+               }
        }
+
 }
 
 /**
@@ -530,12 +545,11 @@ static Evas_Object *__add_entry(Setting_GenGroupItem_Data *item_data, Evas_Objec
        evas_object_smart_callback_add(entry, "focused", __entry_focused, ed_name);
        elm_object_signal_callback_add(ed_name, "elm,eraser,clicked", "elm", __eraser_clicked, entry);
 
-       Evas_Object_Event_Cb key_down_cb = __entry_keydown;
        if (item_data->start_change_cb) {
-               key_down_cb = (Evas_Object_Event_Cb)(item_data->start_change_cb);
+               evas_object_event_callback_add(entry, EVAS_CALLBACK_KEY_DOWN, (Evas_Object_Event_Cb)(item_data->start_change_cb), item_data->userdata);
        }
-       evas_object_event_callback_add(entry, EVAS_CALLBACK_KEY_DOWN, key_down_cb, item_data->userdata);
-       
+       evas_object_event_callback_add(entry, EVAS_CALLBACK_KEY_DOWN, __entry_keydown, item_data);
+
        if (item_data->input_panel_disable_flag) {
                elm_entry_input_panel_enabled_set(entry, EINA_FALSE);
        }