From 1b8bc55f6ace1a38ec7cbc3b9ad2ba19355e46c3 Mon Sep 17 00:00:00 2001 From: jp9000 Date: Wed, 6 Feb 2019 22:16:39 -0800 Subject: [PATCH] UI: Add func to load browser/cookies, but show dialog Adds a function for initializing browser and cookies in a separate thread while, and while waiting for it to complete, show a dialog stating that the browser is currently being loaded. Allows the ability to safely prevent the user from taking any action without actually freezing up the UI thread. --- UI/data/locale/en-US.ini | 4 ++++ UI/window-basic-main-browser.cpp | 25 +++++++++++++++++++++++++ UI/window-basic-main.hpp | 2 ++ 3 files changed, 31 insertions(+) diff --git a/UI/data/locale/en-US.ini b/UI/data/locale/en-US.ini index 31794e3be..ce475bfd3 100644 --- a/UI/data/locale/en-US.ini +++ b/UI/data/locale/en-US.ini @@ -95,6 +95,10 @@ AlreadyRunning.LaunchAnyway="Launch Anyway" Copy.Filters="Copy Filters" Paste.Filters="Paste Filters" +# browser initialization dialog +BrowserPanelInit.Title="Initializing Browser.." +BrowserPanelInit.Text="Initializing browser, please wait.." + # bandwidth test BandwidthTest.Region="Region" BandwidthTest.Region.US="United States" diff --git a/UI/window-basic-main-browser.cpp b/UI/window-basic-main-browser.cpp index 1478569ee..70a302662 100644 --- a/UI/window-basic-main-browser.cpp +++ b/UI/window-basic-main-browser.cpp @@ -132,3 +132,28 @@ void DuplicateCurrentCookieProfile(ConfigFile &config) UNUSED_PARAMETER(config); #endif } + +void OBSBasic::InitBrowserPanelSafeBlock(bool showDialog) +{ +#ifdef BROWSER_AVAILABLE + if (!cef) + return; + if (cef->init_browser()) { + InitPanelCookieManager(); + return; + } + + if (showDialog) + ExecuteFuncSafeBlockMsgBox( + [] {cef->wait_for_browser_init();}, + QTStr("BrowserPanelInit.Title"), + QTStr("BrowserPanelInit.Text")); + else + ExecuteFuncSafeBlock( + [] {cef->wait_for_browser_init();}); + + InitPanelCookieManager(); +#else + UNUSED_PARAMETER(showDialog); +#endif +} diff --git a/UI/window-basic-main.hpp b/UI/window-basic-main.hpp index b4b03d998..7a64fa7d7 100644 --- a/UI/window-basic-main.hpp +++ b/UI/window-basic-main.hpp @@ -791,6 +791,8 @@ public: virtual int GetProfilePath(char *path, size_t size, const char *file) const override; + static void InitBrowserPanelSafeBlock(bool showDialog); + private: std::unique_ptr ui; }; -- GitLab