summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGiuliano Schneider <gs93@gmx.net>2013-03-17 11:23:29 +0100
committerGiuliano Schneider <gs93@gmx.net>2013-03-17 11:23:29 +0100
commit100425392682c3f0e815d739d6c7c35eb7df924e (patch)
tree8181a7c7a33bbc2035b75bc1faa2aee72c7fc3d3
parent11a7e8b5340088c2124849d88deb1319ec45885f (diff)
prepare (update and sort) query feeds
-rw-r--r--include/view.h2
-rw-r--r--src/view.cpp25
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();