mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Adjustments for release
* Make sure text for multiple wells in same grid cell is displayed correctly * Improve selection of result in Advanced Snapshot Export * Restore the main window that was on top when project was saved * Trim string to make sure '/' is exported with no space in front * #9872 RFT-plot: Make colors stable for curves in RFT plots * Set version to RC_02
This commit is contained in:
parent
1d00b38638
commit
527743a845
@ -1183,7 +1183,7 @@ void RiaGuiApplication::onFileSuccessfullyLoaded( const QString& fileName, RiaDe
|
||||
auto plotWindow = getOrCreateAndShowMainPlotWindow();
|
||||
plotWindow->raise();
|
||||
}
|
||||
else
|
||||
else if ( fileType != RiaDefines::ImportFileType::RESINSIGHT_PROJECT_FILE )
|
||||
{
|
||||
auto mainWindow = getOrCreateAndShowMainWindow();
|
||||
mainWindow->raise();
|
||||
@ -1271,6 +1271,12 @@ void RiaGuiApplication::onProjectOpened()
|
||||
|
||||
// Make sure to process events before this function to avoid strange Qt crash
|
||||
RiuPlotMainWindowTools::refreshToolbars();
|
||||
|
||||
if ( m_project->showPlotWindow() && m_project->showPlotWindowOnTop() )
|
||||
{
|
||||
m_mainPlotWindow->raise();
|
||||
m_mainPlotWindow->activateWindow();
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -57,6 +57,14 @@ const QDateTime& RiaRftPltCurveDefinition::timeStep() const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RiaRftPltCurveDefinition::operator<( const RiaRftPltCurveDefinition& other ) const
|
||||
{
|
||||
if ( m_curveAddress.ensemble() != other.m_curveAddress.ensemble() )
|
||||
{
|
||||
// Sort by ensemble first, to make sure the ensemble curves are created and plotted before the single curves
|
||||
|
||||
if ( m_curveAddress.ensemble() ) return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
if ( m_curveAddress == other.m_curveAddress )
|
||||
{
|
||||
if ( m_wellName == other.m_wellName )
|
||||
|
@ -332,8 +332,21 @@ void RifTextDataTableFormatter::tableCompleted()
|
||||
{
|
||||
outputBuffer();
|
||||
|
||||
// Output an "empty" line after a finished table
|
||||
m_out << m_tableRowPrependText << m_tableRowAppendText << "\n";
|
||||
if ( m_tableRowPrependText.trimmed().isEmpty() )
|
||||
{
|
||||
// When exporting to Eclipse, make sure that the '/' character is written at the start of the line with no space in front. Some
|
||||
// applications are not able to detect the '/' if space is in front
|
||||
|
||||
QString line = m_tableRowPrependText + m_tableRowAppendText;
|
||||
line = line.trimmed();
|
||||
|
||||
m_out << line << "\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
// Output an "empty" line after a finished table
|
||||
m_out << m_tableRowPrependText << m_tableRowAppendText << "\n";
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -1282,8 +1282,18 @@ cvf::Color3f RimWellRftPlot::findCurveColor( RimWellLogCurve* curve )
|
||||
}
|
||||
else
|
||||
{
|
||||
RifDataSourceForRftPlt sourceAddress( curveDef.address().ensemble() );
|
||||
curveColor = m_dataSourceColors[sourceAddress];
|
||||
if ( curveDef.address().ensemble() )
|
||||
{
|
||||
// If we have an ensemble, we need to use the ensemble address to find one single color for all curves in the ensemble. If
|
||||
// we also include the summary case, each curve will be assigned a separate color.
|
||||
|
||||
RifDataSourceForRftPlt dataSource( curveDef.address().ensemble() );
|
||||
curveColor = m_dataSourceColors[dataSource];
|
||||
}
|
||||
else
|
||||
{
|
||||
curveColor = m_dataSourceColors[curveDef.address()];
|
||||
}
|
||||
}
|
||||
|
||||
if ( m_showStatisticsCurves )
|
||||
@ -1308,9 +1318,6 @@ cvf::Color3f RimWellRftPlot::findCurveColor( RimWellLogCurve* curve )
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimWellRftPlot::defineCurveColorsAndSymbols( const std::set<RiaRftPltCurveDefinition>& allCurveDefs )
|
||||
{
|
||||
m_dataSourceColors.clear();
|
||||
m_timeStepSymbols.clear();
|
||||
|
||||
// Clear all ensemble legends
|
||||
RiuQwtPlotWidget* viewer = nullptr;
|
||||
RimWellLogTrack* track = dynamic_cast<RimWellLogTrack*>( plotByIndex( 0 ) );
|
||||
@ -1368,22 +1375,21 @@ void RimWellRftPlot::defineCurveColorsAndSymbols( const std::set<RiaRftPltCurveD
|
||||
auto colorTableIndex = m_dataSourceColors.size();
|
||||
auto symbolTableIndex = m_timeStepSymbols.size();
|
||||
|
||||
const RifDataSourceForRftPlt& address = curveDefToAdd.address();
|
||||
RifDataSourceForRftPlt colorAddress = address;
|
||||
if ( address.sourceType() == RifDataSourceForRftPlt::SourceType::SUMMARY_RFT )
|
||||
RifDataSourceForRftPlt address = curveDefToAdd.address();
|
||||
if ( address.ensemble() )
|
||||
{
|
||||
colorAddress = RifDataSourceForRftPlt( address.ensemble() );
|
||||
// Strip the summary case from the address, so that all curves in the ensemble will get the same color
|
||||
address = RifDataSourceForRftPlt( address.ensemble() );
|
||||
}
|
||||
|
||||
if ( !m_dataSourceColors.count( colorAddress ) )
|
||||
if ( !m_dataSourceColors.contains( address ) )
|
||||
{
|
||||
colorTableIndex = colorTableIndex % colorTable.size();
|
||||
m_dataSourceColors[colorAddress] = colorTable[colorTableIndex];
|
||||
colorTableIndex = colorTableIndex % colorTable.size();
|
||||
m_dataSourceColors[address] = colorTable[colorTableIndex];
|
||||
}
|
||||
|
||||
if ( address.sourceType() != RifDataSourceForRftPlt::SourceType::ENSEMBLE_RFT )
|
||||
{
|
||||
if ( !m_timeStepSymbols.count( curveDefToAdd.timeStep() ) )
|
||||
if ( !m_timeStepSymbols.contains( curveDefToAdd.timeStep() ) )
|
||||
{
|
||||
symbolTableIndex = symbolTableIndex % symbolTable.size();
|
||||
m_timeStepSymbols[curveDefToAdd.timeStep()] = symbolTable[symbolTableIndex];
|
||||
|
@ -32,6 +32,7 @@
|
||||
#include "RimTools.h"
|
||||
|
||||
#include "cafPdmPointer.h"
|
||||
#include "cafPdmUiComboBoxEditor.h"
|
||||
|
||||
CAF_PDM_SOURCE_INIT( RimAdvancedSnapshotExportDefinition, "MultiSnapshotDefinition" );
|
||||
|
||||
@ -48,7 +49,7 @@ RimAdvancedSnapshotExportDefinition::RimAdvancedSnapshotExportDefinition()
|
||||
CAF_PDM_InitFieldNoDefault( &view, "View", "View" );
|
||||
|
||||
CAF_PDM_InitFieldNoDefault( &eclipseResultType, "EclipseResultType", "Result Type" );
|
||||
CAF_PDM_InitFieldNoDefault( &selectedEclipseResults, "SelectedEclipseResults", "Properties" );
|
||||
CAF_PDM_InitFieldNoDefault( &m_selectedEclipseResult, "SelectedEclipseResults", "Properties" );
|
||||
|
||||
CAF_PDM_InitField( &timeStepStart, "TimeStepStart", 0, "Start Time" );
|
||||
CAF_PDM_InitField( &timeStepEnd, "TimeStepEnd", 0, "End Time" );
|
||||
@ -71,6 +72,25 @@ RimAdvancedSnapshotExportDefinition::~RimAdvancedSnapshotExportDefinition()
|
||||
{
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimAdvancedSnapshotExportDefinition::setSelectedEclipseResults( const QString& result )
|
||||
{
|
||||
m_selectedEclipseResult = result;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::vector<QString> RimAdvancedSnapshotExportDefinition::selectedEclipseResults() const
|
||||
{
|
||||
// The interface here can return a vector of selected results. The user interface in the table is not working well for multi-select of
|
||||
// strings, so we only allow one result to be selected at a time.
|
||||
|
||||
return { m_selectedEclipseResult() };
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -108,9 +128,9 @@ QList<caf::PdmOptionItemInfo> RimAdvancedSnapshotExportDefinition::calculateValu
|
||||
options.push_back( caf::PdmOptionItemInfo( caf::AppEnum<RiaDefines::ResultCatType>( RiaDefines::ResultCatType::STATIC_NATIVE ).uiText(),
|
||||
RiaDefines::ResultCatType::STATIC_NATIVE ) );
|
||||
}
|
||||
else if ( fieldNeedingOptions == &selectedEclipseResults )
|
||||
else if ( fieldNeedingOptions == &m_selectedEclipseResult )
|
||||
{
|
||||
RimEclipseView* rimEclipseView = dynamic_cast<RimEclipseView*>( view() );
|
||||
auto* rimEclipseView = dynamic_cast<RimEclipseView*>( view() );
|
||||
if ( rimEclipseView )
|
||||
{
|
||||
QStringList varList;
|
||||
@ -161,7 +181,7 @@ void RimAdvancedSnapshotExportDefinition::fieldChangedByUi( const caf::PdmFieldH
|
||||
{
|
||||
if ( changedField == &eclipseResultType )
|
||||
{
|
||||
selectedEclipseResults.v().clear();
|
||||
m_selectedEclipseResult.v().clear();
|
||||
}
|
||||
else if ( changedField == &sliceDirection )
|
||||
{
|
||||
@ -242,7 +262,7 @@ void RimAdvancedSnapshotExportDefinition::defineUiOrdering( QString uiConfigName
|
||||
{
|
||||
view.uiCapability()->setUiReadOnly( true );
|
||||
eclipseResultType.uiCapability()->setUiReadOnly( true );
|
||||
selectedEclipseResults.uiCapability()->setUiReadOnly( true );
|
||||
m_selectedEclipseResult.uiCapability()->setUiReadOnly( true );
|
||||
timeStepStart.uiCapability()->setUiReadOnly( true );
|
||||
timeStepEnd.uiCapability()->setUiReadOnly( true );
|
||||
sliceDirection.uiCapability()->setUiReadOnly( true );
|
||||
@ -257,7 +277,7 @@ void RimAdvancedSnapshotExportDefinition::defineUiOrdering( QString uiConfigName
|
||||
if ( !view() )
|
||||
{
|
||||
eclipseResultType.uiCapability()->setUiReadOnly( true );
|
||||
selectedEclipseResults.uiCapability()->setUiReadOnly( true );
|
||||
m_selectedEclipseResult.uiCapability()->setUiReadOnly( true );
|
||||
timeStepStart.uiCapability()->setUiReadOnly( true );
|
||||
timeStepEnd.uiCapability()->setUiReadOnly( true );
|
||||
sliceDirection.uiCapability()->setUiReadOnly( true );
|
||||
@ -268,7 +288,7 @@ void RimAdvancedSnapshotExportDefinition::defineUiOrdering( QString uiConfigName
|
||||
else
|
||||
{
|
||||
eclipseResultType.uiCapability()->setUiReadOnly( false );
|
||||
selectedEclipseResults.uiCapability()->setUiReadOnly( false );
|
||||
m_selectedEclipseResult.uiCapability()->setUiReadOnly( false );
|
||||
timeStepStart.uiCapability()->setUiReadOnly( false );
|
||||
timeStepEnd.uiCapability()->setUiReadOnly( false );
|
||||
sliceDirection.uiCapability()->setUiReadOnly( false );
|
||||
|
@ -41,12 +41,14 @@ public:
|
||||
RimAdvancedSnapshotExportDefinition();
|
||||
~RimAdvancedSnapshotExportDefinition() override;
|
||||
|
||||
void setSelectedEclipseResults( const QString& result );
|
||||
std::vector<QString> selectedEclipseResults() const;
|
||||
|
||||
caf::PdmField<bool> isActive;
|
||||
|
||||
caf::PdmPtrField<Rim3dView*> view;
|
||||
|
||||
caf::PdmField<caf::AppEnum<RiaDefines::ResultCatType>> eclipseResultType;
|
||||
caf::PdmField<std::vector<QString>> selectedEclipseResults;
|
||||
|
||||
caf::PdmField<int> timeStepStart;
|
||||
caf::PdmField<int> timeStepEnd;
|
||||
@ -68,4 +70,7 @@ private:
|
||||
void fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue ) override;
|
||||
|
||||
QList<caf::PdmOptionItemInfo> toOptionList( const QStringList& varList );
|
||||
|
||||
private:
|
||||
caf::PdmField<QString> m_selectedEclipseResult;
|
||||
};
|
||||
|
@ -190,6 +190,9 @@ RimProject::RimProject( void )
|
||||
CAF_PDM_InitField( &m_showPlotWindow, "showPlotWindow", false, "Show Plot Window" );
|
||||
m_showPlotWindow.uiCapability()->setUiHidden( true );
|
||||
|
||||
CAF_PDM_InitField( &m_showPlotWindowOnTopOf3DWindow, "showPlotWindowOnTopOf3DWindow", false, "Show Plot On Top" );
|
||||
m_showPlotWindowOnTopOf3DWindow.uiCapability()->setUiHidden( true );
|
||||
|
||||
CAF_PDM_InitField( &m_subWindowsTiled3DWindow_OBSOLETE, "tiled3DWindow", false, "Tile 3D Window" );
|
||||
m_subWindowsTiled3DWindow_OBSOLETE.uiCapability()->setUiHidden( true );
|
||||
|
||||
@ -368,6 +371,12 @@ void RimProject::setupBeforeSave()
|
||||
{
|
||||
m_show3DWindow = guiApp->isMain3dWindowVisible();
|
||||
m_showPlotWindow = guiApp->isMainPlotWindowVisible();
|
||||
|
||||
if ( m_showPlotWindow )
|
||||
{
|
||||
auto plotWindow = RiuPlotMainWindow::instance();
|
||||
m_showPlotWindowOnTopOf3DWindow = plotWindow->isTopLevel();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -968,6 +977,14 @@ bool RimProject::showPlotWindow() const
|
||||
return m_showPlotWindow;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RimProject::showPlotWindowOnTop() const
|
||||
{
|
||||
return m_showPlotWindowOnTopOf3DWindow();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -155,6 +155,7 @@ public:
|
||||
|
||||
bool show3DWindow() const;
|
||||
bool showPlotWindow() const;
|
||||
bool showPlotWindowOnTop() const;
|
||||
|
||||
RiaDefines::WindowTileMode subWindowsTileMode3DWindow() const;
|
||||
RiaDefines::WindowTileMode subWindowsTileModePlotWindow() const;
|
||||
@ -219,6 +220,7 @@ private:
|
||||
|
||||
caf::PdmField<bool> m_show3DWindow;
|
||||
caf::PdmField<bool> m_showPlotWindow;
|
||||
caf::PdmField<bool> m_showPlotWindowOnTopOf3DWindow;
|
||||
|
||||
caf::PdmField<bool> m_subWindowsTiled3DWindow_OBSOLETE;
|
||||
caf::PdmField<bool> m_subWindowsTiledPlotWindow_OBSOLETE;
|
||||
|
@ -281,7 +281,7 @@ TEST( RifTextDataTableFormatter, TwoHeaderRowsWithDifferentColSpan )
|
||||
WELSPECS
|
||||
OP-01 PLATFORM 45 99 1* OIL 0.0 STD STOP YES 0 SEG 0 /
|
||||
OP-02ST PLATFORM 60 91 1* OIL 0.0 STD STOP YES 0 SEG 0 /
|
||||
/
|
||||
/
|
||||
)";
|
||||
|
||||
EXPECT_STREQ( textForCompare.toStdString().data(), tableText.toStdString().data() );
|
||||
@ -336,7 +336,7 @@ WELSPECS
|
||||
-- [cm2]
|
||||
OP-01 PLATFORM 45 99 1* OIL 0.0 STD STOP YES 0 SEG 0 /
|
||||
OP-02ST PLATFORM 60 91 1* OIL 0.0 STD STOP YES 0 SEG 0 /
|
||||
/
|
||||
/
|
||||
)";
|
||||
|
||||
EXPECT_STREQ( textForCompare.toStdString().data(), tableText.toStdString().data() );
|
||||
|
@ -142,7 +142,7 @@ void RiuAdvancedSnapshotExportWidget::addSnapshotItemFromActiveView()
|
||||
if ( eclipseView )
|
||||
{
|
||||
multiSnapshot->eclipseResultType = eclipseView->cellResult()->resultType();
|
||||
multiSnapshot->selectedEclipseResults.v().push_back( eclipseView->cellResult()->resultVariable() );
|
||||
multiSnapshot->setSelectedEclipseResults( eclipseView->cellResult()->resultVariable() );
|
||||
}
|
||||
multiSnapshot->timeStepStart = activeView->currentTimeStep();
|
||||
multiSnapshot->timeStepEnd = activeView->currentTimeStep();
|
||||
@ -198,10 +198,7 @@ QString RiuAdvancedSnapshotExportWidget::exportFolder() const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiuAdvancedSnapshotExportWidget::customMenuRequested( QPoint pos )
|
||||
{
|
||||
caf::CmdFeatureManager* commandManager = caf::CmdFeatureManager::instance();
|
||||
|
||||
QMenu menu;
|
||||
menu.addAction( commandManager->action( "PdmListField_DeleteItem", "Delete row" ) );
|
||||
|
||||
QAction* newRowAction = new QAction( "New row", this );
|
||||
connect( newRowAction, SIGNAL( triggered() ), SLOT( addSnapshotItem() ) );
|
||||
|
@ -1177,7 +1177,7 @@ QString RiuResultTextBuilder::wellResultText()
|
||||
const int outletSegmentId = wellResultCell->outletSegmentId();
|
||||
|
||||
text += QString( "-- Well-cell connection info --\n Well Name: %1\n Branch Id: %2\n Segment "
|
||||
"Id: %3\n Outlet Branch Id: %4\n Outlet Segment Id: %5" )
|
||||
"Id: %3\n Outlet Branch Id: %4\n Outlet Segment Id: %5\n" )
|
||||
.arg( singleWellResultData->m_wellName )
|
||||
.arg( branchId )
|
||||
.arg( segmentId )
|
||||
|
@ -5,7 +5,7 @@ set(RESINSIGHT_PATCH_VERSION 1)
|
||||
|
||||
# Opional text with no restrictions
|
||||
#set(RESINSIGHT_VERSION_TEXT "-dev")
|
||||
set(RESINSIGHT_VERSION_TEXT "-RC_01")
|
||||
set(RESINSIGHT_VERSION_TEXT "-RC_02")
|
||||
|
||||
# Optional text
|
||||
# Must be unique and increasing within one combination of major/minor/patch version
|
||||
|
Loading…
Reference in New Issue
Block a user