Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
#5567: Name update handling
  • Loading branch information
codereader committed Apr 2, 2021
1 parent 9585385 commit c364a9b
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 9 deletions.
27 changes: 18 additions & 9 deletions radiant/ui/materials/editor/MaterialEditor.cpp
Expand Up @@ -324,6 +324,9 @@ void MaterialEditor::setupBasicMaterialPage()
convertTextCtrlToMapExpressionEntry("BasicBumpImageEntry");
convertTextCtrlToMapExpressionEntry("BasicSpecularImageEntry");

auto nameEntry = getControl<wxTextCtrl>("BasicName");
nameEntry->Bind(wxEVT_TEXT, &MaterialEditor::_onMaterialNameChanged, this);

auto editorImageEntry = getControl<MapExpressionEntry>("BasicEditorImageEntry")->GetTextCtrl();
editorImageEntry->Bind(wxEVT_TEXT, [this, editorImageEntry](wxCommandEvent&)
{
Expand Down Expand Up @@ -390,15 +393,7 @@ void MaterialEditor::setupMaterialProperties()
convertTextCtrlToMapExpressionEntry("MaterialEditorImage");

auto nameEntry = getControl<wxTextCtrl>("MaterialName");
nameEntry->Bind(wxEVT_TEXT, [nameEntry, this](wxCommandEvent& ev)
{
if (_materialUpdateInProgress || !_material) return;

GlobalMaterialManager().renameMaterial(_material->getName(), nameEntry->GetValue().ToStdString());
auto item = _treeView->GetTreeModel()->FindString(_material->getName(), _treeView->Columns().fullName);
_treeView->EnsureVisible(item);
onMaterialChanged();
});
nameEntry->Bind(wxEVT_TEXT, &MaterialEditor::_onMaterialNameChanged, this);

auto editorImage = getControl<MapExpressionEntry>("MaterialEditorImage");
_materialBindings.emplace(std::make_shared<ExpressionBinding<MaterialPtr>>(editorImage->GetTextCtrl(),
Expand Down Expand Up @@ -1315,6 +1310,20 @@ void MaterialEditor::handleMaterialSelectionChange()
updateControlsFromMaterial();
}

void MaterialEditor::_onMaterialNameChanged(wxCommandEvent& ev)
{
if (_materialUpdateInProgress || !_material) return;

auto nameEntry = static_cast<wxTextCtrl*>(ev.GetEventObject());

GlobalMaterialManager().renameMaterial(_material->getName(), nameEntry->GetValue().ToStdString());
auto item = _treeView->GetTreeModel()->FindString(_material->getName(), _treeView->Columns().fullName);
_treeView->EnsureVisible(item);

updateMaterialPropertiesFromMaterial();
onMaterialChanged();
}

void MaterialEditor::_onMaterialSelectionChanged(wxDataViewEvent& ev)
{
// Check if the material has been modified and ask for save
Expand Down
1 change: 1 addition & 0 deletions radiant/ui/materials/editor/MaterialEditor.h
Expand Up @@ -158,6 +158,7 @@ class MaterialEditor :
void revertCurrentMaterial();
void copySelectedMaterial();

void _onMaterialNameChanged(wxCommandEvent& ev);
void _onMaterialSelectionChanged(wxDataViewEvent& ev);
void _onNewMaterial(wxCommandEvent& ev);
void _onSaveMaterial(wxCommandEvent& ev);
Expand Down

0 comments on commit c364a9b

Please sign in to comment.