diff options
author | Aqua-sama <aqua@iserlohn-fortress.net> | 2018-04-02 23:06:43 +0200 |
---|---|---|
committer | Aqua-sama <aqua@iserlohn-fortress.net> | 2018-04-02 23:06:43 +0200 |
commit | b14282fcc54f98725961e13e089f8b211cfa4a88 (patch) | |
tree | de9de699005eb3581562d80695fd3af7fb4c5313 /src/webengine/widgets/pagetoolsmenu.cpp | |
parent | Update manpage (diff) | |
download | smolbote-b14282fcc54f98725961e13e089f8b211cfa4a88.tar.xz |
Only create developer tools page when action is triggered
Diffstat (limited to 'src/webengine/widgets/pagetoolsmenu.cpp')
-rw-r--r-- | src/webengine/widgets/pagetoolsmenu.cpp | 31 |
1 files changed, 28 insertions, 3 deletions
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 <QDialog> +#include <QVBoxLayout> +#include <QWebEnginePage> #include <QWebEngineProfile> #include <QWebEngineScriptCollection> +#include <QWebEngineView> 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; +} |