Merge pull request #2324 from Areloch/TweakedguiTreeViewObjectHandling

Tweaks some object handling of guiTreeViewObj
This commit is contained in:
Areloch 2019-05-04 11:51:03 -05:00 committed by GitHub
commit 9c46187082
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 29 additions and 4 deletions

View file

@ -390,7 +390,6 @@ void GuiTreeViewCtrl::Item::setObject(SimObject *obj)
{
if(!mState.test(InspectorData))
{
Con::errorf("Tried to set the object for item %d, which is not InspectorData!", mId);
return;
}
@ -409,7 +408,6 @@ SimObject *GuiTreeViewCtrl::Item::getObject()
{
if(!mState.test(InspectorData))
{
Con::errorf("Tried to get the object for item %d, which is not InspectorData!", mId);
return NULL;
}
@ -5101,12 +5099,13 @@ DefineEngineMethod( GuiTreeViewCtrl, editItem, bool, ( S32 itemId, const char* n
return(object->editItem(itemId, newText, newValue));
}
DefineEngineMethod( GuiTreeViewCtrl, removeItem, bool, (S32 itemId), ,
DefineEngineMethod( GuiTreeViewCtrl, removeItem, bool, (S32 itemId, bool deleteObjects), (0, true),
"Remove an item from the tree with the given id.\n\n"
"@param itemId TreeItemID of item to remove.\n"
"@param deleteObjects Whether the object on the item is deleted when the item is.\n"
"@return True if successful, false if not.")
{
return(object->removeItem(itemId));
return(object->removeItem(itemId, deleteObjects));
}
DefineEngineMethod( GuiTreeViewCtrl, removeAllChildren, void, (S32 itemId), ,
@ -5335,6 +5334,31 @@ DefineEngineMethod( GuiTreeViewCtrl, findItemByObjectId, S32, (S32 objectId), ,
return(object->findItemByObjectId(objectId));
}
//------------------------------------------------------------------------------
S32 GuiTreeViewCtrl::getItemObject(S32 itemId)
{
GuiTreeViewCtrl::Item* item = getItem(itemId);
if (!item)
{
return 0;
}
SimObject* pObj = item->getObject();
if (pObj)
return pObj->getId();
return 0;
}
//------------------------------------------------------------------------------
DefineEngineMethod(GuiTreeViewCtrl, getItemObject, S32, (S32 itemId), ,
"Gets the object for a particular item.\n\n"
"@param itemId Item id you want the object id for."
"@return Object Id for the given tree item ID.")
{
return(object->getItemObject(itemId));
}
//------------------------------------------------------------------------------
bool GuiTreeViewCtrl::scrollVisibleByObjectId(S32 objID)
{

View file

@ -554,6 +554,7 @@ class GuiTreeViewCtrl : public GuiArrayCtrl
S32 findItemByName(const char *name);
S32 findItemByValue(const char *name);
S32 findItemByObjectId(S32 iObjId);
S32 getItemObject(S32 itemId);
void sortTree( bool caseSensitive, bool traverseHierarchy, bool parentsFirst );