evolution-rss r332 - in trunk: . src
- From: lucilanga svn gnome org
- To: svn-commits-list gnome org
- Subject: evolution-rss r332 - in trunk: . src
- Date: Fri, 4 Jul 2008 14:39:22 +0000 (UTC)
Author: lucilanga
Date: Fri Jul 4 14:39:22 2008
New Revision: 332
URL: http://svn.gnome.org/viewvc/evolution-rss?rev=332&view=rev
Log:
2008-07-04 Lucian Langa <lucilanga gnome org>
* support for importing FOAF type files
* migrate to xulrunner standalone Glue
Thanks to Pedro Fragoso for providing
necessary patches
Modified:
trunk/ChangeLog
trunk/TODO
trunk/configure.ac
trunk/evolution-rss.spec.in
trunk/src/Makefile.am
trunk/src/Makefile.in
trunk/src/gecko-utils.cpp
trunk/src/rss-config-factory.c
trunk/src/rss.c
Modified: trunk/TODO
==============================================================================
--- trunk/TODO (original)
+++ trunk/TODO Fri Jul 4 14:39:22 2008
@@ -33,3 +33,5 @@
* strip html tags from title
* implement foaf and other possible blogrolls type file
* if necessary implement config code for evo 2.12
+ * notify in status bar, no of feeds
+ * fix recursivity on layer_find_pos
Modified: trunk/configure.ac
==============================================================================
--- trunk/configure.ac (original)
+++ trunk/configure.ac Fri Jul 4 14:39:22 2008
@@ -214,6 +214,21 @@
AC_SUBST(HAVE_GECKO_1_9)
fi
#fi
+ _SAVE_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $GECKO_CFLAGS"
+ AC_MSG_CHECKING([[whether we have a xpcom glue]])
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[
+ #ifndef XPCOM_GLUE
+ #error "no xpcom glue found"
+ #endif]]
+ )],
+ [gecko_cv_have_xpcom_glue=yes],
+ [gecko_cv_have_xpcom_glue=no])
+ AC_MSG_RESULT([$gecko_cv_have_xpcom_glue])
+ CPPFLAGS="$_SAVE_CPPFLAGS"
+ AM_CONDITIONAL([HAVE_XPCOM_GLUE], [test "$gecko_cv_have_xpcom_glue" = "yes"])
AC_ARG_WITH([primary-render],
AS_HELP_STRING([--with-primary-render],[Forces Gecko to be the primary html renderer @<:@=gecko|webkit@:>@ (default:gtkHTML)]),
[RENDER=$with_primary_render], [RENDER=gtkhtml])
Modified: trunk/evolution-rss.spec.in
==============================================================================
--- trunk/evolution-rss.spec.in (original)
+++ trunk/evolution-rss.spec.in Fri Jul 4 14:39:22 2008
@@ -28,8 +28,7 @@
%setup -q -n evolution-rss-%{version}
%build
-autoreconf -i -f
-%configure --disable-webkit --disable-gecko
+%configure
make %{?_smp_mflags}
%install
@@ -71,8 +70,8 @@
%{_bindir}/evolution-import-rss
%{_sysconfdir}/gconf/schemas/%{name}.schemas
%{_datadir}/evolution/*/errors/org-gnome-evolution-rss.error
-%{_datadir}/evolution/*/glade/rss-ui.glade
-%{_datadir}/evolution/*/images/rss.png
+%{_datadir}/evolution/*/glade/*.glade
+%{_datadir}/evolution/*/images/*.png
%{_libdir}/evolution/*/plugins/org-gnome-evolution-rss.eplug
%{_libdir}/evolution/*/plugins/org-gnome-evolution-rss.xml
%{_libdir}/evolution/*/plugins/liborg-gnome-evolution-rss.so
@@ -86,6 +85,9 @@
%doc TODO
%changelog
+* Wed Jul 2 2008 Lucian Langa <lucilanga gnome org> - 0.1.0-1
+- update to 0.1.0 release
+
* Sat Mar 1 2008 Lucian Langa <lucilanga gnome org> - 0.0.8-1
- Misc cleanup
Modified: trunk/src/Makefile.am
==============================================================================
--- trunk/src/Makefile.am (original)
+++ trunk/src/Makefile.am Fri Jul 4 14:39:22 2008
@@ -12,13 +12,17 @@
-DEVOLUTION_ICONDIR=\""$(ICON_DIR)"\" \
-DGTK_VERSION="$(GTK_VERSION)" \
-DLIBSOUP_VERSION="$(SOUP_VERSION)" \
- -DGECKO_HOME=\""$(GECKO_HOME)"\" \
-DRENDER=\""$(RENDER)"\" \
-DRENDER_N=$(RENDER_N) \
-DHAVE_DBUS=$(DBD) \
-DDBUS_API_SUBJECT_TO_CHANGE \
$(EVOLUTION_RSS_EPLUGIN_CFLAGS)
+
+if ! HAVE_XPCOM_GLUE
+INCLUDES += -DGECKO_HOME=\""$(GECKO_HOME)"\"
+endif
+
RSS_MENU = \
<hook class=\"org.gnome.evolution.mail.bonobomenu:1.0\">\n \
<menu target=\"select\" id=\"org.gnome.evolution.mail.browser\">\n \
Modified: trunk/src/Makefile.in
==============================================================================
--- trunk/src/Makefile.in (original)
+++ trunk/src/Makefile.in Fri Jul 4 14:39:22 2008
@@ -34,6 +34,7 @@
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
+ HAVE_XPCOM_GLUE_FALSE@am__append_1 = -DGECKO_HOME=\""$(GECKO_HOME)"\"
@HAVE_DBUS_TRUE bin_PROGRAMS = evolution-import-rss$(EXEEXT)
subdir = src
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
@@ -316,26 +317,18 @@
target_alias = @target_alias@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
-INCLUDES = \
- -I$(EVOLUTION_SOURCE) \
- -I$(top_srcdir) \
- $(RENDER_CFLAGS) \
- $(DBUS_CFLAGS) \
- -DGETTEXT_PACKAGE="\"$(GETTEXT_PACKAGE)\"" \
- -DLOCALEDIR="\"$(LOCALEDIR)\"" \
- -DEVOLUTION_VERSION_STRING=\"$(EVOLUTION_EXEC_VERSION)\"\
- -DEVOLUTION_VERSION=$(evolution_exec_int) \
- -DEVOLUTION_GLADEDIR=\""$(gladedir)"\" \
- -DEVOLUTION_ICONDIR=\""$(ICON_DIR)"\" \
- -DGTK_VERSION="$(GTK_VERSION)" \
- -DLIBSOUP_VERSION="$(SOUP_VERSION)" \
- -DGECKO_HOME=\""$(GECKO_HOME)"\" \
- -DRENDER=\""$(RENDER)"\" \
- -DRENDER_N=$(RENDER_N) \
- -DHAVE_DBUS=$(DBD) \
- -DDBUS_API_SUBJECT_TO_CHANGE \
- $(EVOLUTION_RSS_EPLUGIN_CFLAGS)
-
+INCLUDES = -I$(EVOLUTION_SOURCE) -I$(top_srcdir) $(RENDER_CFLAGS) \
+ $(DBUS_CFLAGS) -DGETTEXT_PACKAGE="\"$(GETTEXT_PACKAGE)\"" \
+ -DLOCALEDIR="\"$(LOCALEDIR)\"" \
+ -DEVOLUTION_VERSION_STRING=\"$(EVOLUTION_EXEC_VERSION)\" \
+ -DEVOLUTION_VERSION=$(evolution_exec_int) \
+ -DEVOLUTION_GLADEDIR=\""$(gladedir)"\" \
+ -DEVOLUTION_ICONDIR=\""$(ICON_DIR)"\" \
+ -DGTK_VERSION="$(GTK_VERSION)" \
+ -DLIBSOUP_VERSION="$(SOUP_VERSION)" -DRENDER=\""$(RENDER)"\" \
+ -DRENDER_N=$(RENDER_N) -DHAVE_DBUS=$(DBD) \
+ -DDBUS_API_SUBJECT_TO_CHANGE $(EVOLUTION_RSS_EPLUGIN_CFLAGS) \
+ $(am__append_1)
RSS_MENU = \
<hook class=\"org.gnome.evolution.mail.bonobomenu:1.0\">\n \
<menu target=\"select\" id=\"org.gnome.evolution.mail.browser\">\n \
Modified: trunk/src/gecko-utils.cpp
==============================================================================
--- trunk/src/gecko-utils.cpp (original)
+++ trunk/src/gecko-utils.cpp Fri Jul 4 14:39:22 2008
@@ -26,6 +26,11 @@
#include <stdlib.h>
#include <nsStringAPI.h>
+
+#ifdef XPCOM_GLUE
+#include <nsXPCOMGlue.h>
+#include <gtkmozembed_glue.cpp>
+#endif
#ifdef HAVE_GECKO_1_9
#include <gtkmozembed.h>
@@ -69,19 +74,70 @@
extern "C" gboolean
gecko_init (void)
{
+ nsresult rv;
#ifdef HAVE_GECKO_1_9
NS_LogInit ();
#endif
-
+
+#ifdef XPCOM_GLUE
+ static const GREVersionRange greVersion = {
+ "1.9a", PR_TRUE,
+ "1.9.*", PR_TRUE
+ };
+ char xpcomLocation[4096];
+ rv = GRE_GetGREPathWithProperties(&greVersion, 1, nsnull, 0, xpcomLocation, 4096);
+ if (NS_FAILED (rv))
+ {
+ g_warning ("Could not determine locale!\n");
+ return FALSE;
+ }
+
+ // Startup the XPCOM Glue that links us up with XPCOM.
+ rv = XPCOMGlueStartup(xpcomLocation);
+ if (NS_FAILED (rv))
+ {
+ g_warning ("Could not determine locale!\n");
+ return FALSE;
+ }
+
+ rv = GTKEmbedGlueStartup();
+ if (NS_FAILED (rv))
+ {
+ g_warning ("Could not startup glue!\n");
+ return FALSE;
+ }
+
+ rv = GTKEmbedGlueStartupInternal();
+ if (NS_FAILED (rv))
+ {
+ g_warning ("Could not startup internal glue!\n");
+ return FALSE;
+ }
+
+ char *lastSlash = strrchr(xpcomLocation, '/');
+ if (lastSlash)
+ *lastSlash = '\0';
+
+ gtk_moz_embed_set_path(xpcomLocation);
+#else
#ifdef HAVE_GECKO_1_9
gtk_moz_embed_set_path (GECKO_HOME);
#else
gtk_moz_embed_set_comp_path (GECKO_HOME);
#endif
+#endif /* XPCOM_GLUE */
+
+ gchar *profile_dir = g_build_filename (g_get_home_dir (),
+ ".evolution",
+ "mail",
+ "rss",
+ NULL);
+
+ gtk_moz_embed_set_profile_path (profile_dir, "mozembed-rss");
+ g_free (profile_dir);
gtk_moz_embed_push_startup ();
- nsresult rv;
nsCOMPtr<nsIPrefService> prefService (do_GetService (NS_PREFSERVICE_CONTRACTID, &rv));
NS_ENSURE_SUCCESS (rv, FALSE);
Modified: trunk/src/rss-config-factory.c
==============================================================================
--- trunk/src/rss-config-factory.c (original)
+++ trunk/src/rss-config-factory.c Fri Jul 4 14:39:22 2008
@@ -290,7 +290,7 @@
GtkWidget *dialog1 = (GtkWidget *)glade_xml_get_widget (gui, "feed_dialog");
gtk_widget_show(dialog1);
- gtk_window_set_keep_above(GTK_WINDOW(dialog1), TRUE);
+ gtk_window_set_keep_above(GTK_WINDOW(dialog1), FALSE);
if (text != NULL)
gtk_window_set_title (GTK_WINDOW (dialog1), _("Edit Feed"));
else
@@ -994,13 +994,36 @@
rf->cancel = 1;
}
+gboolean
+import_one_feed(gchar *url, gchar *title)
+{
+ add_feed *feed = g_new0(add_feed, 1);
+ feed->changed=0;
+ feed->add=1;
+ feed->feed_url = g_strdup(url);
+ feed->feed_name = decode_html_entities(title);
+ /* we'll get rid of this as soon as we fetch unblocking */
+ if (g_hash_table_find(rf->hr,
+ check_if_match,
+ feed->feed_url))
+ {
+ rss_error(NULL, feed->feed_name, _("Error adding feed."),
+ _("Feed already exists!"));
+ return FALSE;
+ }
+ guint res = setup_feed(feed);
+ d(g_print("feed imported:%d\n", res));
+ g_free(feed->feed_url);
+ g_free(feed->feed_name);
+ g_free(feed);
+ return res;
+}
+
void
import_opml(gchar *file, add_feed *feed)
{
+ gchar *url;
xmlChar *buff = NULL;
- //some defaults
- feed->changed=0;
- feed->add=1;
guint total = 0;
guint current = 0;
gchar *what = NULL;
@@ -1028,31 +1051,50 @@
0);
gtk_widget_show_all(import_dialog);
g_free(msg);
- xmlNode *wlk = src;
- while (wlk->next)
+ if (src=src->children)
{
- g_print("juj:%s\n", layer_find_innerelement(wlk, "Group", "name", NULL));
- printf ("%p, %s\n", wlk, wlk->name);
- wlk = wlk->next;
- }
- while (src = html_find(src, "outline"))
- {
- feed->feed_url = xmlGetProp((xmlNode *)src, "xmlUrl");
- if (feed->feed_url)
- {
- total++;
- xmlFree(feed->feed_url);
- }
- }
+ g_print("found %s\n", src->name);
+ if (!g_ascii_strcasecmp(src->name, "rdf")) {
+ while (src) {
+ g_print("my cont:%s\n", src->content);
+ src=src->children;
+ src = src->next;
+ g_print("found %s\n", src->name);
+ g_print("my cont:%s\n", src->content);
+ src=src->children;
+ src = src->next;
+ xmlNode *my = src;
+ while (src = html_find(src, "member")) {
+ my = layer_find_pos(src, "member", "Agent");
+ g_print("my:%s\n", layer_find(my, "name", NULL));
+ my = html_find(my, "Document");
+ g_print("my:%s\n", xmlGetProp(my, "about"));
+ }
+ }
+ }
+ else if (!g_ascii_strcasecmp(src->name, "opml")) {
+
+ while (src = html_find(src, "outline")) {
+ url = xmlGetProp((xmlNode *)src, "xmlUrl");
+ if (url) {
+ total++;
+ xmlFree(url);
+ }
+ }
+ g_print("total:%d\n", total);
+ }
+ }
src = doc;
+ //force out for now
+ goto out;
//we'll be safer this way
rf->import = 1;
while (gtk_events_pending ())
gtk_main_iteration ();
while (src = html_find(src, "outline"))
{
- feed->feed_url = xmlGetProp((xmlNode *)src, "xmlUrl");
- if (feed->feed_url && strlen(feed->feed_url))
+ url = xmlGetProp((xmlNode *)src, "xmlUrl");
+ if (url && strlen(url))
{
if (rf->cancel)
{
@@ -1061,30 +1103,16 @@
goto out;
}
gchar *name = xmlGetProp((xmlNode *)src, "title");
- gchar *safe_name = decode_html_entities(name);
- xmlFree(name);
- name = safe_name;
-
gtk_label_set_text(GTK_LABEL(import_label), name);
#if GTK_2_6
gtk_label_set_ellipsize (GTK_LABEL (import_label), PANGO_ELLIPSIZE_START);
#endif
gtk_label_set_justify(GTK_LABEL(import_label), GTK_JUSTIFY_CENTER);
- feed->feed_name = name;
- /* we'll get rid of this as soon as we fetch unblocking */
- if (g_hash_table_find(rf->hr,
- check_if_match,
- feed->feed_url))
- {
- rss_error(NULL, feed->feed_name, _("Error adding feed."),
- _("Feed already exists!"));
- continue;
- }
- guint res = setup_feed(feed);
+ import_one_feed(url, name);
+ xmlFree(name);
while (gtk_events_pending ())
gtk_main_iteration ();
- d(g_print("feed imported:%d\n", res));
current++;
float fr = ((current*100)/total);
gtk_progress_bar_set_fraction((GtkProgressBar *)import_progress, fr/100);
@@ -1097,7 +1125,6 @@
gtk_list_store_clear(GTK_LIST_STORE(model));
g_hash_table_foreach(rf->hrname, construct_list, model);
save_gconf_feed();
- g_free(feed->feed_url);
if (src)
xmlFree(src);
}
@@ -1110,8 +1137,6 @@
out: rf->import = 0;
xmlFree(doc);
gtk_widget_destroy(import_dialog);
-//how the hell should I free this ?
-//// g_free(feed);
}
static void
Modified: trunk/src/rss.c
==============================================================================
--- trunk/src/rss.c (original)
+++ trunk/src/rss.c Fri Jul 4 14:39:22 2008
@@ -1574,17 +1574,12 @@
rss_mozilla_init(void)
{
GError *err = NULL;
- g_setenv("MOZILLA_FIVE_HOME", GECKO_HOME, 1);
- g_unsetenv("MOZILLA_FIVE_HOME");
-
+/*#ifdef GECKO_HOME
+ g_setenv("MOZILLA_FIVE_HOME", GECKO_HOME, 1);
+#endif
+ g_unsetenv("MOZILLA_FIVE_HOME");*/
- gchar *profile_dir = g_build_filename (g_get_home_dir (),
- ".evolution",
- "mail",
- "rss", NULL);
- gtk_moz_embed_set_profile_path (profile_dir, "mozembed-rss");
- g_free (profile_dir);
gecko_init();
}
#endif
@@ -3670,16 +3665,19 @@
layer_find_pos (xmlNodePtr node,
char *match, char *submatch)
{
+ xmlNodePtr subnode;
while (node!=NULL) {
#ifdef RDF_DEBUG
xmlDebugDumpNode (stdout, node, 32);
printf("%s.\n", node->name);
#endif
if (strcasecmp (node->name, match)==0 && node->children) {
- xmlNodePtr subnode = node->children;
+ subnode = node->children;
while (subnode!=NULL) {
if (strcasecmp (subnode->name, submatch)==0 && subnode->children)
- return subnode->children->next;
+ {
+ return subnode->children->next;
+ }
subnode = subnode->next;
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]