From b14282fcc54f98725961e13e089f8b211cfa4a88 Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Mon, 2 Apr 2018 23:06:43 +0200 Subject: Only create developer tools page when action is triggered --- src/webengine/widgets/pagetoolsmenu.cpp | 31 ++++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) (limited to 'src/webengine/widgets/pagetoolsmenu.cpp') diff --git a/src/webengine/widgets/pagetoolsmenu.cpp b/src/webengine/widgets/pagetoolsmenu.cpp index 9a85f69..34c9d65 100644 --- a/src/webengine/widgets/pagetoolsmenu.cpp +++ b/src/webengine/widgets/pagetoolsmenu.cpp @@ -8,8 +8,12 @@ #include "pagetoolsmenu.h" #include "../webview.h" +#include +#include +#include #include #include +#include PageToolsMenu::PageToolsMenu(WebView *parent) : QMenu(parent) @@ -24,14 +28,35 @@ void PageToolsMenu::createEntries() { clear(); - auto *scriptsMenu = new QMenu(tr("Injected scripts"), this); + auto *scriptsMenu = new QMenu(tr("Injected Scripts"), this); for(const auto &script : parentView->page()->scripts().toList()) { scriptsMenu->addAction(script.name())->setEnabled(false); } addMenu(scriptsMenu); - auto *devToolsAction = addAction(tr("Dev tools page")); + auto *devToolsAction = addAction(tr("Developer Tools")); connect(devToolsAction, &QAction::triggered, this, [this]() { - parentView->popupPage(parentView->page()->devToolsPage()); + createDevToolsDialog(parentView->page())->show(); }); } + +QDialog *PageToolsMenu::createDevToolsDialog(QWebEnginePage *page) +{ + Q_CHECK_PTR(page); + + auto *popup = new QDialog(nullptr); + popup->setWindowTitle(tr("Developer Tools")); + popup->setAttribute(Qt::WA_DeleteOnClose, true); + + auto *view = new QWebEngineView(popup); + auto *devPage = new QWebEnginePage(view); + + view->setPage(devPage); + page->setDevToolsPage(devPage); + + auto *l = new QVBoxLayout(popup); + l->setContentsMargins(0, 0, 0, 0); + l->addWidget(view); + + return popup; +} -- cgit v1.2.1