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
parent
fe043f2b2a
commit
1b8bc55f6a
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue