diff --git a/src/module/Makefile.am b/src/module/Makefile.am index 7fe72a5..eddc3dc 100644 --- a/src/module/Makefile.am +++ b/src/module/Makefile.am @@ -1,9 +1,12 @@ +ACLOCAL_AMFLAGS = -I m4 +MAINTAINERCLEANFILES = Makefile.in + INCLUDES = -I. \ -I$(top_srcdir) \ -I$(includedir) \ - @e_cflags@ -pkgdir = $(datadir)/$(MODULE_ARCH) + @ENLIGHTENMENT_CFLAGS@ +pkgdir = $(datadir)/$(MODULE_ARCH) pkg_LTLIBRARIES = module.la module_la_SOURCES = e_mod_main.c \ e_mod_main.h \ @@ -36,8 +39,8 @@ module_la_SOURCES = e_mod_main.c \ news_parse_atom.h \ news_parse_rss.c \ news_parse_rss.h \ - news_popup_warn.c \ - news_popup_warn.h \ + news_popup.c \ + news_popup.h \ news_theme.c \ news_theme.h \ news_utils.c \ @@ -46,6 +49,6 @@ module_la_SOURCES = e_mod_main.c \ news_viewer.h \ News.h \ News_includes.h -module_la_LIBADD = @e_libs@ +module_la_LIBADD = @ENLIGHTENMENT_LIBS@ module_la_LDFLAGS = -module -avoid-version -s module_la_DEPENDENCIES = $(top_builddir)/config.h diff --git a/src/module/News.h b/src/module/News.h index 3ab7820..8029fae 100644 --- a/src/module/News.h +++ b/src/module/News.h @@ -47,10 +47,10 @@ #else # define DBROWSER(x) ((void) 0) #endif -#ifdef DEBUG_POPUP_WARN -# define DPOPW(x) do {printf("POPUP WARN - %s:%d: ", __FILE__, __LINE__); printf x; printf ("\n"); fflush(stdout);} while (0) +#ifdef DEBUG_POPUP +# define DPOP(x) do {printf("POPUP - %s:%d: ", __FILE__, __LINE__); printf x; printf ("\n"); fflush(stdout);} while (0) #else -# define DPOPW(x) ((void) 0) +# define DPOP(x) ((void) 0) #endif #ifdef DEBUG_VIEWER # define DVIEWER(x) do {printf("VIEWER - %s:%d: ", __FILE__, __LINE__); printf x; printf ("\n"); fflush(stdout);} while (0) diff --git a/src/module/News_includes.h b/src/module/News_includes.h index f0b4a34..3273d0a 100644 --- a/src/module/News_includes.h +++ b/src/module/News_includes.h @@ -6,7 +6,7 @@ #include "news_parse_rss.h" #include "news_parse_atom.h" #include "news_viewer.h" -#include "news_popup_warn.h" +#include "news_popup.h" #include "news_menu.h" #include "news_config.h" #include "news_config_dialog.h" diff --git a/src/module/e_mod_main.c b/src/module/e_mod_main.c index 500a392..d253b5c 100644 --- a/src/module/e_mod_main.c +++ b/src/module/e_mod_main.c @@ -47,7 +47,7 @@ e_modapi_init(E_Module *m) if (!news_parse_init()) E_MOD_INIT_FAIL(m, _("Parser init failed")); if (!news_feed_init()) E_MOD_INIT_FAIL(m, _("Feeds init failed")); if (!news_viewer_init()) E_MOD_INIT_FAIL(m, _("Viewer init failed")); - if (!news_popup_warn_init()) E_MOD_INIT_FAIL(m, _("Popup warn subsystem init failed")); + if (!news_popup_init()) E_MOD_INIT_FAIL(m, _("Popup subsystem init failed")); e_gadcon_provider_register((E_Gadcon_Client_Class *)&_gadcon_class); @@ -76,7 +76,7 @@ e_modapi_shutdown(E_Module *m) if (news->config_dialog_category_new) news_config_dialog_category_hide(NULL); - news_popup_warn_shutdown(); + news_popup_shutdown(); news_viewer_shutdown(); news_feed_shutdown(); news_parse_shutdown(); @@ -170,7 +170,7 @@ _gc_orient(E_Gadcon_Client *gcc) ni = gcc->data; - switch (ni->config->view_mode) + switch ((News_Item_View_Mode)ni->config->view_mode) { case NEWS_ITEM_VIEW_MODE_ONE: nb_feeds = 1; @@ -178,11 +178,25 @@ _gc_orient(E_Gadcon_Client *gcc) case NEWS_ITEM_VIEW_MODE_FEED: nb_feeds = evas_list_count(ni->config->feed_refs); if (!nb_feeds) nb_feeds = 1; - break; + break; case NEWS_ITEM_VIEW_MODE_FEED_UNREAD: nb_feeds = ni->unread_count; if (!nb_feeds) nb_feeds = 1; break; + case NEWS_ITEM_VIEW_MODE_FEED_IMPORTANT: + case NEWS_ITEM_VIEW_MODE_FEED_IMPORTANT_UNREAD: + nb_feeds = 0; + NEWS_ITEM_FEEDS_FOREACH_BEG(ni); + if (_feed->important) + { + if ((ni->config->view_mode == NEWS_ITEM_VIEW_MODE_FEED_IMPORTANT) + || + ((ni->config->view_mode == NEWS_ITEM_VIEW_MODE_FEED_IMPORTANT_UNREAD) + && _feed->doc && _feed->doc->unread_count)) + nb_feeds++; + } + NEWS_ITEM_FEEDS_FOREACH_END(); + if (!nb_feeds) nb_feeds = 1; } switch (gcc->gadcon->orient) diff --git a/src/module/news_config.c b/src/module/news_config.c index 36e9fd2..4bcd2ea 100644 --- a/src/module/news_config.c +++ b/src/module/news_config.c @@ -31,7 +31,7 @@ news_config_init(void) E_CONFIG_VAL(D, T, url_feed, STR); E_CONFIG_VAL(D, T, icon, STR); E_CONFIG_VAL(D, T, icon_ovrw, SHORT); - E_CONFIG_VAL(D, T, urgent, SHORT); + E_CONFIG_VAL(D, T, important, SHORT); _news_feed_ref_edd = E_CONFIG_DD_NEW("News_Feed_Ref", News_Feed_Ref); #undef T #undef D @@ -166,9 +166,9 @@ news_config_init(void) E_CONFIG_LIMIT(news->config->viewer.varticles.sort_date, 0, 1); E_CONFIG_LIMIT(news->config->viewer.vcontent.font_size, NEWS_VIEWER_VCONTENT_FONT_SIZE_MIN, NEWS_VIEWER_VCONTENT_FONT_SIZE_MAX); E_CONFIG_LIMIT(news->config->viewer.vcontent.font_shadow, 0, 1); - E_CONFIG_LIMIT(news->config->popup_news.timer_s, NEWS_POPUP_WARN_TIMER_S_MIN, NEWS_POPUP_WARN_TIMER_S_MAX); + E_CONFIG_LIMIT(news->config->popup_news.timer_s, NEWS_POPUP_TIMER_S_MIN, NEWS_POPUP_TIMER_S_MAX); E_CONFIG_LIMIT(news->config->popup_other.on_timeout, 0, 1); - E_CONFIG_LIMIT(news->config->popup_other.timer_s, NEWS_POPUP_WARN_TIMER_S_MIN, NEWS_POPUP_WARN_TIMER_S_MAX); + E_CONFIG_LIMIT(news->config->popup_other.timer_s, NEWS_POPUP_TIMER_S_MIN, NEWS_POPUP_TIMER_S_MAX); return 1; } diff --git a/src/module/news_config_dialog.c b/src/module/news_config_dialog.c index f147a28..01d982f 100644 --- a/src/module/news_config_dialog.c +++ b/src/module/news_config_dialog.c @@ -211,18 +211,20 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cf of = e_widget_frametable_add(evas, _("Browser"), 0); rg = e_widget_radio_group_new(&(cfdata->browser.wich)); - ob = e_widget_radio_add(evas, _("Firefox"), NEWS_UTIL_BROWSER_FIREFOX, rg); - e_widget_frametable_object_append(of, ob, 0, 0, 1, 1, 1, 1, 0, 1); + ob = e_widget_radio_add(evas, _("Firefox (new window)"), NEWS_UTIL_BROWSER_FIREFOX, rg); + e_widget_frametable_object_append(of, ob, 0, 0, 3, 1, 1, 1, 0, 1); + ob = e_widget_radio_add(evas, _("Firefox (new tab)"), NEWS_UTIL_BROWSER_FIREFOX_TAB, rg); + e_widget_frametable_object_append(of, ob, 3, 0, 3, 1, 1, 1, 0, 1); ob = e_widget_radio_add(evas, _("Mozilla"), NEWS_UTIL_BROWSER_MOZILLA, rg); - e_widget_frametable_object_append(of, ob, 1, 0, 1, 1, 1, 1, 0, 1); + e_widget_frametable_object_append(of, ob, 0, 1, 2, 1, 1, 1, 0, 1); ob = e_widget_radio_add(evas, _("Opera"), NEWS_UTIL_BROWSER_OPERA, rg); - e_widget_frametable_object_append(of, ob, 2, 0, 1, 1, 1, 1, 0, 1); + e_widget_frametable_object_append(of, ob, 2, 1, 2, 1, 1, 1, 0, 1); ob = e_widget_radio_add(evas, _("Dillo"), NEWS_UTIL_BROWSER_DILLO, rg); - e_widget_frametable_object_append(of, ob, 3, 0, 1, 1, 1, 1, 0, 1); + e_widget_frametable_object_append(of, ob, 4, 1, 2, 1, 1, 1, 0, 1); ob = e_widget_radio_add(evas, _("This one"), NEWS_UTIL_BROWSER_OWN, rg); - e_widget_frametable_object_append(of, ob, 0, 1, 1, 1, 1, 1, 0, 1); + e_widget_frametable_object_append(of, ob, 0, 2, 2, 1, 1, 1, 0, 1); ob = e_widget_entry_add(evas, &(cfdata->browser.own)); - e_widget_frametable_object_append(of, ob, 1, 1, 3, 1, 1, 1, 1, 1); + e_widget_frametable_object_append(of, ob, 2, 2, 4, 1, 1, 1, 0, 1); e_widget_list_object_append(o, of, 1, 1, 0.5); @@ -273,18 +275,20 @@ _advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data of = e_widget_frametable_add(evas, _("Browser"), 0); rg = e_widget_radio_group_new(&(cfdata->browser.wich)); - ob = e_widget_radio_add(evas, _("Firefox"), NEWS_UTIL_BROWSER_FIREFOX, rg); - e_widget_frametable_object_append(of, ob, 0, 0, 1, 1, 1, 1, 0, 1); + ob = e_widget_radio_add(evas, _("Firefox (new window)"), NEWS_UTIL_BROWSER_FIREFOX, rg); + e_widget_frametable_object_append(of, ob, 0, 0, 3, 1, 1, 1, 0, 1); + ob = e_widget_radio_add(evas, _("Firefox (new tab)"), NEWS_UTIL_BROWSER_FIREFOX_TAB, rg); + e_widget_frametable_object_append(of, ob, 3, 0, 3, 1, 1, 1, 0, 1); ob = e_widget_radio_add(evas, _("Mozilla"), NEWS_UTIL_BROWSER_MOZILLA, rg); - e_widget_frametable_object_append(of, ob, 1, 0, 1, 1, 1, 1, 0, 1); + e_widget_frametable_object_append(of, ob, 0, 1, 2, 1, 1, 1, 0, 1); ob = e_widget_radio_add(evas, _("Opera"), NEWS_UTIL_BROWSER_OPERA, rg); - e_widget_frametable_object_append(of, ob, 2, 0, 1, 1, 1, 1, 0, 1); + e_widget_frametable_object_append(of, ob, 2, 1, 2, 1, 1, 1, 0, 1); ob = e_widget_radio_add(evas, _("Dillo"), NEWS_UTIL_BROWSER_DILLO, rg); - e_widget_frametable_object_append(of, ob, 3, 0, 1, 1, 1, 1, 0, 1); + e_widget_frametable_object_append(of, ob, 4, 1, 2, 1, 1, 1, 0, 1); ob = e_widget_radio_add(evas, _("This one"), NEWS_UTIL_BROWSER_OWN, rg); - e_widget_frametable_object_append(of, ob, 0, 1, 1, 1, 1, 1, 0, 1); + e_widget_frametable_object_append(of, ob, 0, 2, 2, 1, 1, 1, 0, 1); ob = e_widget_entry_add(evas, &(cfdata->browser.own)); - e_widget_frametable_object_append(of, ob, 1, 1, 3, 1, 1, 1, 1, 1); + e_widget_frametable_object_append(of, ob, 2, 2, 4, 1, 1, 1, 0, 1); e_widget_list_object_append(o2, of, 1, 1, 0.5); @@ -313,8 +317,8 @@ _advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data ob = e_widget_label_add(evas, _("Timer")); e_widget_frametable_object_append(of, ob, 0, 2, 1, 1, 1, 1, 1, 0); ob = e_widget_slider_add(evas, 1, 0, _("%1.0f s"), - (float)NEWS_POPUP_WARN_TIMER_S_MIN, - (float)NEWS_POPUP_WARN_TIMER_S_MAX, + (float)NEWS_POPUP_TIMER_S_MIN, + (float)NEWS_POPUP_TIMER_S_MAX, 1.0, 0, NULL, &(cfdata->popup_news.timer_s), 70); e_widget_frametable_object_append(of, ob, 1, 2, 1, 1, 1, 1, 1, 0); @@ -322,14 +326,19 @@ _advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data of = e_widget_frametable_add(evas, _("Popup On Warning / Error"), 0); + //TODO: NOT IMPLEMENTED YET + news->config->popup_other.on_timeout = 0; + cfdata->popup_other.on_timeout = 0; ob = e_widget_check_add(evas, _("Show on timeout ?"), &(cfdata->popup_other.on_timeout)); + //TODO: NOT IMPLEMENTED YET + e_widget_disabled_set(ob, 1); e_widget_frametable_object_append(of, ob, 0, 0, 2, 1, 1, 0, 1, 0); ob = e_widget_label_add(evas, _("Timer")); e_widget_frametable_object_append(of, ob, 0, 1, 1, 1, 1, 1, 1, 0); ob = e_widget_slider_add(evas, 1, 0, _("%1.0f s"), - (float)NEWS_POPUP_WARN_TIMER_S_MIN, - (float)NEWS_POPUP_WARN_TIMER_S_MAX, + (float)NEWS_POPUP_TIMER_S_MIN, + (float)NEWS_POPUP_TIMER_S_MAX, 1.0, 0, NULL, &(cfdata->popup_other.timer_s), 70); e_widget_frametable_object_append(of, ob, 1, 1, 1, 1, 1, 1, 1, 0); diff --git a/src/module/news_config_dialog_feed.c b/src/module/news_config_dialog_feed.c index a7105a6..8cec550 100644 --- a/src/module/news_config_dialog_feed.c +++ b/src/module/news_config_dialog_feed.c @@ -24,7 +24,7 @@ struct _E_Config_Dialog_Data char *url_feed; char *icon; int icon_ovrw; - int urgent; + int important; News_Feed_Category *category; News_Feed *feed; @@ -58,6 +58,12 @@ news_config_dialog_feed_show(News_Feed *feed) E_Config_Dialog *cfd; E_Config_Dialog_View *v; + if (!evas_list_count(news->config->feed.categories)) + { + news_util_message_error_show(_("You need to create a category first")); + return 0; + } + v = E_NEW(E_Config_Dialog_View, 1); v->create_cfdata = _create_data; @@ -144,10 +150,10 @@ news_config_dialog_feed_refresh_categories(News_Feed *feed) e_widget_ilist_thaw(ilist); if (pos_to_select != -1) - { - e_widget_ilist_selected_set(ilist, pos_to_select); - _cb_category_list(cfdata); - } + e_widget_ilist_selected_set(ilist, pos_to_select); + else + e_widget_ilist_selected_set(ilist, 0); + _cb_category_list(cfdata); e_widget_min_size_get(ilist, &w, NULL); e_widget_min_size_set(ilist, w, 110); @@ -280,7 +286,7 @@ _fill_data(E_Config_Dialog_Data *cfdata, News_Feed *f) cfdata->icon = strdup(buf); } cfdata->icon_ovrw = f->icon_ovrw; - cfdata->urgent = f->urgent; + cfdata->important = f->important; } else { @@ -344,9 +350,7 @@ _common_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *c e_widget_frametable_object_append(of, ob, 0, 3, 1, 1, 1, 0, 1, 0); ob = e_widget_entry_add(evas, &(cfdata->url_feed)); e_widget_frametable_object_append(of, ob, 0, 4, 1, 1, 1, 0, 1, 0); - ob = e_widget_check_add(evas, _("Mark as important feed"), &(cfdata->urgent)); - //TODO: NOT IMPLEMENTED YET - e_widget_disabled_set(ob, 1); + ob = e_widget_check_add(evas, _("Mark as important feed"), &(cfdata->important)); e_widget_frametable_object_append(of, ob, 0, 5, 1, 1, 1, 0, 1, 0); e_widget_table_object_append(o, of, 0, 0, 2, 1, 1, 1, 1, 1); @@ -395,7 +399,7 @@ _advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data ob = e_widget_entry_add(evas, &(cfdata->url_home)); e_widget_framelist_object_append(of, ob); - e_widget_table_object_append(o, of, 0, 1, 3, 1, 1, 0, 1, 0); + e_widget_table_object_append(o, of, 0, 1, 3, 1, 1, 1, 1, 1); of = e_widget_framelist_add(evas, _("Server informations"), 0); @@ -412,7 +416,7 @@ _advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data ob = e_widget_check_add(evas, _("Home url"), &(cfdata->url_home_ovrw)); e_widget_framelist_object_append(of, ob); - e_widget_table_object_append(o, of, 3, 1, 3, 1, 1, 0, 1, 0); + e_widget_table_object_append(o, of, 3, 1, 3, 1, 1, 1, 1, 1); e_dialog_resizable_set(cfd->dia, 1); @@ -437,7 +441,7 @@ _common_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata) cfdata->url_home, cfdata->url_home_ovrw, cfdata->url_feed, cfdata->icon, cfdata->icon_ovrw, - cfdata->urgent, + cfdata->important, cfdata->category, 0) ) { if (old_cat != cfdata->category) @@ -466,7 +470,7 @@ _common_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata) cfdata->url_home, cfdata->url_home_ovrw, cfdata->url_feed, cfdata->icon, cfdata->icon_ovrw, - cfdata->urgent, + cfdata->important, cfdata->category); if (!f) { @@ -482,8 +486,6 @@ _common_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata) news_feed_lists_refresh(1); - // TODO config dialog to attach to an item - news_config_save(); return 1; diff --git a/src/module/news_config_dialog_feeds.c b/src/module/news_config_dialog_feeds.c index 32e84d3..0e5b4e0 100644 --- a/src/module/news_config_dialog_feeds.c +++ b/src/module/news_config_dialog_feeds.c @@ -152,8 +152,7 @@ news_config_dialog_feeds_refresh_feeds(void) e_icon_file_set(ic, f->icon); } - snprintf(buf, sizeof(buf), "%s", f->name); - // TODO : better display of each feed + snprintf(buf, sizeof(buf), "%s%s", (f->important) ? "[i] " : "", f->name); e_widget_ilist_append(ilist, ic, buf, _cb_feed_list, f, NULL); pos++; @@ -217,7 +216,6 @@ news_config_dialog_feeds_refresh_categories(void) } snprintf(buf, sizeof(buf), "%s", fc->name); - // TODO : better display of each category e_widget_ilist_append(ilist, ic, buf, _cb_category_list, fc, NULL); pos++; @@ -229,10 +227,7 @@ news_config_dialog_feeds_refresh_categories(void) e_widget_ilist_thaw(ilist); if (pos_to_select != -1) - { - e_widget_ilist_selected_set(ilist, pos_to_select); - //_cb_category_list(cfdata->selected_category); - } + e_widget_ilist_selected_set(ilist, pos_to_select); if (pos == -1) e_widget_min_size_set(ilist, 165, 120); diff --git a/src/module/news_config_dialog_item.c b/src/module/news_config_dialog_item.c index 1dcd9db..dc3193c 100644 --- a/src/module/news_config_dialog_item.c +++ b/src/module/news_config_dialog_item.c @@ -106,9 +106,13 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cf rg = e_widget_radio_group_new(&(cfdata->view_mode)); ob = e_widget_radio_add(evas, _("Show one icon for all feeds"), NEWS_ITEM_VIEW_MODE_ONE, rg); e_widget_framelist_object_append(of, ob); - ob = e_widget_radio_add(evas, _("Show each feed"), NEWS_ITEM_VIEW_MODE_FEED, rg); + ob = e_widget_radio_add(evas, _("Show all feeds"), NEWS_ITEM_VIEW_MODE_FEED, rg); e_widget_framelist_object_append(of, ob); - ob = e_widget_radio_add(evas, _("Show unread feeds only"), NEWS_ITEM_VIEW_MODE_FEED_UNREAD, rg); + ob = e_widget_radio_add(evas, _("Show unread feeds"), NEWS_ITEM_VIEW_MODE_FEED_UNREAD, rg); + e_widget_framelist_object_append(of, ob); + ob = e_widget_radio_add(evas, _("Show all feeds marked as important"), NEWS_ITEM_VIEW_MODE_FEED_IMPORTANT, rg); + e_widget_framelist_object_append(of, ob); + ob = e_widget_radio_add(evas, _("Show unread feeds marked as important"), NEWS_ITEM_VIEW_MODE_FEED_IMPORTANT_UNREAD, rg); e_widget_framelist_object_append(of, ob); e_widget_list_object_append(o, of, 1, 1, 0.0); diff --git a/src/module/news_config_dialog_item_content.c b/src/module/news_config_dialog_item_content.c index ab06073..8d3c1b5 100644 --- a/src/module/news_config_dialog_item_content.c +++ b/src/module/news_config_dialog_item_content.c @@ -126,8 +126,7 @@ news_config_dialog_item_content_refresh_feeds(News_Item *ni) e_icon_file_set(ic, f->icon); } - snprintf(buf, sizeof(buf), "%s", f->name); - // TODO : better display of each feed + snprintf(buf, sizeof(buf), "%s%s", (f->important) ? "[i] " : "", f->name); e_widget_ilist_append(ilist, ic, buf, NULL, f, NULL); pos++; @@ -184,8 +183,7 @@ news_config_dialog_item_content_refresh_selected_feeds(News_Item *ni) e_icon_file_set(ic, _feed->icon); } - snprintf(buf, sizeof(buf), "%s", _feed->name); - // TODO : better display of each feed + snprintf(buf, sizeof(buf), "%s%s", (_feed->important) ? "[i] " : "", _feed->name); e_widget_ilist_append(ilist, ic, buf, NULL, _feed, NULL); pos++; diff --git a/src/module/news_feed.c b/src/module/news_feed.c index 258c107..b4dfd78 100644 --- a/src/module/news_feed.c +++ b/src/module/news_feed.c @@ -90,7 +90,7 @@ news_feed_init(void) (char *)_feed->url_home, _feed->url_home_ovrw, (char *)_feed->url_feed, (char *)_feed->icon, _feed->icon_ovrw, - _feed->urgent, + _feed->important, _cat, 1)) _cat->feeds = evas_list_remove_list(_cat->feeds, _l_cats); NEWS_FEED_FOREACH_END(); @@ -256,7 +256,7 @@ news_feed_timer_set(int time) } News_Feed * -news_feed_new(char *name, int name_ovrw, char *language, int language_ovrw, char *description, int description_ovrw, char *url_home, int url_home_ovrw, char *url_feed, char *icon, int icon_ovrw, int urgent, News_Feed_Category *category) +news_feed_new(char *name, int name_ovrw, char *language, int language_ovrw, char *description, int description_ovrw, char *url_home, int url_home_ovrw, char *url_feed, char *icon, int icon_ovrw, int important, News_Feed_Category *category) { News_Feed *f; @@ -269,7 +269,7 @@ news_feed_new(char *name, int name_ovrw, char *language, int language_ovrw, char url_home, url_home_ovrw, url_feed, icon, icon_ovrw, - urgent, + important, category, 0)) { free(f); @@ -280,7 +280,7 @@ news_feed_new(char *name, int name_ovrw, char *language, int language_ovrw, char } int -news_feed_edit(News_Feed *f, char *name, int name_ovrw, char *language, int language_ovrw, char *description, int description_ovrw, char *url_home, int url_home_ovrw, char *url_feed, char *icon, int icon_ovrw, int urgent, News_Feed_Category *category, int check_only) +news_feed_edit(News_Feed *f, char *name, int name_ovrw, char *language, int language_ovrw, char *description, int description_ovrw, char *url_home, int url_home_ovrw, char *url_feed, char *icon, int icon_ovrw, int important, News_Feed_Category *category, int check_only) { News_Feed *f2; char *host, *file; @@ -378,7 +378,16 @@ news_feed_edit(News_Feed *f, char *name, int name_ovrw, char *language, int lang } f->icon_ovrw = icon_ovrw; - f->urgent = urgent; + if (f->important != important) + { + f->important = important; + if (f->item + && ( (f->item->config->view_mode == NEWS_ITEM_VIEW_MODE_FEED_IMPORTANT) + || + ((f->item->config->view_mode == NEWS_ITEM_VIEW_MODE_FEED_IMPORTANT_UNREAD) + && f->doc && f->doc->unread_count))) + news_item_refresh(f->item, 1, 0, 1); + } f->category = category; @@ -386,12 +395,8 @@ news_feed_edit(News_Feed *f, char *name, int name_ovrw, char *language, int lang { News_Feed_Ref *ref; - if ((f->item->config->view_mode == NEWS_ITEM_VIEW_MODE_FEED) - && - (f->icon && !f->obj_icon)) - { - news_feed_obj_refresh(f, 1, 1); - } + if (f->icon && !f->obj_icon) + news_feed_obj_refresh(f, 1, 1); /* Feed Ref update */ ref = news_feed_ref_find(f, f->item); @@ -416,8 +421,7 @@ news_feed_edit(News_Feed *f, char *name, int name_ovrw, char *language, int lang E_FREE(f->file); f->file = file; - //FIXME: update only if attached to an item - if (update) news_feed_update(f); + if (update && f->item) news_feed_update(f); return 1; } @@ -763,11 +767,23 @@ news_feed_unread_count_change(News_Feed *feed, int nb) news_item_unread_count_change(feed->item, 1); else news_item_unread_count_change(feed->item, -1); - - if (feed->item->config->view_mode == NEWS_ITEM_VIEW_MODE_FEED) - news_feed_obj_refresh(feed, 0, 1); - else if (feed->item->config->view_mode == NEWS_ITEM_VIEW_MODE_FEED_UNREAD) - news_item_refresh(feed->item, 1, 0, 1); + + switch ((News_Item_View_Mode)feed->item->config->view_mode) + { + case NEWS_ITEM_VIEW_MODE_ONE: + break; + case NEWS_ITEM_VIEW_MODE_FEED: + case NEWS_ITEM_VIEW_MODE_FEED_IMPORTANT: + news_feed_obj_refresh(feed, 0, 1); + break; + case NEWS_ITEM_VIEW_MODE_FEED_UNREAD: + news_item_refresh(feed->item, 1, 0, 1); + break; + case NEWS_ITEM_VIEW_MODE_FEED_IMPORTANT_UNREAD: + if (feed->important) + news_item_refresh(feed->item, 1, 0, 1); + break; + } if (feed->item->viewer) news_viewer_refresh(feed->item->viewer); @@ -1021,7 +1037,7 @@ _feed_deactivate(News_Feed *f) if (doc->parse.meta_date) evas_stringshare_del(doc->parse.meta_date); if (doc->parse.charset) evas_stringshare_del(doc->parse.charset); - //FIXME: segfault appears if i delete the server ... + //FIXME: waiting ecore_con patch to be able to delete the server in all cases if (doc->server.conn && doc->server.waiting_reply) ecore_con_server_del(doc->server.conn); ecore_event_handler_del(doc->server.handler_add); ecore_event_handler_del(doc->server.handler_del); @@ -1039,7 +1055,7 @@ _feed_deactivate(News_Feed *f) } } - if (doc->popw) news_popup_warn_del(doc->popw); + if (doc->popw) news_popup_del(doc->popw); f->doc = NULL; free(doc); @@ -1087,6 +1103,8 @@ _get_host_from_url(const char *url) strncpy(buf, url, sizeof(buf)); if (strncmp(buf, "http://", 7)) return NULL; + if (*(buf+7) == '\0') + return NULL; p = strchr(buf+7, '/'); if (p) *p = '\0'; host = strdup(buf+7); @@ -1107,7 +1125,7 @@ _get_file_from_url(const char *url) if (!p) file = strdup("/"); else - file = strdup(p); + file = strdup(p); return file; } diff --git a/src/module/news_feed.h b/src/module/news_feed.h index 04f8824..b3b8638 100644 --- a/src/module/news_feed.h +++ b/src/module/news_feed.h @@ -205,7 +205,7 @@ struct _News_Feed const char *url_feed; const char *icon; int icon_ovrw; - int urgent; + int important; /* not saved */ E_Config_Dialog *config_dialog; @@ -252,10 +252,10 @@ struct _News_Feed_Document { News_Feed *feed; - News_Popup_Warn *popw; - Evas_List *articles; - int unread_count; - unsigned char ui_needrefresh : 1; + News_Popup *popw; + Evas_List *articles; + int unread_count; + unsigned char ui_needrefresh : 1; struct { @@ -319,7 +319,7 @@ News_Feed *news_feed_new(char *name, int name_ovrw, char *url_home, int url_home_ovrw, char *url_feed, char *icon, int icon_ovrw, - int urgent, + int important, News_Feed_Category *category); int news_feed_edit(News_Feed *f, char *name, int name_ovrw, @@ -328,7 +328,7 @@ int news_feed_edit(News_Feed *f, char *url_home, int url_home_ovrw, char *url_feed, char *icon, int icon_ovrw, - int urgent, + int important, News_Feed_Category *category, int check_only); void news_feed_free(News_Feed *f); diff --git a/src/module/news_item.c b/src/module/news_item.c index a760fa8..26d18e7 100644 --- a/src/module/news_item.c +++ b/src/module/news_item.c @@ -1,8 +1,7 @@ #include "News.h" static void _item_refresh_mode_one(News_Item *ni, int changed_order, int changed_state); -static void _item_refresh_mode_feed(News_Item *ni, int unread_only, int changed_order, int changed_content, int changed_state); -static Evas_List *_feedrefs_sort_unreadonly_list_get(News_Item *ni); +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); @@ -48,7 +47,7 @@ news_item_new(E_Gadcon_Client *gcc, Evas_Object *obj) e_box_homogenous_set(view, 1); e_box_orientation_set(view, 1); edje_object_part_swallow(ni->obj, "view", view); - evas_object_show(view); //FIXME: not needed + evas_object_show(view); ni->view.box = view; news_item_refresh(ni, 1, 1, 1); @@ -93,7 +92,7 @@ void news_item_refresh(News_Item *ni, int changed_order, int changed_content, int changed_state) { Evas_Object *box; - int mode; + News_Item_View_Mode mode; box = ni->view.box; e_box_freeze(box); @@ -120,10 +119,15 @@ news_item_refresh(News_Item *ni, int changed_order, int changed_content, int cha _item_refresh_mode_one(ni, changed_order, changed_state); break; case NEWS_ITEM_VIEW_MODE_FEED: - _item_refresh_mode_feed(ni, 0, changed_order, changed_content, changed_state); + _item_refresh_mode_feed(ni, 0, 0, changed_order, changed_content, changed_state); break; case NEWS_ITEM_VIEW_MODE_FEED_UNREAD: - _item_refresh_mode_feed(ni, 1, changed_order, changed_content, changed_state); + _item_refresh_mode_feed(ni, 0, 1, changed_order, changed_content, changed_state); + case NEWS_ITEM_VIEW_MODE_FEED_IMPORTANT: + _item_refresh_mode_feed(ni, 1, 0, changed_order, changed_content, changed_state); + break; + case NEWS_ITEM_VIEW_MODE_FEED_IMPORTANT_UNREAD: + _item_refresh_mode_feed(ni, 1, 1, changed_order, changed_content, changed_state); break; } @@ -219,28 +223,25 @@ _item_refresh_mode_one(News_Item *ni, int changed_order, int changed_state) } static void -_item_refresh_mode_feed(News_Item *ni, int unread_only, int changed_order, int changed_content, int changed_state) +_item_refresh_mode_feed(News_Item *ni, int important_only, int unread_only, int changed_order, int changed_content, int changed_state) { Evas_Object *box; Evas_Object *obj; - Evas_List *feed_refs; - int feed_refs_free = 0; if (!evas_list_count(ni->config->feed_refs)) return; box = ni->view.box; - if (unread_only) - { - feed_refs = _feedrefs_sort_unreadonly_list_get(ni); - feed_refs_free = 1; - } - else - feed_refs = ni->config->feed_refs; - - NEWS_ITEM_FEEDS_FOREACH_BEG_LIST(feed_refs); + NEWS_ITEM_FEEDS_FOREACH_BEG_LIST(ni->config->feed_refs); { obj = _feed->obj; + + if (important_only && + (!_feed->important)) + continue; + if (unread_only && + (!_feed->doc || !_feed->doc->unread_count)) + continue; DITEM(("refresh : feed %s", _feed->name)); @@ -268,23 +269,6 @@ _item_refresh_mode_feed(News_Item *ni, int unread_only, int changed_order, int c _feed->obj = obj; } NEWS_ITEM_FEEDS_FOREACH_END(); - - if (feed_refs_free) - evas_list_free(feed_refs); -} - -static Evas_List * -_feedrefs_sort_unreadonly_list_get(News_Item *ni) -{ - Evas_List *feed_refs; - - feed_refs = NULL; - NEWS_ITEM_FEEDS_FOREACH_BEG(ni); - if (_feed->doc && _feed->doc->unread_count) - feed_refs = evas_list_append(feed_refs, _ref); - NEWS_ITEM_FEEDS_FOREACH_END(); - - return feed_refs; } static void diff --git a/src/module/news_item.h b/src/module/news_item.h index 12464bf..2e0bf33 100644 --- a/src/module/news_item.h +++ b/src/module/news_item.h @@ -6,7 +6,9 @@ typedef enum _News_Item_View_Mode { NEWS_ITEM_VIEW_MODE_ONE, NEWS_ITEM_VIEW_MODE_FEED, - NEWS_ITEM_VIEW_MODE_FEED_UNREAD + NEWS_ITEM_VIEW_MODE_FEED_UNREAD, + NEWS_ITEM_VIEW_MODE_FEED_IMPORTANT, + NEWS_ITEM_VIEW_MODE_FEED_IMPORTANT_UNREAD } News_Item_View_Mode; typedef enum _News_Item_Openmethod @@ -25,17 +27,6 @@ typedef enum _News_Item_Openmethod #define NEWS_ITEM_OPENMETHOD_DEFAULT NEWS_ITEM_OPENMETHOD_VIEWER #define NEWS_ITEM_BROWSER_OPEN_HOME_DEFAULT 0 -#define NEWS_ITEM_FEEDS_FOREACH_BEG(item) \ -{ \ -Evas_List *_l_feeds; \ -News_Feed_Ref *_ref; \ -News_Feed *_feed; \ -\ -for (_l_feeds=item->config->feed_refs; _l_feeds; _l_feeds=evas_list_next(_l_feeds)) \ -{ \ - _ref = _l_feeds->data; \ - _feed = _ref->feed; \ - if (!_feed) continue; #define NEWS_ITEM_FEEDS_FOREACH_BEG_LIST(list) \ { \ Evas_List *_l_feeds; \ @@ -47,6 +38,8 @@ for (_l_feeds=list; _l_feeds; _l_feeds=evas_list_next(_l_feeds)) \ _ref = _l_feeds->data; \ _feed = _ref->feed; \ if (!_feed) continue; +#define NEWS_ITEM_FEEDS_FOREACH_BEG(item) \ +NEWS_ITEM_FEEDS_FOREACH_BEG_LIST(item->config->feed_refs); #define NEWS_ITEM_FEEDS_FOREACH_END() \ } \ } diff --git a/src/module/news_parse_rss.c b/src/module/news_parse_rss.c index 5b5ced5..82ca4d0 100644 --- a/src/module/news_parse_rss.c +++ b/src/module/news_parse_rss.c @@ -218,7 +218,7 @@ _parse_infos(News_Parse *parser) (char *)url_home, feed->url_home_ovrw, (char *)feed->url_feed, (char *)icon, feed->icon_ovrw, - feed->urgent, + feed->important, feed->category, 0); if (feed->item && feed->item->viewer) diff --git a/src/module/news_popup_warn.c b/src/module/news_popup.c similarity index 82% rename from src/module/news_popup_warn.c rename to src/module/news_popup.c index d6e963f..9395cc0 100644 --- a/src/module/news_popup_warn.c +++ b/src/module/news_popup.c @@ -3,7 +3,7 @@ static Evas_List *_popups_warn; static void _check_overlap(int *px, int *py, int *pw, int *ph, int tries, int org_x, int org_y); -static void _try_close(News_Popup_Warn *popw); +static void _try_close(News_Popup *popw); static int _cb_timer(void *data); static void _cb_edje_close(void *data, Evas_Object *obj, const char *emission, const char *source); @@ -13,7 +13,7 @@ static void _cb_edje_desactivate(void *data, Evas_Object *obj, const char *emiss */ int -news_popup_warn_init(void) +news_popup_init(void) { _popups_warn = NULL; @@ -21,29 +21,29 @@ news_popup_warn_init(void) } void -news_popup_warn_shutdown(void) +news_popup_shutdown(void) { Evas_List *l; for (l = _popups_warn; l; l = evas_list_next(l)) { - News_Popup_Warn *p; + News_Popup *p; p = evas_list_data(l); - news_popup_warn_del(p); + news_popup_del(p); } evas_list_free(_popups_warn); _popups_warn = NULL; } -News_Popup_Warn * -news_popup_warn_add(int type, const char *title, const char *text, int timer, int (*func_close) (News_Popup_Warn *popw, void *data), void (func_desactivate) (News_Popup_Warn *popw, void *data), void *data) +News_Popup * +news_popup_add(int type, const char *title, const char *text, int timer, int (*func_close) (News_Popup *popw, void *data), void (func_desactivate) (News_Popup *popw, void *data), void *data) { E_Zone *zone; - News_Popup_Warn *popw; + News_Popup *popw; int fw, fh; int ecanvas_w, ecanvas_h; - popw = E_NEW(News_Popup_Warn, 1); + popw = E_NEW(News_Popup, 1); popw->type = type; popw->timer_org = timer; @@ -55,7 +55,7 @@ news_popup_warn_add(int type, const char *title, const char *text, int timer, in popw->pop = e_popup_new(zone, 0, 0, 1, 1); if (!popw->pop) { - news_popup_warn_del(popw); + news_popup_del(popw); return 0; } evas_event_freeze(popw->pop->evas); @@ -79,7 +79,7 @@ news_popup_warn_add(int type, const char *title, const char *text, int timer, in /* type */ edje_object_message_send(popw->face, EDJE_MESSAGE_INT, - NEWS_POPUP_WARN_EDJE_MESSAGE_TYPE, + NEWS_POPUP_EDJE_MESSAGE_TYPE, &type); /* pos */ @@ -100,7 +100,7 @@ news_popup_warn_add(int type, const char *title, const char *text, int timer, in popw->func_desactivate = func_desactivate; edje_object_message_send(popw->face, EDJE_MESSAGE_INT, - NEWS_POPUP_WARN_EDJE_MESSAGE_SHOW_DESACTIVATE, + NEWS_POPUP_EDJE_MESSAGE_SHOW_DESACTIVATE, &show_desactivate); } @@ -125,7 +125,7 @@ news_popup_warn_add(int type, const char *title, const char *text, int timer, in } void -news_popup_warn_del(News_Popup_Warn *popw) +news_popup_del(News_Popup *popw) { if (popw->timer) ecore_timer_del(popw->timer); @@ -151,7 +151,7 @@ static void _check_overlap(int *px, int *py, int *pw, int *ph, int tries, int org_x, int org_y) { Evas_List *l; - News_Popup_Warn *p; + News_Popup *p; int pxw, pyh; int p_xw, p_yh; @@ -172,15 +172,15 @@ _check_overlap(int *px, int *py, int *pw, int *ph, int tries, int org_x, int org /* try upper, and then on the left */ /* TODO...: try down and right, maybe placement policy ? */ DPOPW(("Overlap !")); - *py = p->y - (*ph + NEWS_POPUP_WARN_OVERLAP_BORDER); + *py = p->y - (*ph + NEWS_POPUP_OVERLAP_BORDER); if (*py < 0) { *py = org_y; - *px = *px - (*px + NEWS_POPUP_WARN_OVERLAP_BORDER); + *px = *px - (*px + NEWS_POPUP_OVERLAP_BORDER); if (*px < 0) break; } tries++; - if (tries > NEWS_POPUP_WARN_OVERLAP_CHECK_MAX) + if (tries > NEWS_POPUP_OVERLAP_CHECK_MAX) return; else _check_overlap(px, py, pw, ph, tries, org_x, org_y); @@ -190,7 +190,7 @@ _check_overlap(int *px, int *py, int *pw, int *ph, int tries, int org_x, int org } static void -_try_close(News_Popup_Warn *popw) +_try_close(News_Popup *popw) { int del = 1; @@ -201,13 +201,13 @@ _try_close(News_Popup_Warn *popw) } if (del) - news_popup_warn_del(popw); + news_popup_del(popw); } static int _cb_timer(void *data) { - News_Popup_Warn *popw; + News_Popup *popw; popw = data; _try_close(popw); @@ -218,7 +218,7 @@ _cb_timer(void *data) static void _cb_edje_close(void *data, Evas_Object *obj, const char *emission, const char *source) { - News_Popup_Warn *popw; + News_Popup *popw; popw = data; _try_close(popw); @@ -227,7 +227,7 @@ _cb_edje_close(void *data, Evas_Object *obj, const char *emission, const char *s static void _cb_edje_desactivate(void *data, Evas_Object *obj, const char *emission, const char *source) { - News_Popup_Warn *popw; + News_Popup *popw; popw = data; if (popw->func_desactivate) diff --git a/src/module/news_popup.h b/src/module/news_popup.h new file mode 100644 index 0000000..b60e0a8 --- /dev/null +++ b/src/module/news_popup.h @@ -0,0 +1,57 @@ +#ifdef E_MOD_NEWS_TYPEDEFS + +typedef struct _News_Popup News_Popup; + +typedef enum _News_Popup_Active + { + NEWS_POPUP_ACTIVE_NO, + NEWS_POPUP_ACTIVE_SUM, + NEWS_POPUP_ACTIVE_VERBOSE + } News_Popup_Active; + +typedef enum _News_Popup_Type + { + NEWS_POPUP_TYPE_NEWS, + NEWS_POPUP_TYPE_INFO, + NEWS_POPUP_TYPE_ERROR + } News_Popup_Type; + +#else + +#ifndef NEWS_POPUP_H_INCLUDED +#define NEWS_POPUP_H_INCLUDED + +#define NEWS_POPUP_TIMER_S_MIN 2 +#define NEWS_POPUP_TIMER_S_MAX 60 + +#define NEWS_POPUP_EDJE_MESSAGE_SHOW_DESACTIVATE 0 +#define NEWS_POPUP_EDJE_MESSAGE_TYPE 1 + +#define NEWS_POPUP_OVERLAP_BORDER 15 +#define NEWS_POPUP_OVERLAP_CHECK_MAX 50 + +struct _News_Popup +{ + News_Popup_Type type; + E_Popup *pop; + Evas_Object *face; + Evas_Object *tb; + Evas_List *log; /* 2 consecutive strings for each popup */ + + Ecore_Timer *timer; + int (*func_close) (News_Popup *popw, void *data); + void (*func_desactivate) (News_Popup *popw, void *data); + void *data; + + int timer_org; + int x, y, w, h; +}; + +int news_popup_init(void); +void news_popup_shutdown(void); + +News_Popup *news_popup_add(int type, const char *title, const char *text, int timer, int (*func_close) (News_Popup *popw, void *data), void (func_desactivate) (News_Popup *popw, void *data), void *data); +void news_popup_del(News_Popup *popw); + +#endif +#endif diff --git a/src/module/news_popup_warn.h b/src/module/news_popup_warn.h deleted file mode 100644 index 151e7f3..0000000 --- a/src/module/news_popup_warn.h +++ /dev/null @@ -1,57 +0,0 @@ -#ifdef E_MOD_NEWS_TYPEDEFS - -typedef struct _News_Popup_Warn News_Popup_Warn; - -typedef enum _News_Popup_Warn_Active - { - NEWS_POPUP_WARN_ACTIVE_NO, - NEWS_POPUP_WARN_ACTIVE_SUM, - NEWS_POPUP_WARN_ACTIVE_VERBOSE - } News_Popup_Warn_Active; - -typedef enum _News_Popup_Warn_Type - { - NEWS_POPUP_WARN_TYPE_NEWS, - NEWS_POPUP_WARN_TYPE_INFO, - NEWS_POPUP_WARN_TYPE_ERROR - } News_Popup_Warn_Type; - -#else - -#ifndef NEWS_POPUP_WARN_H_INCLUDED -#define NEWS_POPUP_WARN_H_INCLUDED - -#define NEWS_POPUP_WARN_TIMER_S_MIN 2 -#define NEWS_POPUP_WARN_TIMER_S_MAX 60 - -#define NEWS_POPUP_WARN_EDJE_MESSAGE_SHOW_DESACTIVATE 0 -#define NEWS_POPUP_WARN_EDJE_MESSAGE_TYPE 1 - -#define NEWS_POPUP_WARN_OVERLAP_BORDER 15 -#define NEWS_POPUP_WARN_OVERLAP_CHECK_MAX 50 - -struct _News_Popup_Warn -{ - News_Popup_Warn_Type type; - E_Popup *pop; - Evas_Object *face; - Evas_Object *tb; - Evas_List *log; /* 2 consecutive strings for each popup */ - - Ecore_Timer *timer; - int (*func_close) (News_Popup_Warn *popw, void *data); - void (*func_desactivate) (News_Popup_Warn *popw, void *data); - void *data; - - int timer_org; - int x, y, w, h; -}; - -int news_popup_warn_init(void); -void news_popup_warn_shutdown(void); - -News_Popup_Warn *news_popup_warn_add(int type, const char *title, const char *text, int timer, int (*func_close) (News_Popup_Warn *popw, void *data), void (func_desactivate) (News_Popup_Warn *popw, void *data), void *data); -void news_popup_warn_del(News_Popup_Warn *popw); - -#endif -#endif diff --git a/src/module/news_utils.c b/src/module/news_utils.c index 6077738..f0c5825 100644 --- a/src/module/news_utils.c +++ b/src/module/news_utils.c @@ -54,11 +54,14 @@ news_util_browser_open(const char *url) if (!url) return 0; - switch(c->browser.wich) + switch((News_Util_Browser)c->browser.wich) { case NEWS_UTIL_BROWSER_FIREFOX: snprintf(cmd, sizeof(cmd), "%s", "firefox -new-window"); break; + case NEWS_UTIL_BROWSER_FIREFOX_TAB: + snprintf(cmd, sizeof(cmd), "%s", "firefox -new-tab"); + break; case NEWS_UTIL_BROWSER_MOZILLA: snprintf(cmd, sizeof(cmd), "%s", "mozilla"); break; diff --git a/src/module/news_utils.h b/src/module/news_utils.h index 4ebccd3..22f6480 100644 --- a/src/module/news_utils.h +++ b/src/module/news_utils.h @@ -3,6 +3,7 @@ typedef enum _News_Util_Browser { NEWS_UTIL_BROWSER_FIREFOX, + NEWS_UTIL_BROWSER_FIREFOX_TAB, NEWS_UTIL_BROWSER_MOZILLA, NEWS_UTIL_BROWSER_OPERA, NEWS_UTIL_BROWSER_DILLO, diff --git a/src/module/news_viewer.c b/src/module/news_viewer.c index e78ba3e..2da41cf 100644 --- a/src/module/news_viewer.c +++ b/src/module/news_viewer.c @@ -184,8 +184,6 @@ news_viewer_refresh(News_Viewer *nv) ic = e_icon_add(evas_object_evas_get(ilist)); e_icon_file_set(ic, _feed->icon); } - //FIXME better unread state display (wait for feed icons) - //FIXME show if its an important feed if (_feed->doc && _feed->doc->unread_count) snprintf(buf, sizeof(buf), "[UNREAD] %s", _feed->name); else diff --git a/src/module/news_viewer.h b/src/module/news_viewer.h index e127376..e3d90ef 100644 --- a/src/module/news_viewer.h +++ b/src/module/news_viewer.h @@ -15,7 +15,7 @@ typedef struct _News_Viewer News_Viewer; #define NEWS_VIEWER_VCONTENT_FONT_SIZE_MAX 20 #define NEWS_VIEWER_VCONTENT_FONT_COLOR_DEFAULT "#000000" #define NEWS_VIEWER_VCONTENT_FONT_SHADOW_DEFAULT 1 -#define NEWS_VIEWER_VCONTENT_FONT_SHADOW_COLOR_DEFAULT "#EBEBEB" +#define NEWS_VIEWER_VCONTENT_FONT_SHADOW_COLOR_DEFAULT "#EFEFEF" struct _News_Viewer {