Several RFT plot adjustments

* #9923 Call loadDataAndUpdate() after visibility of curves is updated
This will ensure that all zoom ranges are recalculated based on visible curves.

* #9923 Put new segment plots in RFT Plot collection
* #9923 Add "Create Rft Sement Plot" to RFT plot collection
* #9923 Make sure the main window is displayed when required
Make sure the main window is opened and views updated when a grid model is opened from a summary case.

* #9923 Make sure fieldChanged is triggered when required
Exclude field having the target state. If these fields are included, the one and only call to setValueWithFieldChanged() can contain a field with the target state value. When setting a value to a field with the same value, nothing happens and the UI will get an inconsistent state (some curves toggled off are still visible in a plot).
This commit is contained in:
Magne Sjaastad
2023-03-08 07:35:27 +01:00
committed by GitHub
parent 51331facac
commit e2e239fd07
12 changed files with 122 additions and 25 deletions

View File

@@ -58,11 +58,7 @@ bool RicNewMultiPhaseRftSegmentPlotFeature::isCommandEnabled()
//--------------------------------------------------------------------------------------------------
void RicNewMultiPhaseRftSegmentPlotFeature::onActionTriggered( bool isChecked )
{
auto rftCase = caf::SelectionManager::instance()->selectedItemOfType<RimRftCase>();
if ( !rftCase ) return;
RimSummaryCase* summaryCase = nullptr;
rftCase->firstAncestorOfType( summaryCase );
RimSummaryCase* summaryCase = RicNewRftSegmentWellLogPlotFeature::getSelectedOrFirstRftCase();
if ( !summaryCase ) return;
auto rftReader = summaryCase->rftReader();
@@ -72,7 +68,7 @@ void RicNewMultiPhaseRftSegmentPlotFeature::onActionTriggered( bool isChecked )
return;
}
auto plot = RicNewWellLogPlotFeatureImpl::createHorizontalWellLogPlot();
auto plot = RicNewWellLogPlotFeatureImpl::createRftSegmentPlot();
QString wellName = "Unknown";

View File

@@ -27,6 +27,7 @@
#include "RiaLogging.h"
#include "RiaPlotWindowRedrawScheduler.h"
#include "RiaRftDefines.h"
#include "RiaSummaryTools.h"
#include "RifReaderOpmRft.h"
@@ -58,11 +59,7 @@ bool RicNewRftSegmentWellLogPlotFeature::isCommandEnabled()
//--------------------------------------------------------------------------------------------------
void RicNewRftSegmentWellLogPlotFeature::onActionTriggered( bool isChecked )
{
auto rftCase = caf::SelectionManager::instance()->selectedItemOfType<RimRftCase>();
if ( !rftCase ) return;
RimSummaryCase* summaryCase = nullptr;
rftCase->firstAncestorOfType( summaryCase );
RimSummaryCase* summaryCase = RicNewRftSegmentWellLogPlotFeature::getSelectedOrFirstRftCase();
if ( !summaryCase ) return;
auto rftReader = summaryCase->rftReader();
@@ -72,7 +69,7 @@ void RicNewRftSegmentWellLogPlotFeature::onActionTriggered( bool isChecked )
return;
}
auto plot = RicNewWellLogPlotFeatureImpl::createHorizontalWellLogPlot();
auto plot = RicNewWellLogPlotFeatureImpl::createRftSegmentPlot();
QString wellName = "Unknown";
auto wellNames = rftReader->wellNames();
@@ -293,6 +290,31 @@ void RicNewRftSegmentWellLogPlotFeature::appendConnectionFactorTrack( RimWellLog
curve->setFillStyle( Qt::SolidPattern );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimSummaryCase* RicNewRftSegmentWellLogPlotFeature::getSelectedOrFirstRftCase()
{
auto rftCase = caf::SelectionManager::instance()->selectedItemOfType<RimRftCase>();
if ( rftCase )
{
RimSummaryCase* summaryCase = nullptr;
rftCase->firstAncestorOfType( summaryCase );
if ( summaryCase ) return summaryCase;
}
auto summaryCases = RiaSummaryTools::singleTopLevelSummaryCases();
for ( const auto& candidateCase : summaryCases )
{
if ( candidateCase && candidateCase->rftReader() )
{
return candidateCase;
}
}
return nullptr;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@@ -40,6 +40,8 @@ public:
static void appendPressureTrack( RimWellLogPlot* plot, const QString& wellName, RimSummaryCase* summaryCase );
static void appendConnectionFactorTrack( RimWellLogPlot* plot, const QString& wellName, RimSummaryCase* summaryCase );
static RimSummaryCase* getSelectedOrFirstRftCase();
private:
bool isCommandEnabled() override;
void onActionTriggered( bool isChecked ) override;

View File

@@ -23,6 +23,7 @@
#include "RimEclipseCase.h"
#include "RimMainPlotCollection.h"
#include "RimProject.h"
#include "RimRftPlotCollection.h"
#include "RimStimPlanModelPlot.h"
#include "RimStimPlanModelPlotCollection.h"
#include "RimWellBoreStabilityPlot.h"
@@ -84,9 +85,22 @@ RimWellBoreStabilityPlot* RicNewWellLogPlotFeatureImpl::createWellBoreStabilityP
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimWellLogPlot* RicNewWellLogPlotFeatureImpl::createHorizontalWellLogPlot()
RimWellLogPlot* RicNewWellLogPlotFeatureImpl::createRftSegmentPlot()
{
auto plot = createWellLogPlot();
auto rftPlotCollection = RimMainPlotCollection::current()->rftPlotCollection();
CVF_ASSERT( rftPlotCollection );
// Make sure the summary plot window is created
RiaGuiApplication::instance()->getOrCreateMainPlotWindow();
RimWellLogPlot* plot = new RimWellLogPlot();
plot->setAsPlotMdiWindow();
rftPlotCollection->addPlot( plot );
plot->nameConfig()->setCustomName( QString( "RFT Segment Plot %1" ).arg( rftPlotCollection->plotCount() ) );
rftPlotCollection->updateConnectedEditors();
plot->setDepthOrientation( RiaDefines::Orientation::HORIZONTAL );
plot->setNamingMethod( RiaDefines::ObjectNamingMethod::TEMPLATE );

View File

@@ -38,7 +38,7 @@ public:
const QString& plotDescription = QString( "" ),
const RimWbsParameters* params = nullptr );
static RimWellLogPlot* createHorizontalWellLogPlot();
static RimWellLogPlot* createRftSegmentPlot();
static RimWellLogTrack* createWellLogTrackWithAutoUpdate();
static RimWellLogPlot* createWellLogPlot( bool showAfterCreation = true, const QString& plotDescription = QString( "" ) );