Skip to content
/ Slicer Public
forked from Slicer/Slicer

Commit

Permalink
BUG: Add missing interactorStyle observers for start/end pinch/rotate…
Browse files Browse the repository at this point in the history
…/pan

This commit fixes a regression introduced in 1cc3b2c (ENH: Improve Event
Delegation in qMRMLThreeDView and qMRMLSliceView) adding missing observers.
  • Loading branch information
jcfr committed Dec 4, 2023
1 parent e583ecd commit 017f277
Show file tree
Hide file tree
Showing 2 changed files with 66 additions and 0 deletions.
60 changes: 60 additions & 0 deletions Libs/MRML/DisplayableManager/vtkMRMLViewInteractorStyle.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -205,24 +205,60 @@ void vtkMRMLViewInteractorStyle::OnConfigure()
this->GetInteractorStyle()->OnConfigure();
}

//----------------------------------------------------------------------------
void vtkMRMLViewInteractorStyle::OnStartPinch()
{
this->GetInteractorStyle()->OnStartPinch();
}

//----------------------------------------------------------------------------
void vtkMRMLViewInteractorStyle::OnPinch()
{
this->GetInteractorStyle()->OnPinch();
}

//----------------------------------------------------------------------------
void vtkMRMLViewInteractorStyle::OnEndPinch()
{
this->GetInteractorStyle()->OnEndPinch();
}

//----------------------------------------------------------------------------
void vtkMRMLViewInteractorStyle::OnStartRotate()
{
this->GetInteractorStyle()->OnStartRotate();
}

//----------------------------------------------------------------------------
void vtkMRMLViewInteractorStyle::OnRotate()
{
this->GetInteractorStyle()->OnRotate();
}

//----------------------------------------------------------------------------
void vtkMRMLViewInteractorStyle::OnEndRotate()
{
this->GetInteractorStyle()->OnEndRotate();
}

//----------------------------------------------------------------------------
void vtkMRMLViewInteractorStyle::OnStartPan()
{
this->GetInteractorStyle()->OnStartPan();
}

//----------------------------------------------------------------------------
void vtkMRMLViewInteractorStyle::OnPan()
{
this->GetInteractorStyle()->OnPan();
}

//----------------------------------------------------------------------------
void vtkMRMLViewInteractorStyle::OnEndPan()
{
this->GetInteractorStyle()->OnEndPan();
}

//----------------------------------------------------------------------------
void vtkMRMLViewInteractorStyle::OnTap()
{
Expand Down Expand Up @@ -473,15 +509,33 @@ void vtkMRMLViewInteractorStyle::ProcessEvents(vtkObject* vtkNotUsed(object),
break;

// Touch gesture interaction events
case vtkCommand::StartPinchEvent:
self->OnStartPinch();
break;
case vtkCommand::PinchEvent:
self->OnPinch();
break;
case vtkCommand::EndPinchEvent:
self->OnEndPinch();
break;
case vtkCommand::StartRotateEvent:
self->OnStartRotate();
break;
case vtkCommand::RotateEvent:
self->OnRotate();
break;
case vtkCommand::EndRotateEvent:
self->OnEndRotate();
break;
case vtkCommand::StartPanEvent:
self->OnStartPan();
break;
case vtkCommand::PanEvent:
self->OnPan();
break;
case vtkCommand::EndPanEvent:
self->OnEndPan();
break;
case vtkCommand::TapEvent:
self->OnTap();
break;
Expand Down Expand Up @@ -555,9 +609,15 @@ void vtkMRMLViewInteractorStyle::SetInteractor(vtkRenderWindowInteractor *intera
interactor->AddObserver(vtkCommand::MouseWheelBackwardEvent, this->EventCallbackCommand, priority);

// Touch gesture
interactor->AddObserver(vtkCommand::StartPinchEvent, this->EventCallbackCommand, priority);
interactor->AddObserver(vtkCommand::PinchEvent, this->EventCallbackCommand, priority);
interactor->AddObserver(vtkCommand::EndPinchEvent, this->EventCallbackCommand, priority);
interactor->AddObserver(vtkCommand::StartRotateEvent, this->EventCallbackCommand, priority);
interactor->AddObserver(vtkCommand::RotateEvent, this->EventCallbackCommand, priority);
interactor->AddObserver(vtkCommand::EndRotateEvent, this->EventCallbackCommand, priority);
interactor->AddObserver(vtkCommand::StartPanEvent, this->EventCallbackCommand, priority);
interactor->AddObserver(vtkCommand::PanEvent, this->EventCallbackCommand, priority);
interactor->AddObserver(vtkCommand::EndPanEvent, this->EventCallbackCommand, priority);
interactor->AddObserver(vtkCommand::TapEvent, this->EventCallbackCommand, priority);
interactor->AddObserver(vtkCommand::LongTapEvent, this->EventCallbackCommand, priority);

Expand Down
6 changes: 6 additions & 0 deletions Libs/MRML/DisplayableManager/vtkMRMLViewInteractorStyle.h
Original file line number Diff line number Diff line change
Expand Up @@ -64,9 +64,15 @@ class VTK_MRML_DISPLAYABLEMANAGER_EXPORT vtkMRMLViewInteractorStyle :
virtual void OnMouseWheelBackward();

// Touch gesture interaction events
virtual void OnStartPinch();
virtual void OnPinch();
virtual void OnEndPinch();
virtual void OnStartRotate();
virtual void OnRotate();
virtual void OnEndRotate();
virtual void OnStartPan();
virtual void OnPan();
virtual void OnEndPan();
virtual void OnTap();
virtual void OnLongTap();

Expand Down

0 comments on commit 017f277

Please sign in to comment.