[Uml-devel] branches/KDE/3.5/kdesdk/umbrello/umbrello
Oliver Kellogg
okellogg at users.sourceforge.net
Thu Jun 14 20:47:04 UTC 2007
SVN commit 675723 by okellogg:
moveObject(): Don't physically delete listview items while reparenting during
load from XMI.
CCBUG:146748
M +32 -8 umllistview.cpp
--- branches/KDE/3.5/kdesdk/umbrello/umbrello/umllistview.cpp #675722:675723
@@ -1284,7 +1284,10 @@
if (newParentType == Uml::lvt_UseCase_Folder ||
newParentType == Uml::lvt_UseCase_View) {
newItem = move->deepCopy(newParent);
- delete move;
+ if (m_doc->loading()) // deletion is not safe while loading
+ move->setVisible(false); // (the <listview> XMI may be corrupted)
+ else
+ delete move;
addAtContainer(newItem, newParent);
}
break;
@@ -1294,7 +1297,10 @@
if (newParentType == Uml::lvt_Component_Folder ||
newParentType == Uml::lvt_Component_View) {
newItem = move->deepCopy(newParent);
- delete move;
+ if (m_doc->loading()) // deletion is not safe while loading
+ move->setVisible(false); // (the <listview> XMI may be corrupted)
+ else
+ delete move;
addAtContainer(newItem, newParent);
}
break;
@@ -1303,7 +1309,10 @@
newParentType == Uml::lvt_Component_View ||
newParentType == Uml::lvt_Subsystem) {
newItem = move->deepCopy(newParent);
- delete move;
+ if (m_doc->loading()) // deletion is not safe while loading
+ move->setVisible(false); // (the <listview> XMI may be corrupted)
+ else
+ delete move;
addAtContainer(newItem, newParent);
}
break;
@@ -1313,7 +1322,10 @@
newParentType == Uml::lvt_Component ||
newParentType == Uml::lvt_Subsystem) {
newItem = move->deepCopy(newParent);
- delete move;
+ if (m_doc->loading()) // deletion is not safe while loading
+ move->setVisible(false); // (the <listview> XMI may be corrupted)
+ else
+ delete move;
addAtContainer(newItem, newParent);
}
break;
@@ -1323,7 +1335,10 @@
if (newParentType == Uml::lvt_Deployment_Folder ||
newParentType == Uml::lvt_Deployment_View) {
newItem = move->deepCopy(newParent);
- delete move;
+ if (m_doc->loading()) // deletion is not safe while loading
+ move->setVisible(false); // (the <listview> XMI may be corrupted)
+ else
+ delete move;
addAtContainer(newItem, newParent);
}
break;
@@ -1333,7 +1348,10 @@
if (newParentType == Uml::lvt_EntityRelationship_Folder ||
newParentType == Uml::lvt_EntityRelationship_Model) {
newItem = move->deepCopy(newParent);
- delete move;
+ if (m_doc->loading()) // deletion is not safe while loading
+ move->setVisible(false); // (the <listview> XMI may be corrupted)
+ else
+ delete move;
addAtContainer(newItem, newParent);
}
break;
@@ -1346,7 +1364,10 @@
if (newParentType == Uml::lvt_Logical_Folder ||
newParentType == Uml::lvt_Logical_View) {
newItem = move->deepCopy(newParent);
- delete move;
+ if (m_doc->loading()) // deletion is not safe while loading
+ move->setVisible(false); // (the <listview> XMI may be corrupted)
+ else
+ delete move;
addAtContainer(newItem, newParent);
}
break;
@@ -1362,7 +1383,10 @@
newParentType == Uml::lvt_Interface ||
newParentType == Uml::lvt_Package) {
newItem = move->deepCopy(newParent);
- delete move;
+ if (m_doc->loading()) // deletion is not safe while loading
+ move->setVisible(false); // (the <listview> XMI may be corrupted)
+ else
+ delete move;
UMLCanvasObject *o = static_cast<UMLCanvasObject*>(newItem->getUMLObject());
if (o == NULL) {
kDebug() << "moveObject: newItem's UMLObject is NULL" << endl;
More information about the umbrello-devel
mailing list