[evolution-rss] make preferences work again



commit ad5feb2d47948dda07d7373f3fed9d998f37c0a4
Author: Lucian Langa <lucilanga gnome org>
Date:   Tue Sep 1 23:45:06 2009 +0300

    make preferences work again

 src/rss-config-factory.c |   43 +++++++++++++++++++++++++++++++++++++++----
 src/rss-config-factory.h |    1 +
 src/rss-icon-factory.c   |    4 ++++
 src/rss.c                |   42 +++++++++++++++++++++---------------------
 4 files changed, 65 insertions(+), 25 deletions(-)
---
diff --git a/src/rss-config-factory.c b/src/rss-config-factory.c
index c8edd14..af73245 100644
--- a/src/rss-config-factory.c
+++ b/src/rss-config-factory.c
@@ -37,6 +37,10 @@
 
 #if EVOLUTION_VERSION < 22800 //kb//
 #include <shell/evolution-config-control.h>
+#else
+#include <misc/e-preferences-window.h>
+#include <mail/e-mail-local.h>
+#include <shell/e-shell.h>
 #endif
 
 #include <e-util/e-error.h>
@@ -2358,8 +2362,11 @@ out:	return NULL;
  *=============*/
 
 //kb//
-#if 0
-EvolutionConfigControl*
+#if EVOLUTION_VERSION < 22800
+EvolutionConfigControl *
+#else
+GtkWidget *
+#endif
 rss_config_control_new (void)
 {
         GtkWidget *control_widget;
@@ -2596,7 +2603,7 @@ rss_config_control_new (void)
 #if EVOLUTION_VERSION < 22800 //kb//
         return evolution_config_control_new (control_widget);
 #else
-	return NULL;
+	return control_widget;
 #endif
 }
 
@@ -2616,6 +2623,34 @@ factory (BonoboGenericFactory *factory,
         return NULL;
 }
 
-
+#if EVOLUTION_VERSION < 22800
 BONOBO_ACTIVATION_SHLIB_FACTORY (FACTORY_ID, "Evolution RSS component factory", factory, NULL)
 #endif
+
+void
+init_rss_prefs(void)
+{
+	EShell *shell;
+        GtkWidget *preferences_window;
+
+	gchar *iconfile = g_build_filename (EVOLUTION_ICONDIR,
+	                                    "rss.png",
+						NULL);
+	GdkPixbuf *folder_icon = gdk_pixbuf_new_from_file (iconfile, NULL);
+	gtk_icon_theme_add_builtin_icon ("evolution-rss-large",
+				GTK_ICON_SIZE_INVALID,
+				folder_icon);
+	g_free(iconfile);
+			
+	shell = e_shell_get_default();
+        preferences_window = e_shell_get_preferences_window (shell);
+
+        e_preferences_window_add_page (
+                E_PREFERENCES_WINDOW (preferences_window),
+                "page-rss",
+                "evolution-rss-large",
+                _("News And Blogs"),
+		rss_config_control_new(),
+                800);
+}
+
diff --git a/src/rss-config-factory.h b/src/rss-config-factory.h
index 6139174..dd8de87 100644
--- a/src/rss-config-factory.h
+++ b/src/rss-config-factory.h
@@ -27,6 +27,7 @@ void del_days_cb (GtkWidget *widget, add_feed *data);
 void delete_feed_folder_alloc(gchar *old_name);
 void rss_delete_folders (CamelStore *store, const char *full_name, CamelException *ex);
 void remove_feed_hash(gpointer name);
+void init_rss_prefs(void);
 
 #endif /*__RSS_CONFIG_FACTORY_H_*/
 
diff --git a/src/rss-icon-factory.c b/src/rss-icon-factory.c
index c54d025..ee1f3c9 100644
--- a/src/rss-icon-factory.c
+++ b/src/rss-icon-factory.c
@@ -59,3 +59,7 @@ rss_build_stock_images(void)
         gtk_icon_source_free(source);
 }
 
+void
+init_rss_builtin_images(void)
+{
+}
diff --git a/src/rss.c b/src/rss.c
index 476facf..f36d37d 100644
--- a/src/rss.c
+++ b/src/rss.c
@@ -343,25 +343,22 @@ rss_error(gpointer key, gchar *name, gchar *error, gchar *emsg)
                 	ed  = e_error_new(NULL, "org-gnome-evolution-rss:feederr",
                 	             error, msg, NULL);
 			gpointer newkey = g_strdup(key);
-                	g_signal_connect(ed, "response", G_CALLBACK(err_destroy), NULL);
-                	g_signal_connect(ed, "destroy", G_CALLBACK(dialog_key_destroy), newkey);
+                	g_signal_connect(
+				ed, "response",
+				G_CALLBACK(err_destroy),
+				NULL);
+			g_object_set_data (
+                        	ed, "response-handled",
+                        	GINT_TO_POINTER (TRUE));
+                	g_signal_connect(ed,
+				"destroy",
+				G_CALLBACK(dialog_key_destroy),
+				newkey);
+			//lame widget destruction, seems e_activity timeout does not destroy it
+			g_timeout_add_seconds(60, (GSourceFunc)gtk_widget_destroy, ed);
 
 #if (EVOLUTION_VERSION >= 22800)
-	EShell *shell;
-	EShellBackend *shell_backend;
-	EActivity *activity = NULL;
-
-        shell = e_shell_get_default ();
-        shell_backend = e_shell_get_backend_by_name (shell, "mail");
-
-        activity = e_alert_activity_new_warning (ed);
-	g_print("activity:%p\n", activity);
-        e_shell_backend_add_activity (shell_backend, activity);
-        g_object_unref (activity);
-        if (g_object_get_data (G_OBJECT (ed), "response-handled") == NULL)
-                g_signal_connect (
-                        ed, "response",
-                        G_CALLBACK (gtk_widget_destroy), NULL);
+	em_utils_show_error_silent(ed);
 	g_hash_table_insert(rf->error_hash, newkey, GINT_TO_POINTER(1));
 
 #else
@@ -374,7 +371,6 @@ rss_error(gpointer key, gchar *name, gchar *error, gchar *emsg)
 			g_hash_table_insert(rf->error_hash, newkey, GINT_TO_POINTER(id));
 #endif
 		}
-/*		taskbar_op_finish(key);*/
 		goto out;
 	}
 #endif
@@ -434,9 +430,9 @@ taskbar_op_abort(gpointer key)
 	guint activity_key = GPOINTER_TO_INT(g_hash_table_lookup(rf->activity, key));
 	if (activity_key)
 		e_activity_handler_operation_finished(activity_handler, activity_key);
+#endif
 	g_hash_table_remove(rf->activity, key);
 	abort_all_soup();
-#endif
 }
 
 #if EVOLUTION_VERSION >= 22800
@@ -1116,6 +1112,7 @@ rss_select_folder(gchar *folder_name)
 static void
 dialog_key_destroy (GtkWidget *widget, gpointer data)
 {
+	g_print("dialog destroy\n");
 	if (data)
 		g_hash_table_remove(rf->error_hash, data);
 }
@@ -3918,6 +3915,7 @@ store_folder_deleted(CamelObject *o, void *event_data, void *data)
 static void
 store_folder_renamed(CamelObject *o, void *event_data, void *data)
 {
+g_print("folder rename\n");
 	CamelRenameInfo *info = event_data;
 
 	gchar *main_folder = lookup_main_folder();
@@ -4214,6 +4212,7 @@ void org_gnome_cooly_rss_startup(void *ep, ESEventTargetUpgrade *t);
 void org_gnome_cooly_rss_startup(void *ep, ESEventTargetUpgrade *t)
 #endif
 {
+g_print("startup\n");
   	if (gconf_client_get_bool (rss_gconf, GCONF_KEY_START_CHECK, NULL)) {
 		//as I don't know how to set this I'll setup a 10 secs timeout
 		//and return false for disableation
@@ -4415,7 +4414,6 @@ org_gnome_cooly_rss(void *ep, EMEventTargetSendReceive *t)
 org_gnome_cooly_rss(void *ep, EMPopupTargetSelect *t)
 #endif
 {
-	g_print("send an d receive\n");
 	GtkWidget *label,*progress_bar, *cancel_button, *status_label;
 	GtkWidget *recv_icon;
 
@@ -4613,6 +4611,7 @@ e_plugin_ui_init (GtkUIManager *ui_manager,
 	rss_shell_view = shell_view;
 }
 
+
 #if (EVOLUTION_VERSION < 22800)
 int e_plugin_lib_enable(EPluginLib *ep, int enable);
 #else
@@ -4685,8 +4684,9 @@ e_plugin_lib_enable(EPlugin *ep, int enable)
 			if (2 == render)
 				rss_mozilla_init();
 #endif
+			init_rss_prefs();
 		}
-		upgrade = 2;
+		upgrade = 2; //init done
 	} else {
 #if HAVE_DBUS
                 if (rf->bus != NULL)



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