Selecting a well path in 3d view can now update selected well path in well log plots

This commit is contained in:
jonjenssen 2022-08-17 00:18:12 +02:00 committed by Magne Sjaastad
parent 05e0817074
commit 6a745671d7
4 changed files with 33 additions and 8 deletions

View File

@ -35,6 +35,7 @@
#include "RimWellPathValve.h" #include "RimWellPathValve.h"
#include "RiuMainWindow.h" #include "RiuMainWindow.h"
#include "RiuPlotMainWindow.h"
#include "RivExtrudedCurveIntersectionPartMgr.h" #include "RivExtrudedCurveIntersectionPartMgr.h"
#include "RivObjectSourceInfo.h" #include "RivObjectSourceInfo.h"
@ -231,6 +232,8 @@ bool RicWellPathPickEventHandler::handle3dPickEvent( const Ric3dPickEvent& event
RiuMainWindow::instance()->setResultInfo( wellPathText ); RiuMainWindow::instance()->setResultInfo( wellPathText );
RiuPlotMainWindow::onWellSelected( wellPathSourceInfo->wellPath()->name() );
if ( objectToSelect ) if ( objectToSelect )
{ {
RiuMainWindow::instance()->selectAsCurrentItem( objectToSelect ); RiuMainWindow::instance()->selectAsCurrentItem( objectToSelect );

View File

@ -1151,17 +1151,39 @@ RifReaderRftInterface* RimWellLogCurveCommonDataSource::rftReader()
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void RimWellLogCurveCommonDataSource::selectSimWell( QString wellName ) void RimWellLogCurveCommonDataSource::selectWell( QString wellName )
{ {
if ( !m_allow3DSelectionLink() ) return; if ( !m_allow3DSelectionLink() ) return;
auto* eclipseCase = dynamic_cast<RimEclipseCase*>( m_case() ); if ( m_trajectoryType() == RimWellLogExtractionCurve::WELL_PATH )
if ( eclipseCase )
{ {
std::set<QString> sortedWellNames = eclipseCase->sortedSimWellNames(); QList<caf::PdmOptionItemInfo> options;
if ( std::count( sortedWellNames.begin(), sortedWellNames.end(), wellName ) > 0 ) RimTools::wellPathOptionItems( &options );
for ( auto& opt : options )
{ {
m_simWellName.setValueWithFieldChanged( wellName ); if ( opt.optionUiText() == wellName )
{
QVariant oldPath = m_wellPath.toQVariant();
RimWellPath* wellPath =
RimProject::current()->activeOilField()->wellPathCollection->wellPathByName( wellName );
m_wellPath = wellPath;
m_wellPath.uiCapability()->notifyFieldChanged( oldPath, opt.value() );
break;
}
}
}
else if ( m_trajectoryType() == RimWellLogExtractionCurve::SIMULATION_WELL )
{
auto* eclipseCase = dynamic_cast<RimEclipseCase*>( m_case() );
if ( eclipseCase )
{
std::set<QString> sortedWellNames = eclipseCase->sortedSimWellNames();
if ( std::count( sortedWellNames.begin(), sortedWellNames.end(), wellName ) > 0 )
{
m_simWellName.setValueWithFieldChanged( wellName );
}
} }
} }
} }

View File

@ -81,7 +81,7 @@ public:
int timeStepToApply() const; int timeStepToApply() const;
void setTimeStepToApply( int val ); void setTimeStepToApply( int val );
void selectSimWell( QString wellName ); void selectWell( QString wellName );
void resetDefaultOptions(); void resetDefaultOptions();
void analyseCurvesAndTracks( const std::vector<RimWellLogCurve*>& curves, const std::vector<RimWellLogTrack*>& tracks ); void analyseCurvesAndTracks( const std::vector<RimWellLogCurve*>& curves, const std::vector<RimWellLogTrack*>& tracks );

View File

@ -85,5 +85,5 @@ RimWellLogPlot& RimWellLogPlot::operator=( RimWellLogPlot&& rhs )
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void RimWellLogPlot::selectWell( QString wellName ) void RimWellLogPlot::selectWell( QString wellName )
{ {
if ( m_commonDataSourceEnabled ) m_commonDataSource->selectSimWell( wellName ); if ( m_commonDataSourceEnabled ) m_commonDataSource->selectWell( wellName );
} }