[Uml-devel] KDE/kdesdk/umbrello/umbrello

Oliver Kellogg okellogg at users.sourceforge.net
Wed Jul 4 23:05:37 UTC 2007


SVN commit 683558 by okellogg:

ListPopupMenu::mt_AttributeAssociation: New. At least permit deleting the
AssociationWidget representing the attribute association.
(More selections should be added.)
CCBUG:147202


 M  +6 -4      associationwidget.cpp  
 M  +4 -0      listpopupmenu.cpp  
 M  +1 -0      listpopupmenu.h  


--- trunk/KDE/kdesdk/umbrello/umbrello/associationwidget.cpp #683557:683558
@@ -2345,13 +2345,13 @@
             menuType = ListPopupMenu::mt_Anchor;
         else if (isCollaboration())
             menuType = ListPopupMenu::mt_Collaboration_Message;
-        else if( AssocRules::allowRole( type ) )
+        else if (getAssociation() == NULL)
+            menuType = ListPopupMenu::mt_AttributeAssociation;
+        else if (AssocRules::allowRole(type))
             menuType = ListPopupMenu::mt_FullAssociation;
         else
             menuType = ListPopupMenu::mt_Association_Selected;
     }
-    if (m_pObject && getAssociation() == NULL)  // atm m_pObject must be UMLAssociation
-        return;                  // @todo allow ListPopupMenu for other m_pObject types
     m_pMenu = new ListPopupMenu(m_pView, menuType);
     m_pMenu->popup(me -> globalPos());
     connect(m_pMenu, SIGNAL(activated(int)), this, SLOT(slotMenuSelection(int)));
@@ -2418,8 +2418,10 @@
     case ListPopupMenu::mt_Delete:
         if (m_pAssocClassLineSel0)
             removeAssocClassLine();
+        else if (getAssociation())
+            m_pView->removeAssocInViewAndDoc(this);
         else
-            m_pView->removeAssocInViewAndDoc(this);
+            m_pView->removeAssoc(this);
         break;
 
     case ListPopupMenu::mt_Rename_MultiA:
--- trunk/KDE/kdesdk/umbrello/umbrello/listpopupmenu.cpp #683557:683558
@@ -1404,6 +1404,10 @@
         insertStdItem(mt_Properties);
         break;
 
+    case mt_AttributeAssociation:
+        insertStdItem(mt_Delete);  // @todo add more items
+        break;
+
     case mt_Collaboration_Message:
         //                      insertStdItem(mt_Cut);
         //                      insertStdItem(mt_Copy);
--- trunk/KDE/kdesdk/umbrello/umbrello/listpopupmenu.h #683557:683558
@@ -156,6 +156,7 @@
         mt_MultiB,
         mt_Name,                          //Association name
         mt_FullAssociation,                 // Association with role names
+        mt_AttributeAssociation,   // Rendering of an attribute as an association
         mt_RoleNameA,
         mt_RoleNameB,
         mt_Delete_Selection,




More information about the umbrello-devel mailing list