From 88e9de47d7461e8a890580e3a62d00fc73e9bba0 Mon Sep 17 00:00:00 2001 From: AzaezelX Date: Tue, 23 Dec 2025 11:15:33 -0600 Subject: [PATCH 1/3] add text selection to tab cycling --- Engine/source/gui/editor/guiInspectorTypes.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Engine/source/gui/editor/guiInspectorTypes.cpp b/Engine/source/gui/editor/guiInspectorTypes.cpp index 7db630458..09b622131 100644 --- a/Engine/source/gui/editor/guiInspectorTypes.cpp +++ b/Engine/source/gui/editor/guiInspectorTypes.cpp @@ -1986,13 +1986,13 @@ void GuiInspectorType2DValue::constructEditControlChildren(GuiControl* retCtrl, retCtrl->addObject(mContainerY); mCtrlX->setDataField(StringTable->insert("tabComplete"), NULL, "true"); - String tabCmdX = String::ToString("function %s::onTabComplete(){ %s.setFirstResponder();}", - mCtrlX->getName(), mCtrlY->getName()); + String tabCmdX = String::ToString("function %s::onTabComplete(){ %s.setFirstResponder(); %s.selectAllText(); }", + mCtrlX->getName(), mCtrlY->getName(), mCtrlY->getName()); Con::evaluatef(tabCmdX); mCtrlY->setDataField(StringTable->insert("tabComplete"), NULL, "true"); - String tabCmdY = String::ToString("function %s::onTabComplete(){ %s.setFirstResponder();}", - mCtrlY->getName(), mCtrlX->getName()); + String tabCmdY = String::ToString("function %s::onTabComplete(){ %s.setFirstResponder(); %s.selectAllText(); }", + mCtrlY->getName(), mCtrlX->getName(), mCtrlX->getName()); Con::evaluatef(tabCmdY); //retCtrl->addObject(mScriptValue); } @@ -2120,13 +2120,13 @@ void GuiInspectorType3DValue::constructEditControlChildren(GuiControl* retCtrl, _registerEditControl(mContainerZ, "cz"); mCtrlY->setDataField(StringTable->insert("tabComplete"), NULL, "true"); - String tabCmdY = String::ToString("function %s::onTabComplete(){ %s.setFirstResponder();}", - mCtrlY->getName(), mCtrlZ->getName()); + String tabCmdY = String::ToString("function %s::onTabComplete(){ %s.setFirstResponder(); %s.selectAllText(); }", + mCtrlY->getName(), mCtrlZ->getName(), mCtrlZ->getName()); Con::evaluatef(tabCmdY); mCtrlZ->setDataField(StringTable->insert("tabComplete"), NULL, "true"); - String tabCmdZ = String::ToString("function %s::onTabComplete(){ %s.setFirstResponder();}", - mCtrlZ->getName(), mCtrlX->getName()); + String tabCmdZ = String::ToString("function %s::onTabComplete(){ %s.setFirstResponder(); %s.selectAllText(); }", + mCtrlZ->getName(), mCtrlX->getName(), mCtrlX->getName()); Con::evaluatef(tabCmdZ); retCtrl->addObject(mContainerZ); From 5b2274d20362e428c3d357dc04bf99b8f3c31d8f Mon Sep 17 00:00:00 2001 From: AzaezelX Date: Tue, 23 Dec 2025 11:49:24 -0600 Subject: [PATCH 2/3] don't trip onInspectorFieldModified unless the value actually changed --- Engine/source/gui/editor/inspector/field.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Engine/source/gui/editor/inspector/field.cpp b/Engine/source/gui/editor/inspector/field.cpp index a77c03601..415b90b54 100644 --- a/Engine/source/gui/editor/inspector/field.cpp +++ b/Engine/source/gui/editor/inspector/field.cpp @@ -468,7 +468,8 @@ void GuiInspectorField::setWordData(const S32& wordIndex, const char* data, bool // Fire callback single-object undo. - if (callbacks && !mField->flag.test(AbstractClassRep::FieldFlags::FIELD_ComponentInspectors)) + if (callbacks && !mField->flag.test(AbstractClassRep::FieldFlags::FIELD_ComponentInspectors) + && (dStrcmp(fieldData, newFieldData.end().c_str()) != 0)) Con::executef(mInspector, "onInspectorFieldModified", target->getIdString(), mField->pFieldname, @@ -603,7 +604,8 @@ void GuiInspectorField::setData( const char* data, bool callbacks ) // Fire callback single-object undo. - if( callbacks && !mField->flag.test(AbstractClassRep::FieldFlags::FIELD_ComponentInspectors) ) + if( callbacks && !mField->flag.test(AbstractClassRep::FieldFlags::FIELD_ComponentInspectors) + && (dStrcmp(oldValue.c_str(), newValue.c_str()) != 0)) Con::executef( mInspector, "onInspectorFieldModified", target->getIdString(), mField->pFieldname, From d8f65920f5c8be33f76f7cb0b616580f6fbea07e Mon Sep 17 00:00:00 2001 From: AzaezelX Date: Tue, 23 Dec 2025 12:03:36 -0600 Subject: [PATCH 3/3] rem debug spew --- .../scripts/materialEditor.ed.tscript | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/Templates/BaseGame/game/tools/materialEditor/scripts/materialEditor.ed.tscript b/Templates/BaseGame/game/tools/materialEditor/scripts/materialEditor.ed.tscript index 93118d8b8..0ff1c9bf7 100644 --- a/Templates/BaseGame/game/tools/materialEditor/scripts/materialEditor.ed.tscript +++ b/Templates/BaseGame/game/tools/materialEditor/scripts/materialEditor.ed.tscript @@ -1031,8 +1031,8 @@ function MaterialEditorGui::guiSync( %this ) function MaterialEditorGui::deArrayFieldsInRollout(%this, %rollout, %index) { - echo("===================================="); - echo("Processing group for array index: " @ %index); + //echo("===================================="); + //echo("Processing group for array index: " @ %index); %stack = %rollout.getObject(0); %count = %stack.getCount(); @@ -1046,38 +1046,38 @@ function MaterialEditorGui::deArrayFieldsInRollout(%this, %rollout, %index) { %fieldArrayGroup = %stack.getObject(%i); %fieldArrayStack = %fieldArrayGroup.getObject(0); - echo("Field Array: " @ %fieldArrayGroup.caption @ ", ID: " @ %fieldArrayGroup @ ", type: " @ %fieldArrayGroup.getClassName()); + //echo("Field Array: " @ %fieldArrayGroup.caption @ ", ID: " @ %fieldArrayGroup @ ", type: " @ %fieldArrayGroup.getClassName()); %fieldCaption = %fieldArrayGroup.caption; %newFieldCaption = getSubStr(%fieldCaption, 0, strLen(%fieldCaption) - 4); - echo(" New Caption: " @ %newFieldCaption); + //echo(" New Caption: " @ %newFieldCaption); %curLayerField = %fieldArrayStack.getObject(%index); - echo(" Field Obj for cur layer: " @ %curLayerField); + //echo(" Field Obj for cur layer: " @ %curLayerField); %stack.add(%curLayerField); %curLayerField.setCaption(%newFieldCaption); deArrayObjects.add(%stack, %fieldArrayGroup); - echo(" ---"); + //echo(" ---"); } - echo("Cleaning up field array groups"); + //echo("Cleaning up field array groups"); for(%i=0; %i < deArrayObjects.count(); %i++) { %group = deArrayObjects.getKey(%i); %obj = deArrayObjects.getValue(%i); - echo("Removing: " @ %obj @ " from group: " @ %group); + //echo("Removing: " @ %obj @ " from group: " @ %group); %group.remove(%obj); } - echo("===================================="); + //echo("===================================="); deArrayObjects.empty(); } @@ -1552,7 +1552,7 @@ function MaterialEditorGui::save( %this ) if(MaterialEditorGui.currentMaterialAsset !$= "") { - echo("Attempting to save material: " @ MaterialEditorGui.currentMaterialAsset); + //echo("Attempting to save material: " @ MaterialEditorGui.currentMaterialAsset); MaterialEditorGui.copyMaterials( materialEd_previewMaterial, notDirtyMaterial ); %assetDef = AssetDatabase.acquireAsset(MaterialEditorGui.currentMaterialAsset); @@ -2031,7 +2031,7 @@ function MaterialEditorPropInspector::onPostInspectObject(%this, %obj) function MaterialEditorPropInspector::saveScrollState(%this) { %this.scrollPos = %this.getScrollbar().getScrollPosition(); - echo(%this.getName() @ "::saveScrollState" SPC %this.scrollPos); + //echo(%this.getName() @ "::saveScrollState" SPC %this.scrollPos); } function MaterialEditorPropInspector::loadScrollState(%this) @@ -2039,7 +2039,7 @@ function MaterialEditorPropInspector::loadScrollState(%this) if (%this.scrollPos $= "") return; %this.getScrollbar().setScrollPosition(%this.scrollPos.x, %this.scrollPos.y); - echo(%this.getName() @ "::loadScrollState" SPC %this.scrollPos); + //echo(%this.getName() @ "::loadScrollState" SPC %this.scrollPos); } @@ -2073,6 +2073,6 @@ function MaterialEditorPropInspector::loadCollapseState(%this) function MaterialEditorPropInspector::onFieldRightClick(%this, %fieldCtrl) { - echo("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"); - echo(%fieldCtrl.getFieldName()); + //echo("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"); + //echo(%fieldCtrl.getFieldName()); } \ No newline at end of file