#4070 Add pick cursor to measurements

This commit is contained in:
Gaute Lindkvist
2019-02-12 08:21:01 +01:00
parent d9672ad9a1
commit 8c130bbc6e
4 changed files with 26 additions and 4 deletions

View File

@@ -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());
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@@ -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;

View File

@@ -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)

View File

@@ -87,7 +87,7 @@ private:
caf::PdmPointer<Rim3dView> m_reservoirView;
QPointer<RiuViewer> m_viewer;
static Ric3dViewPickEventHandler* sm_overridingPickHandler;
static Ric3dViewPickEventHandler* sm_overridingPickHandler;
static std::vector<RicDefaultPickEventHandler*> sm_defaultPickEventHandlers;
void handleTextPicking(int winPosX, int winPosY, cvf::HitItemCollection* hitItems);
};