From 8c130bbc6e07ca0bcf17b2ebe15691589af47ecf Mon Sep 17 00:00:00 2001 From: Gaute Lindkvist Date: Tue, 12 Feb 2019 08:21:01 +0100 Subject: [PATCH] #4070 Add pick cursor to measurements --- .../RicMeasurementPickEventHandler.cpp | 19 +++++++++++++++++++ .../RicMeasurementPickEventHandler.h | 4 ++++ .../Measurement/RimMeasurement.cpp | 5 ++--- .../UserInterface/RiuViewerCommands.h | 2 +- 4 files changed, 26 insertions(+), 4 deletions(-) diff --git a/ApplicationCode/Commands/MeasurementCommands/RicMeasurementPickEventHandler.cpp b/ApplicationCode/Commands/MeasurementCommands/RicMeasurementPickEventHandler.cpp index 1ef2c2fa00..1e4fb0782d 100644 --- a/ApplicationCode/Commands/MeasurementCommands/RicMeasurementPickEventHandler.cpp +++ b/ApplicationCode/Commands/MeasurementCommands/RicMeasurementPickEventHandler.cpp @@ -19,6 +19,7 @@ #include "RicMeasurementPickEventHandler.h" #include "RiaApplication.h" +#include "RiuViewerCommands.h" #include "Rim3dView.h" #include "RimIntersection.h" @@ -43,6 +44,24 @@ RicMeasurementPickEventHandler* RicMeasurementPickEventHandler::instance() return singleton; } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RicMeasurementPickEventHandler::registerAsPickEventHandler() +{ + RiaApplication::instance()->setOverrideCursor(Qt::CrossCursor); + RiuViewerCommands::setPickEventHandler(RicMeasurementPickEventHandler::instance()); +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RicMeasurementPickEventHandler::unregisterAsPickEventHandler() +{ + RiaApplication::instance()->restoreOverrideCursor(); + RiuViewerCommands::removePickEventHandlerIfActive(RicMeasurementPickEventHandler::instance()); +} + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationCode/Commands/MeasurementCommands/RicMeasurementPickEventHandler.h b/ApplicationCode/Commands/MeasurementCommands/RicMeasurementPickEventHandler.h index 23315271f9..1d07bd2339 100644 --- a/ApplicationCode/Commands/MeasurementCommands/RicMeasurementPickEventHandler.h +++ b/ApplicationCode/Commands/MeasurementCommands/RicMeasurementPickEventHandler.h @@ -28,6 +28,10 @@ class RicMeasurementPickEventHandler : public Ric3dViewPickEventHandler public: static RicMeasurementPickEventHandler* instance(); + + void registerAsPickEventHandler() override; + void unregisterAsPickEventHandler() override; + protected: RicMeasurementPickEventHandler(); bool handle3dPickEvent(const Ric3dPickEvent& eventObject) override; diff --git a/ApplicationCode/ProjectDataModel/Measurement/RimMeasurement.cpp b/ApplicationCode/ProjectDataModel/Measurement/RimMeasurement.cpp index c439a37c95..59625a30ec 100644 --- a/ApplicationCode/ProjectDataModel/Measurement/RimMeasurement.cpp +++ b/ApplicationCode/ProjectDataModel/Measurement/RimMeasurement.cpp @@ -55,14 +55,13 @@ void RimMeasurement::setMeasurementMode(bool measurementMode) if (m_isInMeasurementMode) { - RiuViewerCommands::setPickEventHandler(RicMeasurementPickEventHandler::instance()); - + RicMeasurementPickEventHandler::instance()->registerAsPickEventHandler(); m_eventFilter = new RiuMeasurementEventFilter(this); m_eventFilter->registerFilter(); } else { - RiuViewerCommands::removePickEventHandlerIfActive(RicMeasurementPickEventHandler::instance()); + RicMeasurementPickEventHandler::instance()->unregisterAsPickEventHandler(); removeAllPoints(); if (m_eventFilter) diff --git a/ApplicationCode/UserInterface/RiuViewerCommands.h b/ApplicationCode/UserInterface/RiuViewerCommands.h index b5b2f97022..ca5bf879ab 100644 --- a/ApplicationCode/UserInterface/RiuViewerCommands.h +++ b/ApplicationCode/UserInterface/RiuViewerCommands.h @@ -87,7 +87,7 @@ private: caf::PdmPointer m_reservoirView; QPointer m_viewer; - static Ric3dViewPickEventHandler* sm_overridingPickHandler; + static Ric3dViewPickEventHandler* sm_overridingPickHandler; static std::vector sm_defaultPickEventHandlers; void handleTextPicking(int winPosX, int winPosY, cvf::HitItemCollection* hitItems); };