Page MenuHomePhabricator
Authored By
maleike
Oct 15 2019, 5:44 PM
Size
6 KB
Referenced Files
None
Subscribers
None

diff.patch

diff --git a/Modules/QtWidgets/include/QmitkRenderWindow.h b/Modules/QtWidgets/include/QmitkRenderWindow.h
index fa8c988407..6a0f5bd4dd 100644
--- a/Modules/QtWidgets/include/QmitkRenderWindow.h
+++ b/Modules/QtWidgets/include/QmitkRenderWindow.h
@@ -89,20 +89,13 @@ public:
void FullScreenMode(bool state);
protected:
+
+ // catch-all event handler
+ bool event(QEvent *e) override;
// overloaded move handler
void moveEvent(QMoveEvent *event) override;
// overloaded show handler
void showEvent(QShowEvent *event) override;
- // overloaded mouse press handler
- void mousePressEvent(QMouseEvent *event) override;
- // overloaded mouse double-click handler
- void mouseDoubleClickEvent(QMouseEvent *event) override;
- // overloaded mouse move handler
- void mouseMoveEvent(QMouseEvent *event) override;
- // overloaded mouse release handler
- void mouseReleaseEvent(QMouseEvent *event) override;
- // overloaded key press handler
- void keyPressEvent(QKeyEvent *event) override;
// overloaded enter handler
void enterEvent(QEvent *) override;
// overloaded leave handler
@@ -119,11 +112,6 @@ protected:
/// pointers and emitting the NodesDropped signal.
void dropEvent(QDropEvent *event) override;
-#ifndef QT_NO_WHEELEVENT
- // overload wheel mouse event
- void wheelEvent(QWheelEvent *) override;
-#endif
-
void AdjustRenderWindowMenuVisibility(const QPoint &pos);
signals:
diff --git a/Modules/QtWidgets/src/QmitkRenderWindow.cpp b/Modules/QtWidgets/src/QmitkRenderWindow.cpp
index 8edf678a5d..3ab236f7f3 100644
--- a/Modules/QtWidgets/src/QmitkRenderWindow.cpp
+++ b/Modules/QtWidgets/src/QmitkRenderWindow.cpp
@@ -89,96 +89,58 @@ void QmitkRenderWindow::LayoutDesignListChanged(int layoutDesignIndex)
m_MenuWidget->UpdateLayoutDesignList(layoutDesignIndex);
}
-void QmitkRenderWindow::mousePressEvent(QMouseEvent *me)
-{
- // Get mouse position in vtk display coordinate system. me contains qt display infos...
- mitk::Point2D displayPos = GetMousePosition(me);
-
- mitk::MousePressEvent::Pointer mPressEvent =
- mitk::MousePressEvent::New(m_Renderer, displayPos, GetButtonState(me), GetModifiers(me), GetEventButton(me));
-
- if (!this->HandleEvent(mPressEvent.GetPointer()))
- {
- QVTKOpenGLWidget::mousePressEvent(me);
- }
-
- if (m_ResendQtEvents)
- me->ignore();
-}
-void QmitkRenderWindow::mouseDoubleClickEvent(QMouseEvent *me)
+bool QmitkRenderWindow::event(QEvent* e)
{
- mitk::Point2D displayPos = GetMousePosition(me);
- mitk::MouseDoubleClickEvent::Pointer mPressEvent =
- mitk::MouseDoubleClickEvent::New(m_Renderer, displayPos, GetButtonState(me), GetModifiers(me), GetEventButton(me));
-
- if (!this->HandleEvent(mPressEvent.GetPointer()))
+ mitk::InteractionEvent::Pointer mitkEvent = nullptr;
+ switch (e->type())
{
- QVTKOpenGLWidget::mousePressEvent(me);
- }
-
- if (m_ResendQtEvents)
- me->ignore();
-}
-
-void QmitkRenderWindow::mouseReleaseEvent(QMouseEvent *me)
-{
- mitk::Point2D displayPos = GetMousePosition(me);
- mitk::MouseReleaseEvent::Pointer mReleaseEvent =
- mitk::MouseReleaseEvent::New(m_Renderer, displayPos, GetButtonState(me), GetModifiers(me), GetEventButton(me));
-
- if (!this->HandleEvent(mReleaseEvent.GetPointer()))
- {
- QVTKOpenGLWidget::mouseReleaseEvent(me);
- }
-
- if (m_ResendQtEvents)
- me->ignore();
-}
-
-void QmitkRenderWindow::mouseMoveEvent(QMouseEvent *me)
-{
- mitk::Point2D displayPos = GetMousePosition(me);
-
- this->AdjustRenderWindowMenuVisibility(me->pos());
-
- mitk::MouseMoveEvent::Pointer mMoveEvent =
- mitk::MouseMoveEvent::New(m_Renderer, displayPos, GetButtonState(me), GetModifiers(me));
-
- if (!this->HandleEvent(mMoveEvent.GetPointer()))
- {
- QVTKOpenGLWidget::mouseMoveEvent(me);
- }
-}
-
-void QmitkRenderWindow::wheelEvent(QWheelEvent *we)
-{
- mitk::Point2D displayPos = GetMousePosition(we);
- mitk::MouseWheelEvent::Pointer mWheelEvent =
- mitk::MouseWheelEvent::New(m_Renderer, displayPos, GetButtonState(we), GetModifiers(we), GetDelta(we));
-
- if (!this->HandleEvent(mWheelEvent.GetPointer()))
- {
- QVTKOpenGLWidget::wheelEvent(we);
+ case QEvent::MouseMove:
+ {
+ auto me = static_cast<QMouseEvent *>(e);
+ mitkEvent = mitk::MouseMoveEvent::New(m_Renderer, GetMousePosition(me), GetButtonState(me), GetModifiers(me));
+ break;
+ }
+ case QEvent::MouseButtonPress:
+ {
+ auto me = static_cast<QMouseEvent *>(e);
+ mitkEvent = mitk::MousePressEvent::New( m_Renderer, GetMousePosition(me), GetButtonState(me), GetModifiers(me), GetEventButton(me));
+ break;
+ }
+ case QEvent::MouseButtonRelease:
+ {
+ auto me = static_cast<QMouseEvent *>(e);
+ mitkEvent = mitk::MouseReleaseEvent::New( m_Renderer, GetMousePosition(me), GetButtonState(me), GetModifiers(me), GetEventButton(me));
+ break;
+ }
+ case QEvent::MouseButtonDblClick:
+ {
+ auto me = static_cast<QMouseEvent *>(e);
+ mitkEvent = mitk::MouseDoubleClickEvent::New( m_Renderer, GetMousePosition(me), GetButtonState(me), GetModifiers(me), GetEventButton(me));
+ break;
+ }
+ case QEvent::Wheel:
+ {
+ auto we = static_cast<QWheelEvent *>(e);
+ mitkEvent = mitk::MouseWheelEvent::New( m_Renderer, GetMousePosition(we), GetButtonState(we), GetModifiers(we), GetDelta(we));
+ break;
+ }
+ case QEvent::KeyPress:
+ {
+ auto ke = static_cast<QKeyEvent*>(e);
+ mitkEvent = mitk::InteractionKeyEvent::New(m_Renderer, GetKeyLetter(ke), GetModifiers(ke));
+ break;
+ }
}
- if (m_ResendQtEvents)
- we->ignore();
-}
-
-void QmitkRenderWindow::keyPressEvent(QKeyEvent *ke)
-{
- mitk::InteractionEvent::ModifierKeys modifiers = GetModifiers(ke);
- std::string key = GetKeyLetter(ke);
-
- mitk::InteractionKeyEvent::Pointer keyEvent = mitk::InteractionKeyEvent::New(m_Renderer, key, modifiers);
- if (!this->HandleEvent(keyEvent.GetPointer()))
+ if (mitkEvent != nullptr)
{
- QVTKOpenGLWidget::keyPressEvent(ke);
+ if (this->HandleEvent(mitkEvent.GetPointer())) {
+ return m_ResendQtEvents ? false : true;
+ }
}
- if (m_ResendQtEvents)
- ke->ignore();
+ return QVTKOpenGLWidget::event(e);
}
void QmitkRenderWindow::enterEvent(QEvent *e)

File Metadata

Mime Type
text/x-diff
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
671771
Default Alt Text
diff.patch (6 KB)

Event Timeline