rimmed pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=5965489809bb971024f20e4a1a215e4ff5a079dd

commit 5965489809bb971024f20e4a1a215e4ff5a079dd
Author: Vitalii Vorobiov <vi.vorob...@samsung.com>
Date:   Tue Jan 19 18:49:34 2016 +0000

    property_group: unset Program Property after program deletion
    
    @fix #49755
---
 src/bin/common/signals.h     |  8 ++++++++
 src/bin/ui/group_navigator.c |  1 +
 src/bin/ui/property_group.c  | 14 +++++++++++++-
 3 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/src/bin/common/signals.h b/src/bin/common/signals.h
index 00a2cf5..abf3349 100644
--- a/src/bin/common/signals.h
+++ b/src/bin/common/signals.h
@@ -76,6 +76,14 @@
  */
 #define SIGNAL_PART_UNSELECTED "SIGNAL_PART_UNSELECTED"
 
+/**
+ * emited when program is unselected.
+ * eventinfo - pointer to Resource structure
+ *
+ * @ingroup Window
+ */
+#define SIGNAL_PROGRAM_UNSELECTED "SIGNAL_PROGRAM_UNSELECTED"
+
 typedef struct {
    const char *old_name;
    const char *new_name;
diff --git a/src/bin/ui/group_navigator.c b/src/bin/ui/group_navigator.c
index 07fa3b1..bd43965 100644
--- a/src/bin/ui/group_navigator.c
+++ b/src/bin/ui/group_navigator.c
@@ -1140,6 +1140,7 @@ _program_del(Part_List *pl,
    program = elm_object_item_data_get(glit);
 
    assert(program != NULL);
+   evas_object_smart_callback_call(ap.win, SIGNAL_PROGRAM_UNSELECTED, (void 
*)program);
 
    msg = eina_stringshare_printf(_("deleted program \"%s\""), program->name);
    change = change_add(msg);
diff --git a/src/bin/ui/property_group.c b/src/bin/ui/property_group.c
index 2e15ca7..d950d2d 100644
--- a/src/bin/ui/property_group.c
+++ b/src/bin/ui/property_group.c
@@ -601,9 +601,20 @@ _on_program_selected(void *data,
    Resource *res = event_info;
 
    _on_part_selected(data, obj, NULL);
-   _ui_property_program_unset(property);
+   if (!res)
+     {
+        _ui_property_program_unset(property);
+        return;
+     }
    _ui_property_program_set(property, res->name);
 }
+static void
+_on_program_unselected(void *data,
+                    Evas_Object *obj,
+                    void *event_info __UNUSED__)
+{
+   _on_program_selected(data, obj, NULL);
+}
 
 static void
 _on_editor_attribute_changed(void *data,
@@ -1060,6 +1071,7 @@ ui_property_group_add(Evas_Object *parent)
    evas_object_smart_callback_add(ap.win, SIGNAL_PART_UNSELECTED, 
_on_part_unselected, pd->scroller);
    evas_object_smart_callback_add(ap.win, SIGNAL_PART_STATE_SELECTED, 
_on_part_state_selected, pd->scroller);
    evas_object_smart_callback_add(ap.win, SIGNAL_PROGRAM_SELECTED, 
_on_program_selected, pd->scroller);
+   evas_object_smart_callback_add(ap.win, SIGNAL_PROGRAM_UNSELECTED, 
_on_program_unselected, pd->scroller);
    evas_object_smart_callback_add(ap.win, SIGNAL_EDITOR_ATTRIBUTE_CHANGED, 
_on_editor_attribute_changed, pd->scroller);
 
    return pd->scroller;

-- 


Reply via email to