Allow dragging and dropping ensemble data vectors into summary plots

This commit is contained in:
Jon Jenssen 2022-03-04 16:09:29 +01:00 committed by jonjenssen
parent 7494751bec
commit 2e9c6e7a64
5 changed files with 26 additions and 12 deletions

View File

@ -253,11 +253,3 @@ bool RimSummaryAddress::isEnsemble() const
{
return m_ensembleId >= 0;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RimSummaryAddress::canBeDragged() const
{
return !isEnsemble();
}

View File

@ -57,8 +57,6 @@ public:
int ensembleId() const;
bool isEnsemble() const;
bool canBeDragged() const;
QString quantityName() const;
void ensureCalculationIdIsAssigned();

View File

@ -1834,7 +1834,17 @@ void RimSummaryPlot::handleDroppedObjects( const std::vector<caf::PdmObjectHandl
auto summaryAdr = dynamic_cast<RimSummaryAddress*>( obj );
if ( summaryAdr )
{
if ( summaryAdr->isEnsemble() ) continue;
if ( summaryAdr->isEnsemble() )
{
auto ensemble = RiaSummaryTools::ensembleById( summaryAdr->ensembleId() );
if ( ensemble )
{
addNewEnsembleCurveY( summaryAdr->address(), ensemble );
newCurves++;
}
continue;
}
auto summaryCase = RiaSummaryTools::summaryCaseById( summaryAdr->caseId() );
if ( summaryCase )
@ -1945,6 +1955,18 @@ void RimSummaryPlot::addNewCurveY( const RifEclipseSummaryAddress& address, RimS
addCurveNoUpdate( newCurve );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimSummaryPlot::addNewEnsembleCurveY( const RifEclipseSummaryAddress& address, RimSummaryCaseCollection* ensemble )
{
RimEnsembleCurveSet* curveSet = new RimEnsembleCurveSet();
curveSet->setSummaryCaseCollection( ensemble );
curveSet->setSummaryAddress( address );
ensembleCurveSetCollection()->addCurveSet( curveSet );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@ -42,6 +42,7 @@ class PdmUiTreeOrdering;
class RimAsciiDataCurve;
class RimGridTimeHistoryCurve;
class RimSummaryCase;
class RimSummaryCaseCollection;
class RimSummaryCurve;
class RimSummaryCurveCollection;
class RimEnsembleCurveSet;
@ -269,6 +270,7 @@ private:
void assignPlotAxis( RimSummaryCurve* curve );
void addNewCurveY( const RifEclipseSummaryAddress& address, RimSummaryCase* summaryCase );
void addNewEnsembleCurveY( const RifEclipseSummaryAddress& address, RimSummaryCaseCollection* ensemble );
void updateStackedCurveData();
bool updateStackedCurveDataForAxis( RiuPlotAxis plotAxis );

View File

@ -264,7 +264,7 @@ Qt::ItemFlags RiuDragDrop::flags( const QModelIndex& index ) const
itemflags |= Qt::ItemIsDragEnabled;
}
auto sumAdr = dynamic_cast<RimSummaryAddress*>( uiItem );
if ( sumAdr && sumAdr->canBeDragged() )
if ( sumAdr )
{
itemflags |= Qt::ItemIsDragEnabled;
}