aboutsummaryrefslogtreecommitdiff
path: root/src/webengine/webview.cpp
diff options
context:
space:
mode:
authorAqua-sama <aqua@iserlohn-fortress.net>2018-07-08 11:10:48 +0200
committerAqua-sama <aqua@iserlohn-fortress.net>2018-07-08 11:10:48 +0200
commitfc4c7943c79243ed027f7507c458d067a14bebb2 (patch)
tree38b066c73890145677a1f87f671ef30ed0eefe1c /src/webengine/webview.cpp
parentIntegrate urlfilter with urlrequestinterceptor (diff)
downloadsmolbote-fc4c7943c79243ed027f7507c458d067a14bebb2.tar.xz
Remove PageMenu
Move zoom widget to WebView context menu Move the other page menu actions to main window menu
Diffstat (limited to 'src/webengine/webview.cpp')
-rw-r--r--src/webengine/webview.cpp41
1 files changed, 34 insertions, 7 deletions
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 <QDialog>
#include <QStatusBar>
#include <QVBoxLayout>
+#include <QContextMenuEvent>
+#include <QWidgetAction>
+#include <QSlider>
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<qreal>(value) / 10));
+ setZoomFactor(static_cast<qreal>(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) {