r1491 - in trunk/src/target/OM-2007/applications/openmoko-rssreader: . po src

zecke at sita.openmoko.org zecke at sita.openmoko.org
Thu Mar 22 22:43:25 CET 2007


Author: zecke
Date: 2007-03-22 22:43:23 +0100 (Thu, 22 Mar 2007)
New Revision: 1491

Added:
   trunk/src/target/OM-2007/applications/openmoko-rssreader/po/
   trunk/src/target/OM-2007/applications/openmoko-rssreader/po/POTFILES.in
Modified:
   trunk/src/target/OM-2007/applications/openmoko-rssreader/Makefile.am
   trunk/src/target/OM-2007/applications/openmoko-rssreader/autogen.sh
   trunk/src/target/OM-2007/applications/openmoko-rssreader/configure.ac
   trunk/src/target/OM-2007/applications/openmoko-rssreader/src/Makefile.am
   trunk/src/target/OM-2007/applications/openmoko-rssreader/src/application-data.h
   trunk/src/target/OM-2007/applications/openmoko-rssreader/src/callbacks.c
   trunk/src/target/OM-2007/applications/openmoko-rssreader/src/callbacks.h
   trunk/src/target/OM-2007/applications/openmoko-rssreader/src/main.c
Log:
openmoko-rssreader: Prepare i18n/gettext, prepare sorting, prepare filtering
    Sorting works, but the date is sorted lexically. Parsing the RSS2.0
    pubDate requires a RFC822 compliant parser and on top of that a small
    fix to libmrss. COLUMN_DATE_GDATE will store the GDate value to allow
    better and faster sorting. We create a filter model but do not filter yet.

    Update autogen.sh to the stock GNOME file to call intltool for us


Modified: trunk/src/target/OM-2007/applications/openmoko-rssreader/Makefile.am
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-rssreader/Makefile.am	2007-03-22 19:41:20 UTC (rev 1490)
+++ trunk/src/target/OM-2007/applications/openmoko-rssreader/Makefile.am	2007-03-22 21:43:23 UTC (rev 1491)
@@ -1,2 +1,2 @@
-SUBDIRS = src data
+SUBDIRS = src data po
 

Modified: trunk/src/target/OM-2007/applications/openmoko-rssreader/autogen.sh
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-rssreader/autogen.sh	2007-03-22 19:41:20 UTC (rev 1490)
+++ trunk/src/target/OM-2007/applications/openmoko-rssreader/autogen.sh	2007-03-22 21:43:23 UTC (rev 1491)
@@ -1,4 +1,22 @@
-#! /bin/sh
-autoreconf -v --install || exit 1
-glib-gettextize --force --copy || exit 1
-./configure --enable-maintainer-mode "$@"
+#!/bin/sh
+# Run this to generate all the initial makefiles, etc.
+
+srcdir=`dirname $0`
+test -z "$srcdir" && srcdir=.
+REQUIRED_AUTOMAKE_VERSION=1.8
+PKG_NAME=openmoko-rssreader
+
+(test -f $srcdir/configure.ac \
+  && test -f $srcdir/src/main.c) || {
+    echo -n "**Error**: Directory "\`$srcdir\'" does not look like the"
+    echo " top-level $PKG_NAME directory"
+    exit 1
+}
+
+
+which gnome-autogen.sh || {
+    echo "You need to install gnome-common from the GNOME CVS"
+    exit 1
+}
+USE_GNOME2_MACROS=1 . gnome-autogen.sh
+

Modified: trunk/src/target/OM-2007/applications/openmoko-rssreader/configure.ac
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-rssreader/configure.ac	2007-03-22 19:41:20 UTC (rev 1490)
+++ trunk/src/target/OM-2007/applications/openmoko-rssreader/configure.ac	2007-03-22 21:43:23 UTC (rev 1491)
@@ -8,6 +8,13 @@
 AC_STDC_HEADERS
 AC_PROG_LIBTOOL
 
+#i18n
+GETTEXT_PACKAGE=openmoko-rssreader
+AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [Gettext package])
+AC_SUBST(GETTEXT_PACKAGE)
+AM_GLIB_GNU_GETTEXT
+
+
 # base deps
 PKG_CHECK_MODULES(OPENMOKO, openmoko-libs >= 0.0.1)
 PKG_CHECK_MODULES(MRSS,     mrss          >= 0.17 )
@@ -18,4 +25,5 @@
 Makefile
 src/Makefile
 data/Makefile
+po/Makefile.in
 ])

Added: trunk/src/target/OM-2007/applications/openmoko-rssreader/po/POTFILES.in
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-rssreader/po/POTFILES.in	2007-03-22 19:41:20 UTC (rev 1490)
+++ trunk/src/target/OM-2007/applications/openmoko-rssreader/po/POTFILES.in	2007-03-22 21:43:23 UTC (rev 1491)
@@ -0,0 +1,2 @@
+src/callbacks.c
+src/main.c

Modified: trunk/src/target/OM-2007/applications/openmoko-rssreader/src/Makefile.am
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-rssreader/src/Makefile.am	2007-03-22 19:41:20 UTC (rev 1490)
+++ trunk/src/target/OM-2007/applications/openmoko-rssreader/src/Makefile.am	2007-03-22 21:43:23 UTC (rev 1491)
@@ -1,8 +1,10 @@
 AM_CPPFLAGS = -DDATADIR=\"$(datadir)\" \
-              -DPKGDATADIR=\"$(pkgdatadir)\"
+              -DPKGDATADIR=\"$(pkgdatadir)\" \
+              -DRSSREADER_LOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\"
 
-AM_CFLAGS = -Wall -Werror -pedantic -std=c99 @OPENMOKO_CFLAGS@ @MRSS_CFLAGS@
 
+AM_CFLAGS  = -Wall -Werror -pedantic -std=c99 @OPENMOKO_CFLAGS@ @MRSS_CFLAGS@
+
 bin_PROGRAMS = openmoko-rssreader
 
 EXTRA_DIST = application-data.h callbacks.h

Modified: trunk/src/target/OM-2007/applications/openmoko-rssreader/src/application-data.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-rssreader/src/application-data.h	2007-03-22 19:41:20 UTC (rev 1490)
+++ trunk/src/target/OM-2007/applications/openmoko-rssreader/src/application-data.h	2007-03-22 21:43:23 UTC (rev 1491)
@@ -42,8 +42,14 @@
     MokoPanedWindow   *window;
     MokoToolBox       *box;
     MokoMenuBox       *menubox;
+
+
     MokoTreeView      *treeView;
     GtkListStore      *feed_data;
+    GtkTreeModelFilter *filter_model;
+    GtkTreeModelSort  *sort_model;
+
+
     GtkTextTagTable   *tagTable;
     GtkTextBuffer     *textBuffer;
     GtkTextView       *textView;
@@ -62,6 +68,7 @@
     RSS_READER_COLUMN_AUTHOR,
     RSS_READER_COLUMN_SUBJECT,
     RSS_READER_COLUMN_DATE,
+    RSS_READER_COLUMN_DATE_GDATE,/* The date as GDate representation used for sorting     */
     RSS_READER_COLUMN_LINK,     /* Is this something like spiegel.de and only has a link */
     RSS_READER_COLUMN_TEXT,     /* Either link is NULL, or this contains the article     */
     RSS_READER_COLUMN_TEXT_TYPE,/* The Text Type of Atom feeds HTML, plain...            */

Modified: trunk/src/target/OM-2007/applications/openmoko-rssreader/src/callbacks.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-rssreader/src/callbacks.c	2007-03-22 19:41:20 UTC (rev 1490)
+++ trunk/src/target/OM-2007/applications/openmoko-rssreader/src/callbacks.c	2007-03-22 21:43:23 UTC (rev 1491)
@@ -24,23 +24,27 @@
  *  Current Version: $Rev$ ($Date$) [$Author$]
  */
 
+#include "config.h"
+#include <glib/gi18n.h>
+
 #include "callbacks.h"
 
 #include <mrss.h>
 #include <string.h>
 
-#define _(x) (x)
-
 struct FeedEntry {
     gchar *category;
     gchar *url;
 };
 
-static const int NUMBER_OF_FEEDS = 2;
 static struct FeedEntry s_feeds[] = {
-    { "OpenMoko", "http://planet.openmoko.org/rss20.xml" },
-    { "GNOME"   , "http://planet.gnome.org/atom.xml"     },
+    { "OpenMoko",   "http://planet.openmoko.org/atom.xml"  },
+    { "GNOME"   ,   "http://planet.gnome.org/atom.xml"     },
+    { "KDE",        "http://planet.kde.org/rss20.xml"      },
+    { "Linux Togo", "http://planet.linuxtogo.org/atom.xml" },
+    { "zecke"   , "http://zecke.blogspot.com/atom.xml"     },
 };
+static const int NUMBER_OF_FEEDS = sizeof(s_feeds)/sizeof(s_feeds[0]);
 
 static void remove_container_item( GtkWidget *item, GtkWidget *container ) {
     gtk_container_remove(GTK_CONTAINER(container), item);

Modified: trunk/src/target/OM-2007/applications/openmoko-rssreader/src/callbacks.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-rssreader/src/callbacks.h	2007-03-22 19:41:20 UTC (rev 1490)
+++ trunk/src/target/OM-2007/applications/openmoko-rssreader/src/callbacks.h	2007-03-22 21:43:23 UTC (rev 1491)
@@ -52,6 +52,7 @@
 void cb_treeview_selection_changed( GtkTreeSelection *selection, struct RSSReaderData *d );
 gboolean cb_treeview_keypress_event( GtkWidget *entry, GdkEventKey *key, struct RSSReaderData *d );
 void cb_search_entry_changed      ( GtkWidget *entry, struct RSSReaderData *d );
+void cb_treeview_filter_function  ( GtkTreeModel *model, GtkTreeIter *iter, struct RSSReaderData* );
 
 
 #endif

Modified: trunk/src/target/OM-2007/applications/openmoko-rssreader/src/main.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-rssreader/src/main.c	2007-03-22 19:41:20 UTC (rev 1490)
+++ trunk/src/target/OM-2007/applications/openmoko-rssreader/src/main.c	2007-03-22 21:43:23 UTC (rev 1491)
@@ -23,17 +23,16 @@
  *
  *  Current Version: $Rev$ ($Date$) [$Author$]
  */
+#include "config.h"
+#include <glib/gi18n.h>
 
 #include "application-data.h"
 #include "callbacks.h"
-#include <assert.h>
 
 #include <libmokoui/moko-details-window.h>
 
-/*
- * use gettext...
- */
-#define _(x) (x)
+#include <assert.h>
+
 #define ASSERT_X(x, error) assert(x)
 
 /*
@@ -70,12 +69,26 @@
     data->feed_data = gtk_list_store_new( RSS_READER_NUM_COLS,
                                           G_TYPE_STRING /* Author    */,
                                           G_TYPE_STRING /* Subject   */,
-                                          G_TYPE_STRING /* Date      */,
+                                          G_TYPE_STRING /* The actual string */,
+                                          G_TYPE_DATE   /* Date GDate*/,
                                           G_TYPE_STRING /* Link      */,
                                           G_TYPE_STRING /* Text      */,
                                           G_TYPE_INT    /* Text_Type */,
                                           G_TYPE_STRING /* Category  */,
                                           G_TYPE_STRING /* Source    */ );
+
+    /*
+     * allow to filter for a search string
+     */
+    data->filter_model = GTK_TREE_MODEL_FILTER(gtk_tree_model_filter_new(GTK_TREE_MODEL(data->feed_data),NULL));
+
+    /*
+     * Allow sorting of the base model
+     */
+    data->sort_model = GTK_TREE_MODEL_SORT(gtk_tree_model_sort_new_with_model( GTK_TREE_MODEL(data->filter_model) ));
+    gtk_tree_sortable_set_sort_column_id( GTK_TREE_SORTABLE(data->sort_model), RSS_READER_COLUMN_SUBJECT, GTK_SORT_ASCENDING );
+    gtk_tree_sortable_set_sort_column_id( GTK_TREE_SORTABLE(data->sort_model), RSS_READER_COLUMN_DATE,    GTK_SORT_ASCENDING );
+
     data->treeView = MOKO_TREE_VIEW(moko_tree_view_new_with_model(GTK_TREE_MODEL(data->feed_data)));
     moko_paned_window_set_upper_pane( MOKO_PANED_WINDOW(data->window), GTK_WIDGET(moko_tree_view_put_into_scrolled_window(data->treeView)) );
 
@@ -88,12 +101,14 @@
     column = GTK_TREE_VIEW_COLUMN(gtk_tree_view_column_new_with_attributes( _("Subject"), ren, "text", RSS_READER_COLUMN_SUBJECT, NULL));
     gtk_tree_view_column_set_expand( column, TRUE );
     gtk_tree_view_column_set_sizing( column, GTK_TREE_VIEW_COLUMN_FIXED );
+    gtk_tree_view_column_set_sort_column_id( column, RSS_READER_COLUMN_SUBJECT );
     moko_tree_view_append_column( MOKO_TREE_VIEW(data->treeView), column );
 
     ren = GTK_CELL_RENDERER(gtk_cell_renderer_text_new());
     column = GTK_TREE_VIEW_COLUMN(gtk_tree_view_column_new_with_attributes( _("Date"), ren, "text", RSS_READER_COLUMN_DATE, NULL));
     gtk_tree_view_column_set_expand( column, TRUE );
     gtk_tree_view_column_set_sizing( column, GTK_TREE_VIEW_COLUMN_FIXED );
+    gtk_tree_view_column_set_sort_column_id( column, RSS_READER_COLUMN_DATE );
     moko_tree_view_append_column( MOKO_TREE_VIEW(data->treeView), column );
 
     /*
@@ -165,6 +180,12 @@
      */
     g_debug( "openmoko-rssreader starting up" );
 
+    /* i18n boiler plate */
+    bindtextdomain ( GETTEXT_PACKAGE, RSSREADER_LOCALE_DIR );
+    bind_textdomain_codeset ( GETTEXT_PACKAGE, "UTF-8" );
+    textdomain ( GETTEXT_PACKAGE );
+
+
     /*
      * initialize threads for fetching the RSS in the background
      */





More information about the commitlog mailing list