Recreate page on webengine render error/crash
This commit is contained in:
parent
705bae636d
commit
1757b2b89f
@ -130,12 +130,22 @@ void Translator::updateSettings()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (const auto &script : loaded) {
|
for (const auto &script : loaded) createPage(script.first, script.second);
|
||||||
const auto &scriptName = script.first;
|
|
||||||
const auto &scriptText = script.second;
|
if (settings_.debugMode) {
|
||||||
|
show();
|
||||||
|
} else {
|
||||||
|
hide();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Translator::createPage(const QString &scriptName,
|
||||||
|
const QString &scriptText)
|
||||||
|
{
|
||||||
|
pages_.erase(scriptName);
|
||||||
const auto pageIt = pages_.emplace(
|
const auto pageIt = pages_.emplace(
|
||||||
scriptName, std::make_unique<WebPage>(*this, scriptText, scriptName));
|
scriptName, std::make_unique<WebPage>(*this, scriptText, scriptName));
|
||||||
SOFT_ASSERT(pageIt.second, continue);
|
SOFT_ASSERT(pageIt.second, return );
|
||||||
|
|
||||||
const auto &page = pageIt.first->second;
|
const auto &page = pageIt.first->second;
|
||||||
page->setIgnoreSslErrors(settings_.ignoreSslErrors);
|
page->setIgnoreSslErrors(settings_.ignoreSslErrors);
|
||||||
@ -148,18 +158,18 @@ void Translator::updateSettings()
|
|||||||
log, &QTextEdit::append);
|
log, &QTextEdit::append);
|
||||||
connect(page.get(), &WebPage::urlChanged, //
|
connect(page.get(), &WebPage::urlChanged, //
|
||||||
this, &Translator::updateUrl);
|
this, &Translator::updateUrl);
|
||||||
|
connect(page.get(), &WebPage::renderProcessTerminated, //
|
||||||
|
this,
|
||||||
|
[this, scriptName,
|
||||||
|
scriptText](WebPage::RenderProcessTerminationStatus status) {
|
||||||
|
if (status != WebPage::NormalTerminationStatus)
|
||||||
|
createPage(scriptName, scriptText);
|
||||||
|
});
|
||||||
|
|
||||||
SOFT_ASSERT(log->document(), continue)
|
SOFT_ASSERT(log->document(), return )
|
||||||
log->document()->setMaximumBlockCount(1000);
|
log->document()->setMaximumBlockCount(1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (settings_.debugMode) {
|
|
||||||
show();
|
|
||||||
} else {
|
|
||||||
hide();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
WebPage *Translator::currentPage() const
|
WebPage *Translator::currentPage() const
|
||||||
{
|
{
|
||||||
const auto index = tabs_->currentIndex();
|
const auto index = tabs_->currentIndex();
|
||||||
|
@ -32,6 +32,7 @@ private:
|
|||||||
void setPageLoadImages(bool isOn);
|
void setPageLoadImages(bool isOn);
|
||||||
void processQueue();
|
void processQueue();
|
||||||
void markTranslated(const TaskPtr &task);
|
void markTranslated(const TaskPtr &task);
|
||||||
|
void createPage(const QString &scriptName, const QString &scriptText);
|
||||||
|
|
||||||
Manager &manager_;
|
Manager &manager_;
|
||||||
const Settings &settings_;
|
const Settings &settings_;
|
||||||
|
Loading…
Reference in New Issue
Block a user