void PanelUserData::notifyUpdateUserData(MyGUI::EditBox* _widget) { size_t item = mMultilist->getIndexSelected(); if (MyGUI::ITEM_NONE == item) { notifyAddUserData(); return; } std::string key = mEditKey->getOnlyText(); std::string value = mEditValue->getOnlyText(); std::string lastkey = mMultilist->getItemNameAt(item); WidgetContainer* widgetContainer = EditorWidgets::getInstance().find(mCurrentWidget); mMultilist->removeItemAt(mMultilist->findSubItemWith(0, lastkey)); widgetContainer->clearUserData(lastkey); if (!widgetContainer->existUserData(key)) { mMultilist->addItem(key); } mMultilist->setSubItemNameAt(1, mMultilist->findSubItemWith(0, key), MyGUI::TextIterator::toTagsString(value)); mMultilist->setIndexSelected(mMultilist->findSubItemWith(0, key)); widgetContainer->setUserData(key, value); UndoManager::getInstance().addValue(); }
void PanelUserData::notifyUpdateUserData(MyGUI::EditBox* _widget) { size_t item = mMultilist->getIndexSelected(); if (MyGUI::ITEM_NONE == item) { notifyAddUserData(); return; } std::string key = mEditKey->getOnlyText(); std::string value = mEditValue->getOnlyText(); std::string lastkey = mMultilist->getItemNameAt(item); WidgetContainer* widgetContainer = EditorWidgets::getInstance().find(mCurrentWidget); mMultilist->removeItemAt(mMultilist->findSubItemWith(0, lastkey)); utility::mapErase(widgetContainer->mUserString, lastkey); if (utility::mapFind(widgetContainer->mUserString, key) == widgetContainer->mUserString.end()) { mMultilist->addItem(key); } mMultilist->setSubItemNameAt(1, mMultilist->findSubItemWith(0, key), value); mMultilist->setIndexSelected(mMultilist->findSubItemWith(0, key)); utility::mapSet(widgetContainer->mUserString, key, value); UndoManager::getInstance().addValue(); }