diff options
Diffstat (limited to 'src/QuickMedia.cpp')
-rw-r--r-- | src/QuickMedia.cpp | 32 |
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(); |