void WebSearchBar::completeMenuWithAvailableEngines(QMenu* menu) { Q_UNUSED(menu) #if QTWEBENGINE_DISABLED WebView* view = m_window->weView(); QWebEngineFrame* frame = view->page()->mainFrame(); QWebElementCollection elements = frame->documentElement().findAll(QLatin1String("link[rel=search]")); foreach (const QWebElement &element, elements) { if (element.attribute("type") != QLatin1String("application/opensearchdescription+xml")) { continue; } QUrl url = view->url().resolved(QUrl::fromEncoded(element.attribute("href").toUtf8())); QString title = element.attribute("title"); if (url.isEmpty()) { continue; } if (title.isEmpty()) { title = view->title(); } menu->addAction(view->icon(), tr("Add %1 ...").arg(title), this, SLOT(addEngineFromAction()))->setData(url); } #endif }
void TabWidget::currentChanged(int index) { WebView *webView = this->webView(index); if (!webView) return; Q_ASSERT(m_locationBars->count() == count()); WebView *oldWebView = this->webView(m_locationBars->currentIndex()); if (oldWebView) { disconnect(oldWebView, SIGNAL(statusBarMessage(const QString&)), this, SIGNAL(showStatusBarMessage(const QString&))); disconnect(oldWebView->page(), SIGNAL(linkHovered(const QString&, const QString&, const QString&)), this, SIGNAL(linkHovered(const QString&))); disconnect(oldWebView, SIGNAL(loadProgress(int)), this, SIGNAL(loadProgress(int))); } connect(webView, SIGNAL(statusBarMessage(const QString&)), this, SIGNAL(showStatusBarMessage(const QString&))); connect(webView->page(), SIGNAL(linkHovered(const QString&, const QString&, const QString&)), this, SIGNAL(linkHovered(const QString&))); connect(webView, SIGNAL(loadProgress(int)), this, SIGNAL(loadProgress(int))); for (int i = 0; i < m_actions.count(); ++i) { WebActionMapper *mapper = m_actions[i]; mapper->updateCurrent(webView->page()); } emit setCurrentTitle(webView->title()); m_locationBars->setCurrentIndex(index); emit loadProgress(webView->progress()); emit showStatusBarMessage(webView->lastStatusBarText()); if (webView->url().isEmpty() && webView->hasFocus()) { m_locationBars->currentWidget()->setFocus(); } else if (!webView->url().isEmpty()) { webView->setFocus(); } }