5#include <QWebEnginePage>
7#include <QLoggingCategory>
10#include "FrmWebBrowser.h"
12static Q_LOGGING_CATEGORY(log,
"WebBrowser.Widget.Popup")
16 , m_pFavAction(
nullptr)
19 qDebug(log) << Q_FUNC_INFO;
21 setAttribute(Qt::WA_DeleteOnClose);
22 setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
24 this->resize(pWebBrowser->size());
26 QVBoxLayout *layout =
new QVBoxLayout;
27 layout->setContentsMargins(0, 0, 0, 0);
29 m_pleUrl =
new QLineEdit(
this);
30 m_pFavAction =
new QAction(
this);
31 layout->addWidget(m_pleUrl);
33 layout->addWidget(m_pView);
34 m_pView->setPage(
new QWebEnginePage(profile, m_pView));
36 m_pleUrl->setReadOnly(
true);
37 m_pleUrl->addAction(m_pFavAction, QLineEdit::LeadingPosition);
38 check = connect(m_pView, &CFrmWebView::titleChanged,
this, &QWidget::setWindowTitle);
40 check = connect(m_pView, &CFrmWebView::urlChanged, [
this](
const QUrl& url){
41 m_pleUrl->setText(url.toDisplayString());
44 check = connect(m_pView, &CFrmWebView::favIconChanged, m_pFavAction, &QAction::setIcon);
46 check = connect(m_pView->page(), &QWebEnginePage::geometryChangeRequested,
this, &CFrmPopup::slotHandleGeometryChangeRequested);
48 check = connect(m_pView->page(), &QWebEnginePage::windowCloseRequested,
this, &QWidget::close);
52CFrmPopup::~CFrmPopup()
54 qDebug(log) << Q_FUNC_INFO;
62void CFrmPopup::slotHandleGeometryChangeRequested(
const QRect &newGeometry)
64 if(QWindow* window = windowHandle())
65 setGeometry(newGeometry.marginsRemoved(window->frameMargins()));