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

Reply via email to