diff options
Diffstat (limited to 'examples/webenginewidgets/simplebrowser/webpopupwindow.cpp')
-rw-r--r-- | examples/webenginewidgets/simplebrowser/webpopupwindow.cpp | 35 |
1 files changed, 14 insertions, 21 deletions
diff --git a/examples/webenginewidgets/simplebrowser/webpopupwindow.cpp b/examples/webenginewidgets/simplebrowser/webpopupwindow.cpp index 8146dcfb7..63246ac1d 100644 --- a/examples/webenginewidgets/simplebrowser/webpopupwindow.cpp +++ b/examples/webenginewidgets/simplebrowser/webpopupwindow.cpp @@ -38,15 +38,17 @@ ** ****************************************************************************/ -#include "urllineedit.h" #include "webpage.h" #include "webpopupwindow.h" #include "webview.h" +#include <QAction> #include <QIcon> +#include <QLineEdit> #include <QVBoxLayout> WebPopupWindow::WebPopupWindow(QWebEngineProfile *profile) - : m_addressBar(new UrlLineEdit(this)) + : m_urlLineEdit(new QLineEdit(this)) + , m_favAction(new QAction(this)) , m_view(new WebView(this)) { setAttribute(Qt::WA_DeleteOnClose); @@ -55,31 +57,29 @@ WebPopupWindow::WebPopupWindow(QWebEngineProfile *profile) QVBoxLayout *layout = new QVBoxLayout; layout->setMargin(0); setLayout(layout); - layout->addWidget(m_addressBar); + layout->addWidget(m_urlLineEdit); layout->addWidget(m_view); m_view->setPage(new WebPage(profile, m_view)); m_view->setFocus(); - m_addressBar->setReadOnly(true); - m_addressBar->setFavIcon(QIcon(QStringLiteral(":defaulticon.png"))); + + m_urlLineEdit->setReadOnly(true); + m_urlLineEdit->addAction(m_favAction, QLineEdit::LeadingPosition); connect(m_view, &WebView::titleChanged, this, &QWidget::setWindowTitle); - connect(m_view, &WebView::urlChanged, this, &WebPopupWindow::setUrl); - connect(m_view->page(), &WebPage::iconChanged, this, &WebPopupWindow::handleIconChanged); + connect(m_view, &WebView::urlChanged, [this](const QUrl &url) { + m_urlLineEdit->setText(url.toDisplayString()); + }); + connect(m_view, &WebView::favIconChanged, m_favAction, &QAction::setIcon); connect(m_view->page(), &WebPage::geometryChangeRequested, this, &WebPopupWindow::handleGeometryChangeRequested); connect(m_view->page(), &WebPage::windowCloseRequested, this, &QWidget::close); } -QWebEngineView *WebPopupWindow::view() const +WebView *WebPopupWindow::view() const { return m_view; } -void WebPopupWindow::setUrl(const QUrl &url) -{ - m_addressBar->setUrl(url); -} - void WebPopupWindow::handleGeometryChangeRequested(const QRect &newGeometry) { m_view->setMinimumSize(newGeometry.width(), newGeometry.height()); @@ -87,12 +87,5 @@ void WebPopupWindow::handleGeometryChangeRequested(const QRect &newGeometry) // let the layout do the magic resize(0, 0); show(); -} - -void WebPopupWindow::handleIconChanged(const QIcon &icon) -{ - if (icon.isNull()) - m_addressBar->setFavIcon(QIcon(QStringLiteral(":defaulticon.png"))); - else - m_addressBar->setFavIcon(icon); + m_view->setFocus(); } |