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;
|
const auto &page = pageIt.first->second;
|
||||||
page->setIgnoreSslErrors(settings_.ignoreSslErrors);
|
page->setIgnoreSslErrors(settings_.ignoreSslErrors);
|
||||||
page->setTimeout(settings_.translationTimeout);
|
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_);
|
auto log = new QTextEdit(tabs_);
|
||||||
tabs_->addTab(log, scriptName);
|
tabs_->addTab(log, scriptName);
|
||||||
@ -233,13 +239,27 @@ void Translator::processQueue()
|
|||||||
std::unordered_set<QString> idlePages;
|
std::unordered_set<QString> idlePages;
|
||||||
std::unordered_set<Task *> busyTasks;
|
std::unordered_set<Task *> busyTasks;
|
||||||
|
|
||||||
|
const auto visible = isVisible();
|
||||||
|
if (!visible)
|
||||||
|
showNormal();
|
||||||
|
|
||||||
|
auto oldPage = view_->page();
|
||||||
for (auto &i : pages_) {
|
for (auto &i : pages_) {
|
||||||
if (i.second->checkBusy())
|
if (!i.second->checkBusy()) {
|
||||||
busyTasks.insert(i.second->task().get());
|
|
||||||
else
|
|
||||||
idlePages.insert(i.first);
|
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())
|
if (idlePages.empty())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user