mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#6476 AppFwk : Add support for moving selected items to top list
This commit is contained in:
@@ -33,7 +33,9 @@
|
||||
// for more details.
|
||||
//
|
||||
//##################################################################################################
|
||||
|
||||
#include "cafPdmFieldReorderCapability.h"
|
||||
#include "cafPdmObjectHandle.h"
|
||||
|
||||
#include "cafAssert.h"
|
||||
|
||||
@@ -141,3 +143,49 @@ void PdmFieldReorderCapability::onMoveItemDown( const SignalEmitter* emitter, si
|
||||
{
|
||||
moveItemDown( index );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void PdmFieldReorderCapability::onMoveItemToTop( const SignalEmitter* emitter, size_t index )
|
||||
{
|
||||
moveItemToTop( index );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool PdmFieldReorderCapability::moveItemToTop( size_t index )
|
||||
{
|
||||
if ( canItemBeMovedUp( index ) )
|
||||
{
|
||||
PdmObjectHandle* itemToShift = m_field->at( index );
|
||||
if ( itemToShift )
|
||||
{
|
||||
int newIndex = 0;
|
||||
m_field->erase( index );
|
||||
m_field->insertAt( newIndex, itemToShift );
|
||||
orderChanged.send();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
PdmFieldReorderCapability* PdmFieldReorderCapability::reorderCapabilityOfParentContainer( const PdmObjectHandle* pdmObject )
|
||||
{
|
||||
if ( pdmObject )
|
||||
{
|
||||
PdmPtrArrayFieldHandle* arrayField = dynamic_cast<PdmPtrArrayFieldHandle*>( pdmObject->parentField() );
|
||||
if ( arrayField )
|
||||
{
|
||||
PdmFieldReorderCapability* reorderability = arrayField->capability<PdmFieldReorderCapability>();
|
||||
return reorderability;
|
||||
}
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
@@ -41,6 +41,8 @@
|
||||
|
||||
namespace caf
|
||||
{
|
||||
class PdmObjectHandle;
|
||||
|
||||
class PdmFieldReorderCapability : public PdmFieldCapability, public SignalEmitter, public SignalObserver
|
||||
{
|
||||
public:
|
||||
@@ -52,6 +54,7 @@ public:
|
||||
bool canItemBeMovedUp( size_t index ) const;
|
||||
bool canItemBeMovedDown( size_t index ) const;
|
||||
|
||||
bool moveItemToTop( size_t index );
|
||||
bool moveItemUp( size_t index );
|
||||
bool moveItemDown( size_t index );
|
||||
|
||||
@@ -68,6 +71,9 @@ public:
|
||||
}
|
||||
static bool fieldIsReorderable( PdmPtrArrayFieldHandle* field );
|
||||
|
||||
static PdmFieldReorderCapability* reorderCapabilityOfParentContainer( const PdmObjectHandle* pdmObject );
|
||||
|
||||
void onMoveItemToTop( const SignalEmitter* emitter, size_t index );
|
||||
void onMoveItemUp( const SignalEmitter* emitter, size_t index );
|
||||
void onMoveItemDown( const SignalEmitter* emitter, size_t index );
|
||||
|
||||
|
||||
Reference in New Issue
Block a user