MCPcopy Create free account
hub / github.com/TorqueGameEngines/Torque3D / _destroyItem

Method _destroyItem

Engine/source/gui/controls/guiTreeViewCtrl.cpp:982–1033  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

980//-----------------------------------------------------------------------------
981
982void GuiTreeViewCtrl::_destroyItem( Item* item, bool deleteObject )
983{
984 if(!item)
985 return;
986
987 if(item->isInspectorData())
988 {
989 // make sure the SimObjectPtr is clean!
990 SimObject *pObject = item->getObject();
991 if( pObject && pObject->isProperlyAdded() )
992 {
993 bool skipDelete = !deleteObject;
994
995 if( !skipDelete && isMethod( "onDeleteObject" ) )
996 skipDelete = onDeleteObject_callback( pObject );
997
998 if ( !skipDelete )
999 pObject->deleteObject();
1000 }
1001
1002 item->setObject( NULL );
1003 }
1004
1005 // Remove item from the selection
1006 if (mSelectedItem == item->mId)
1007 mSelectedItem = 0;
1008 for ( S32 i = 0; i < mSelectedItems.size(); i++ )
1009 {
1010 if ( mSelectedItems[i] == item )
1011 {
1012 mSelectedItems.erase( i );
1013 break;
1014 }
1015 }
1016 item->mState.clear();
1017
1018 // unlink
1019 if( item->mPrevious )
1020 item->mPrevious->mNext = item->mNext;
1021 if( item->mNext )
1022 item->mNext->mPrevious = item->mPrevious;
1023 if( item->mParent && ( item->mParent->mChild == item ) )
1024 item->mParent->mChild = item->mNext;
1025
1026 // remove from vector
1027 mItems[item->mId-1] = 0;
1028
1029 // set as root free item
1030 item->mNext = mItemFreeList;
1031 mItemFreeList = item;
1032 mItemCount--;
1033}
1034
1035//------------------------------------------------------------------------------
1036

Callers

nothing calls this directly

Calls 8

isInspectorDataMethod · 0.80
isProperlyAddedMethod · 0.80
getObjectMethod · 0.45
deleteObjectMethod · 0.45
setObjectMethod · 0.45
sizeMethod · 0.45
eraseMethod · 0.45
clearMethod · 0.45

Tested by

no test coverage detected