31#include <QWebEngineHistory>
37 , m_settingsFile(settingsPath +
QL1S(
"/extensions.ini"))
38 , m_button(Qt::MiddleButton)
43void MouseGestures::initFilter()
97 m_view = qobject_cast<WebView*>(obj);
99 if (m_enableRockerNavigation && event->buttons() == (Qt::RightButton | Qt::LeftButton)) {
100 bool accepted =
false;
102 if (event->button() == Qt::LeftButton && m_view.data()->history()->canGoBack()) {
103 m_view.data()->back();
106 else if (event->button() == Qt::RightButton && m_view.data()->history()->canGoForward()) {
107 m_view.data()->forward();
112 m_blockNextLeftMouseRelease =
true;
113 m_blockNextRightMouseRelease =
true;
127 if (m_blockNextRightMouseRelease && event->button() == Qt::RightButton) {
128 m_blockNextRightMouseRelease =
false;
132 if (m_blockNextLeftMouseRelease && event->button() == Qt::LeftButton) {
133 m_blockNextLeftMouseRelease =
false;
155 m_settings.data()->show();
156 m_settings.data()->raise();
161 delete m_settings.data();
164void MouseGestures::upGestured()
170 m_view.data()->stop();
173void MouseGestures::downGestured()
175 auto* view = qobject_cast<TabbedWebView*>(m_view.data());
187 if (window->isFullScreen())
191void MouseGestures::leftGestured()
197 if (QApplication::isRightToLeft()) {
198 m_view.data()->forward();
201 m_view.data()->back();
205void MouseGestures::rightGestured()
211 if (QApplication::isRightToLeft()) {
212 m_view.data()->back();
215 m_view.data()->forward();
219void MouseGestures::downRightGestured()
221 auto *view = qobject_cast<TabbedWebView*>(m_view.data());
237void MouseGestures::downLeftGestured()
243 m_view.data()->load(
mApp->getWindow()->homepageUrl());
246void MouseGestures::downUpGestured()
248 auto* view = qobject_cast<TabbedWebView*>(m_view.data());
260void MouseGestures::upDownGestured()
266 m_view.data()->reload();
269void MouseGestures::upLeftGestured()
271 auto* view = qobject_cast<TabbedWebView*>(m_view.data());
279 if (QApplication::isRightToLeft())
285void MouseGestures::upRightGestured()
287 auto* view = qobject_cast<TabbedWebView*>(m_view.data());
295 if (QApplication::isRightToLeft())
301void MouseGestures::init()
320 m_button = Qt::MiddleButton;
324 m_button = Qt::RightButton;
328 m_button = Qt::NoButton;
342 case Qt::MiddleButton:
345 case Qt::RightButton:
355 return m_enableRockerNavigation;
360 m_enableRockerNavigation = enable;
366 QSettings settings(m_settingsFile, QSettings::IniFormat);
368 settings.beginGroup(
"MouseGestures");
370 m_enableRockerNavigation = settings.value(
"RockerNavigation",
true).toBool();
378 QSettings settings(m_settingsFile, QSettings::IniFormat);
380 settings.beginGroup(
"MouseGestures");
382 settings.setValue(
"RockerNavigation", m_enableRockerNavigation);
QList< Direction > DirectionList
TabWidget * tabWidget() const
void showNavigationWithFullScreen()
bool mousePress(QObject *obj, QMouseEvent *event)
Qt::MouseButton gestureButton() const
MouseGestures(const QString &settingsPath, QObject *parent=nullptr)
void showSettings(QWidget *parent)
void setRockerNavigationEnabled(bool enable)
bool rockerNavigationEnabled() const
bool mouseRelease(QObject *obj, QMouseEvent *event)
void setGestureButton(Qt::MouseButton button)
void setGestureButtonByIndex(int index)
bool mouseMove(QObject *obj, QMouseEvent *event)
int buttonToIndex() const
bool mouseButtonReleaseEvent(QMouseEvent *event, QObject *obj=nullptr)
bool mouseMoveEvent(QMouseEvent *event, QObject *obj=nullptr)
void addGesture(QjtMouseGesture *gesture)
void clearGestures(bool deleteGestures=false)
bool mouseButtonPressEvent(QMouseEvent *event, QObject *obj=nullptr)
static bool forceContextMenuOnMouseRelease()
static void setForceContextMenuOnMouseRelease(bool force)