[commit] r1152 - trunk/GME/Gme

GMESRC Repository Notifications gme-commit at list.isis.vanderbilt.edu
Mon Jan 31 11:02:15 CST 2011


Author: ksmyth
Date: Mon Jan 31 11:02:14 2011
New Revision: 1152

Log:
Fix GME-327: right-click model editor>insert new model couldnt find the correct role when the model has a display name. Also the Name of the newly-inserted model should be the role name or the display name, not the role name or kind name

Modified:
   trunk/GME/Gme/DynMenu.cpp
   trunk/GME/Gme/DynMenu.h
   trunk/GME/Gme/GMEView.cpp
   trunk/GME/Gme/GuiMeta.cpp

Modified: trunk/GME/Gme/DynMenu.cpp
==============================================================================
--- trunk/GME/Gme/DynMenu.cpp	Fri Jan 28 17:23:42 2011	(r1151)
+++ trunk/GME/Gme/DynMenu.cpp	Mon Jan 31 11:02:14 2011	(r1152)
@@ -17,14 +17,14 @@
 		delete items.GetNext(pos);
 }
 
-void CDynMenu::AddItem(int id, const CString& label, const CString& helpMsg)
+void CDynMenu::AddItem(int id, const CString& roleName, const CString& displayName, const CString& helpMsg)
 {
 	if(minID < 0)
 		minID = id;
 	maxID = id;
-	CDynMenuItem* item = new CDynMenuItem(id, label, helpMsg);
+	CDynMenuItem* item = new CDynMenuItem(id, roleName, helpMsg);
 	items.AddTail(item);
-	menu.AppendMenu(MF_ENABLED | MF_UNCHECKED | MF_STRING, id, label);
+	menu.AppendMenu(MF_ENABLED | MF_UNCHECKED | MF_STRING, id, displayName);
 }
 
 CDynMenuItem* CDynMenu::FindItem(int id)

Modified: trunk/GME/Gme/DynMenu.h
==============================================================================
--- trunk/GME/Gme/DynMenu.h	Fri Jan 28 17:23:42 2011	(r1151)
+++ trunk/GME/Gme/DynMenu.h	Mon Jan 31 11:02:14 2011	(r1152)
@@ -33,7 +33,7 @@
 	bool IsEmpty() const		{ return items.GetCount() == 0; }
 	int GetCount() const		{ return items.GetCount(); }
 
-	void AddItem(int id, const CString& label, const CString& helpMsg);
+	void AddItem(int id, const CString& roleName, const CString& displayName, const CString& helpMsg);
 	CDynMenuItem* FindItem(int id);
 };
 

Modified: trunk/GME/Gme/GMEView.cpp
==============================================================================
--- trunk/GME/Gme/GMEView.cpp	Fri Jan 28 17:23:42 2011	(r1151)
+++ trunk/GME/Gme/GMEView.cpp	Mon Jan 31 11:02:14 2011	(r1152)
@@ -4187,9 +4187,20 @@
 			return;
 		}
 		COMTHROW(currentModel->CreateChildObject(role,&child));
-		CComBSTR nm;
-		COMTHROW(role->get_DisplayedName(&nm));
-		COMTHROW(child->put_Name(nm));
+		CComBSTR realRoleName;
+		CComPtr<IMgaMetaFCO> childMeta;
+		COMTHROW(child->get_Meta(&childMeta));
+		CComBSTR kindName;
+		COMTHROW(childMeta->get_Name(&kindName));
+		CComBSTR bstrRoleName;
+		COMTHROW(role->get_DisplayedName(&bstrRoleName));
+		if (kindName == bstrRoleName) {
+			CComBSTR kindDisplayName;
+			COMTHROW(childMeta->get_DisplayedName(&kindDisplayName));
+			COMTHROW(child->put_Name(kindDisplayName));
+		} else {
+			COMTHROW(child->put_Name(bstrRoleName));
+		}
 
 		CComBSTR bstr;
 		COMTHROW(child->get_ID(&bstr));

Modified: trunk/GME/Gme/GuiMeta.cpp
==============================================================================
--- trunk/GME/Gme/GuiMeta.cpp	Fri Jan 28 17:23:42 2011	(r1151)
+++ trunk/GME/Gme/GuiMeta.cpp	Mon Jan 31 11:02:14 2011	(r1152)
@@ -599,6 +599,8 @@
 				else {
 					CopyTo(bstrRoleName,label);
 				}
+				CString roleName;
+				CopyTo(bstrRoleName, roleName);
 
 				objtype_enum type;
 				COMTHROW(kind->get_ObjType(&type));
@@ -606,22 +608,22 @@
 					case OBJTYPE_MODEL:
 						if (!insertModelMenu)
 							insertModelMenu = new CDynMenu(CGuiMetaProject::theInstance->GetNewMenuCmdID(), "Insert New Model");
-						insertModelMenu->AddItem(CGuiMetaProject::theInstance->GetNewMenuCmdID(), label, "Help");
+						insertModelMenu->AddItem(CGuiMetaProject::theInstance->GetNewMenuCmdID(), roleName, label, "Help");
 						break;
 					case OBJTYPE_ATOM:
 						if (!insertAtomMenu)
 							insertAtomMenu = new CDynMenu(CGuiMetaProject::theInstance->GetNewMenuCmdID(), "Insert New Atom");
-						insertAtomMenu->AddItem(CGuiMetaProject::theInstance->GetNewMenuCmdID(), label, "Help");
+						insertAtomMenu->AddItem(CGuiMetaProject::theInstance->GetNewMenuCmdID(), roleName, label, "Help");
 						break;
 					case OBJTYPE_REFERENCE:
 						if (!insertReferenceMenu)
 							insertReferenceMenu = new CDynMenu(CGuiMetaProject::theInstance->GetNewMenuCmdID(), "Insert New Reference");
-						insertReferenceMenu->AddItem(CGuiMetaProject::theInstance->GetNewMenuCmdID(), label, "Help");
+						insertReferenceMenu->AddItem(CGuiMetaProject::theInstance->GetNewMenuCmdID(), roleName, label, "Help");
 						break;
 					case OBJTYPE_SET:
 						if (!insertSetMenu)
 							insertSetMenu = new CDynMenu(CGuiMetaProject::theInstance->GetNewMenuCmdID(), "Insert New Set");
-						insertSetMenu->AddItem(CGuiMetaProject::theInstance->GetNewMenuCmdID(), label, "Help");
+						insertSetMenu->AddItem(CGuiMetaProject::theInstance->GetNewMenuCmdID(), roleName, label, "Help");
 						break;
 				}
 			}


More information about the gme-commit mailing list