MCPcopy Create free account
hub / github.com/MITK/MITK / event

Method event

Modules/QtWidgets/src/QmitkRenderWindow.cpp:185–267  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

183}
184
185bool QmitkRenderWindow::event(QEvent* e)
186{
187 mitk::InteractionEvent::Pointer mitkEvent = nullptr;
188 mitk::Point2D mousePosition;
189 bool updateStatusBar = false;
190 switch (e->type())
191 {
192 case QEvent::TouchBegin:
193 // Starting with Qt 6, using the touchpad on a MacBook for example results in mouse move events with the
194 // left mouse button pressed. Hence, hovering over the 3-d render window will already result in rotating the
195 // scene. In theory, this can be prevented by either disabling the WA_AcceptTouchEvents attribute for this widget
196 // or by globally disabling the AA_SynthesizeMouseForUnhandledTouchEvents attribute for the whole application.
197 // Yet, here we are as a last resort, acknowledging touch events just to reject them.
198 return false;
199
200 case QEvent::TouchCancel:
201 return true;
202
203 case QEvent::MouseMove:
204 {
205 auto me = static_cast<QMouseEvent *>(e);
206 mousePosition = this->GetMousePosition(me);
207 mitkEvent = mitk::MouseMoveEvent::New(m_Renderer, mousePosition, GetButtonState(me), GetModifiers(me));
208 updateStatusBar = true;
209 break;
210 }
211 case QEvent::MouseButtonPress:
212 {
213 auto me = static_cast<QMouseEvent *>(e);
214 mitkEvent = mitk::MousePressEvent::New( m_Renderer, GetMousePosition(me), GetButtonState(me), GetModifiers(me), GetEventButton(me));
215 break;
216 }
217 case QEvent::MouseButtonRelease:
218 {
219 auto me = static_cast<QMouseEvent *>(e);
220 mitkEvent = mitk::MouseReleaseEvent::New( m_Renderer, GetMousePosition(me), GetButtonState(me), GetModifiers(me), GetEventButton(me));
221 break;
222 }
223 case QEvent::MouseButtonDblClick:
224 {
225 auto me = static_cast<QMouseEvent *>(e);
226 mitkEvent = mitk::MouseDoubleClickEvent::New( m_Renderer, GetMousePosition(me), GetButtonState(me), GetModifiers(me), GetEventButton(me));
227 break;
228 }
229 case QEvent::Wheel:
230 {
231 auto we = static_cast<QWheelEvent *>(e);
232 mousePosition = this->GetMousePosition(we);
233 mitkEvent = mitk::MouseWheelEvent::New(m_Renderer, mousePosition, GetButtonState(we), GetModifiers(we), GetDelta(we));
234 updateStatusBar = true;
235 break;
236 }
237 case QEvent::KeyPress:
238 {
239 auto ke = static_cast<QKeyEvent*>(e);
240 mitkEvent = mitk::InteractionKeyEvent::New(m_Renderer, GetKeyLetter(ke), GetModifiers(ke));
241 break;
242 }

Callers

nothing calls this directly

Calls 9

GetMousePositionMethod · 0.95
UpdateStatusBarMethod · 0.95
GetButtonStateFunction · 0.85
GetEventButtonFunction · 0.85
typeMethod · 0.80
GetPointerMethod · 0.80
NewFunction · 0.50
HandleEventMethod · 0.45

Tested by

no test coverage detected