mirror of
https://github.com/OPM/ResInsight.git
synced 2026-09-03 20:53:13 -05:00
Merge pull request #8888 from OPM/8887-fix-reorder-capability
Fix reorder capability
This commit is contained in:
@@ -69,6 +69,7 @@ public:
|
||||
void insertAt( int indexAfter, std::unique_ptr<PdmObjectHandle> obj );
|
||||
PdmObjectHandle* at( size_t index ) override;
|
||||
void setValue( const std::vector<DataType*>& objects );
|
||||
size_t indexOf( const PdmObjectHandle* obj ) const override;
|
||||
|
||||
virtual void deleteAllChildObjectsAsync();
|
||||
|
||||
@@ -85,8 +86,7 @@ public:
|
||||
void insert( size_t indexAfter, const std::vector<PdmPointer<DataType>>& objects );
|
||||
size_t count( const DataType* pointer ) const;
|
||||
|
||||
void erase( size_t index ) override;
|
||||
size_t index( const DataType* pointer ) const;
|
||||
void erase( size_t index ) override;
|
||||
|
||||
typename std::vector<PdmPointer<DataType>>::iterator begin() { return m_pointers.begin(); };
|
||||
typename std::vector<PdmPointer<DataType>>::iterator end() { return m_pointers.end(); };
|
||||
|
||||
@@ -138,6 +138,23 @@ size_t PdmChildArrayField<DataType*>::count( const DataType* pointer ) const
|
||||
return itemCount;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
template <typename DataType>
|
||||
size_t PdmChildArrayField<DataType*>::indexOf( const PdmObjectHandle* obj ) const
|
||||
{
|
||||
for ( size_t i = 0; i < m_pointers.size(); ++i )
|
||||
{
|
||||
if ( obj == m_pointers[i].rawPtr() )
|
||||
{
|
||||
return i;
|
||||
}
|
||||
}
|
||||
|
||||
return ( size_t )( -1 ); // Undefined size_t > m_pointers.size();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
/// Empty the container without deleting the objects pointed to.
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -196,23 +213,6 @@ void PdmChildArrayField<DataType*>::erase( size_t index )
|
||||
m_pointers.erase( m_pointers.begin() + index );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
/// Get the index of the given object pointer
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
template <typename DataType>
|
||||
size_t PdmChildArrayField<DataType*>::index( const DataType* pointer ) const
|
||||
{
|
||||
for ( size_t i = 0; i < m_pointers.size(); ++i )
|
||||
{
|
||||
if ( pointer == m_pointers[i].p() )
|
||||
{
|
||||
return i;
|
||||
}
|
||||
}
|
||||
|
||||
return ( size_t )( -1 ); // Undefined size_t > m_pointers.size();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
/// Assign objects to the field, replacing the current child objects
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -189,3 +189,11 @@ PdmFieldReorderCapability* PdmFieldReorderCapability::reorderCapabilityOfParentC
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
size_t PdmFieldReorderCapability::indexOf( PdmObjectHandle* pdmObject )
|
||||
{
|
||||
return m_field->indexOf( pdmObject );
|
||||
}
|
||||
|
||||
@@ -51,6 +51,8 @@ public:
|
||||
public:
|
||||
PdmFieldReorderCapability( PdmPtrArrayFieldHandle* field, bool giveOwnership );
|
||||
|
||||
size_t indexOf( PdmObjectHandle* pdmObject );
|
||||
|
||||
bool canItemBeMovedUp( size_t index ) const;
|
||||
bool canItemBeMovedDown( size_t index ) const;
|
||||
|
||||
|
||||
@@ -50,11 +50,12 @@ public:
|
||||
|
||||
// Reimplementation of PdmPointersFieldHandle methods
|
||||
|
||||
virtual size_t size() const { return m_pointers.size(); }
|
||||
virtual bool empty() const { return m_pointers.empty(); }
|
||||
virtual void clear();
|
||||
virtual void insertAt( int indexAfter, PdmObjectHandle* obj );
|
||||
virtual PdmObjectHandle* at( size_t index );
|
||||
size_t size() const override { return m_pointers.size(); }
|
||||
bool empty() const override { return m_pointers.empty(); }
|
||||
void clear() override;
|
||||
void insertAt( int indexAfter, PdmObjectHandle* obj ) override;
|
||||
PdmObjectHandle* at( size_t index ) override;
|
||||
size_t indexOf( const PdmObjectHandle* obj ) const override;
|
||||
|
||||
// std::vector-like access
|
||||
|
||||
@@ -66,9 +67,8 @@ public:
|
||||
void insert( size_t indexAfter, const std::vector<PdmPointer<DataType>>& objects );
|
||||
size_t count( const DataType* pointer ) const;
|
||||
|
||||
void erase( size_t index );
|
||||
size_t index( DataType* pointer );
|
||||
void removePtr( PdmObjectHandle* object );
|
||||
void erase( size_t index ) override;
|
||||
void removePtr( PdmObjectHandle* object );
|
||||
|
||||
typename std::vector<PdmPointer<DataType>>::iterator begin() { return m_pointers.begin(); };
|
||||
typename std::vector<PdmPointer<DataType>>::iterator end() { return m_pointers.end(); };
|
||||
@@ -79,7 +79,7 @@ public:
|
||||
std::vector<DataType*> ptrReferencedObjects() const;
|
||||
|
||||
// Child objects
|
||||
virtual void ptrReferencedObjects( std::vector<PdmObjectHandle*>* );
|
||||
void ptrReferencedObjects( std::vector<PdmObjectHandle*>* ) override;
|
||||
|
||||
private: // To be disabled
|
||||
PDM_DISABLE_COPY_AND_ASSIGN( PdmPtrArrayField );
|
||||
|
||||
@@ -140,6 +140,23 @@ size_t PdmPtrArrayField<DataType*>::count( const DataType* pointer ) const
|
||||
return itemCount;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
template <typename DataType>
|
||||
size_t PdmPtrArrayField<DataType*>::indexOf( const PdmObjectHandle* obj ) const
|
||||
{
|
||||
for ( size_t i = 0; i < m_pointers.size(); ++i )
|
||||
{
|
||||
if ( obj == m_pointers[i].rawPtr() )
|
||||
{
|
||||
return i;
|
||||
}
|
||||
}
|
||||
|
||||
return ( size_t )( -1 ); // Undefined size_t > m_pointers.size();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
/// Empty the container without deleting the objects pointed to.
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -170,23 +187,6 @@ void PdmPtrArrayField<DataType*>::erase( size_t index )
|
||||
m_pointers.erase( m_pointers.begin() + index );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
/// Get the index of the given object pointer
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
template <typename DataType>
|
||||
size_t PdmPtrArrayField<DataType*>::index( DataType* pointer )
|
||||
{
|
||||
for ( size_t i = 0; i < m_pointers.size(); ++i )
|
||||
{
|
||||
if ( pointer == m_pointers[i].p() )
|
||||
{
|
||||
return i;
|
||||
}
|
||||
}
|
||||
|
||||
return ( size_t )( -1 ); // Undefined size_t > m_pointers.size();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
/// Removes all instances of object pointer from the container without deleting the object.
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -20,6 +20,7 @@ public:
|
||||
virtual void clear() = 0;
|
||||
virtual void insertAt( int indexAfter, PdmObjectHandle* obj ) = 0;
|
||||
virtual void erase( size_t index ) = 0;
|
||||
virtual size_t indexOf( const PdmObjectHandle* obj ) const = 0;
|
||||
|
||||
virtual PdmObjectHandle* at( size_t index ) = 0;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user