merge with master
authorJinkun Jang <jinkun.jang@samsung.com>
Fri, 15 Mar 2013 16:05:03 +0000 (01:05 +0900)
committerJinkun Jang <jinkun.jang@samsung.com>
Fri, 15 Mar 2013 16:05:03 +0000 (01:05 +0900)
common/src/ivug-util.c
main/src/include/ivug-name-view.h
main/src/view/ivug-crop-view.cpp
main/src/view/ivug-main-view-menu.cpp
main/src/view/ivug-name-view.c
main/src/view/ivug-setas-view-callerid.cpp
packaging/ug-image-viewer-efl.spec

index 2a37f92..dca0e1c 100755 (executable)
@@ -140,6 +140,12 @@ bool ivug_rename_file(const char *src, const char *dst)
                return false;
        }
 
+       if (ecore_file_exists(dst) == EINA_TRUE)
+       {
+               MSG_UTIL_ERROR("Destination file is exist : %s", dst);
+               return false;
+       }
+
        if (dst == NULL)
        {
                MSG_UTIL_ERROR("Destination file is NULL");
index 39bb483..9f95220 100755 (executable)
@@ -39,6 +39,8 @@ typedef struct _Ivug_NameView
        Evas_Object *entry;
        Evas_Object *btn_done;
 
+       bool sip_show;
+
        FNResponse fnresponse;
        void *clientdata;
 
index 979e500..04d7039 100755 (executable)
@@ -490,7 +490,16 @@ IvugCropView *ivug_crop_view_create(Evas_Object *parent)
        pCropView->bShowMenu = true;
        //_add_gesture_layer(layout, pCropView);
 
-       pCropView->cropbox = ivug_scissorbox_add(layout);
+       pCropView->contents_area = ivug_default_layout_add(parent);
+       evas_object_name_set(pCropView->contents_area, "contets_area");
+       if ( pCropView->contents_area == NULL )
+       {
+               MSG_SETAS_ERROR("Cannot create contets_area.");
+       }
+
+       elm_object_part_content_set(pCropView->layout, "crop.contents.swallow", pCropView->contents_area);
+
+       pCropView->cropbox = ivug_scissorbox_add(pCropView->contents_area);
        ivug_scissorbox_type_set(pCropView->cropbox, SCISSOR_BOX_TYPE_2);
 
        elm_object_part_content_set(layout, "scissorbox", pCropView->cropbox);
@@ -506,16 +515,6 @@ IvugCropView *ivug_crop_view_create(Evas_Object *parent)
        pCropView->w = 0;
        pCropView->h = 0;
 
-
-       pCropView->contents_area = ivug_default_layout_add(parent);
-       evas_object_name_set(pCropView->contents_area, "contets_area");
-       if ( pCropView->contents_area == NULL )
-       {
-               MSG_SETAS_ERROR("Cannot create contets_area.");
-       }
-
-       elm_object_part_content_set(pCropView->layout, "crop.contents.swallow", pCropView->contents_area);
-
        return pCropView;
 }
 
index 322c56e..a32e5c3 100755 (executable)
@@ -1082,6 +1082,8 @@ static void _on_rename_view_response(ivug_name_response resp, const char *str, v
        if(_rename(mData, str) == false)
        {
                MSG_MAIN_ERROR("_rename to %s failed", str);
+               //ivug_notify_timeout_create(pMainView->layout, IDS_FAILED, 0.0, NULL, NULL); //it does not work
+               ivug_selectioninfo_create(pMainView->layout, IDS_FAILED);
        }
        else
        {
index 4e595b4..c5083b6 100755 (executable)
@@ -40,6 +40,65 @@ _on_timeout_response(void *data, Evas_Object *obj, void *event_info)
        //ivug_name_view_destroy(pNameView);
 }
 
+static void _on_resized(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       IV_ASSERT(data != NULL);
+
+       Ivug_NameView *pNameView = (Ivug_NameView *)data;
+
+       Elm_Object_Item *navi_it = elm_naviframe_top_item_get(pNameView->navibar);
+
+       if(pNameView->sip_show == true)
+       {
+               int rot = gGetRotationDegree();
+               if(rot == 90 || rot == 270)
+               {
+                       elm_naviframe_item_title_visible_set(navi_it, EINA_FALSE);
+               }
+               else
+               {
+                       elm_naviframe_item_title_visible_set(navi_it, EINA_TRUE);
+               }
+       }
+       else
+       {
+               elm_naviframe_item_title_visible_set(navi_it, EINA_TRUE);
+       }
+}
+
+static void
+_on_keypad_show(void *data, Evas_Object *obj, void *event_info)
+{
+       IV_ASSERT(data != NULL);
+
+       Ivug_NameView *pNameView = (Ivug_NameView *)data;
+
+       pNameView->sip_show = true;
+
+       Elm_Object_Item *navi_it = elm_naviframe_top_item_get(pNameView->navibar);
+
+       int rot = gGetRotationDegree();
+       if(rot == 90 || rot == 270)
+       {
+               elm_naviframe_item_title_visible_set(navi_it, EINA_FALSE);
+       }
+}
+
+static void
+_on_keypad_hide(void *data, Evas_Object *obj, void *event_info)
+{
+       IV_ASSERT(data != NULL);
+
+       Ivug_NameView *pNameView = (Ivug_NameView *)data;
+
+       pNameView->sip_show = false;
+
+       Elm_Object_Item *navi_it = elm_naviframe_top_item_get(pNameView->navibar);
+
+       elm_naviframe_item_title_visible_set(navi_it, EINA_TRUE);
+}
+
+
 static void
 _on_invalid_name_timeout_response(void *data, Evas_Object *obj, void *event_info)
 {
@@ -57,7 +116,7 @@ _ivug_rename_view_enter_click_cb(void *data, Evas_Object *obj, void *event_info)
        Ivug_NameView *pNameView = (Ivug_NameView *)data;
        IV_ASSERT(pNameView != NULL);
 
-       Evas_Object *entry = elm_object_part_content_get(pNameView->editfield, "elm.swallow.content");
+       Evas_Object *entry = elm_object_part_content_get(pNameView->editfield, "elm.icon.entry");
 
        char *name = elm_entry_markup_to_utf8 ( elm_entry_entry_get(entry) );
 
@@ -109,7 +168,7 @@ _ivug_name_view_done_cb(void *data, Evas_Object* obj, void* event_info )
        Ivug_NameView *pNameView = (Ivug_NameView *)data;
        IV_ASSERT(pNameView != NULL);
 
-       Evas_Object *entry = elm_object_part_content_get(pNameView->editfield, "elm.swallow.content");
+       Evas_Object *entry = elm_object_part_content_get(pNameView->editfield, "elm.icon.entry");
 
        char *name = elm_entry_markup_to_utf8 ( elm_entry_entry_get(entry) );
 
@@ -147,6 +206,12 @@ _ivug_name_view_cancel_cb(void *data, Evas_Object *obj, void *event_info)
        Ivug_NameView *pNameView = (Ivug_NameView *)data;
        IV_ASSERT(pNameView != NULL);
 
+       if(pNameView->sip_show == true)
+       {
+               ecore_imf_context_input_panel_hide(elm_entry_imf_context_get(pNameView->entry));
+       }
+       else
+       {
        if ( pNameView->fnresponse )
        {
                (pNameView->fnresponse)(NAME_VIEW_RESPONSE_CANCEL, NULL, pNameView->clientdata);
@@ -155,30 +220,31 @@ _ivug_name_view_cancel_cb(void *data, Evas_Object *obj, void *event_info)
        //destroy after pop and transit ended
        //ivug_name_view_destroy(pNameView);
 }
+}
 
 static void _ivug_name_view_on_entry_changed(void *data, Evas_Object *obj, void *event_info)
 {
        Ivug_NameView *pNameView = (Ivug_NameView *)data;
        IV_ASSERT(pNameView != NULL);
 
-       if (elm_object_focus_get(pNameView->editfield))
+       if (elm_object_focus_get(obj))
        {
                if (elm_entry_is_empty(obj))
-                       elm_object_signal_emit(pNameView->editfield, "elm,state,eraser,hide", "elm");
+                       elm_object_signal_emit(pNameView->editfield, "elm,state,eraser,hide", "");
                else
-                       elm_object_signal_emit(pNameView->editfield, "elm,state,eraser,show", "elm");
+                       elm_object_signal_emit(pNameView->editfield, "elm,state,eraser,show", "");
        }
 
        Evas_Object *entry;
 
-       entry = elm_object_part_content_get(pNameView->editfield, "elm.swallow.content");
+       entry = elm_object_part_content_get(pNameView->editfield, "elm.icon.entry");
 
        char *content = elm_entry_markup_to_utf8 ( elm_entry_entry_get(entry) );
 
        if (strlen(content) == 0)
        {
                MSG_IMAGEVIEW_HIGH("ISF1 : %s", content);
-               elm_object_part_text_set(pNameView->editfield, "elm.guidetext", IDS_ENTER_NAME);
+               elm_object_part_text_set(pNameView->entry, "elm.guide", IDS_ENTER_NAME);
                //elm_object_disabled_set(pNameView->btn_done, EINA_TRUE);
        }
        else if(ivug_validate_file_name(content) == false)
@@ -200,7 +266,7 @@ static void _ivug_name_view_on_entry_changed(void *data, Evas_Object *obj, void
        else
        {
                MSG_IMAGEVIEW_HIGH("ISF : %s", content);
-               elm_object_part_text_set(pNameView->editfield, "elm.guidetext", IDS_NULL);
+               elm_object_part_text_set(pNameView->entry, "elm.guide", IDS_NULL);
                elm_object_disabled_set(pNameView->btn_done, EINA_FALSE);
        }
 
@@ -216,28 +282,31 @@ static void _ivug_name_view_on_entry_changed_user(void *data, Evas_Object *obj,
 static void _ivug_name_view_on_entry_preedit_changed(void *data, Evas_Object *obj, void *event_info)
 {
        MSG_IMAGEVIEW_HIGH("_ivug_name_view_on_entry_preedit_changed");
+
+       _ivug_name_view_on_entry_changed(data, obj, event_info);
 }
 
 static void _ivug_name_view_on_entry_focused(void *data, Evas_Object *obj, void *event_info)
 {
        MSG_IMAGEVIEW_HIGH("_ivug_name_view_on_entry_focused");
        if (!elm_entry_is_empty(obj))
-               elm_object_signal_emit(data, "elm,state,eraser,show", "elm");
-       elm_object_signal_emit(data, "elm,state,guidetext,hide", "elm");
+               elm_object_signal_emit(data, "elm,state,eraser,show", "");
+       elm_object_signal_emit(data, "elm,state,rename,hide", "");
 }
 
 static void _ivug_name_view_on_entry_unfocused(void *data, Evas_Object *obj, void *event_info)
 {
        MSG_IMAGEVIEW_HIGH("_ivug_name_view_on_entry_unfocused");
-       if (elm_entry_is_empty(obj))
-               elm_object_signal_emit(data, "elm,state,guidetext,show", "elm");
-       elm_object_signal_emit(data, "elm,state,eraser,hide", "elm");
+
+       elm_object_signal_emit(data, "elm,state,eraser,hide", "");
+       elm_object_signal_emit(data, "elm,state,rename,show", "");
 }
 
 
 static void
 _ivug_name_view_eraser_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
 {
+       elm_object_focus_set(data, EINA_TRUE); // After button is clicked, entry should get focus again.
        elm_entry_entry_set(data, "");
 }
 
@@ -246,12 +315,12 @@ static Evas_Object *_ivug_name_view_editfield_create(void *data, Evas_Object *ob
        Ivug_NameView *pNameView = (Ivug_NameView *)data;
 
        Evas_Object *editfield = elm_layout_add(obj);
-       elm_layout_theme_set(editfield, "layout", "editfield", "default");
+       elm_layout_theme_set(editfield, "layout", "item/editfield", "default");
 
        Evas_Object *entry = elm_entry_add(editfield);
        elm_entry_single_line_set(entry, EINA_TRUE);
        elm_entry_scrollable_set(entry, EINA_TRUE);
-       elm_entry_cnp_mode_set(entry, ELM_CNP_MODE_PLAINTEXT);
+       elm_object_part_text_set(entry, "elm.guide", IDS_ENTER_NAME);
 
        evas_object_smart_callback_add(entry, "activated", _ivug_rename_view_enter_click_cb, pNameView);
        evas_object_smart_callback_add(entry, "changed", _ivug_name_view_on_entry_changed, pNameView);
@@ -260,12 +329,14 @@ static Evas_Object *_ivug_name_view_editfield_create(void *data, Evas_Object *ob
        evas_object_smart_callback_add(entry, "focused", _ivug_name_view_on_entry_focused, editfield);
        evas_object_smart_callback_add(entry, "unfocused", _ivug_name_view_on_entry_unfocused, editfield);
 
-       elm_object_part_content_set(editfield, "elm.swallow.content", entry);
-       elm_object_signal_callback_add(editfield, "elm,eraser,clicked", "elm", _ivug_name_view_eraser_clicked_cb, entry);
+       elm_object_part_content_set(editfield, "elm.icon.entry", entry);
 
-       elm_object_part_text_set(editfield, "elm.guidetext", IDS_ENTER_NAME);
+       //MSG_IMAGEVIEW_HIGH("entry = %s", elm_entry_entry_get(entry));
 
-       MSG_IMAGEVIEW_HIGH("entry = %s", elm_entry_entry_get(entry));
+       Evas_Object *button = elm_button_add(editfield);
+       elm_object_style_set(button, "editfield_clear");   // Make "X" marked button by changing style.
+       elm_object_part_content_set(editfield, "elm.icon.eraser", button); // Add eraser button to current editfield layout.
+       evas_object_smart_callback_add(button, "clicked", _ivug_name_view_eraser_clicked_cb, entry);
 
        pNameView->entry = entry;
 
@@ -369,13 +440,25 @@ ivug_name_view_create(Evas_Object *parent, const char *title)
        //elm_object_disabled_set(done_button, EINA_TRUE);
 
        Elm_Object_Item *navi_it = NULL;
-       navi_it = elm_naviframe_item_push(pNameView->navibar, title, NULL, NULL, pNameView->content, NULL);
+       navi_it = elm_naviframe_item_push(pNameView->navibar, title, cancel_button, NULL, pNameView->content, NULL);
+
+       Evas_Object *conformant = ug_get_conformant();
+
+       evas_object_smart_callback_add(conformant, "virtualkeypad,state,on", _on_keypad_show, pNameView);
+       evas_object_smart_callback_add(conformant, "virtualkeypad,state,off", _on_keypad_hide, pNameView);
+       evas_object_smart_callback_add(conformant, "clipboard,state,on", _on_keypad_show, pNameView);
+       evas_object_smart_callback_add(conformant, "clipboard,state,off", _on_keypad_hide, pNameView);
+
+       evas_object_event_callback_add(pNameView->content, EVAS_CALLBACK_RESIZE, _on_resized, (void *)pNameView);
+
+       elm_object_signal_emit(conformant, "elm,state,indicator,nooverlap", "");
 
        //ivug_name_view_set_focus(pNameView);
 
-       elm_object_item_part_content_set(navi_it, "title_toolbar_button1", done_button);
-       elm_object_item_part_content_set(navi_it, "title_prev_btn", cancel_button);
-       elm_object_item_signal_emit(navi_it, "elm,state,sip,shown", "");
+       elm_object_item_part_content_set(navi_it, "toolbar_button1", done_button);
+       //elm_object_item_part_content_set(navi_it, "title_toolbar_button1", done_button);
+       //elm_object_item_part_content_set(navi_it, "title_prev_btn", cancel_button);
+       //elm_object_item_signal_emit(navi_it, "elm,state,sip,shown", "");
 
        return pNameView;
 }
@@ -388,12 +471,43 @@ ivug_name_view_destroy(Ivug_NameView *pNameView)
 
        MSG_IMAGEVIEW_HIGH( "Destroy Name View");
 
+       if(pNameView->entry)
+       {
+               evas_object_del(pNameView->entry);
+               pNameView->entry = NULL;
+       }
+
+       if(pNameView->editfield)
+       {
+               evas_object_del(pNameView->editfield);
+               pNameView->editfield = NULL;
+       }
+
+       if(pNameView->content)
+       {
+               evas_object_del(pNameView->content);
+               pNameView->content = NULL;
+       }
+
+       if(pNameView->navibar)
+       {
+               evas_object_del(pNameView->navibar);
+               pNameView->navibar = NULL;
+       }
+
        if(pNameView->layout)
        {
                evas_object_del(pNameView->layout);
                pNameView->layout = NULL;
        }
 
+       Evas_Object *conformant = ug_get_conformant();
+
+       evas_object_smart_callback_del(conformant, "virtualkeypad,state,on", _on_keypad_show);
+       evas_object_smart_callback_del(conformant, "virtualkeypad,state,off", _on_keypad_hide);
+       evas_object_smart_callback_del(conformant, "clipboard,state,on", _on_keypad_show);
+       evas_object_smart_callback_del(conformant, "clipboard,state,off", _on_keypad_hide);
+
        free(pNameView);
        pNameView = NULL;
 
index 1dba7bc..6daca35 100755 (executable)
@@ -430,7 +430,17 @@ Evas_Object *_ivug_setas_callerid_create_layout(Evas_Object *parent)
                goto error;
        }
 
-       pSetAsData->crop.box = ivug_scissorbox_add(pSetAsData->layout);
+       MSG_SETAS_HIGH("Create setas layout");
+       pSetAsData->contents_area = ivug_default_layout_add(parent);
+       evas_object_name_set(pSetAsData->contents_area, "contets_area");
+       if ( pSetAsData->contents_area == NULL )
+       {
+               MSG_SETAS_ERROR("Cannot create contets_area.");
+       }
+
+       elm_object_part_content_set(pSetAsData->layout, "setasview.contents.swallow", pSetAsData->contents_area);
+
+       pSetAsData->crop.box = ivug_scissorbox_add(pSetAsData->contents_area);
 
        if ( pSetAsData->crop.box == NULL )
        {
@@ -455,16 +465,6 @@ Evas_Object *_ivug_setas_callerid_create_layout(Evas_Object *parent)
        pSetAsData->bShowMenu = true;
        //_add_gesture_layer(pSetAsData->layout, pSetAsData);
 
-       MSG_SETAS_HIGH("Create setas layout");
-       pSetAsData->contents_area = ivug_default_layout_add(parent);
-       evas_object_name_set(pSetAsData->contents_area, "contets_area");
-       if ( pSetAsData->contents_area == NULL )
-       {
-               MSG_SETAS_ERROR("Cannot create contets_area.");
-       }
-
-       elm_object_part_content_set(pSetAsData->layout, "setasview.contents.swallow", pSetAsData->contents_area);
-
        evas_object_data_set(pSetAsData->layout, "pSetAsData", pSetAsData);
        evas_object_event_callback_add(pSetAsData->layout, EVAS_CALLBACK_MOVE, _on_moved, pSetAsData->layout);
        evas_object_event_callback_add(pSetAsData->layout, EVAS_CALLBACK_RESIZE, _on_resized, pSetAsData->layout);
index f0c5a2c..0eec7d7 100755 (executable)
@@ -7,7 +7,7 @@
 
 Name:          ug-image-viewer-efl
 Summary:    Image Viewer UI Gadget v1.0
-Version:    1.7.7
+Version:    1.7.8
 Release:    0
 Group:      misc
 License:    Flora Software License