aboutsummaryrefslogtreecommitdiff
path: root/src/QuickMedia.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/QuickMedia.cpp')
-rw-r--r--src/QuickMedia.cpp32
1 files changed, 9 insertions, 23 deletions
diff --git a/src/QuickMedia.cpp b/src/QuickMedia.cpp
index 091ce3b..29976ad 100644
--- a/src/QuickMedia.cpp
+++ b/src/QuickMedia.cpp
@@ -3082,34 +3082,20 @@ namespace QuickMedia {
window.setMouseCursorVisible(true);
cursor_visible = true;
- Tab search_page_tab;
- const bool search_page_created = video_page->create_search_page(this, search_page_tab);
- auto comments_page = video_page->create_comments_page(this);
- auto related_videos_page = video_page->create_related_videos_page(this);
- auto channels_page = video_page->create_channels_page(this, channel_url);
- if(search_page_created || related_videos_page || channels_page) {
+ std::vector<Tab> related_pages;
+ TaskResult related_pages_result = run_task_with_loading_screen([&video_page, &related_videos, &channel_url, &related_pages]{
+ return video_page->get_related_pages(related_videos, channel_url, related_pages) == PluginResult::OK;
+ });
+
+ if(related_pages_result == TaskResult::FALSE) {
+ show_notification("QuickMedia", "Failed to get related pages", Urgency::CRITICAL);
+ } else if(related_pages_result == TaskResult::TRUE) {
XUnmapWindow(disp, video_player_window);
XSync(disp, False);
- std::vector<Tab> tabs;
- if(search_page_created) {
- tabs.push_back(std::move(search_page_tab));
- }
- if(comments_page) {
- tabs.push_back(Tab{create_body(), std::move(comments_page), nullptr});
- }
- if(related_videos_page) {
- auto related_videos_body = create_body(false, true);
- related_videos_body->set_items(related_videos);
- tabs.push_back(Tab{std::move(related_videos_body), std::move(related_videos_page), create_search_bar("Search...", SEARCH_DELAY_FILTER)});
- }
- if(channels_page) {
- tabs.push_back(Tab{create_body(false, true), std::move(channels_page), create_search_bar("Search...", 350)});
- }
-
bool page_changed = false;
double resume_start_time = 0.0;
- page_loop(tabs, 1, [this, &page_changed, &resume_start_time, &youtube_video_media_proxy, &youtube_audio_media_proxy, &youtube_downloader_task](const std::vector<Tab> &new_tabs) {
+ page_loop(related_pages, video_page->get_related_pages_first_tab(), [&](const std::vector<Tab> &new_tabs) {
if(!page_changed && new_tabs.size() == 1 && new_tabs[0].page->get_type() == PageTypez::VIDEO) {
video_player->get_time_in_file(&resume_start_time);
video_player.reset();