Enlightenment CVS committal Author : kiwi Project : e_modules Module : news
Dir : e_modules/news/src/module Modified Files: news_item.c news_parse.c news_viewer.c Log Message: cleanups and fixes * [parse] avoid articles marked as read to become unread if there where problems when reading the feed * [item] fix the "one icon for all feeds" mode, and better theme for it * [theme] cleanups =================================================================== RCS file: /cvs/e/e_modules/news/src/module/news_item.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- news_item.c 23 May 2007 23:32:37 -0000 1.2 +++ news_item.c 3 Jun 2007 23:44:43 -0000 1.3 @@ -4,6 +4,7 @@ static void _item_refresh_mode_feed(News_Item *ni, int important_only, int unread_only, int changed_order, int changed_content, int changed_state); static void _cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info); static void _cb_mouse_out(void *data, Evas *e, Evas_Object *obj, void *event_info); +static void _cb_item_open(void *data, Evas_Object *obj, const char *emission, const char *source); /* @@ -194,6 +195,8 @@ { obj = edje_object_add(ni->gcc->gadcon->evas); news_theme_edje_set(obj, NEWS_THEME_FEEDONE); + edje_object_signal_callback_add(obj, "e,action,open", "e", + _cb_item_open, ni); } if (!ni->view.obj_mode_one || changed_order) @@ -286,33 +289,6 @@ { int cx, cy, cw, ch; - case 1: - switch (ni->config->openmethod) - { - case NEWS_ITEM_OPENMETHOD_VIEWER: - if (!ni->viewer) - news_viewer_create(ni); - else - news_viewer_destroy(ni->viewer); - break; - case NEWS_ITEM_OPENMETHOD_BROWSER: - /* if we are not in view mode one, - we assume its an error click */ - if (ni->config->view_mode != NEWS_ITEM_VIEW_MODE_ONE) - break; - news_menu_browser_show(ni); - e_gadcon_canvas_zone_geometry_get(ni->gcc->gadcon, - &cx, &cy, &cw, &ch); - e_menu_activate_mouse(ni->menu_browser, - e_util_zone_current_get(e_manager_current_get()), - cx + ev->output.x, cy + ev->output.y, 1, 1, - E_MENU_POP_DIRECTION_DOWN, ev->timestamp); - evas_event_feed_mouse_up(ni->gcc->gadcon->evas, ev->button, - EVAS_BUTTON_NONE, ev->timestamp, NULL); - break; - } - break; - case 3: if (ni->menu) break; news_menu_item_show(ni); @@ -339,4 +315,36 @@ DITEM(("Mouse out")); +} + +static void +_cb_item_open(void *data, Evas_Object *obj, const char *emission, const char *source) +{ + News_Item *ni; + E_Manager *man; + E_Zone *zone; + int cx, cy; + + ni = data; + + switch (ni->config->openmethod) + { + case NEWS_ITEM_OPENMETHOD_VIEWER: + if (!ni->viewer) + news_viewer_create(ni); + else + news_viewer_destroy(ni->viewer); + break; + case NEWS_ITEM_OPENMETHOD_BROWSER: + news_menu_browser_show(ni); + man = e_manager_current_get(); + zone = e_util_zone_current_get(man); + ecore_x_pointer_xy_get(man->root, &cx, &cy); + e_menu_activate_mouse(ni->menu_browser, zone, + cx, cy, 1, 1, + E_MENU_POP_DIRECTION_DOWN, + ecore_x_current_time_get()); + e_util_container_fake_mouse_up_all_later(zone->container); + break; + } } =================================================================== RCS file: /cvs/e/e_modules/news/src/module/news_parse.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- news_parse.c 2 Jun 2007 21:33:13 -0000 1.5 +++ news_parse.c 3 Jun 2007 23:44:43 -0000 1.6 @@ -1075,18 +1075,22 @@ evas_list_free(parser->articles); parser->articles = NULL; - /* remove old articles, + /* remove old articles * except unread articles, we keep them */ - pos = evas_list_count(parser->doc->articles) - 1; - while ((fa = evas_list_nth(parser->doc->articles, pos))) + if ((parser->error != NEWS_PARSE_ERROR_BROKEN_FEED) || + (parser->doc->unread_count > NEWS_FEED_UNREAD_COUNT_MAX)) { - if (!fa->unread || - (parser->doc->unread_count > NEWS_FEED_UNREAD_COUNT_MAX)) + pos = evas_list_count(parser->doc->articles) - 1; + while ((fa = evas_list_nth(parser->doc->articles, pos))) { - news_feed_article_del(fa); - parser->changes = 1; + /* if unread count max reached, remove even if unread */ + if (!fa->unread || (parser->doc->unread_count > NEWS_FEED_UNREAD_COUNT_MAX)) + { + news_feed_article_del(fa); + parser->changes = 1; + } + pos--; } - pos--; } /* append the old articles list to the new one */ @@ -1100,6 +1104,7 @@ parser->doc->articles = list; /* DEBUG : list the articles */ +#ifdef DPARSE DPARSE(("-- New articles list for feed %s", parser->doc->feed->name)); for (l=parser->doc->articles; l; l=evas_list_next(l)) { @@ -1107,11 +1112,7 @@ DPARSE(("- %s", fa->title)); } DPARSE(("---------")); - - /* - FIXME: - if sorting, no need to KEEP THE ORDER upper, so can optimize - */ +#endif } static void =================================================================== RCS file: /cvs/e/e_modules/news/src/module/news_viewer.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- news_viewer.c 2 Jun 2007 21:33:13 -0000 1.5 +++ news_viewer.c 3 Jun 2007 23:44:43 -0000 1.6 @@ -604,7 +604,7 @@ (art->title && art->title[0]) ? art->title : "No title", buf_date, (art->description && art->description[0])? art->description : "No description text", - (art->url) ? "||click here to open article in a browser||" : ""); + (art->url) ? "||click on the text to open article in a browser||" : ""); _vcontent_text_set(nv, buf); if (art->unread) ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs