4#include <QWebEnginePage>
6#include <QLoggingCategory>
9#include "FrmWebBrowser.h"
11static Q_LOGGING_CATEGORY(log,
"WebBrowser.Widget.Popup")
15 , m_pFavAction(
nullptr)
18 qDebug(log) << Q_FUNC_INFO;
20 setAttribute(Qt::WA_DeleteOnClose);
21 setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
23 this->resize(pWebBrowser->size());
25 QVBoxLayout *layout =
new QVBoxLayout;
26 layout->setContentsMargins(0, 0, 0, 0);
28 m_pleUrl =
new QLineEdit(
this);
29 m_pFavAction =
new QAction(
this);
30 layout->addWidget(m_pleUrl);
32 layout->addWidget(m_pView);
33 m_pView->setPage(
new QWebEnginePage(profile, m_pView));
35 m_pleUrl->setReadOnly(
true);
36 m_pleUrl->addAction(m_pFavAction, QLineEdit::LeadingPosition);
37 check = connect(m_pView, &CFrmWebView::titleChanged,
this, &QWidget::setWindowTitle);
39 check = connect(m_pView, &CFrmWebView::urlChanged, [
this](
const QUrl& url){
40 m_pleUrl->setText(url.toDisplayString());
43 check = connect(m_pView, &CFrmWebView::favIconChanged, m_pFavAction, &QAction::setIcon);
45 check = connect(m_pView->page(), &QWebEnginePage::geometryChangeRequested,
this, &CFrmPopup::slotHandleGeometryChangeRequested);
47 check = connect(m_pView->page(), &QWebEnginePage::windowCloseRequested,
this, &QWidget::close);
51CFrmPopup::~CFrmPopup()
53 qDebug(log) << Q_FUNC_INFO;
61void CFrmPopup::slotHandleGeometryChangeRequested(
const QRect &newGeometry)
63 if(QWindow* window = windowHandle())
64 setGeometry(newGeometry.marginsRemoved(window->frameMargins()));