Merge pull request #999 from Areloch/onInspectDocsFix

Fixes the handling for special edit fields in the inspector to properly hook into the field's docs display
This commit is contained in:
Brian Roberts 2023-03-21 20:42:13 -05:00 committed by GitHub
commit fc1d097246
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 10 additions and 1 deletions

View file

@ -56,7 +56,8 @@ GuiInspectorField::GuiInspectorField( GuiInspector* inspector,
mHeightOverride(18),
mSpecialEditField(false),
mVariableName(StringTable->EmptyString()),
mCallbackName(StringTable->EmptyString())
mCallbackName(StringTable->EmptyString()),
mVariableType(StringTable->EmptyString())
{
if( field != NULL )
mCaption = field->pFieldname;
@ -665,6 +666,8 @@ void GuiInspectorField::_executeSelectedCallback()
{
if( mField )
Con::executef( mInspector, "onFieldSelected", mField->pFieldname, ConsoleBaseType::getType(mField->type)->getTypeName(), mFieldDocs.c_str() );
else if(mSpecialEditField)
Con::executef(mInspector, "onFieldSelected", mVariableName, mVariableType, mFieldDocs.c_str());
}
//-----------------------------------------------------------------------------

View file

@ -97,6 +97,8 @@ class GuiInspectorField : public GuiControl
StringTableEntry mVariableName;
//Special edit field, callback name - if defined, we'll do a callback to the function listed here when editing the field
StringTableEntry mCallbackName;
//Special edit field, variable type
StringTableEntry mVariableType;
virtual void _registerEditControl( GuiControl *ctrl );
virtual void _executeSelectedCallback();
@ -214,6 +216,9 @@ class GuiInspectorField : public GuiControl
void setSpecialEditVariableName(StringTableEntry varName) { mVariableName = varName; }
StringTableEntry getSpecialEditVariableName() { return mVariableName; }
void setSpecialEditVariableType(StringTableEntry varType) { mVariableType = varType; }
StringTableEntry getSpecialEditVariableType() { return mVariableType; }
void setSpecialEditCallbackName(StringTableEntry callName) { mCallbackName = callName; }
DECLARE_CONOBJECT( GuiInspectorField );

View file

@ -655,6 +655,7 @@ void GuiInspectorGroup::addInspectorField(StringTableEntry name, StringTableEntr
StringTableEntry fieldName = StringTable->insert(name);
fieldGui->setSpecialEditVariableName(fieldName);
fieldGui->setSpecialEditVariableType(typeName);
fieldGui->setSpecialEditCallbackName(StringTable->insert(callbackName));
fieldGui->setInspectorField(NULL, fieldName);