void DataListCtrl::EndEdit(bool update) { if (!m_rename_text->IsShown()) return; if (update) { wxString new_name = m_rename_text->GetValue(); long item = GetNextItem(-1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED); VRenderFrame* vr_frame = (VRenderFrame*)m_frame; DataManager* mgr = vr_frame?vr_frame->GetDataManager():0; if (item != -1 && mgr) { wxString name = GetText(item, 1); if (new_name != name) { wxString new_name2 = new_name; for (int i=1; mgr->CheckNames(new_name2); i++) new_name2 = new_name+wxString::Format("_%d", i); if (GetItemText(item) == "Volume") { VolumeData* vd = mgr->GetVolumeData(name); if (vd) vd->SetName(new_name2); } else if (GetItemText(item) == "Mesh") { MeshData* md = mgr->GetMeshData(name); if (md) md->SetName(new_name2); } else if (GetItemText(item) == "Annotations") { Annotations* ann = mgr->GetAnnotations(name); if (ann) ann->SetName(new_name2); } //update ui SetText(item, 1, new_name2); vr_frame->UpdateTree(); } } } m_rename_text->Hide(); }