diff --git a/src/plugins/coreplugin/editormanager/editorview.cpp b/src/plugins/coreplugin/editormanager/editorview.cpp index 9afd9899d3f..e82e1e6bee0 100644 --- a/src/plugins/coreplugin/editormanager/editorview.cpp +++ b/src/plugins/coreplugin/editormanager/editorview.cpp @@ -324,6 +324,23 @@ void EditorView::focusInEvent(QFocusEvent *) EditorManagerPrivate::setCurrentView(this); } +bool EditorView::event(QEvent *e) +{ + if (e->type() == QEvent::NativeGesture) { + auto ev = static_cast(e); + if (ev->gestureType() == Qt::SwipeNativeGesture) { + if (ev->value() > 0 && canGoBack()) { // swipe from right to left == go back + goBackInNavigationHistory(); + return true; + } else if (ev->value() <= 0 && canGoForward()) { + goForwardInNavigationHistory(); + return true; + } + } + } + return false; +} + void EditorView::addEditor(IEditor *editor) { if (m_editors.contains(editor)) diff --git a/src/plugins/coreplugin/editormanager/editorview.h b/src/plugins/coreplugin/editormanager/editorview.h index 374c6df21fa..90c26c4acf2 100644 --- a/src/plugins/coreplugin/editormanager/editorview.h +++ b/src/plugins/coreplugin/editormanager/editorview.h @@ -111,6 +111,7 @@ protected: void paintEvent(QPaintEvent *) override; void mousePressEvent(QMouseEvent *e) override; void focusInEvent(QFocusEvent *) override; + bool event(QEvent *e) override; private: friend class SplitterOrView; // for setParentSplitterOrView diff --git a/src/plugins/help/helpviewer.cpp b/src/plugins/help/helpviewer.cpp index 01eed943b1b..1fc9f45a351 100644 --- a/src/plugins/help/helpviewer.cpp +++ b/src/plugins/help/helpviewer.cpp @@ -15,9 +15,10 @@ #include #include -#include #include +#include #include +#include #include @@ -189,6 +190,23 @@ void HelpViewer::wheelEvent(QWheelEvent *event) QWidget::wheelEvent(event); } +bool HelpViewer::event(QEvent *e) +{ + if (e->type() == QEvent::NativeGesture) { + auto ev = static_cast(e); + if (ev->gestureType() == Qt::SwipeNativeGesture) { + if (ev->value() > 0 && isBackwardAvailable()) { // swipe from right to left == go back + backward(); + return true; + } else if (ev->value() <= 0 && isForwardAvailable()) { + forward(); + return true; + } + } + } + return false; +} + void HelpViewer::incrementZoom(int steps) { const int incrementPercentage = 10 * steps; // 10 percent increase by single step diff --git a/src/plugins/help/helpviewer.h b/src/plugins/help/helpviewer.h index 503e06db35a..49d1b236500 100644 --- a/src/plugins/help/helpviewer.h +++ b/src/plugins/help/helpviewer.h @@ -88,6 +88,7 @@ signals: protected: void wheelEvent(QWheelEvent *event) override; + bool event(QEvent *e) override; void slotLoadStarted(); void slotLoadFinished();