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