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 }
SiteInfoWidget::SiteInfoWidget(QupZilla* mainClass, QWidget* parent) : LocationBarPopup(parent) , ui(new Ui::SiteInfoWidget) , p_QupZilla(mainClass) { this->setAttribute(Qt::WA_DeleteOnClose); ui->setupUi(this); setPopupAlignment(Qt::AlignLeft); WebView* view = p_QupZilla->weView(); WebPage* webPage = view->page(); QUrl url = view->url(); if (QzTools::isCertificateValid(webPage->sslCertificate())) { ui->secureLabel->setText(tr("Your connection to this site is <b>secured</b>.")); ui->secureIcon->setPixmap(QPixmap(":/icons/locationbar/accept.png")); } else { ui->secureLabel->setText(tr("Your connection to this site is <b>unsecured</b>.")); ui->secureIcon->setPixmap(QPixmap(":/icons/locationbar/warning.png")); } QString scheme = url.scheme(); QSqlQuery query; QString host = url.host(); query.prepare("SELECT sum(count) FROM history WHERE url LIKE ?"); query.addBindValue(QString("%1://%2%").arg(scheme, host)); query.exec(); if (query.next()) { int count = query.value(0).toInt(); if (count > 3) { ui->historyLabel->setText(tr("This is your <b>%1</b> visit of this site.").arg(QString::number(count) + ".")); ui->historyIcon->setPixmap(QPixmap(":/icons/locationbar/accept.png")); } else if (count == 0) { ui->historyLabel->setText(tr("You have <b>never</b> visited this site before.")); ui->historyIcon->setPixmap(QPixmap(":/icons/locationbar/warning.png")); } else { ui->historyIcon->setPixmap(QPixmap(":/icons/locationbar/warning.png")); QString text; if (count == 1) { text = tr("first"); } else if (count == 2) { text = tr("second"); } else if (count == 3) { text = tr("third"); } ui->historyLabel->setText(tr("This is your <b>%1</b> visit of this site.").arg(text)); } } connect(ui->pushButton, SIGNAL(clicked()), p_QupZilla, SLOT(showPageInfo())); }
void WebFrameLoaderClient::updateGlobalHistoryItemForPage() { HistoryItem* historyItem = 0; WebView* webView = m_webFrame->webView(); if (Page* page = webView->page()) { if (!page->usesEphemeralSession()) historyItem = page->backForward().currentItem(); } webView->setGlobalHistoryItem(historyItem); }
void WebFrameLoaderClient::updateGlobalHistoryItemForPage() { HistoryItem* historyItem = 0; WebView* webView = m_webFrame->webView(); if (Page* page = webView->page()) { if (!page->settings()->privateBrowsingEnabled()) historyItem = page->backForward()->currentItem(); } webView->setGlobalHistoryItem(historyItem); }
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(); } }
Page* ChromeClient::createWindow(Frame* frame, const FrameLoadRequest& frameLoadRequest, const WindowFeatures& features) { if (features.dialog) { // FIXME:模式对话框,暂不实现 return 0; } bool evented = false; if (frame) { evented = (frame->loader() && frame->loader()->documentLoader() && frame->loader()->documentLoader()->triggeringAction().event()) || (frame->script() && frame->script()->globalObject() && frame->script()->globalObject()->currentEvent()); } WebView *view = WebView::createWebViewWithRequest(evented, frameLoadRequest.resourceRequest()); if (view) { return view->page(); } return 0; }
SiteInfoWidget::SiteInfoWidget(QupZilla* mainClass, QWidget* parent) : QMenu(parent) , ui(new Ui::SiteInfoWidget) , p_QupZilla(mainClass) { this->setAttribute(Qt::WA_DeleteOnClose); ui->setupUi(this); WebView* view = p_QupZilla->weView(); WebPage* webPage = qobject_cast<WebPage*>(view->page()); QUrl url = view->url(); if (webPage->sslCertificate().isValid()) { ui->secureLabel->setText(tr("Your connection to this site is <b>secured</b>.")); ui->secureIcon->setPixmap(QPixmap(":/icons/locationbar/accept.png")); } else { ui->secureLabel->setText(tr("Your connection to this site is <b>unsecured</b>.")); ui->secureIcon->setPixmap(QPixmap(":/icons/locationbar/warning.png")); } QString scheme = url.scheme(); QSqlQuery query; QString host = url.host(); query.exec("SELECT sum(count) FROM history WHERE url LIKE '" + scheme + "://" + host + "%' "); if (query.next()) { int count = query.value(0).toInt(); if (count > 3) { ui->historyLabel->setText(tr("This is your <b>%1</b> visit of this site.").arg(QString::number(count) + ".")); ui->historyIcon->setPixmap(QPixmap(":/icons/locationbar/accept.png")); } else if (count == 0) { ui->historyLabel->setText(tr("You have <b>never</b> visited this site before.")); ui->historyIcon->setPixmap(QPixmap(":/icons/locationbar/warning.png")); } else { ui->historyIcon->setPixmap(QPixmap(":/icons/locationbar/warning.png")); QString text; if (count == 1) { text = tr("first"); } else if (count == 2) { text = tr("second"); } else if (count == 3) { text = tr("third"); } ui->historyLabel->setText(tr("This is your <b>%1</b> visit of this site.").arg(text)); } } connect(ui->pushButton, SIGNAL(clicked()), p_QupZilla, SLOT(showPageInfo())); #ifndef KDE // Use light color for QLabels even with Ubuntu Ambiance theme QPalette pal = palette(); pal.setColor(QPalette::WindowText, QToolTip::palette().color(QPalette::ToolTipText)); ui->historyLabel->setPalette(pal); ui->secureLabel->setPalette(pal); #endif }