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.
This commit is contained in:
@@ -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;
|
||||
};
|
||||
|
Reference in New Issue
Block a user