[Uml-devel] branches/KDE/3.5/kdesdk/umbrello
Oliver Kellogg
okellogg at users.sourceforge.net
Wed Jun 13 20:45:01 UTC 2007
SVN commit 675229 by okellogg:
loadChildrenFromXMI, (parent != item->parent()): Prohibit reparenting m_datatypeFolder.
The file loads now but it is very possible that there are more weak spots.
In that case please provide further attachments and reopen.
BUG:146748
M +1 -0 ChangeLog
M +13 -9 umbrello/umllistview.cpp
--- branches/KDE/3.5/kdesdk/umbrello/ChangeLog #675228:675229
@@ -2,6 +2,7 @@
* Bugs/wishes from http://bugs.kde.org:
* Wrong pascal code generation (146676)
+* Crash when linking to undefined xmi.id (146748)
Version 1.5.71
--- branches/KDE/3.5/kdesdk/umbrello/umbrello/umllistview.cpp #675228:675229
@@ -2389,8 +2389,7 @@
// Pull a new ID now.
nID = UniqueID::get();
} else {
- kError() << "UMLListView::loadChildrenFromXMI: item of type "
- << type << " has no ID, skipping." << endl;
+ kError() << pfx << "item of type " << type << " has no ID, skipping." << endl;
domElement = node.toElement();
continue;
}
@@ -2451,14 +2450,19 @@
// listview item might be located in a user created folder.
// Thanks to Achim Spangler for spotting the problem.
UMLListViewItem *itmParent = dynamic_cast<UMLListViewItem*>(item->parent());
- kDebug() << pfx << parent->getText() << " (" << parent << ") != "
+ kDebug() << pfx << item->getText() << " parent "
+ << parent->getText() << " (" << parent << ") != "
<< itmParent->getText() << " (" << itmParent << ")" << endl;
- UMLListViewItem *newItem = moveObject(nID, lvType, parent);
- item = newItem;
- if (item) {
- kDebug() << pfx << "Attempted reparenting of " << item->getText()
- << "(current parent: " << (itmParent ? itmParent->getText() : "NULL")
- << ", new parent: " << parent->getText() << ")" << endl;
+ if (item == m_datatypeFolder && itmParent == m_lv[Uml::mt_Logical]) {
+ kDebug() << pfx << "Reparenting the Datatypes folder is prohibited" << endl;
+ } else {
+ UMLListViewItem *newItem = moveObject(nID, lvType, parent);
+ item = newItem;
+ if (item) {
+ kDebug() << pfx << "Attempted reparenting of " << item->getText()
+ << "(current parent: " << (itmParent ? itmParent->getText() : "NULL")
+ << ", new parent: " << parent->getText() << ")" << endl;
+ }
}
}
break;
More information about the umbrello-devel
mailing list