diff --git a/TODO b/TODO index e68502b..f89f2c9 100644 --- a/TODO +++ b/TODO @@ -26,15 +26,15 @@ mails juan mails ludger politic : http://alibaba0.free.fr/blog/rss.php - -? -http://www.kozlika.org/kozeries/feed/rss2 +? : http://www.kozlika.org/kozeries/feed/rss2 +science : http://www.eurekalert.org/rss.xml ---------------------------------------------------- NEEDED (to do more or less in this order) ---------------------------------------------------- + - ? make a difference in item ui, depending on the gadon gadget inset/freee appearance ? - debug html chars parse with test.rss diff --git a/data/theme/Makefile.am b/data/theme/Makefile.am index fc1b788..57ac1e9 100644 --- a/data/theme/Makefile.am +++ b/data/theme/Makefile.am @@ -23,30 +23,20 @@ module_item_programs.edc \ module_popw.edc \ module_popw_parts.edc \ module_popw_programs.edc \ -module_viewer.edc \ -module_viewer_parts.edc \ -module_viewer_programs.edc \ fonts/VeraBd.ttf \ fonts/Vera.ttf \ images/feed_background_new.png \ images/feed_border.png \ -images/feed_loading_1.png \ -images/feed_loading_done.png \ images/icon_article_read.png \ images/icon_article_unread.png \ -images/icon_infos.png \ images/icon_logo.png \ images/icon_setasread.png \ images/icon_update.png \ -images/icon_viewer.png \ -images/item_border.png \ -images/item_feed_back.png \ images/popup_warn_background.png \ images/popup_warn_disable_clicked.png \ images/popup_warn_disable.png \ images/popup_warn_logo_error.png \ -images/popup_warn_logo_info.png \ -images/viewer_background.png +images/popup_warn_logo_info.png e-module-news.edj: Makefile $(EXTRA_DIST) $(EDJE_CC) $(EDJE_FLAGS) \ diff --git a/data/theme/images/article_background_new.png b/data/theme/images/article_background_new.png deleted file mode 100644 index dde5517..0000000 Binary files a/data/theme/images/article_background_new.png and /dev/null differ diff --git a/data/theme/images/article_border.png b/data/theme/images/article_border.png deleted file mode 100644 index cfccc34..0000000 Binary files a/data/theme/images/article_border.png and /dev/null differ diff --git a/data/theme/images/feed_background_new.png b/data/theme/images/feed_background_new.png index a6b4825..0ed6a2a 100644 Binary files a/data/theme/images/feed_background_new.png and b/data/theme/images/feed_background_new.png differ diff --git a/data/theme/images/feed_border.png b/data/theme/images/feed_border.png index 3f3e016..1e3747a 100644 Binary files a/data/theme/images/feed_border.png and b/data/theme/images/feed_border.png differ diff --git a/data/theme/images/feed_loading_1.png b/data/theme/images/feed_loading_1.png deleted file mode 100644 index 4c82ed8..0000000 Binary files a/data/theme/images/feed_loading_1.png and /dev/null differ diff --git a/data/theme/images/feed_loading_done.png b/data/theme/images/feed_loading_done.png deleted file mode 100644 index 1f5a37e..0000000 Binary files a/data/theme/images/feed_loading_done.png and /dev/null differ diff --git a/data/theme/images/icon_infos.png b/data/theme/images/icon_infos.png deleted file mode 100644 index 377216c..0000000 Binary files a/data/theme/images/icon_infos.png and /dev/null differ diff --git a/data/theme/images/icon_viewer.png b/data/theme/images/icon_viewer.png deleted file mode 100644 index 5853656..0000000 Binary files a/data/theme/images/icon_viewer.png and /dev/null differ diff --git a/data/theme/images/item_border.png b/data/theme/images/item_border.png deleted file mode 100644 index cfccc34..0000000 Binary files a/data/theme/images/item_border.png and /dev/null differ diff --git a/data/theme/images/item_feed_back.png b/data/theme/images/item_feed_back.png deleted file mode 100644 index 6b8a52e..0000000 Binary files a/data/theme/images/item_feed_back.png and /dev/null differ diff --git a/data/theme/images/viewer_background.png b/data/theme/images/viewer_background.png deleted file mode 100644 index a3434b9..0000000 Binary files a/data/theme/images/viewer_background.png and /dev/null differ diff --git a/data/theme/module.edc b/data/theme/module.edc index 00b9dbd..7113e21 100644 --- a/data/theme/module.edc +++ b/data/theme/module.edc @@ -2,9 +2,6 @@ images { - image: "item_border.png" COMP; - image: "item_feed_back.png" COMP; - image: "feed_background_new.png" COMP; image: "feed_border.png" COMP; @@ -14,11 +11,7 @@ images image: "popup_warn_logo_error.png" COMP; image: "popup_warn_logo_info.png" COMP; - image: "viewer_background.png" COMP; - image: "icon_logo.png" COMP; - image: "icon_infos.png" COMP; - image: "icon_viewer.png" COMP; image: "icon_article_read.png" COMP; image: "icon_article_unread.png" COMP; image: "icon_update.png" COMP; @@ -39,6 +32,5 @@ collections #include "module_feed.edc" #include "module_feedone.edc" #include "module_popw.edc" - #include "module_viewer.edc" #include "module_icon.edc" } diff --git a/data/theme/module_feed_programs.edc b/data/theme/module_feed_programs.edc index c401ccc..5901d30 100644 --- a/data/theme/module_feed_programs.edc +++ b/data/theme/module_feed_programs.edc @@ -1,16 +1,3 @@ -/* Init */ - -program -{ - name: "init"; - signal: "load"; - source: ""; - script - { - - } -} - /* Signals for new state */ program diff --git a/data/theme/module_feedone_parts.edc b/data/theme/module_feedone_parts.edc index f1987f0..7ac65d8 100644 --- a/data/theme/module_feedone_parts.edc +++ b/data/theme/module_feedone_parts.edc @@ -1,65 +1,3 @@ -part -{ - name: "background"; - type: IMAGE; - mouse_events: 0; - description - { - state: "default" 0.0; - color: 255 255 255 0; - rel1 - { - relative: 0.0 0.0; - } - rel2 - { - relative: 1.0 1.0; - } - image - { - normal: "feed_background_new.png"; - } - } - description - { - state: "new" 0.0; - inherit: "default" 0.0; - color: 255 255 255 255; - } -} - -part -{ - name: "border"; - type: IMAGE; - mouse_events: 0; - description - { - state: "default" 0.0; - visible: 0; - color: 255 255 255 0; - rel1 - { - relative: 0.0 0.0; - } - rel2 - { - relative: 1.0 1.0; - } - image - { - normal: "feed_border.png"; - } - } - description - { - state: "selected" 0.0; - inherit: "default" 0.0; - visible: 1; - color: 255 255 255 255; - } -} - part { name: "icon"; @@ -84,6 +22,90 @@ part } } +part +{ + name: "unread_clip"; + type: RECT; + mouse_events: 0; + description + { + state: "default" 0.0; + color: 255 255 255 0; + } + description + { + state: "active" 0.0; + inherit: "default" 0.0; + color: 255 255 255 255; + } +} + +part +{ + name: "unread"; + type: IMAGE; + mouse_events: 0; + clip_to: "unread_clip"; + description + { + state: "default" 0.0; + rel1 + { + relative: 0.0 0.0; + } + rel2 + { + relative: 1.0 1.0; + } + image + { + normal: "feed_background_new.png"; + } + } +} + +part +{ + name: "border_clip"; + type: RECT; + mouse_events: 0; + description + { + state: "default" 0.0; + color: 255 255 255 0; + } + description + { + state: "active" 0.0; + inherit: "default" 0.0; + color: 255 255 255 255; + } +} + +part +{ + name: "border"; + type: IMAGE; + mouse_events: 0; + clip_to: "border_clip"; + description + { + state: "default" 0.0; + rel1 + { + relative: 0.0 0.0; + } + rel2 + { + relative: 1.0 1.0; + } + image + { + normal: "feed_border.png"; + } + } +} + part { name: "name"; diff --git a/data/theme/module_feedone_programs.edc b/data/theme/module_feedone_programs.edc index bd54ab9..5901d30 100644 --- a/data/theme/module_feedone_programs.edc +++ b/data/theme/module_feedone_programs.edc @@ -1,16 +1,3 @@ -/* Init */ - -program -{ - name: "init"; - signal: "load"; - source: ""; - script - { - - } -} - /* Signals for new state */ program @@ -18,9 +5,9 @@ program name: "new_set"; signal: "e,state,new,set"; source: "e"; - action: STATE_SET "new" 0.0; - target: "background"; - transition: SINUSOIDAL 0.5; + action: STATE_SET "active" 0.0; + transition: SINUSOIDAL 0.7; + target: "unread_clip"; } program { @@ -28,8 +15,8 @@ program signal: "e,state,new,unset"; source: "e"; action: STATE_SET "default" 0.0; - target: "background"; transition: SINUSOIDAL 0.5; + target: "unread_clip"; } /* Mouse in/out */ @@ -39,8 +26,9 @@ program name: "mouse_in"; signal: "mouse,in"; source: "inout"; - action: STATE_SET "selected" 0.0; - target: "border"; + action: STATE_SET "active" 0.0; + transition: SINUSOIDAL 0.1; + target: "border_clip"; } program @@ -49,7 +37,8 @@ program signal: "mouse,out"; source: "inout"; action: STATE_SET "default" 0.0; - target: "border"; + transition: SINUSOIDAL 0.5; + target: "border_clip"; } program @@ -57,5 +46,5 @@ program name: "mouse_down"; signal: "mouse,down,1"; source: "inout"; - action: SIGNAL_EMIT "open" "feed"; + action: SIGNAL_EMIT "e,action,open" "e"; } diff --git a/data/theme/module_icon.edc b/data/theme/module_icon.edc index e38738c..7589e0e 100644 --- a/data/theme/module_icon.edc +++ b/data/theme/module_icon.edc @@ -24,54 +24,6 @@ group } } -group -{ - name: "modules/news/icon/infos"; - - parts - { - part - { - name: "icon"; - type: IMAGE; - mouse_events: 0; - description - { - state: "default" 0.0; - aspect: 1.0 1.0; - image - { - normal: "icon_infos.png"; - } - } - } - } -} - -group -{ - name: "modules/news/icon/viewer"; - - parts - { - part - { - name: "icon"; - type: IMAGE; - mouse_events: 0; - description - { - state: "default" 0.0; - aspect: 1.0 1.0; - image - { - normal: "icon_viewer.png"; - } - } - } - } -} - group { name: "modules/news/icon/article_read"; diff --git a/data/theme/module_item.edc b/data/theme/module_item.edc index e3c00ea..023fdbb 100644 --- a/data/theme/module_item.edc +++ b/data/theme/module_item.edc @@ -4,11 +4,6 @@ group { name: "modules/news/item"; - script - { - - } - parts { #include "module_item_parts.edc" diff --git a/data/theme/module_item_programs.edc b/data/theme/module_item_programs.edc index a7f9b1e..e69de29 100644 --- a/data/theme/module_item_programs.edc +++ b/data/theme/module_item_programs.edc @@ -1,12 +0,0 @@ -/* Init */ - -program -{ - name: "init"; - signal: "load"; - source: ""; - script - { - - } -} diff --git a/data/theme/module_viewer.edc b/data/theme/module_viewer.edc deleted file mode 100644 index 5cf5710..0000000 --- a/data/theme/module_viewer.edc +++ /dev/null @@ -1,21 +0,0 @@ -/* Viewer group */ - -group -{ - name: "modules/news/viewer"; - - data - { - item: "shaped" "1"; - } - - parts - { - #include "module_viewer_parts.edc" - } - - programs - { - #include "module_viewer_programs.edc" - } -} diff --git a/data/theme/module_viewer_parts.edc b/data/theme/module_viewer_parts.edc deleted file mode 100644 index a41d2df..0000000 --- a/data/theme/module_viewer_parts.edc +++ /dev/null @@ -1,49 +0,0 @@ - part { - name: "border"; - type: RECT; - mouse_events: 0; - description { - state: "default" 0.0; - rel1 { - offset: 0 0; - } - rel2 { - offset: -1 -1; - } - color: 0 0 0 255; - } - } - part { - name: "base"; - type: RECT; - mouse_events: 0; - description { - state: "default" 0.0; - rel1 { - offset: 1 1; - to: "border"; - } - rel2 { - offset: -2 -2; - to: "border"; - } - color: 221 221 221 255; - } - } - part { - name: "e.swallow.content"; - type: SWALLOW; - description { - state: "default" 0.0; - align: 0.5 0.5; - color: 0 0 0 0; - rel1 { - offset: 5 5; - to: "base"; - } - rel2 { - offset: -6 -6; - to: "base"; - } - } - } diff --git a/data/theme/module_viewer_programs.edc b/data/theme/module_viewer_programs.edc deleted file mode 100644 index 085ee19..0000000 --- a/data/theme/module_viewer_programs.edc +++ /dev/null @@ -1,10 +0,0 @@ -program -{ - name: "click_close"; - signal: "mouse,up,1"; - source: "base"; - script - { - emit("close", "viewer"); - } -} diff --git a/src/module/news_item.c b/src/module/news_item.c index 26d18e7..477140c 100644 --- a/src/module/news_item.c +++ b/src/module/news_item.c @@ -4,6 +4,7 @@ static void _item_refresh_mode_one(News_Item *ni, int changed_order, int c 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 @@ _item_refresh_mode_one(News_Item *ni, int changed_order, int changed_state) { 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 @@ _cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info) { 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); @@ -340,3 +316,35 @@ _cb_mouse_out(void *data, Evas *e, Evas_Object *obj, void *event_info) 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; + } +} diff --git a/src/module/news_parse.c b/src/module/news_parse.c index c6d3fc6..7efc9bb 100644 --- a/src/module/news_parse.c +++ b/src/module/news_parse.c @@ -1075,18 +1075,22 @@ _update_doc(News_Parse *parser) 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 @@ _update_doc(News_Parse *parser) 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 @@ _update_doc(News_Parse *parser) DPARSE(("- %s", fa->title)); } DPARSE(("---------")); - - /* - FIXME: - if sorting, no need to KEEP THE ORDER upper, so can optimize - */ +#endif } static void diff --git a/src/module/news_viewer.c b/src/module/news_viewer.c index 8b26ff1..b20ae32 100644 --- a/src/module/news_viewer.c +++ b/src/module/news_viewer.c @@ -604,7 +604,7 @@ _dialog_cb_article_selected(void *data) (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)