Changeset 2637


Ignore:
Timestamp:
08/04/07 23:18:11 (6 years ago)
Author:
zecke
Message:

2007-08-04 Holger Hans Peter Freyther <zecke@…>

First version that can fetch feeds again and display some part of the
message to the user.

Some how scrolling with MokoFingerScrollView? and WebKitGtkPage? does not
work.

The application is still very raw, beginning with missing icons, to missing
configuration possibilities to missing features.

  • src/Makefile.am:
  • src/feed-data.c: (feed_sort_init): (feed_data_load_from_cache): (feed_filter_new): (feed_sort_new):
  • src/feed-item-view.c: (do_highlight): (search_entry_changed_closure): (feed_item_view_init): (feed_item_view_highlight):
  • src/feed-item-view.h:
  • src/feed-selection-view.c: Added. (treeview_selection_changed): (treeview_keypress_event): (refresh_feeds_closure): (feed_selection_view_init): (feed_selection_view_class_init): (feed_selection_view_new): (feed_selection_view_add_column): (feed_selection_view_get_search_string):
  • src/feed-selection-view.h:
  • src/main.c: (feed_selection_changed): (create_feed_view): (create_configuration_ui): (create_ui):
Location:
trunk/src/target/OM-2007.2/applications/openmoko-feedreader2
Files:
1 added
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/target/OM-2007.2/applications/openmoko-feedreader2/ChangeLog

    r2635 r2637  
     12007-08-04  Holger Hans Peter Freyther  <zecke@selfish.org> 
     2 
     3        First version that can fetch feeds again and display some part of the 
     4        message to the user. 
     5 
     6        Some how scrolling with MokoFingerScrollView and WebKitGtkPage does not 
     7        work. 
     8 
     9        The application is still very raw, beginning with missing icons, to missing 
     10        configuration possibilities to missing features. 
     11 
     12        * src/Makefile.am: 
     13        * src/feed-data.c: 
     14        (feed_sort_init): 
     15        (feed_data_load_from_cache): 
     16        (feed_filter_new): 
     17        (feed_sort_new): 
     18        * src/feed-item-view.c: 
     19        (do_highlight): 
     20        (search_entry_changed_closure): 
     21        (feed_item_view_init): 
     22        (feed_item_view_highlight): 
     23        * src/feed-item-view.h: 
     24        * src/feed-selection-view.c: Added. 
     25        (treeview_selection_changed): 
     26        (treeview_keypress_event): 
     27        (refresh_feeds_closure): 
     28        (feed_selection_view_init): 
     29        (feed_selection_view_class_init): 
     30        (feed_selection_view_new): 
     31        (feed_selection_view_add_column): 
     32        (feed_selection_view_get_search_string): 
     33        * src/feed-selection-view.h: 
     34        * src/main.c: 
     35        (feed_selection_changed): 
     36        (create_feed_view): 
     37        (create_configuration_ui): 
     38        (create_ui): 
     39 
    1402007-08-04  Holger Hans Peter Freyther  <zecke@selfish.org> 
    241 
  • trunk/src/target/OM-2007.2/applications/openmoko-feedreader2/src/Makefile.am

    r2627 r2637  
    1010EXTRA_DIST = rfcdate.h moko_cache.h feed-configuration.h feed-data.h feed-item-view.h feed-selection-view.h application-data.h 
    1111 
    12 openmoko_feedreader2_SOURCES = feed-configuration.c feed-item-view.c feed-data.c rfcdate.c moko_cache.c main.c 
     12openmoko_feedreader2_SOURCES = feed-configuration.c feed-item-view.c feed-selection-view.c feed-data.c rfcdate.c moko_cache.c main.c 
    1313openmoko_feedreader2_LDADD = @OPENMOKO_LIBS@ @MRSS_LIBS@ @GTHREAD_LIBS@ @WEBKITGTK_LIBS@ 
    1414 
  • trunk/src/target/OM-2007.2/applications/openmoko-feedreader2/src/feed-data.c

    r2635 r2637  
    301301feed_sort_init (FeedSort* sort) 
    302302{ 
    303     gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (sort), RSS_READER_COLUMN_DATE, GTK_SORT_DESCENDING); 
    304     gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (sort), RSS_READER_COLUMN_DATE, rss_sort_dates, NULL, NULL); 
    305303} 
    306304 
     
    356354    GtkTreeIter iter; 
    357355 
    358     gboolean valid = gtk_tree_model_get_iter_first ( GTK_TREE_MODEL (data), &iter); 
     356    GtkTreeModel *store = GTK_TREE_MODEL (feed_configuration_get_configuration ()); 
     357    gboolean valid = gtk_tree_model_get_iter_first ( GTK_TREE_MODEL (store), &iter); 
    359358 
    360359    while (valid) { 
     
    363362        gchar *category; 
    364363 
    365         gtk_tree_model_get ( GTK_TREE_MODEL (data), &iter, FEED_URL, &url, FEED_NAME, &category, -1); 
     364        gtk_tree_model_get ( GTK_TREE_MODEL (store), &iter, FEED_URL, &url, FEED_NAME, &category, -1); 
    366365        g_debug ("Reading cached object '%s'\n", url); 
    367366        gchar *content = moko_cache_read_object (data->cache, url, &size); 
     
    390389        g_free (url); 
    391390        g_free (category); 
    392         valid = gtk_tree_model_iter_next ( GTK_TREE_MODEL (data), &iter); 
     391        valid = gtk_tree_model_iter_next ( GTK_TREE_MODEL (store), &iter); 
    393392    } 
    394393 
     
    402401    GObject* obj = g_object_new(RSS_TYPE_FEED_FILTER, 
    403402                                "child-model", data, 
    404                                 "root", NULL, 
     403                                "virtual-root", NULL, 
    405404                                NULL); 
    406405 
     
    430429                                 NULL); 
    431430 
     431    gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (obj), RSS_READER_COLUMN_DATE, GTK_SORT_DESCENDING); 
     432    gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (obj), RSS_READER_COLUMN_DATE, rss_sort_dates, NULL, NULL); 
     433 
    432434    return obj; 
    433435} 
  • trunk/src/target/OM-2007.2/applications/openmoko-feedreader2/src/feed-item-view.c

    r2627 r2637  
    5757} 
    5858 
     59static void 
     60do_highlight (FeedItemView* view, const gchar* search_string) 
     61{ 
     62    /* webkit_gtk_page_search (view->page, search_string); */ 
     63} 
     64 
     65static void 
     66search_entry_changed_closure (GtkEntry* entry, FeedItemView* view) 
     67{ 
     68    do_highlight (view, gtk_entry_get_text (entry)); 
     69} 
     70 
    5971 
    6072G_DEFINE_TYPE(FeedItemView, feed_item_view, GTK_TYPE_VBOX) 
     
    6981    gtk_box_pack_start (GTK_BOX(view), toolbar, FALSE, FALSE, 0); 
    7082 
    71     view->back = gtk_tool_button_new_from_stock (GTK_STOCK_MEDIA_PREVIOUS); 
     83    view->back = gtk_tool_button_new_from_stock (GTK_STOCK_GO_FORWARD); 
    7284    gtk_tool_item_set_expand (GTK_TOOL_ITEM(view->back), TRUE); 
    7385    gtk_toolbar_insert (GTK_TOOLBAR(toolbar), view->back, 0); 
    7486    g_signal_connect (view->back, "clicked", G_CALLBACK(prev_clicked), view); 
     87 
     88    gtk_toolbar_insert (GTK_TOOLBAR (toolbar), gtk_separator_tool_item_new (), 1); 
    7589     
    7690    view->mail = gtk_tool_button_new_from_stock (MOKO_STOCK_MAIL_SEND); 
    7791    gtk_tool_item_set_expand (GTK_TOOL_ITEM(view->mail), TRUE); 
    78     gtk_toolbar_insert (GTK_TOOLBAR(toolbar), view->mail, 1); 
     92    gtk_toolbar_insert (GTK_TOOLBAR(toolbar), view->mail, 2); 
    7993    g_signal_connect (view->mail, "clicked", G_CALLBACK(mail_clicked), view); 
    8094 
    81     view->forward = gtk_tool_button_new_from_stock (GTK_STOCK_MEDIA_NEXT); 
     95    gtk_toolbar_insert (GTK_TOOLBAR (toolbar), gtk_separator_tool_item_new (), 3); 
     96 
     97    view->forward = gtk_tool_button_new_from_stock (GTK_STOCK_GO_FORWARD); 
    8298    gtk_tool_item_set_expand (GTK_TOOL_ITEM(view->forward), TRUE); 
    83     gtk_toolbar_insert (GTK_TOOLBAR(toolbar), view->forward, 2); 
     99    gtk_toolbar_insert (GTK_TOOLBAR(toolbar), view->forward, 4); 
    84100    g_signal_connect (view->forward, "clicked", G_CALLBACK(next_clicked), view); 
    85101 
     102    /* 
     103     * Search Entry 
     104     */ 
     105    GtkWidget *hbox = gtk_hbox_new (FALSE, 0); 
     106    gtk_box_pack_start (GTK_BOX (view), hbox, FALSE, FALSE, 0); 
     107 
     108    view->search_button = gtk_button_new (); 
     109    gtk_widget_set_name (GTK_WIDGET (view->search_button), "mokosearchbutton"); 
     110    gtk_button_set_image (GTK_BUTTON (view->search_button), gtk_image_new_from_stock (GTK_STOCK_FIND, GTK_ICON_SIZE_SMALL_TOOLBAR)); 
     111    gtk_box_pack_start (GTK_BOX (hbox), view->search_button, FALSE, FALSE, 0); 
     112 
     113    view->search_entry = GTK_ENTRY (gtk_entry_new ()); 
     114    gtk_widget_set_name (GTK_WIDGET (view->search_entry), "mokosearchentry"); 
     115    g_signal_connect (G_OBJECT (view->search_entry), "changed", G_CALLBACK (search_entry_changed_closure), view); 
     116    gtk_box_pack_start (GTK_BOX (hbox), GTK_WIDGET (view->search_entry), TRUE, TRUE, 0); 
     117 
     118    /* 
     119     * Details 'pane' 
     120     */ 
    86121    GtkWidget* scrolled = moko_finger_scroll_new (); 
    87122    gtk_box_pack_start (GTK_BOX(view), scrolled, TRUE, TRUE, 0); 
     
    158193feed_item_view_highlight (FeedItemView* view, const gchar* search_string) 
    159194{ 
    160     /* webkit_gtk_page_search (view->page, search_string); */ 
     195    do_highlight (view, search_string); 
    161196} 
  • trunk/src/target/OM-2007.2/applications/openmoko-feedreader2/src/feed-item-view.h

    r2627 r2637  
    6262    GtkToolItem    *mail; 
    6363 
    64     gchar          *current_highlight; 
     64 
     65    GtkEntry       *search_entry; 
     66    GtkWidget      *search_button; 
    6567}; 
    6668 
  • trunk/src/target/OM-2007.2/applications/openmoko-feedreader2/src/feed-selection-view.h

    r2623 r2637  
    4848 
    4949struct _FeedSelectionView { 
    50     GtkTreeView parent; 
     50    GtkVBox parent; 
     51 
     52    FeedFilter      *filter; 
     53    FeedSort        *sort;    
     54    GtkTreeView     *view; 
    5155}; 
    5256 
    5357struct _FeedSelectionViewClass { 
    54     GtkTreeViewClass parent; 
     58    GtkVBoxClass parent; 
    5559}; 
    5660 
    57 GType feed_selection_view_get_type      (void); 
    58 GObject* feed_selection_new_new         (const FeedData*); 
    59 void feed_selection_set_first_column    (const FeedData*, int); 
    60 void feed_selection_set_second_column   (const FeedData*, int); 
     61GType       feed_selection_view_get_type                (void); 
     62GtkWidget*  feed_selection_view_new                     (void); 
     63void        feed_selection_view_add_column              (const FeedSelectionView*, int column_type, const gchar* txt); 
     64gchar*      feed_selection_view_get_search_string       (const FeedSelectionView*); 
    6165 
    6266G_END_DECLS 
  • trunk/src/target/OM-2007.2/applications/openmoko-feedreader2/src/main.c

    r2627 r2637  
    3636#include "feed-data.h" 
    3737#include "feed-configuration.h" 
     38#include "feed-selection-view.h" 
    3839#include "config.h" 
    3940 
     
    4445} 
    4546 
     47static void 
     48feed_selection_changed (FeedSelectionView* view, const gchar* text, struct ApplicationData* data) 
     49{ 
     50    feed_item_view_display (data->view, text ?  text : _("Failed to read the text.")); 
     51    if (feed_selection_view_get_search_string (view)) 
     52        feed_item_view_highlight (data->view, feed_selection_view_get_search_string (view)); 
     53} 
     54 
     55/* 
     56 * Feed View 
     57 */ 
     58static void 
     59create_feed_view (struct ApplicationData* data) 
     60{ 
     61    GtkWidget *box = feed_selection_view_new (); 
     62    gtk_notebook_prepend_page (data->notebook, box, gtk_image_new_from_stock (GTK_STOCK_MISSING_IMAGE, GTK_ICON_SIZE_LARGE_TOOLBAR)); 
     63    gtk_container_child_set (GTK_CONTAINER(data->notebook), box, "tab-expand", TRUE, "tab-fill", TRUE, NULL); 
     64 
     65    feed_selection_view_add_column (RSS_FEED_SELECTION_VIEW (box), RSS_READER_COLUMN_SUBJECT, _("Subject")); 
     66    feed_selection_view_add_column (RSS_FEED_SELECTION_VIEW (box), RSS_READER_COLUMN_DATE, _("Date")); 
     67 
     68    g_signal_connect (G_OBJECT(box), "item-changed", G_CALLBACK(feed_selection_changed), data); 
     69} 
    4670 
    4771/* 
     
    77101     */ 
    78102    GtkWidget* box = gtk_vbox_new (FALSE, 0); 
    79     gtk_notebook_append_page (data->notebook, box, gtk_image_new_from_stock (GTK_STOCK_MISSING_IMAGE, GTK_ICON_SIZE_LARGE_TOOLBAR)); 
     103    gtk_notebook_append_page (data->notebook, box, gtk_image_new_from_stock (GTK_STOCK_PREFERENCES, GTK_ICON_SIZE_LARGE_TOOLBAR)); 
    80104    gtk_container_child_set (GTK_CONTAINER(data->notebook), box, "tab-expand", TRUE, "tab-fill", TRUE, NULL); 
    81105 
     
    149173 
    150174    /* 
     175     * 1. The default feed view 
     176     */ 
     177    create_feed_view (data); 
     178     
     179    /* 
    151180     * 2. Text View 
    152      * (initialized before 1. so it can be used by them) 
    153181     */ 
    154182    create_text_view (data); 
Note: See TracChangeset for help on using the changeset viewer.