evolution-rss r226 - in trunk: . src



Author: lucilanga
Date: Mon Mar 24 16:01:52 2008
New Revision: 226
URL: http://svn.gnome.org/viewvc/evolution-rss?rev=226&view=rev

Log:
save/restore feed hash

Modified:
   trunk/TODO
   trunk/src/rss-config-factory.c
   trunk/src/rss.c
   trunk/src/rss.h

Modified: trunk/TODO
==============================================================================
--- trunk/TODO	(original)
+++ trunk/TODO	Mon Mar 24 16:01:52 2008
@@ -36,3 +36,4 @@
 	* convert rest of non-intrusive error messages 
 	* search in the content of page for feed
 	* obey ttl entity
+	* fix editing (reading possible deleted feed)

Modified: trunk/src/rss-config-factory.c
==============================================================================
--- trunk/src/rss-config-factory.c	(original)
+++ trunk/src/rss-config-factory.c	Mon Mar 24 16:01:52 2008
@@ -645,6 +645,37 @@
         camel_store_free_folder_info (store, fi);
 }
 
+feed*
+save_feed_hash(gpointer name)
+{
+        feed *saved_feed = g_new0(feed, 1);
+	saved_feed->hrname = g_strdup(g_hash_table_lookup(rf->hrname, name));
+	saved_feed->hrname_r = g_strdup(g_hash_table_lookup(rf->hrname_r, lookup_key(name)));
+	saved_feed->hre = g_hash_table_lookup(rf->hre, lookup_key(name));
+	saved_feed->hrt = g_strdup(g_hash_table_lookup(rf->hrt, lookup_key(name)));
+	saved_feed->hrh = g_hash_table_lookup(rf->hrh, lookup_key(name));
+	saved_feed->hr = g_strdup(g_hash_table_lookup(rf->hr, lookup_key(name)));
+	saved_feed->hrdel_feed = g_hash_table_lookup(rf->hrdel_feed, lookup_key(name));
+	saved_feed->hrdel_days = g_hash_table_lookup(rf->hrdel_days, lookup_key(name));
+	saved_feed->hrdel_messages = g_hash_table_lookup(rf->hrdel_messages, lookup_key(name));
+	saved_feed->hrdel_unread = g_hash_table_lookup(rf->hrdel_unread, lookup_key(name));
+	return saved_feed;
+}
+
+// restores a feed structure removed from hash
+// name - key to restore
+// s - feed structure to restore
+void
+restore_feed_hash(gpointer name, feed *s)
+{
+	g_hash_table_insert(rf->hre, g_strdup(lookup_key(name)), s->hre);
+	g_hash_table_insert(rf->hrh, g_strdup(lookup_key(name)), s->hre);
+	g_hash_table_insert(rf->hrdel_feed, g_strdup(lookup_key(name)), s->hre);
+	g_hash_table_insert(rf->hrdel_days, g_strdup(lookup_key(name)), s->hre);
+	g_hash_table_insert(rf->hrdel_messages, g_strdup(lookup_key(name)), s->hre);
+	g_hash_table_insert(rf->hrdel_unread, g_strdup(lookup_key(name)), s->hre);
+}
+
 void
 remove_feed_hash(gpointer name)
 {
@@ -655,6 +686,10 @@
         g_hash_table_remove(rf->hrt, lookup_key(name));
         g_hash_table_remove(rf->hrh, lookup_key(name));
         g_hash_table_remove(rf->hr, lookup_key(name));
+	g_hash_table_remove(rf->hrdel_feed, lookup_key(name));
+	g_hash_table_remove(rf->hrdel_days, lookup_key(name));
+	g_hash_table_remove(rf->hrdel_messages, lookup_key(name));
+	g_hash_table_remove(rf->hrdel_unread, lookup_key(name));
         g_hash_table_remove(rf->hrname_r, lookup_key(name));
         g_hash_table_remove(rf->hrname, name);
 	rf->pending = FALSE;

Modified: trunk/src/rss.c
==============================================================================
--- trunk/src/rss.c	(original)
+++ trunk/src/rss.c	Mon Mar 24 16:01:52 2008
@@ -524,7 +524,7 @@
                     (GtkAttachOptions) (0), 0, 0);
   gtk_entry_set_invisible_char (GTK_ENTRY (username), 8226);
     gchar *user = g_hash_table_lookup(rf->hruser,  url);
-	g_print("user:%s\n", user);
+	d(g_print("user:%s\n", user));
     if (user)
         gtk_entry_set_text (GTK_ENTRY (username), user);
   password = gtk_entry_new ();

Modified: trunk/src/rss.h
==============================================================================
--- trunk/src/rss.h	(original)
+++ trunk/src/rss.h	Mon Mar 24 16:01:52 2008
@@ -42,6 +42,22 @@
         SoupMessage *message;
 } RDF;
 
+//we keep these values of a feed to be deleted in order
+//to easily restore in case delete does not success or
+//it is canceled
+typedef struct _feed {
+	gchar *hrname;
+	gchar *hrname_r;
+	gchar *hr;
+	guint hre;
+	gchar *hrt;
+	guint hrh;
+	guint hrdel_feed;
+	guint hrdel_days;
+	guint hrdel_messages;
+	guint hrdel_unread;
+} feed;
+
 typedef struct _rssfeed {
         GHashTable      *hrname;            	//bind feed name to key
         GHashTable      *hrname_r;            	//and mirrored structure for faster lookups



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