diff --git a/ApplicationCode/Application/RiaApplication.cpp b/ApplicationCode/Application/RiaApplication.cpp index ce738ee547..edd4e041f8 100644 --- a/ApplicationCode/Application/RiaApplication.cpp +++ b/ApplicationCode/Application/RiaApplication.cpp @@ -269,7 +269,7 @@ RimGridView* RiaApplication::activeMainOrComparisonGridView() RimGridView* activeView = RiaApplication::instance()->activeGridView(); RimGridView* viewOrComparisonView = activeView; - if ( activeView->viewer()->viewerCommands()->isCurrentPickInComparisonView() ) + if ( activeView != nullptr && activeView->viewer()->viewerCommands()->isCurrentPickInComparisonView() ) { if ( RimGridView* compView = dynamic_cast( activeView->activeComparisonView() ) ) { diff --git a/ApplicationCode/Commands/CrossSectionCommands/RicNewWellPathIntersectionFeature.cpp b/ApplicationCode/Commands/CrossSectionCommands/RicNewWellPathIntersectionFeature.cpp index 5c98ba09f5..dbb6d2fd94 100644 --- a/ApplicationCode/Commands/CrossSectionCommands/RicNewWellPathIntersectionFeature.cpp +++ b/ApplicationCode/Commands/CrossSectionCommands/RicNewWellPathIntersectionFeature.cpp @@ -53,7 +53,7 @@ bool RicNewWellPathIntersectionFeature::isCommandEnabled() //-------------------------------------------------------------------------------------------------- void RicNewWellPathIntersectionFeature::onActionTriggered( bool isChecked ) { - RimGridView* activeView = RiaApplication::instance()->activeGridView(); + RimGridView* activeView = RiaApplication::instance()->activeMainOrComparisonGridView(); if ( !activeView ) return; std::vector collection; @@ -113,7 +113,7 @@ void RicNewWellPathIntersectionFeatureCmd::redo() intersection->type = RimIntersection::CS_WELL_PATH; intersection->wellPath = m_wellPath; - m_intersectionCollection->appendIntersectionAndUpdate( intersection ); + m_intersectionCollection->appendIntersectionAndUpdate( intersection, false ); } //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationCode/Commands/EclipseCommands/RicEclipseHideFaultFeature.cpp b/ApplicationCode/Commands/EclipseCommands/RicEclipseHideFaultFeature.cpp index a84eaef1a6..4ad0fb1018 100644 --- a/ApplicationCode/Commands/EclipseCommands/RicEclipseHideFaultFeature.cpp +++ b/ApplicationCode/Commands/EclipseCommands/RicEclipseHideFaultFeature.cpp @@ -63,7 +63,7 @@ void RicEclipseHideFaultFeature::onActionTriggered( bool isChecked ) if ( !userData.isNull() && userData.type() == QVariant::List ) { - Rim3dView* view = RiaApplication::instance()->activeReservoirView(); + Rim3dView* view = RiaApplication::instance()->activeMainOrComparisonGridView(); if ( !view ) return; RimEclipseView* eclView = dynamic_cast( view ); if ( !eclView ) return; diff --git a/ApplicationCode/Commands/ExportCommands/RicExportEclipseSectorModelFeature.cpp b/ApplicationCode/Commands/ExportCommands/RicExportEclipseSectorModelFeature.cpp index 02459e609e..b71555f0b1 100644 --- a/ApplicationCode/Commands/ExportCommands/RicExportEclipseSectorModelFeature.cpp +++ b/ApplicationCode/Commands/ExportCommands/RicExportEclipseSectorModelFeature.cpp @@ -41,7 +41,10 @@ #include "Riu3DMainWindowTools.h" #include "RiuPropertyViewTabWidget.h" +#include "RiuViewer.h" +#include "cafCmdFeatureManager.h" +#include "cafPdmSettings.h" #include "cafPdmUiPropertyViewDialog.h" #include "cafProgressInfo.h" #include "cafSelectionManager.h" @@ -299,12 +302,18 @@ void RicExportEclipseSectorModelFeature::setupActionLook( QAction* actionToSetup //-------------------------------------------------------------------------------------------------- RimEclipseView* RicExportEclipseSectorModelFeature::selectedView() const { - RimEclipseView* view = caf::SelectionManager::instance()->selectedItemAncestorOfType(); - if ( view ) + auto contextViewer = dynamic_cast( caf::CmdFeatureManager::instance()->currentContextMenuTargetWidget() ); + + if ( contextViewer != nullptr ) { + // Command is triggered from viewer + Rim3dView* activeView = RiaApplication::instance()->activeMainOrComparisonGridView(); + return dynamic_cast( activeView ); + } + else + { + // Command triggered from project tree or file menu + RimEclipseView* view = caf::SelectionManager::instance()->selectedItemAncestorOfType(); return view; } - - Rim3dView* activeView = RiaApplication::instance()->activeReservoirView(); - return dynamic_cast( activeView ); } diff --git a/ApplicationCode/Commands/ExportCommands/RicSaveEclipseInputVisibleCellsFeature.cpp b/ApplicationCode/Commands/ExportCommands/RicSaveEclipseInputVisibleCellsFeature.cpp index 6f60b7600a..e6024961b9 100644 --- a/ApplicationCode/Commands/ExportCommands/RicSaveEclipseInputVisibleCellsFeature.cpp +++ b/ApplicationCode/Commands/ExportCommands/RicSaveEclipseInputVisibleCellsFeature.cpp @@ -29,12 +29,14 @@ #include "RimEclipseCase.h" #include "RimEclipseCellColors.h" #include "RimEclipseView.h" +#include "RiuViewer.h" #include "RigActiveCellInfo.h" #include "RigEclipseCaseData.h" #include "Riu3DMainWindowTools.h" +#include "cafCmdFeatureManager.h" #include "cafPdmUiPropertyViewDialog.h" #include "cafSelectionManager.h" @@ -135,14 +137,20 @@ void RicSaveEclipseInputVisibleCellsFeature::setupActionLook( QAction* actionToS //-------------------------------------------------------------------------------------------------- RimEclipseView* RicSaveEclipseInputVisibleCellsFeature::selectedView() const { - RimEclipseView* view = caf::SelectionManager::instance()->selectedItemAncestorOfType(); - if ( view ) + auto contextViewer = dynamic_cast( caf::CmdFeatureManager::instance()->currentContextMenuTargetWidget() ); + + if ( contextViewer != nullptr ) { + // Command is triggered from viewer + Rim3dView* activeView = RiaApplication::instance()->activeMainOrComparisonGridView(); + return dynamic_cast( activeView ); + } + else + { + // Command triggered from project tree or file menu + RimEclipseView* view = caf::SelectionManager::instance()->selectedItemAncestorOfType(); return view; } - - Rim3dView* activeView = RiaApplication::instance()->activeReservoirView(); - return dynamic_cast( activeView ); } //-------------------------------------------------------------------------------------------------- @@ -175,12 +183,18 @@ void RicSaveEclipseInputActiveVisibleCellsFeature::setupActionLook( QAction* act //-------------------------------------------------------------------------------------------------- RimEclipseView* RicSaveEclipseInputActiveVisibleCellsFeature::selectedView() { - RimEclipseView* view = caf::SelectionManager::instance()->selectedItemAncestorOfType(); - if ( view ) + auto contextViewer = dynamic_cast( caf::CmdFeatureManager::instance()->currentContextMenuTargetWidget() ); + + if ( contextViewer != nullptr ) { + // Command is triggered from viewer + Rim3dView* activeView = RiaApplication::instance()->activeMainOrComparisonGridView(); + return dynamic_cast( activeView ); + } + else + { + // Command triggered from project tree or file menu + RimEclipseView* view = caf::SelectionManager::instance()->selectedItemAncestorOfType(); return view; } - - Rim3dView* activeView = RiaApplication::instance()->activeReservoirView(); - return dynamic_cast( activeView ); } diff --git a/ApplicationCode/Commands/FlowCommands/RicShowFlowCharacteristicsPlotFeature.cpp b/ApplicationCode/Commands/FlowCommands/RicShowFlowCharacteristicsPlotFeature.cpp index b05e81d282..2da46d7503 100644 --- a/ApplicationCode/Commands/FlowCommands/RicShowFlowCharacteristicsPlotFeature.cpp +++ b/ApplicationCode/Commands/FlowCommands/RicShowFlowCharacteristicsPlotFeature.cpp @@ -40,7 +40,7 @@ CAF_CMD_SOURCE_INIT( RicShowFlowCharacteristicsPlotFeature, "RicShowFlowCharacte RimEclipseResultCase* activeEclipseResultCase() { - Rim3dView* activeView = RiaApplication::instance()->activeReservoirView(); + Rim3dView* activeView = RiaApplication::instance()->activeMainOrComparisonGridView(); RimEclipseView* eclView = dynamic_cast( activeView ); @@ -78,7 +78,7 @@ void RicShowFlowCharacteristicsPlotFeature::onActionTriggered( bool isChecked ) { // Make sure flow results for the the active timestep is calculated, to avoid an empty plot { - Rim3dView* activeView = RiaApplication::instance()->activeReservoirView(); + Rim3dView* activeView = RiaApplication::instance()->activeMainOrComparisonGridView(); if ( activeView && eclCase->defaultFlowDiagSolution()->flowDiagResults() ) { // Trigger calculation diff --git a/ApplicationCode/Commands/FlowCommands/RicShowWellAllocationPlotFeature.cpp b/ApplicationCode/Commands/FlowCommands/RicShowWellAllocationPlotFeature.cpp index d8f0a8a408..60e3bbeb92 100644 --- a/ApplicationCode/Commands/FlowCommands/RicShowWellAllocationPlotFeature.cpp +++ b/ApplicationCode/Commands/FlowCommands/RicShowWellAllocationPlotFeature.cpp @@ -57,7 +57,7 @@ bool RicShowWellAllocationPlotFeature::isCommandEnabled() if ( wellPathCollection.empty() ) return false; - Rim3dView* view = RiaApplication::instance()->activeReservoirView(); + Rim3dView* view = RiaApplication::instance()->activeMainOrComparisonGridView(); if ( !view ) return false; RimEclipseView* eclView = dynamic_cast( view ); if ( !eclView ) return false; @@ -92,7 +92,7 @@ void RicShowWellAllocationPlotFeature::onActionTriggered( bool isChecked ) } else if ( wellPathCollection.size() > 0 ) { - Rim3dView* view = RiaApplication::instance()->activeReservoirView(); + Rim3dView* view = RiaApplication::instance()->activeMainOrComparisonGridView(); if ( !view ) return; RimEclipseView* eclView = dynamic_cast( view ); if ( !eclView ) return; diff --git a/ApplicationCode/Commands/GridCrossPlotCommands/RicCreateGridCrossPlotFeature.cpp b/ApplicationCode/Commands/GridCrossPlotCommands/RicCreateGridCrossPlotFeature.cpp index 4d64cd8828..59773c21d4 100644 --- a/ApplicationCode/Commands/GridCrossPlotCommands/RicCreateGridCrossPlotFeature.cpp +++ b/ApplicationCode/Commands/GridCrossPlotCommands/RicCreateGridCrossPlotFeature.cpp @@ -28,7 +28,9 @@ #include "RimProject.h" #include "RiuPlotMainWindowTools.h" +#include "RiuViewer.h" +#include "cafCmdFeatureManager.h" #include "cafSelectionManager.h" #include @@ -48,22 +50,26 @@ bool RicCreateGridCrossPlotFeature::isCommandEnabled() //-------------------------------------------------------------------------------------------------- void RicCreateGridCrossPlotFeature::onActionTriggered( bool isChecked ) { - RimProject* project = RiaApplication::instance()->project(); - - bool launchedFromPlotCollection = true; - RimGridCrossPlotCollection* collection = caf::SelectionManager::instance() + RimProject* project = RiaApplication::instance()->project(); + RimGridCrossPlotCollection* collection = caf::SelectionManager::instance() ->selectedItemAncestorOfType(); if ( !collection ) { - collection = project->mainPlotCollection()->gridCrossPlotCollection(); - launchedFromPlotCollection = false; + collection = project->mainPlotCollection()->gridCrossPlotCollection(); } RimGridCrossPlot* plot = collection->createGridCrossPlot(); RimGridCrossPlotDataSet* dataSet = plot->createDataSet(); - if ( !launchedFromPlotCollection ) + auto contextViewer = dynamic_cast( caf::CmdFeatureManager::instance()->currentContextMenuTargetWidget() ); + if ( contextViewer != nullptr ) { - dataSet->setCellFilterView( RiaApplication::instance()->activeGridView() ); + // Command is triggered from viewer + dataSet->setCellFilterView( RiaApplication::instance()->activeMainOrComparisonGridView() ); + } + else + { + // Triggered from context menu: get the selected view + // TODO: get the filter from somewhere } plot->loadDataAndUpdate(); @@ -80,15 +86,17 @@ void RicCreateGridCrossPlotFeature::onActionTriggered( bool isChecked ) //-------------------------------------------------------------------------------------------------- void RicCreateGridCrossPlotFeature::setupActionLook( QAction* actionToSetup ) { - RimGridCrossPlotCollection* collection = caf::SelectionManager::instance() - ->selectedItemAncestorOfType(); - if ( !collection ) + auto contextViewer = dynamic_cast( caf::CmdFeatureManager::instance()->currentContextMenuTargetWidget() ); + if ( contextViewer != nullptr ) { + // Command is triggered from viewer actionToSetup->setText( "Create Grid Cross Plot from 3d View" ); } else { + // Command triggered from project tree or file menu actionToSetup->setText( "Create Grid Cross Plot" ); } + actionToSetup->setIcon( QIcon( ":/SummaryXPlotsLight16x16.png" ) ); } diff --git a/ApplicationCode/Commands/MeasurementCommands/RicMeasurementPickEventHandler.cpp b/ApplicationCode/Commands/MeasurementCommands/RicMeasurementPickEventHandler.cpp index 3c02b9ec29..b51f3d7d4b 100644 --- a/ApplicationCode/Commands/MeasurementCommands/RicMeasurementPickEventHandler.cpp +++ b/ApplicationCode/Commands/MeasurementCommands/RicMeasurementPickEventHandler.cpp @@ -23,6 +23,7 @@ #include "RiuViewerCommands.h" #include "Rim3dView.h" +#include "RimGridView.h" #include "RimIntersection.h" #include "RimMeasurement.h" #include "RimProject.h" @@ -84,7 +85,7 @@ void RicMeasurementPickEventHandler::enablePolyLineMode( bool polyLineModeEnable //-------------------------------------------------------------------------------------------------- bool RicMeasurementPickEventHandler::handle3dPickEvent( const Ric3dPickEvent& eventObject ) { - auto measurement = RiaApplication::instance()->project()->measurement(); + RimMeasurement* measurement = RiaApplication::instance()->project()->measurement(); if ( measurement && measurement->measurementMode() ) { @@ -98,8 +99,7 @@ bool RicMeasurementPickEventHandler::handle3dPickEvent( const Ric3dPickEvent& ev } } - Rim3dView* rimView = RiaApplication::instance()->activeReservoirView(); - + Rim3dView* rimView = dynamic_cast( RiaApplication::instance()->activeMainOrComparisonGridView() ); if ( firstGeometryPickInfo && rimView ) { cvf::ref transForm = rimView->displayCoordTransform(); diff --git a/ApplicationCode/Commands/MeasurementCommands/RicToggleMeasurementModeFeature.cpp b/ApplicationCode/Commands/MeasurementCommands/RicToggleMeasurementModeFeature.cpp index ba69296712..81634b8df5 100644 --- a/ApplicationCode/Commands/MeasurementCommands/RicToggleMeasurementModeFeature.cpp +++ b/ApplicationCode/Commands/MeasurementCommands/RicToggleMeasurementModeFeature.cpp @@ -23,6 +23,7 @@ #include "Rim3dView.h" #include "RimMeasurement.h" #include "RimProject.h" +#include "RimGridView.h" #include "cafCmdFeatureManager.h" #include "cafPdmUiPropertyViewDialog.h" @@ -123,7 +124,7 @@ Rim3dView* RicToggleMeasurementModeFeature::activeView() const { RiaApplication* app = RiaApplication::instance(); CAF_ASSERT( app ); - auto view = app->activeReservoirView(); + auto view = dynamic_cast(app->activeMainOrComparisonGridView()); return view; } diff --git a/ApplicationCode/Commands/RicShowGridStatisticsFeature.cpp b/ApplicationCode/Commands/RicShowGridStatisticsFeature.cpp index 8306bfef26..26d4ce5dbe 100644 --- a/ApplicationCode/Commands/RicShowGridStatisticsFeature.cpp +++ b/ApplicationCode/Commands/RicShowGridStatisticsFeature.cpp @@ -48,7 +48,7 @@ bool RicShowGridStatisticsFeature::isCommandEnabled() //-------------------------------------------------------------------------------------------------- void RicShowGridStatisticsFeature::onActionTriggered( bool isChecked ) { - RimGridView* activeView = RiaApplication::instance()->activeGridView(); + RimGridView* activeView = RiaApplication::instance()->activeMainOrComparisonGridView(); if ( activeView ) { diff --git a/ApplicationCode/Commands/SummaryPlotCommands/RicNewGridTimeHistoryCurveFeature.cpp b/ApplicationCode/Commands/SummaryPlotCommands/RicNewGridTimeHistoryCurveFeature.cpp index 4d470c0b22..a7c47a15b3 100644 --- a/ApplicationCode/Commands/SummaryPlotCommands/RicNewGridTimeHistoryCurveFeature.cpp +++ b/ApplicationCode/Commands/SummaryPlotCommands/RicNewGridTimeHistoryCurveFeature.cpp @@ -152,7 +152,7 @@ QString RicNewGridTimeHistoryCurveFeature::suggestedNewPlotName() { QString resultName; { - Rim3dView* activeView = RiaApplication::instance()->activeReservoirView(); + Rim3dView* activeView = RiaApplication::instance()->activeMainOrComparisonGridView(); RimEclipseView* eclView = dynamic_cast( activeView ); if ( eclView ) { diff --git a/ApplicationCode/Commands/ViewLink/RicLinkViewFeature.cpp b/ApplicationCode/Commands/ViewLink/RicLinkViewFeature.cpp index 6839fcf673..498e2bb6a0 100644 --- a/ApplicationCode/Commands/ViewLink/RicLinkViewFeature.cpp +++ b/ApplicationCode/Commands/ViewLink/RicLinkViewFeature.cpp @@ -58,7 +58,7 @@ bool RicLinkViewFeature::isCommandEnabled() else { // Link only the active view to an existing view link collection. - Rim3dView* activeView = RiaApplication::instance()->activeReservoirView(); + Rim3dView* activeView = RiaApplication::instance()->activeMainOrComparisonGridView(); if ( !activeView ) return false; RimProject* proj = RiaApplication::instance()->project(); @@ -97,7 +97,7 @@ void RicLinkViewFeature::onActionTriggered( bool isChecked ) } else { - Rim3dView* activeView = RiaApplication::instance()->activeReservoirView(); + Rim3dView* activeView = RiaApplication::instance()->activeMainOrComparisonGridView(); RimGridView* gridView = dynamic_cast( activeView ); if ( gridView ) { diff --git a/ApplicationCode/Commands/ViewLink/RicSetMasterViewFeature.cpp b/ApplicationCode/Commands/ViewLink/RicSetMasterViewFeature.cpp index ac4ca7104c..4cf841ef86 100644 --- a/ApplicationCode/Commands/ViewLink/RicSetMasterViewFeature.cpp +++ b/ApplicationCode/Commands/ViewLink/RicSetMasterViewFeature.cpp @@ -40,7 +40,7 @@ CAF_CMD_SOURCE_INIT( RicSetMasterViewFeature, "RicSetMasterViewFeature" ); //-------------------------------------------------------------------------------------------------- bool RicSetMasterViewFeature::isCommandEnabled() { - RimGridView* activeView = RiaApplication::instance()->activeGridView(); + RimGridView* activeView = RiaApplication::instance()->activeMainOrComparisonGridView(); if ( !activeView ) return false; RimProject* proj = RiaApplication::instance()->project(); @@ -68,7 +68,7 @@ bool RicSetMasterViewFeature::isCommandEnabled() //-------------------------------------------------------------------------------------------------- void RicSetMasterViewFeature::onActionTriggered( bool isChecked ) { - RimGridView* activeView = RiaApplication::instance()->activeGridView(); + RimGridView* activeView = RiaApplication::instance()->activeMainOrComparisonGridView(); if ( !activeView ) return; RimProject* proj = RiaApplication::instance()->project(); diff --git a/ApplicationCode/Commands/ViewLink/RicShowLinkOptionsFeature.cpp b/ApplicationCode/Commands/ViewLink/RicShowLinkOptionsFeature.cpp index c2f872be63..b29864cd6c 100644 --- a/ApplicationCode/Commands/ViewLink/RicShowLinkOptionsFeature.cpp +++ b/ApplicationCode/Commands/ViewLink/RicShowLinkOptionsFeature.cpp @@ -21,6 +21,7 @@ #include "RiaApplication.h" #include "Rim3dView.h" +#include "RimGridView.h" #include "RimProject.h" #include "RimViewController.h" #include "RimViewLinker.h" @@ -37,7 +38,7 @@ CAF_CMD_SOURCE_INIT( RicShowLinkOptionsFeature, "RicShowLinkOptionsFeature" ); //-------------------------------------------------------------------------------------------------- bool RicShowLinkOptionsFeature::isCommandEnabled() { - Rim3dView* activeView = RiaApplication::instance()->activeReservoirView(); + Rim3dView* activeView = RiaApplication::instance()->activeMainOrComparisonGridView(); if ( !activeView ) return false; RimViewController* viewController = activeView->viewController(); @@ -55,7 +56,7 @@ bool RicShowLinkOptionsFeature::isCommandEnabled() //-------------------------------------------------------------------------------------------------- void RicShowLinkOptionsFeature::onActionTriggered( bool isChecked ) { - Rim3dView* activeView = RiaApplication::instance()->activeReservoirView(); + Rim3dView* activeView = RiaApplication::instance()->activeMainOrComparisonGridView(); if ( !activeView ) return; RimViewController* viewController = activeView->viewController(); diff --git a/ApplicationCode/Commands/ViewLink/RicUnLinkViewFeature.cpp b/ApplicationCode/Commands/ViewLink/RicUnLinkViewFeature.cpp index 55ef542d2d..3391ecfb4d 100644 --- a/ApplicationCode/Commands/ViewLink/RicUnLinkViewFeature.cpp +++ b/ApplicationCode/Commands/ViewLink/RicUnLinkViewFeature.cpp @@ -22,6 +22,7 @@ #include "RiaApplication.h" #include "Rim3dView.h" +#include "RimGridView.h" #include "RimProject.h" #include "RimViewController.h" #include "RimViewLinker.h" @@ -38,7 +39,8 @@ CAF_CMD_SOURCE_INIT( RicUnLinkViewFeature, "RicUnLinkViewFeature" ); //-------------------------------------------------------------------------------------------------- bool RicUnLinkViewFeature::isCommandEnabled() { - Rim3dView* activeView = RiaApplication::instance()->activeReservoirView(); + Rim3dView* activeView = RiaApplication::instance()->activeMainOrComparisonGridView(); + ; if ( !activeView ) return false; RimViewController* viewController = activeView->viewController(); @@ -56,7 +58,8 @@ bool RicUnLinkViewFeature::isCommandEnabled() //-------------------------------------------------------------------------------------------------- void RicUnLinkViewFeature::onActionTriggered( bool isChecked ) { - Rim3dView* activeView = RiaApplication::instance()->activeReservoirView(); + Rim3dView* activeView = RiaApplication::instance()->activeMainOrComparisonGridView(); + ; if ( !activeView ) return; RimViewController* viewController = activeView->viewController(); diff --git a/ApplicationCode/Commands/WellLogCommands/RicAdd3dWellLogCurveFeature.cpp b/ApplicationCode/Commands/WellLogCommands/RicAdd3dWellLogCurveFeature.cpp index 6c59a4cdcd..57e16b8794 100644 --- a/ApplicationCode/Commands/WellLogCommands/RicAdd3dWellLogCurveFeature.cpp +++ b/ApplicationCode/Commands/WellLogCommands/RicAdd3dWellLogCurveFeature.cpp @@ -24,6 +24,7 @@ #include "Rim3dWellLogExtractionCurve.h" #include "RimCase.h" +#include "RimGridView.h" #include "RimProject.h" #include "RimWellPath.h" @@ -57,7 +58,7 @@ void RicAdd3dWellLogCurveFeature::onActionTriggered( bool isChecked ) Rim3dWellLogExtractionCurve* rim3dWellLogExtractionCurve = new Rim3dWellLogExtractionCurve(); - Rim3dView* view = RiaApplication::instance()->activeReservoirView(); + Rim3dView* view = RiaApplication::instance()->activeMainOrComparisonGridView(); if ( view ) { rim3dWellLogExtractionCurve->setPropertiesFromView( view ); diff --git a/ApplicationCode/Commands/WellLogCommands/RicNewWellLogCurveExtractionFeature.cpp b/ApplicationCode/Commands/WellLogCommands/RicNewWellLogCurveExtractionFeature.cpp index 5a4fcb7541..76fb7049b6 100644 --- a/ApplicationCode/Commands/WellLogCommands/RicNewWellLogCurveExtractionFeature.cpp +++ b/ApplicationCode/Commands/WellLogCommands/RicNewWellLogCurveExtractionFeature.cpp @@ -28,6 +28,7 @@ #include "RigWellLogCurveData.h" #include "Rim3dView.h" +#include "RimGridView.h" #include "RimProject.h" #include "RimSimWellInView.h" #include "RimSimWellInViewCollection.h" @@ -81,7 +82,7 @@ void RicNewWellLogCurveExtractionFeature::onActionTriggered( bool isChecked ) RimWellPath* wellPath = caf::SelectionManager::instance()->selectedItemOfType(); int branchIndex = -1; RimSimWellInView* simWell = RicWellLogTools::selectedSimulationWell( &branchIndex ); - Rim3dView* view = RiaApplication::instance()->activeReservoirView(); + Rim3dView* view = RiaApplication::instance()->activeMainOrComparisonGridView(); bool useBranchDetection = true; RimSimWellInViewCollection* simWellColl = nullptr; if ( simWell ) diff --git a/ApplicationCode/ProjectDataModel/Measurement/RimMeasurement.cpp b/ApplicationCode/ProjectDataModel/Measurement/RimMeasurement.cpp index 4097ed9f1e..30d856fa9d 100644 --- a/ApplicationCode/ProjectDataModel/Measurement/RimMeasurement.cpp +++ b/ApplicationCode/ProjectDataModel/Measurement/RimMeasurement.cpp @@ -21,6 +21,7 @@ #include "RiaApplication.h" #include "Rim3dView.h" +#include "RimGridView.h" #include "MeasurementCommands/RicMeasurementPickEventHandler.h" @@ -89,7 +90,7 @@ RimMeasurement::MeasurementMode RimMeasurement::measurementMode() const //-------------------------------------------------------------------------------------------------- void RimMeasurement::addPointInDomainCoords( const Vec3d& domainCoord ) { - auto activeView = RiaApplication::instance()->activeReservoirView(); + auto activeView = dynamic_cast( RiaApplication::instance()->activeMainOrComparisonGridView() ); if ( m_sourceView.p() != activeView ) { @@ -194,8 +195,6 @@ RimMeasurement::Lengths RimMeasurement::calculateLenghts() const //-------------------------------------------------------------------------------------------------- void RimMeasurement::updateView() const { - if ( m_sourceView ) - { - m_sourceView->updateMeasurement(); - } + Rim3dView* rimView = RiaApplication::instance()->activeReservoirView(); + rimView->createMeasurementDisplayModelAndRedraw(); } diff --git a/ApplicationCode/ProjectDataModel/Rim3dView.cpp b/ApplicationCode/ProjectDataModel/Rim3dView.cpp index ae2c8911ce..db906e69e2 100644 --- a/ApplicationCode/ProjectDataModel/Rim3dView.cpp +++ b/ApplicationCode/ProjectDataModel/Rim3dView.cpp @@ -1027,11 +1027,18 @@ void Rim3dView::updateZScaleLabel() //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -void Rim3dView::updateMeasurement() +void Rim3dView::createMeasurementDisplayModelAndRedraw() { - if ( m_viewer ) + appendMeasurementToModel(); + + if ( Rim3dView* depView = prepareComparisonView() ) + { + depView->appendMeasurementToModel(); + restoreComparisonView(); + } + + if ( nativeOrOverrideViewer() ) { - appendMeasurementToModel(); nativeOrOverrideViewer()->update(); } } diff --git a/ApplicationCode/ProjectDataModel/Rim3dView.h b/ApplicationCode/ProjectDataModel/Rim3dView.h index f890dc6277..19618d8328 100644 --- a/ApplicationCode/ProjectDataModel/Rim3dView.h +++ b/ApplicationCode/ProjectDataModel/Rim3dView.h @@ -161,7 +161,7 @@ public: void updateAnnotationItems(); void updateScaling(); void updateZScaleLabel(); - void updateMeasurement(); + void createMeasurementDisplayModelAndRedraw(); bool isMasterView() const; Rim3dView* activeComparisonView() const; diff --git a/ApplicationCode/ProjectDataModel/RimIntersectionCollection.cpp b/ApplicationCode/ProjectDataModel/RimIntersectionCollection.cpp index 5a418f4df3..4137ae6677 100644 --- a/ApplicationCode/ProjectDataModel/RimIntersectionCollection.cpp +++ b/ApplicationCode/ProjectDataModel/RimIntersectionCollection.cpp @@ -198,14 +198,14 @@ void RimIntersectionCollection::recomputeSimWellBranchData() //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -void RimIntersectionCollection::appendIntersectionAndUpdate( RimIntersection* intersection ) +void RimIntersectionCollection::appendIntersectionAndUpdate( RimIntersection* intersection, bool allowActiveViewChange ) { m_intersections.push_back( intersection ); syncronize2dIntersectionViews(); updateConnectedEditors(); - Riu3DMainWindowTools::selectAsCurrentItem( intersection ); + Riu3DMainWindowTools::selectAsCurrentItem( intersection, allowActiveViewChange ); Rim3dView* rimView = nullptr; firstAncestorOrThisOfType( rimView ); diff --git a/ApplicationCode/ProjectDataModel/RimIntersectionCollection.h b/ApplicationCode/ProjectDataModel/RimIntersectionCollection.h index e2bb63502d..19a0b6470b 100644 --- a/ApplicationCode/ProjectDataModel/RimIntersectionCollection.h +++ b/ApplicationCode/ProjectDataModel/RimIntersectionCollection.h @@ -52,7 +52,7 @@ public: caf::PdmField isActive; - void appendIntersectionAndUpdate( RimIntersection* intersection ); + void appendIntersectionAndUpdate( RimIntersection* intersection, bool allowActiveViewChange = true ); void appendIntersectionNoUpdate( RimIntersection* intersection ); void appendIntersectionBoxAndUpdate( RimIntersectionBox* intersectionBox ); diff --git a/ApplicationCode/UserInterface/RiuSelectionChangedHandler.cpp b/ApplicationCode/UserInterface/RiuSelectionChangedHandler.cpp index 2d1d9ee3a6..1de2e4a514 100644 --- a/ApplicationCode/UserInterface/RiuSelectionChangedHandler.cpp +++ b/ApplicationCode/UserInterface/RiuSelectionChangedHandler.cpp @@ -324,6 +324,7 @@ void RiuSelectionChangedHandler::scheduleUpdateForAllVisibleViews() const for ( size_t i = 0; i < visibleViews.size(); i++ ) { visibleViews[i]->createHighlightAndGridBoxDisplayModelWithRedraw(); + visibleViews[i]->createMeasurementDisplayModelAndRedraw(); } } }