From fc4c7943c79243ed027f7507c458d067a14bebb2 Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Sun, 8 Jul 2018 11:10:48 +0200 Subject: Remove PageMenu Move zoom widget to WebView context menu Move the other page menu actions to main window menu --- src/webengine/webview.cpp | 41 ++++++++++++++++++++++++++++++++++------- 1 file changed, 34 insertions(+), 7 deletions(-) (limited to 'src/webengine/webview.cpp') diff --git a/src/webengine/webview.cpp b/src/webengine/webview.cpp index f1b52b7..9380b13 100644 --- a/src/webengine/webview.cpp +++ b/src/webengine/webview.cpp @@ -10,11 +10,13 @@ #include "mainwindow/subwindow.h" #include "webpage.h" #include "webprofile.h" -#include "widgets/pagemenu.h" #include "widgets/pagetoolsmenu.h" #include #include #include +#include +#include +#include WebView::WebView(WebProfile *profile, QWidget *parent) : QWebEngineView(parent) @@ -41,15 +43,9 @@ WebView::WebView(WebProfile *profile, QWidget *parent) }); #endif - m_pageMenu = new PageMenu(this); m_toolsMenu = new PageToolsMenu(this); } -WebView::~WebView() -{ - delete m_pageMenu; -} - void WebView::setProfile(WebProfile *profile) { m_profile = profile; @@ -101,6 +97,37 @@ WebView *WebView::createWindow(QWebEnginePage::WebWindowType type) return view; } +void WebView::contextMenuEvent(QContextMenuEvent *event) +{ + QMenu *menu = page()->createStandardContextMenu(); + + // zoom widget + menu->addSeparator(); + { + auto *zoomSlider = new QSlider(Qt::Horizontal); + zoomSlider->setMinimum(5); + zoomSlider->setMaximum(50); + zoomSlider->setValue(10); + + auto *zoomAction = menu->addAction(tr("Zoom: %1x").arg(zoomFactor())); + connect(zoomAction, &QAction::triggered, this, [zoomSlider]() { + zoomSlider->setValue(10); + }); + + connect(zoomSlider, &QSlider::valueChanged, this, [this, zoomAction](int value) { + zoomAction->setText(tr("Zoom: %1x").arg(static_cast(value) / 10)); + setZoomFactor(static_cast(value) / 10); + }); + + auto *zoomWidgetAction = new QWidgetAction(this); + zoomWidgetAction->setDefaultWidget(zoomSlider); + + menu->addAction(zoomWidgetAction); + } + + menu->popup(event->globalPos()); +} + void WebView::triggerViewAction(WebView::ViewAction action) { switch(action) { -- cgit v1.2.1