[evolution-rss] handle zero sized images; switch to newly added folder



commit 408bcc4e0f4c63128c426f5c6bd5e0e3e1d48486
Author: Lucian Langa <lucilanga gnome org>
Date:   Sun Oct 11 22:28:57 2009 +0300

    handle zero sized images; switch to newly added folder

 TODO      |    6 ++----
 src/rss.c |   47 +++++++++++++++++++++++++++++++++++------------
 2 files changed, 37 insertions(+), 16 deletions(-)
---
diff --git a/TODO b/TODO
index 31e21a5..33d1c30 100644
--- a/TODO
+++ b/TODO
@@ -1,7 +1,6 @@
 
 	* maybe implement md5 for uniqueing articles (for broken feeds)
 	* check webkit area sizing when using zoom in/out
-	* jump to folder when adding through d-bus
 	* implement other engines besides soup
 	* implement USM (universal subscription mechanism)
 	* implement notify back of imported feed perhaps libnotify
@@ -37,9 +36,8 @@
 	* make gtkhtml rendering non-blocking
 	* use ellipsize in web auth dialog
 	* check feed_folders for errors
-	* check rss_delete_feed for race condition when deletion of camel folder
-	* folder delete should delete feed_folders allocation
 	* fix comment cancellation
 	* fix wrong SSL browser dialog
 	* check custom interval fetching right after it was setup
-
+	* search for threaded implmentation options
+	* config option to sort comments ascending/descending
diff --git a/src/rss.c b/src/rss.c
index d2d9546..d80bb3c 100644
--- a/src/rss.c
+++ b/src/rss.c
@@ -1107,6 +1107,20 @@ save_gconf_feed(void)
 void
 rss_select_folder(gchar *folder_name)
 {
+#if EVOLUTION_VERSION < 22900
+	EMFolderTree *folder_tree;
+	gchar *uri;
+	CamelStore *store;
+	CamelFolder *fold;
+	EShellSidebar *shell_sidebar;
+
+	shell_sidebar  = e_shell_view_get_shell_sidebar(rss_shell_view);
+	g_object_get (shell_sidebar, "folder-tree", &folder_tree, NULL);
+	store = rss_component_peek_local_store();
+	fold = camel_store_get_folder (store, folder_name, 0, NULL);
+        uri = mail_tools_folder_to_url (fold);
+	em_folder_tree_set_selected(folder_tree, uri, 0);
+#endif
 #if 0 //kb//
 	CamelStore *store = rss_component_peek_local_store();
 	EMFolderTreeModel *model = mail_component_peek_tree_model(mail_component_peek());
@@ -2374,8 +2388,8 @@ void org_gnome_cooly_format_rss(void *ep, EMFormatHookTarget *t)	//camelmimepart
 				while ((doc = html_find(doc, "img"))) {
 					int real_width = 0;
 					xmlChar *url = xmlGetProp(doc, (xmlChar *)"src");
-        	if (!g_file_test(url, G_FILE_TEST_EXISTS) && url) {
-			camel_url_decode((char *)url);
+        	if (!g_file_test((gchar *)url, G_FILE_TEST_EXISTS) && url) {
+			camel_url_decode((gchar *)url);
 			//FIXME lame method of extracting data cache path
 			//there must be a function in camel for getting data cache path
 			gchar *base_dir = rss_component_peek_base_directory();
@@ -2384,10 +2398,9 @@ void org_gnome_cooly_format_rss(void *ep, EMFormatHookTarget *t)	//camelmimepart
 				"static",
 				"http",
 				NULL);
-			gchar *nurl = strextr(url, feed_dir);
+			gchar *nurl = strextr((gchar *)url, feed_dir);
 			gchar *rurl = nurl + 4;
 			gchar *name = fetch_image_redraw(rurl, link, t->format);
-g_print("new name:%s\n", name);
 			xmlSetProp(doc, (xmlChar *)"src", (xmlChar *)name);
                         g_free(name);
 			g_free(nurl);
@@ -2869,6 +2882,7 @@ setup_feed(add_feed *feed)
         GString *post = NULL, *content = NULL;
         GError *err = NULL;
 	gchar *chn_name = NULL, *tmp_chn_name = NULL, *tmp = NULL;
+	gchar *real_name;
 
 	check_folders();
 
@@ -3005,6 +3019,10 @@ add:
 		if (feed->validate)
 			display_feed(r);
 
+		real_name = g_strdup_printf("%s/%s", lookup_main_folder(), chn_name);
+		rss_select_folder(real_name);
+		g_free(real_name);
+
 		g_free(tmp_chn_name);
 		g_free(tmp);
 		g_free(chn_name);
@@ -4036,12 +4054,12 @@ rss_delete_feed(gchar *full_path, gboolean folder)
 	if (!real_name)
 		real_name = name;
         camel_exception_init (&ex);
-        rss_delete_folders (store, full_path, &ex);
-        if (camel_exception_is_set (&ex)) {
-                e_error_run(NULL,
-                "mail:no-delete-folder", full_path, ex.desc, NULL);
-                camel_exception_clear (&ex);
-        }
+	rss_delete_folders (store, full_path, &ex);
+	if (camel_exception_is_set (&ex)) {
+               	e_error_run(NULL,
+               		"mail:no-delete-folder", full_path, ex.desc, NULL);
+               	camel_exception_clear (&ex);
+       	}
         //also remove status file
         gchar *tkey = g_hash_table_lookup(rf->hrname, real_name);
 	if (!tkey)
@@ -5194,12 +5212,17 @@ finish_image (SoupMessage *msg, CamelStream *user_data)
 finish_image (SoupSession *soup_sess, SoupMessage *msg, CamelStream *user_data)
 #endif
 {
-	d(g_print("finish_image:%d\n", msg->status_code));
+	d(g_print("finish_image() CODE:%d\n", msg->status_code));
 	// we might need to handle more error codes here
 	if (503 != msg->status_code && //handle this timedly fasion
 	    404 != msg->status_code &&
 	      2 != msg->status_code && //STATUS_CANT_RESOLVE
-	      7 != msg->status_code) { //STATUS_IO_ERROR
+	      7 != msg->status_code &&  // STATUS_IO_ERROR
+#if LIBSOUP_VERSION < 2003000
+		msg->response.length) {	//ZERO SIZE
+#else
+		msg->response_body->length) { //ZERO SIZE
+#endif
 #if LIBSOUP_VERSION < 2003000
 		if (msg->response.body) {
 			camel_stream_write(user_data,



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]