diff options
author | Giuliano Schneider <gs93@gmx.net> | 2013-03-17 11:23:29 +0100 |
---|---|---|
committer | Giuliano Schneider <gs93@gmx.net> | 2013-03-17 11:23:29 +0100 |
commit | 100425392682c3f0e815d739d6c7c35eb7df924e (patch) | |
tree | 8181a7c7a33bbc2035b75bc1faa2aee72c7fc3d3 | |
parent | 11a7e8b5340088c2124849d88deb1319ec45885f (diff) |
prepare (update and sort) query feeds
-rw-r--r-- | include/view.h | 2 | ||||
-rw-r--r-- | src/view.cpp | 25 |
2 files changed, 21 insertions, 6 deletions
diff --git a/include/view.h b/include/view.h index 322605c8..5320826d 100644 --- a/include/view.h +++ b/include/view.h @@ -75,6 +75,8 @@ namespace newsbeuter { bool get_next_feed(itemlist_formaction * itemlist); bool get_prev_feed(itemlist_formaction * itemlist); + void prepare_query_feed(std::tr1::shared_ptr<rss_feed> feed); + void set_colors(std::map<std::string,std::string>& fg_colors, std::map<std::string,std::string>& bg_colors, std::map<std::string,std::vector<std::string> >& attributes); void notify_itemlist_change(std::tr1::shared_ptr<rss_feed> feed); diff --git a/src/view.cpp b/src/view.cpp index 3df3df3f..4c4e679c 100644 --- a/src/view.cpp +++ b/src/view.cpp @@ -419,12 +419,7 @@ void view::push_itemlist(std::tr1::shared_ptr<rss_feed> feed) { feed->purge_deleted_items(); - if (feed->rssurl().substr(0,6) == "query:") { - set_status(_("Updating query feed...")); - feed->update_items(ctrl->get_all_feeds()); - feed->sort(cfg->get_configvalue("article-sort-order")); - set_status(""); - } + prepare_query_feed(feed); if (feed->items().size() > 0) { std::tr1::shared_ptr<itemlist_formaction> itemlist(new itemlist_formaction(this, itemlist_str)); @@ -595,6 +590,7 @@ bool view::get_random_unread(itemlist_formaction * itemlist, itemview_formaction } if (feedlist->jump_to_random_unread_feed(feedpos)) { LOG(LOG_DEBUG, "view::get_previous_unread: found feed with unread articles"); + prepare_query_feed(feedlist->get_feed()); itemlist->set_feed(feedlist->get_feed()); itemlist->set_pos(feedpos); itemlist->init(); @@ -627,6 +623,7 @@ bool view::get_previous_unread(itemlist_formaction * itemlist, itemview_formacti show_error(_("No unread items.")); } else if (feedlist->jump_to_previous_unread_feed(feedpos)) { LOG(LOG_DEBUG, "view::get_previous_unread: found feed with unread articles"); + prepare_query_feed(feedlist->get_feed()); itemlist->set_feed(feedlist->get_feed()); itemlist->set_pos(feedpos); itemlist->init(); @@ -647,6 +644,7 @@ bool view::get_next_unread_feed(itemlist_formaction * itemlist) { unsigned int feedpos; assert(feedlist != NULL); if (feedlist->jump_to_next_unread_feed(feedpos)) { + prepare_query_feed(feedlist->get_feed()); itemlist->set_feed(feedlist->get_feed()); itemlist->set_pos(feedpos); itemlist->init(); @@ -660,6 +658,7 @@ bool view::get_prev_unread_feed(itemlist_formaction * itemlist) { unsigned int feedpos; assert(feedlist != NULL); if (feedlist->jump_to_previous_unread_feed(feedpos)) { + prepare_query_feed(feedlist->get_feed()); itemlist->set_feed(feedlist->get_feed()); itemlist->set_pos(feedpos); itemlist->init(); @@ -685,6 +684,7 @@ bool view::get_next_unread(itemlist_formaction * itemlist, itemview_formaction * show_error(_("No unread items.")); } else if (feedlist->jump_to_next_unread_feed(feedpos)) { LOG(LOG_DEBUG, "view::get_next_unread: found feed with unread articles"); + prepare_query_feed(feedlist->get_feed()); itemlist->set_feed(feedlist->get_feed()); itemlist->set_pos(feedpos); itemlist->init(); @@ -716,6 +716,7 @@ bool view::get_previous(itemlist_formaction * itemlist, itemview_formaction * it show_error(_("Already on first item.")); } else if (feedlist->jump_to_previous_feed(feedpos)) { LOG(LOG_DEBUG, "view::get_previous: previous feed"); + prepare_query_feed(feedlist->get_feed()); itemlist->set_feed(feedlist->get_feed()); itemlist->set_pos(feedpos); itemlist->init(); @@ -747,6 +748,7 @@ bool view::get_next(itemlist_formaction * itemlist, itemview_formaction * itemvi show_error(_("Already on last item.")); } else if (feedlist->jump_to_next_feed(feedpos)) { LOG(LOG_DEBUG, "view::get_next: next feed"); + prepare_query_feed(feedlist->get_feed()); itemlist->set_feed(feedlist->get_feed()); itemlist->set_pos(feedpos); itemlist->init(); @@ -767,6 +769,7 @@ bool view::get_next_feed(itemlist_formaction * itemlist) { unsigned int feedpos; assert(feedlist != NULL); if (feedlist->jump_to_next_feed(feedpos)) { + prepare_query_feed(feedlist->get_feed()); itemlist->set_feed(feedlist->get_feed()); itemlist->set_pos(feedpos); itemlist->init(); @@ -780,6 +783,7 @@ bool view::get_prev_feed(itemlist_formaction * itemlist) { unsigned int feedpos; assert(feedlist != NULL); if (feedlist->jump_to_previous_feed(feedpos)) { + prepare_query_feed(feedlist->get_feed()); itemlist->set_feed(feedlist->get_feed()); itemlist->set_pos(feedpos); itemlist->init(); @@ -788,6 +792,15 @@ bool view::get_prev_feed(itemlist_formaction * itemlist) { return false; } +void view::prepare_query_feed(std::tr1::shared_ptr<rss_feed> feed) { + if (feed->rssurl().substr(0,6) == "query:") { + set_status(_("Updating query feed...")); + feed->update_items(ctrl->get_all_feeds()); + feed->sort(cfg->get_configvalue("article-sort-order")); + set_status(""); + } +} + void view::pop_current_formaction() { std::tr1::shared_ptr<formaction> f = get_current_formaction(); std::vector<std::tr1::shared_ptr<formaction> >::iterator it=formaction_stack.begin(); |