Enlightenment CVS committal

Author  : dj2
Project : misc
Module  : eke

Dir     : misc/eke/src


Modified Files:
        eke_feed.c eke_feed.h eke_feed_item.c eke_gui_edje.c 


Log Message:
- deleting a feed should now work in the edje interface

===================================================================
RCS file: /cvsroot/enlightenment/misc/eke/src/eke_feed.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- eke_feed.c  4 Jan 2005 03:05:17 -0000       1.3
+++ eke_feed.c  5 Jan 2005 06:17:15 -0000       1.4
@@ -6,6 +6,7 @@
 #include "eke_parse.h"
 #include "eke_macros.h"
 #include "eke_file.h"
+#include "eke_feed_item.h"
 
 #define MINUTES     * 60
 
@@ -463,5 +464,30 @@
     return strdup(c_name);
 }
 
+void
+eke_feed_del(Eke_Feed *feed)
+{
+    if (!feed) return;
+
+    if (feed->timer) ecore_timer_del(feed->timer);
+    IF_FREE(feed->name);
+    IF_FREE(feed->server.name);
+    IF_FREE(feed->server.path);
+    IF_FREE(feed->server.proxy.name);
+    IF_FREE(feed->server.proxy.user);
+    IF_FREE(feed->server.proxy.passwd);
+    IF_FREE(feed->server.data.data);
+    IF_FREE(feed->data.data);
+    IF_FREE(feed->update.crypt);
+    IF_FREE(feed->title);
+    IF_FREE(feed->link);
+    IF_FREE(feed->desc);
+
+    ecore_list_set_free_cb(feed->items, ECORE_FREE_CB(eke_feed_item_free));
+    ecore_list_destroy(feed->items);
+
+    FREE(feed);
+}
+
 
 
===================================================================
RCS file: /cvsroot/enlightenment/misc/eke/src/eke_feed.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- eke_feed.h  4 Jan 2005 04:28:25 -0000       1.2
+++ eke_feed.h  5 Jan 2005 06:17:15 -0000       1.3
@@ -64,6 +64,8 @@
 int eke_feed_init(const char *dir);
 int eke_feed_shutdown(void);
 
+void eke_feed_del(Eke_Feed *feed);
+
 Eke_Feed *eke_feed_new_from_uri(const char *uri);
 Eke_Feed *eke_feed_new(const char *name, const char *srv, int port, 
                                                     const char *path);
===================================================================
RCS file: /cvsroot/enlightenment/misc/eke/src/eke_feed_item.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- eke_feed_item.c     27 Dec 2004 22:45:01 -0000      1.1
+++ eke_feed_item.c     5 Jan 2005 06:17:15 -0000       1.2
@@ -19,7 +19,7 @@
     IF_FREE(item->title);
     IF_FREE(item->link);
     IF_FREE(item->desc);
-
+    IF_FREE(item->date);
     FREE(item);
 }
 
===================================================================
RCS file: /cvsroot/enlightenment/misc/eke/src/eke_gui_edje.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -3 -r1.12 -r1.13
--- eke_gui_edje.c      5 Jan 2005 04:38:56 -0000       1.12
+++ eke_gui_edje.c      5 Jan 2005 06:17:15 -0000       1.13
@@ -100,7 +100,7 @@
     edje_object_signal_callback_add(edje, "eke,feed,add", "",
                                         eke_gui_edje_feed_add_cb, NULL);
     edje_object_signal_callback_add(edje, "eke,feed,del", "",
-                                        eke_gui_edje_feed_del_cb, NULL);
+                                        eke_gui_edje_feed_del_cb, eke);
     edje_object_signal_callback_add(edje, "eke,feed,refresh", "",
                                         eke_gui_edje_feed_refresh_cb, eke);
     edje_object_signal_callback_add(edje, "eke,quit", "",
@@ -288,7 +288,41 @@
 eke_gui_edje_feed_del_cb(void *data, Evas_Object *obj, 
                         const char *em, const char *src)
 {
-    printf("del cb\n");
+    Eke *eke;
+    Eke_Feed *feed;
+    Eke_Gui_Edje_Feed *disp;
+    Evas_Object *list;
+    Evas *evas;
+    Ecore_List *key_list;
+
+    eke = data;
+    feed = eke->current_feed;
+    disp = ecore_hash_remove(eke->feeds, feed);
+
+    key_list = ecore_hash_keys(eke->feeds);
+    if (key_list) {
+        Eke_Feed *new_feed;
+
+        new_feed = ecore_list_goto_first(key_list);
+        if (new_feed) eke_gui_edje_feed_swap(eke, new_feed);
+
+        ecore_list_destroy(key_list);
+    }
+
+    evas = evas_object_evas_get(eke->gui.edje.edje);
+    if ((list = evas_object_name_find(evas, "feeds.list")))
+        esmart_container_element_remove(list, disp->menu_item);
+
+    if (disp->menu_item) evas_object_del(disp->menu_item);
+    disp->menu_item = NULL;
+
+    if (disp->body) evas_object_del(disp->body);
+    disp->body = NULL;
+
+    if (feed) eke_feed_del(feed);
+    feed = NULL;
+
+    FREE(disp);
 
     return;
     data = NULL;




-------------------------------------------------------
The SF.Net email is sponsored by: Beat the post-holiday blues
Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek.
It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt
_______________________________________________
enlightenment-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to