Ensure page is visible during translation
Because some translator sites require it
This commit is contained in:
parent
6f7270f229
commit
a85dafa18d
@ -153,6 +153,12 @@ void Translator::createPage(const QString &scriptName,
|
||||
const auto &page = pageIt.first->second;
|
||||
page->setIgnoreSslErrors(settings_.ignoreSslErrors);
|
||||
page->setTimeout(settings_.translationTimeout);
|
||||
page->setVisible(true);
|
||||
connect(page.get(), &WebPage::visibleChanged, //
|
||||
page.get(), [page = page.get()](bool on) {
|
||||
if (!on)
|
||||
page->setVisible(true);
|
||||
});
|
||||
|
||||
auto log = new QTextEdit(tabs_);
|
||||
tabs_->addTab(log, scriptName);
|
||||
@ -233,13 +239,27 @@ void Translator::processQueue()
|
||||
std::unordered_set<QString> idlePages;
|
||||
std::unordered_set<Task *> busyTasks;
|
||||
|
||||
const auto visible = isVisible();
|
||||
if (!visible)
|
||||
showNormal();
|
||||
|
||||
auto oldPage = view_->page();
|
||||
for (auto &i : pages_) {
|
||||
if (i.second->checkBusy())
|
||||
busyTasks.insert(i.second->task().get());
|
||||
else
|
||||
if (!i.second->checkBusy()) {
|
||||
idlePages.insert(i.first);
|
||||
} else {
|
||||
busyTasks.insert(i.second->task().get());
|
||||
view_->setPage(i.second.get());
|
||||
view_->update();
|
||||
}
|
||||
}
|
||||
|
||||
if (oldPage != view_->page())
|
||||
view_->setPage(oldPage);
|
||||
|
||||
if (!visible)
|
||||
hide();
|
||||
|
||||
if (idlePages.empty())
|
||||
return;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user