diff options
Diffstat (limited to 'src/QuickMedia.cpp')
-rw-r--r-- | src/QuickMedia.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/QuickMedia.cpp b/src/QuickMedia.cpp index 252bb19..64833bd 100644 --- a/src/QuickMedia.cpp +++ b/src/QuickMedia.cpp @@ -2070,6 +2070,17 @@ namespace QuickMedia { if(tabs[selected_tab].search_bar) tabs[selected_tab].search_bar->update(); + if(tabs[selected_tab].page->needs_refresh && tab_associated_data[selected_tab].fetch_status == FetchStatus::NONE && !tab_associated_data[selected_tab].fetching_next_page_running) { + tabs[selected_tab].page->needs_refresh = false; + if(tabs[selected_tab].page->is_lazy_fetch_page()) { + tab_associated_data[selected_tab].lazy_fetch_finished = false; + tab_associated_data[selected_tab].fetched_page = 0; + } else if(!tabs[selected_tab].page->search_is_filter()) { + tab_associated_data[selected_tab].search_text_updated = true; + } + tabs[selected_tab].body->clear_items(); + } + if(tabs[selected_tab].page->is_ready() && tabs[selected_tab].page->is_lazy_fetch_page() && tab_associated_data[selected_tab].fetch_status == FetchStatus::NONE && !tab_associated_data[selected_tab].lazy_fetch_finished) { tab_associated_data[selected_tab].fetch_status = FetchStatus::LOADING; tab_associated_data[selected_tab].fetch_type = FetchType::LAZY; @@ -2165,7 +2176,7 @@ namespace QuickMedia { associated_data.lazy_fetch_finished = true; FetchResult fetch_result = associated_data.fetch_future.get(); tabs[i].body->items = std::move(fetch_result.body_items); - if(tabs[i].search_bar) tabs[i].body->filter_search_fuzzy(tabs[i].search_bar->get_text()); + if(tabs[i].search_bar && tabs[i].page->search_is_filter()) tabs[i].body->filter_search_fuzzy(tabs[i].search_bar->get_text()); if(tabs[i].body->attach_side == AttachSide::TOP) { tabs[i].body->select_first_item(); } |