[Uml-devel] kdesdk/umbrello/umbrello
Oliver Kellogg
okellogg at users.sourceforge.net
Thu Dec 9 12:37:04 UTC 2004
CVS commit by okellogg:
slotMenuSelection(mt_Delete): In case of a containment, determine the new
parent in the list view.
BUG:94728
M +31 -5 associationwidget.cpp 1.134
--- kdesdk/umbrello/umbrello/associationwidget.cpp #1.133:1.134
@@ -12,7 +12,14 @@
* *
***************************************************************************/
+
+// own header
+#include "associationwidget.h"
+// system includes
#include <cstdlib>
#include <cmath>
-
+// qt/kde includes
+#include <kdebug.h>
+#include <klocale.h>
+// app includes
#include "activitywidget.h"
#include "uml.h"
@@ -26,5 +33,4 @@
#include "attribute.h"
#include "association.h"
-#include "associationwidget.h"
#include "assocrules.h"
#include "floatingtext.h"
@@ -33,7 +39,6 @@
#include "dialogs/assocpropdlg.h"
#include "inputdialog.h"
-
-#include <kdebug.h>
-#include <klocale.h>
+#include "umllistview.h"
+#include "umllistviewitem.h"
using namespace Uml;
@@ -2101,4 +2106,25 @@ void AssociationWidget::slotMenuSelectio
case ListPopupMenu::mt_Delete:
+ if (getAssocType() == at_Containment) {
+ UMLListView *lv = UMLApp::app()->getListView();
+ UMLObject *oldContainer = getWidget(A)->getUMLObject();
+ UMLObject *objToBeMoved = getWidget(B)->getUMLObject();
+ if (objToBeMoved == NULL) {
+ m_pView->removeAssocInViewAndDoc(this);
+ return;
+ }
+ UMLListViewItem *newLVParent = NULL;
+ if (oldContainer) {
+ UMLListViewItem *oldLVParent = lv->findUMLObject(oldContainer);
+ if (oldLVParent)
+ newLVParent = dynamic_cast<UMLListViewItem*>(oldLVParent->parent());
+ }
+ if (newLVParent == NULL)
+ newLVParent = lv->theLogicalView();
+ Object_Type ot = objToBeMoved->getBaseType();
+ lv->moveObject( objToBeMoved->getID(),
+ UMLListView::convert_OT_LVT(ot),
+ newLVParent );
+ }
m_pView->removeAssocInViewAndDoc(this);
break;
More information about the umbrello-devel
mailing list