2007-08-06 Holger Hans Peter Freyther At least give some 'label' to the button without a meaningful icon. * src/feed-selection-view.c: (feed_selection_view_init): 2007-08-06 Holger Hans Peter Freyther Implement going forward and backward in the selection view. We have to remember the FeedSelectionView in the ApplicationData to be able to connect the next/previous signal of FeedItemView. Is g_signal_connect_swapped considered evil? And is it normal that the code is different to get the next/previous item in a GtkListStore? * src/application-data.h: * src/feed-selection-view.c: (feed_selection_view_next_item): (feed_selection_view_prev_item): * src/feed-selection-view.h: * src/main.c: (create_feed_view): (create_text_view): 2007-08-06 Holger Hans Peter Freyther Make the Backward and Forward button sensitive/unsensitive depending on if one can go backward/forward. The backward/forward signals are not yet connected. * configure.ac: Search for genmarshal * src/Makefile.am: build the custom marshaler * src/feed-item-view.c: when asked to highlight text, change the entry as well (feed_item_view_highlight): * src/feed-marshal.list: Added. * src/feed-selection-view.c: Emit the new signal with can_go_backward/_forward (treeview_selection_changed): (feed_selection_view_class_init): * src/main.c: (feed_selection_changed): Use the two booleans and pass it on to item-view 2007-08-06 Holger Hans Peter Freyther Blind compile fix for GNU libc. * src/feed-data.c: 2007-08-06 Holger Hans Peter Freyther Remove old feed posts from the model only once the new posts were fetched and parsed. * src/feed-data.c: (remove_old_items): (feed_update_thread): (feed_data_update_all): 2007-08-05 Holger Hans Peter Freyther Implement category filtering (and made sure it compiles). Feature wise it is 'enpar' with the old application again. * src/feed-data.c: (rss_filter_entries): Use FeedFilter::category for filtering categories * src/feed-selection-view.c: (category_combo_update): Fill the combobox with data (category_selection_changed): Get the current text and pass it to the FeedFilter (feed_selection_view_init): Create a ComboBox with the text model. 2007-08-05 Holger Hans Peter Freyther Implement filtering of feeds again. Switch the position of Prev/Next and use the right stock items in feed_item_view_init. * src/feed-data.c: (feed_filter_filter_category): Implement (feed_filter_filter_text): Implement (similiar to _category) * src/feed-data.h: * src/feed-item-view.c: (feed_item_view_init): * src/feed-selection-view.c: (treeview_keypress_event): Filter key presses in the treeview and forward to the search entry (search_toggled): (search_entry_changed): (category_combo_update): (feed_selection_view_init): * src/feed-selection-view.h: 2007-08-04 Holger Hans Peter Freyther 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): 2007-08-04 Holger Hans Peter Freyther Move code around and we end up with an almost complete feed-data implementation. The main page to select feeds is still missing. * src/application-data.h: * src/callbacks.c: * src/feed-data.c: (rss_filter_entries): (rss_sort_dates): (add_mrss_item): (feed_update_thread): (feed_data_finalize): (feed_data_init): (feed_data_class_init): (feed_filter_init): (feed_sort_init): (feed_data_update_all): (feed_data_set_cache): (feed_data_load_from_cache): (feed_date_cell_data_func): * src/feed-data.h: 2007-08-03 Holger Hans Peter Freyther Implement the feed_item_view which will be used to show one feed entry to the user. Fix Makefile.am and the naming of the (unused) images. * data/Makefile.am: * data/rssreader_refresh_all.png: Removed. * src/Makefile.am: * src/application-data.h: * src/feed-item-view.c: Added. (prev_clicked): (next_clicked): (mail_clicked): (feed_item_view_init): (feed_item_view_class_init): (feed_item_view_new): (feed_item_view_set_can_go_back): (feed_item_view_set_can_go_forward): (feed_item_view_display): (feed_item_view_highlight): * src/feed-item-view.h: * src/main.c: (create_text_view): (create_configuration_ui): (create_ui): Disable the remove button (main): 2007-08-03 Holger Hans Peter Freyther Start creating the feedreader2, as with every second version there might be some over-engineering but as I'm aware of this phenomena I try to avoid the bad things. Start with creating a Configuration model and the actual FeedData model. The implementation will be copied and pasted from main.c and callback.c Make main.c start to follow the new styleguide and use GtkNotebook as well. For icons I would like to use but are not available in GtkStock (like configuration) I'm going to use MISSING_IMAGE as well. * src/Makefile.am: * src/application-data.h: * src/feed-configuration.c: Added. (feed_configuration_class_init): (feed_configuration_init): (feed_configuration_get_configuration): * src/feed-configuration.h: * src/feed-data.c: Added. (feed_data_init): (feed_data_class_init): (feed_filter_init): (feed_filter_class_init): (feed_sort_init): (feed_sort_class_init): (feed_data_get_instance): (feed_data_update_all): (feed_data_set_cache): (feed_data_load_from_cache): (feed_filter_new): (feed_filter_reset): (feed_filter_filter_category): (feed_filter_filter_text): (feed_sort_new): * src/feed-data.h: * src/feed-selection-view.h: Added. * src/main.c: (window_delete_event): (config_new_clicked_closure): (config_delete_clicked_closure): (create_configuration_ui): (create_ui): (main): 2007-08-01 Holger Hans Peter Freyther Sketch some ideas how Configuration, the Feed Data (GtkListStore), sorting and filtering them and displaying items could work. * src/feed-configuration.h: Added. * src/feed-data.h: Added. * src/feed-item-view.h: Added. * src/moko_cache.h: Fix cast 2007-08-01 Holger Hans Peter Freyther Janitor work and continue the renaming to feedreader2. Change README to document what is in my mind in regard to implementing the new UI guidelines. * README: * data/Makefile.am: * data/openmoko-feedreader2.desktop: Added. * data/openmoko-rssreader.desktop: Removed. * data/openmoko-rssreader.png: Removed. * data/rssreader_subscribe.png: Removed. * openmoko-rssreader.pro: Removed. 2007-07-30 Holger Hans Peter Freyther Rename this application to feedreader2 to match the directory name. * autogen.sh: * configure.ac: * src/Makefile.am: * src/main.c: (setup_toolbar): (main): * src/moko_cache.h: 2007-07-23 Holger Hans Peter Freyther Switch to the newly created WebKit/Gtk API * configure.ac: * src/Makefile.am: * src/application-data.h: * src/callbacks.c: (cb_treeview_selection_changed): * src/main.c: (create_details_area): (main): 2007-05-19 Holger Freyther Improve caching. org.openembedded.dev has a patch to libmrss 0.17.2 to add a new method. Using this method we take over the ownership of the buffer of the downloaded file. This avoid all errors with mrss_write. We are now caching the original file. * src/callbacks.c: (feed_update_thread): 2007-05-19 Holger Freyther Do not crash on non valid pubDates * src/callbacks.c: (add_mrss_item): 2007-05-19 Holger Freyther Load data from the cache. Currently libmrss has some issues parsing the data it wrote. * src/callbacks.c: (load_data_from_cache): Implement loading from cache, * src/main.c: Call loading. (main): 2007-05-18 Holger Freyther Start caching data * src/application-data.h: Hold a MokoCache object * src/callbacks.c: Move the filling of the GtkListStore into a method to be used by the method loading from a cache. (add_mrss_item): The refactored method (feed_update_thread): Move the code to add_mrss_item and cache the data. (load_data_from_cache): Empty stub * src/callbacks.h: * src/main.c: (main): Create the MokoCache 2007-05-18 Holger Freyther Test the cache implementation * src/moko_cache.c: (moko_cache_create_dirs): Fix the g_file_test logic (object_name_to_file_name): replace the tile as well (~) (moko_cache_write_object): use g_set_file_contents to gain atomic writes * src/moko_cache.h: Update write prototype to gain a GError** * tests/Makefile.am: * tests/cache_test.c: Added. 2007-05-03 Holger Freyther Start implementing the cache (untested) * src/moko_cache.c: (moko_cache_create_dirs): Make sure to create the dir. Somehow there is no recursive mkdir in glib (moko_cache_create_path): Create/build a path for the cache (object_name_to_file_name): sanitize the object name. e.g. http://wwww.example.org/feed.xml and escape the ':', '/' and other characthers (moko_cache_write_object): Implement (moko_cache_read_object): Implement * src/moko_cache.h: switch from gint to gsize for the size 2007-05-03 Holger Freyther * src/callbacks.c: (cb_treeview_keypress_event): Cursor keys are not forwarded to the search bar but are left to the TreeView 2007-04-29 Holger Hans Peter Freyther * src/rfcdate.h: s/obj/klass/ in the macro. (fixlet) 2007-04-29 Holger Hans Peter Freyther Add a class to handle caching of feeds while making sure not consuming too much space. This class is meant to be copied to mokocore once done * src/Makefile.am: Add moko_cache.[h,c] * src/moko_cache.c: Added. (moko_cache_finalize): Clean the filename (moko_cache_class_init): Make sure to clean the filename (moko_cache_init): Initialize it (moko_cache_new): Copy the profile name (moko_cache_get_allowed_size): not implemented (moko_cache_get_utilized_size): not implemtned (moko_cache_write_object): not implemented (moko_cache_read_object): not implemented 2007-04-29 Holger Hans Peter Freyther * src/rfcdate.c: Handle wrong dates (rss_rfc_date_set): If we can't parse set it to 26.01.1983 (rss_rfc_date_compare): Check if the dates we pass to g_date_compae are valid 2007-04-29 Holger Hans Peter Freyther * src/callbacks.c: Update documentation, move it around (feed_update_thread): Update documentation (cb_treeview_selection_changed): make the string i18nable 2007-04-29 Holger Hans Peter Freyther * src/rfcdate.h: Add a proper license header 2007-04-29 Holger Hans Peter Freyther * src/rfcdate.c: Do not include malloc.h as this is not portable 2007-04-29 Holger Hans Peter Freyther * scripts/prepare-ChangeLog: Added. 2007-03-20: Fix the size of the column headers Combat the GtkTreeViewColumn sizing 2007-03-20: Parse content of atom feeds manually Parse content of ATOM feeds manually. Avoid setting NULL text inside the GtkTextBuffer. Store content type and source inside the ListStore as well. 2007-03-20: Fetch feeds inside a GThread Fetching the feeds was implemented inside a GThread. gdk_threads_init et alk is called and this works as long as AT-SPI is not enabled. If it is enabled the application will eventuall crash. Ekiga has the same trouble and it is documented as bug #329454 inside the GNOME bug tracker.