mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
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:
@@ -542,6 +542,8 @@ caf::CmdFeatureMenuBuilder RimContextCommandBuilder::commandsFromSelection()
|
||||
else if ( dynamic_cast<RimRftPlotCollection*>( firstUiItem ) )
|
||||
{
|
||||
menuBuilder << "RicNewRftPlotFeature";
|
||||
menuBuilder << "RicNewMultiPhaseRftSegmentPlotFeature";
|
||||
menuBuilder << "RicNewRftSegmentWellLogPlotFeature";
|
||||
}
|
||||
else if ( dynamic_cast<RimPltPlotCollection*>( firstUiItem ) )
|
||||
{
|
||||
|
||||
@@ -204,8 +204,13 @@ const std::vector<RimWellRftPlot*> RimRftPlotCollection::rftPlots() const
|
||||
std::vector<RimWellRftPlot*> plots;
|
||||
for ( const auto& plot : m_rftPlots )
|
||||
{
|
||||
plots.push_back( plot );
|
||||
auto wellRftPlot = dynamic_cast<RimWellRftPlot*>( plot.p() );
|
||||
if ( wellRftPlot )
|
||||
{
|
||||
plots.push_back( wellRftPlot );
|
||||
}
|
||||
}
|
||||
|
||||
return plots;
|
||||
}
|
||||
|
||||
@@ -231,7 +236,7 @@ size_t RimRftPlotCollection::plotCount() const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimRftPlotCollection::addPlot( gsl::not_null<RimWellRftPlot*> newPlot )
|
||||
void RimRftPlotCollection::addPlot( gsl::not_null<RimWellLogPlot*> newPlot )
|
||||
{
|
||||
m_rftPlots.push_back( newPlot );
|
||||
}
|
||||
@@ -239,7 +244,7 @@ void RimRftPlotCollection::addPlot( gsl::not_null<RimWellRftPlot*> newPlot )
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimRftPlotCollection::removePlot( gsl::not_null<RimWellRftPlot*> plot )
|
||||
void RimRftPlotCollection::removePlot( gsl::not_null<RimWellLogPlot*> plot )
|
||||
{
|
||||
m_rftPlots.removeChild( plot );
|
||||
updateAllRequiredEditors();
|
||||
|
||||
@@ -66,14 +66,14 @@ public:
|
||||
void deleteAllExtractors();
|
||||
|
||||
const std::vector<RimWellRftPlot*> rftPlots() const;
|
||||
void addPlot( gsl::not_null<RimWellRftPlot*> newPlot );
|
||||
void removePlot( gsl::not_null<RimWellRftPlot*> plot );
|
||||
void addPlot( gsl::not_null<RimWellLogPlot*> newPlot );
|
||||
void removePlot( gsl::not_null<RimWellLogPlot*> plot );
|
||||
void deleteAllPlots() override;
|
||||
void loadDataAndUpdateAllPlots() override;
|
||||
size_t plotCount() const override;
|
||||
|
||||
private:
|
||||
caf::PdmChildArrayField<RimWellRftPlot*> m_rftPlots;
|
||||
caf::PdmChildArrayField<RimWellLogPlot*> m_rftPlots;
|
||||
cvf::Collection<RigEclipseWellLogExtractor> m_extractors;
|
||||
cvf::Collection<RigGeoMechWellLogExtractor> m_geomExtractors;
|
||||
};
|
||||
|
||||
@@ -712,10 +712,16 @@ void RimWellLogCurveCommonDataSource::applyDataSourceChanges()
|
||||
|
||||
this->applyDataSourceChanges( curves, tracks );
|
||||
|
||||
// plot->loadDataAndUpdate() has been called in applyDataSourceChanges(), and this is required before the visibility of tracks and
|
||||
// curves can be updated. However, if the visibility of curves changes, another loadDataAndUpdate() is required to calculate zoom
|
||||
// based on visible curves.
|
||||
|
||||
for ( auto& track : tracks )
|
||||
{
|
||||
track->updateCheckStateBasedOnCurveData();
|
||||
}
|
||||
|
||||
parentPlot->loadDataAndUpdate();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user