Use single picker popup for month and week type
authorKwangYong Choi <ky0.choi@samsung.com>
Tue, 22 Oct 2013 07:44:38 +0000 (16:44 +0900)
committerGerrit Code Review <gerrit@gerrit.vlan144.tizendev.org>
Thu, 24 Oct 2013 01:58:56 +0000 (01:58 +0000)
[Title] Use single picker popup for month and week type.
[Issue#] N/A
[Problem] Picker popup is shown twice.
[Cause] N/A
[Solution] Remove first popup which is not required.

Change-Id: Ifa0574c42230a48f95b7d9073c2e8cb907efa97a

Source/WebKit2/UIProcess/API/efl/tizen/InputPicker.cpp

index fa8c301..4cbd448 100755 (executable)
@@ -646,27 +646,21 @@ void InputPicker::ewk_week_popup(const char* inputValue)
 
     if (m_pickerLayout) {
         // Just update the value.
-        elm_datetime_value_set(m_pickerLayout->datePicker, currentTime);
-        evas_object_focus_set(m_pickerLayout->okButton, true);
+        elm_datetime_value_set(m_pickerLayout->popup, currentTime);
         return;
     }
 
     m_pickerLayout = new Input_Picker_Layout(m_ewkView);
 
-    createDatetimePopup("Select date", currentTime);
+    createDatetimePicker(currentTime);
     elm_datetime_field_visible_set(m_pickerLayout->datePicker, ELM_DATETIME_HOUR, EINA_FALSE);
     elm_datetime_field_visible_set(m_pickerLayout->datePicker, ELM_DATETIME_MINUTE, EINA_FALSE);
     elm_datetime_field_visible_set(m_pickerLayout->datePicker, ELM_DATETIME_AMPM, EINA_FALSE);
 
-    m_pickerLayout->okButton = elm_button_add(m_pickerLayout->popup);
-    elm_object_style_set(m_pickerLayout->okButton, "popup");
-    elm_object_domain_translatable_part_text_set(m_pickerLayout->okButton, NULL, "sys_string", "IDS_COM_SK_OK");
-    elm_object_part_content_set(m_pickerLayout->popup, "button1", m_pickerLayout->okButton);
-    evas_object_smart_callback_add(m_pickerLayout->okButton, "clicked", _week_popup_response_cb, this);
-    evas_object_focus_set(m_pickerLayout->okButton, true);
+    evas_object_smart_callback_add(m_pickerLayout->popup, "picker,value,set", _week_popup_response_cb, this);
 
-    elm_object_content_set(m_pickerLayout->popup, m_pickerLayout->layout);
     evas_object_show(m_pickerLayout->popup);
+    elm_object_signal_emit(m_pickerLayout->popup, "datepicker,show", "");
 }
 
 void InputPicker::ewk_time_popup(const char* inputValue)
@@ -747,29 +741,23 @@ void InputPicker::ewk_month_popup(const char* inputValue)
 
     if (m_pickerLayout) {
         // Just update the value.
-        elm_datetime_value_set(m_pickerLayout->datePicker, currentTime);
-        evas_object_focus_set(m_pickerLayout->okButton, true);
+        elm_datetime_value_set(m_pickerLayout->popup, currentTime);
         return;
     }
 
     m_pickerLayout = new Input_Picker_Layout(m_ewkView);
 
-    createDatetimePopup("Select month", currentTime);
+    createDatetimePicker(currentTime);
     elm_datetime_field_visible_set(m_pickerLayout->datePicker, ELM_DATETIME_DATE, EINA_FALSE);
     elm_datetime_field_visible_set(m_pickerLayout->datePicker, ELM_DATETIME_HOUR, EINA_FALSE);
     elm_datetime_field_visible_set(m_pickerLayout->datePicker, ELM_DATETIME_MINUTE, EINA_FALSE);
     elm_datetime_field_visible_set(m_pickerLayout->datePicker, ELM_DATETIME_AMPM, EINA_FALSE);
     elm_datetime_format_set(m_pickerLayout->datePicker, "%Y/%m");
 
-    m_pickerLayout->okButton = elm_button_add(m_pickerLayout->popup);
-    elm_object_style_set(m_pickerLayout->okButton, "popup");
-    elm_object_domain_translatable_part_text_set(m_pickerLayout->okButton, NULL, "sys_string", "IDS_COM_SK_OK");
-    elm_object_part_content_set(m_pickerLayout->popup, "button1", m_pickerLayout->okButton);
-    evas_object_smart_callback_add(m_pickerLayout->okButton, "clicked", _month_popup_response_cb, this);
-    evas_object_focus_set(m_pickerLayout->okButton, true);
+    evas_object_smart_callback_add(m_pickerLayout->popup, "picker,value,set", _month_popup_response_cb, this);
 
-    elm_object_content_set(m_pickerLayout->popup, m_pickerLayout->layout);
     evas_object_show(m_pickerLayout->popup);
+    elm_object_signal_emit(m_pickerLayout->popup, "datepicker,show", "");
 }
 
 void InputPicker::ewk_datetime_popup(const char* inputValue, bool local)
@@ -966,7 +954,7 @@ void InputPicker::_week_popup_response_cb(void* data,  Evas_Object* obj, void* e
 
     InputPicker* inputPicker = static_cast<InputPicker*>(data);
 
-    elm_datetime_value_get(inputPicker->m_pickerLayout->datePicker, &currentTime);
+    elm_datetime_value_get(inputPicker->m_pickerLayout->popup, &currentTime);
 
     date.day =  currentTime.tm_mday;
     date.mon = currentTime.tm_mon;
@@ -996,11 +984,6 @@ void InputPicker::_week_popup_response_cb(void* data,  Evas_Object* obj, void* e
     sprintf(dateStr, "%d-W%02d" , date.year, weekNum);
 
     ewk_view_current_target_input_element_value_set(inputPicker->m_ewkView, dateStr);
-    ewk_view_command_execute(inputPicker->m_ewkView, "Unselect", 0);
-
-    inputPicker->deletePopupLayout();
-    delete inputPicker->m_pickerLayout;
-    inputPicker->m_pickerLayout = 0;
 }
 
 void InputPicker::_time_popup_response_cb(void* data,  Evas_Object* obj, void* event_info)
@@ -1030,7 +1013,7 @@ void InputPicker::_month_popup_response_cb(void* data,  Evas_Object* obj, void*
 
     InputPicker* inputPicker = static_cast<InputPicker*>(data);
 
-    elm_datetime_value_get(inputPicker->m_pickerLayout->datePicker, &currentTime);
+    elm_datetime_value_get(inputPicker->m_pickerLayout->popup, &currentTime);
 
     date.mon = currentTime.tm_mon;
     date.year = currentTime.tm_year;
@@ -1039,11 +1022,6 @@ void InputPicker::_month_popup_response_cb(void* data,  Evas_Object* obj, void*
     sprintf(dateStr, "%02d-%02d" , date.year, date.mon + 1);
 
     ewk_view_current_target_input_element_value_set(inputPicker->m_ewkView, dateStr);
-    ewk_view_command_execute(inputPicker->m_ewkView, "Unselect", 0);
-
-    inputPicker->deletePopupLayout();
-    delete inputPicker->m_pickerLayout;
-    inputPicker->m_pickerLayout = 0;
 }
 
 void InputPicker::_datetime_popup_response_cb(void* data,  Evas_Object* obj, void* event_info)