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.
master
jp9000 2019-02-06 22:16:39 -08:00
parent fe043f2b2a
commit 1b8bc55f6a
3 changed files with 31 additions and 0 deletions

View File

@ -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"

View File

@ -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
}

View File

@ -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::OBSBasic> ui;
};