mirror of
https://github.com/OPM/ResInsight.git
synced 2026-08-27 05:37:21 -05:00
#12236 Summary Cases: Allow reordering of summary cases
This commit is contained in:
@@ -47,6 +47,7 @@
|
||||
#include "RimSummaryMultiPlotCollection.h"
|
||||
#include "RimSummaryPlot.h"
|
||||
|
||||
#include "cafPdmFieldReorderCapability.h"
|
||||
#include "cafProgressInfo.h"
|
||||
|
||||
#include <QCoreApplication>
|
||||
@@ -102,6 +103,8 @@ RimSummaryCaseMainCollection::RimSummaryCaseMainCollection()
|
||||
CAF_PDM_InitObject( "Summary Cases", ":/SummaryCases16x16.png" );
|
||||
|
||||
CAF_PDM_InitFieldNoDefault( &m_cases, "SummaryCases", "" );
|
||||
caf::PdmFieldReorderCapability::addToField( &m_cases );
|
||||
|
||||
CAF_PDM_InitFieldNoDefault( &m_caseCollections, "SummaryCaseCollections", "" );
|
||||
}
|
||||
|
||||
@@ -208,6 +211,19 @@ void RimSummaryCaseMainCollection::removeCases( std::vector<RimSummaryCase*>& ca
|
||||
dataSourceHasChanged.send();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimSummaryCaseMainCollection::moveCase( RimSummaryCase* summaryCase, int destinationIndex )
|
||||
{
|
||||
auto currentIndex = m_cases.indexOf( summaryCase );
|
||||
if ( currentIndex < m_cases.size() )
|
||||
{
|
||||
m_cases.erase( currentIndex );
|
||||
m_cases.insertAt( std::min( destinationIndex, (int)m_cases.size() ), summaryCase );
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -60,6 +60,7 @@ public:
|
||||
void addCase( RimSummaryCase* summaryCase );
|
||||
void removeCase( RimSummaryCase* summaryCase, bool notifyChange = true );
|
||||
void removeCases( std::vector<RimSummaryCase*>& cases );
|
||||
void moveCase( RimSummaryCase* summaryCase, int destinationIndex );
|
||||
|
||||
RimSummaryEnsemble* addEnsemble( const std::vector<RimSummaryCase*>& summaryCases,
|
||||
const QString& coolectionName,
|
||||
|
||||
@@ -420,7 +420,7 @@ bool RiuDragDrop::dropMimeData( const QMimeData* data, Qt::DropAction action, in
|
||||
auto summaryCaseMainCollection = dropTarget->firstAncestorOrThisOfType<RimSummaryCaseMainCollection>();
|
||||
if ( summaryCaseMainCollection )
|
||||
{
|
||||
return handleSummaryCaseMainCollectionDrop( action, draggedObjects, summaryCaseMainCollection );
|
||||
return handleSummaryCaseMainCollectionDrop( action, draggedObjects, summaryCaseMainCollection, row );
|
||||
}
|
||||
|
||||
auto surfaceCollection = dropTarget->firstAncestorOrThisOfType<RimSurfaceCollection>();
|
||||
@@ -607,7 +607,8 @@ bool RiuDragDrop::handleSummaryCaseCollectionDrop( Qt::DropAction action,
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RiuDragDrop::handleSummaryCaseMainCollectionDrop( Qt::DropAction action,
|
||||
caf::PdmObjectGroup& draggedObjects,
|
||||
RimSummaryCaseMainCollection* summaryCaseDropTarget )
|
||||
RimSummaryCaseMainCollection* summaryCaseDropTarget,
|
||||
int insertAtPosition )
|
||||
{
|
||||
std::vector<RimSummaryCase*> summaryCases = RiuTypedPdmObjects<RimSummaryCase>::typedObjectsFromGroup( draggedObjects );
|
||||
|
||||
@@ -622,10 +623,21 @@ bool RiuDragDrop::handleSummaryCaseMainCollectionDrop( Qt::DropAction
|
||||
summaryCaseCollection->removeCase( summaryCase );
|
||||
summaryCaseDropTarget->addCase( summaryCase );
|
||||
summaryCaseCollection->updateConnectedEditors();
|
||||
|
||||
summaryCaseDropTarget->updateConnectedEditors();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
summaryCaseDropTarget->updateConnectedEditors();
|
||||
if ( summaryCases.size() == 1 )
|
||||
{
|
||||
auto summaryCase = summaryCases.front();
|
||||
auto parentContainer = summaryCase->firstAncestorOfType<RimSummaryCaseMainCollection>();
|
||||
if ( parentContainer == summaryCaseDropTarget )
|
||||
{
|
||||
parentContainer->moveCase( summaryCase, insertAtPosition );
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -82,7 +82,8 @@ private:
|
||||
bool handleSummaryCaseCollectionDrop( Qt::DropAction action, caf::PdmObjectGroup& objectGroup, RimSummaryEnsemble* summaryCaseCollection );
|
||||
bool handleSummaryCaseMainCollectionDrop( Qt::DropAction action,
|
||||
caf::PdmObjectGroup& objectGroup,
|
||||
RimSummaryCaseMainCollection* summaryCaseMainCollection );
|
||||
RimSummaryCaseMainCollection* summaryCaseMainCollection,
|
||||
int insertAtPosition );
|
||||
|
||||
bool handleSurfaceCollectionDrop( Qt::DropAction action, int row, caf::PdmObjectGroup& objectGroup, RimSurfaceCollection* surfaceCollection );
|
||||
|
||||
|
||||
Reference in New Issue
Block a user