[Uml-devel] branches/KDE/3.5/kdesdk/umbrello/umbrello
Oliver Kellogg
okellogg at users.sourceforge.net
Sat Sep 16 04:32:11 UTC 2006
SVN commit 585032 by okellogg:
UMLDoc::rootFolderType(): New.
M +3 -6 folder.cpp
M +24 -28 model_utils.cpp
M +9 -0 umldoc.cpp
M +8 -0 umldoc.h
M +1 -1 umllistviewitem.cpp
M +2 -2 umlobject.cpp
--- branches/KDE/3.5/kdesdk/umbrello/umbrello/folder.cpp #585031:585032
@@ -202,12 +202,9 @@
void UMLFolder::save(QDomDocument& qDoc, QDomElement& qElement) {
UMLDoc *umldoc = UMLApp::app()->getDocument();
QString elementName("UML:Package");
- for (int i = 0; i < Uml::N_MODELTYPES; i++) {
- if (this == umldoc->getRootFolder((Uml::Model_Type)i)) {
- elementName = "UML:Model";
- break;
- }
- }
+ const Uml::Model_Type mt = umldoc->rootFolderType(this);
+ if (mt != Uml::N_MODELTYPES)
+ elementName = "UML:Model";
QDomElement folderElement = UMLObject::save(elementName, qDoc);
saveContents(qDoc, folderElement);
qElement.appendChild(folderElement);
--- branches/KDE/3.5/kdesdk/umbrello/umbrello/model_utils.cpp #585031:585032
@@ -347,11 +347,9 @@
while (pkg->getUMLPackage()) { // wind back to root
pkg = pkg->getUMLPackage();
}
- for (int i = 0; i < Uml::N_MODELTYPES; i++) {
- Uml::Model_Type m = (Uml::Model_Type)i;
- if (pkg == umldoc->getRootFolder(m))
- return m;
- }
+ const Uml::Model_Type m = umldoc->rootFolderType(pkg);
+ if (m != Uml::N_MODELTYPES)
+ return m;
}
mt = guessContainer(roleObj);
if (mt != Uml::mt_Logical)
@@ -830,30 +828,28 @@
UMLDoc *umldoc = UMLApp::app()->getDocument();
UMLFolder *f = static_cast<UMLFolder*>(o);
do {
- for (int i = 0; i < Uml::N_MODELTYPES; i++) {
- const Uml::Model_Type mt = (Uml::Model_Type)i;
- if (f == umldoc->getRootFolder(mt)) {
- switch (mt) {
- case Uml::mt_Logical:
- type = Uml::lvt_Logical_Folder;
- break;
- case Uml::mt_UseCase:
- type = Uml::lvt_UseCase_Folder;
- break;
- case Uml::mt_Component:
- type = Uml::lvt_Component_Folder;
- break;
- case Uml::mt_Deployment:
- type = Uml::lvt_Deployment_Folder;
- break;
- case Uml::mt_EntityRelationship:
- type = Uml::lvt_EntityRelationship_Folder;
- break;
- default:
- break;
- }
- return type;
+ const Uml::Model_Type mt = umldoc->rootFolderType(f);
+ if (mt != Uml::N_MODELTYPES) {
+ switch (mt) {
+ case Uml::mt_Logical:
+ type = Uml::lvt_Logical_Folder;
+ break;
+ case Uml::mt_UseCase:
+ type = Uml::lvt_UseCase_Folder;
+ break;
+ case Uml::mt_Component:
+ type = Uml::lvt_Component_Folder;
+ break;
+ case Uml::mt_Deployment:
+ type = Uml::lvt_Deployment_Folder;
+ break;
+ case Uml::mt_EntityRelationship:
+ type = Uml::lvt_EntityRelationship_Folder;
+ break;
+ default:
+ break;
}
+ return type;
}
} while ((f = static_cast<UMLFolder*>(f->getUMLPackage())) != NULL);
kdError() << "convert_OT_LVT(" << o->getName()
--- branches/KDE/3.5/kdesdk/umbrello/umbrello/umldoc.cpp #585031:585032
@@ -2054,6 +2054,15 @@
return m_root[mt];
}
+Uml::Model_Type UMLDoc::rootFolderType(UMLObject *obj) {
+ for (int i = 0; i < Uml::N_MODELTYPES; i++) {
+ const Uml::Model_Type m = (Uml::Model_Type)i;
+ if (obj == m_root[m])
+ return m;
+ }
+ return Uml::N_MODELTYPES;
+}
+
/** Read property of IDChangeLog* m_pChangeLog. */
IDChangeLog* UMLDoc::getChangeLog() {
return m_pChangeLog;
--- branches/KDE/3.5/kdesdk/umbrello/umbrello/umldoc.h #585031:585032
@@ -619,6 +619,14 @@
UMLFolder *getRootFolder(Uml::Model_Type mt);
/**
+ * Return the corresponding Model_Type if the given object
+ * is one of the root folders.
+ * When the given object is not one of the root folders then
+ * return Uml::N_MODELTYPES.
+ */
+ Uml::Model_Type rootFolderType(UMLObject *obj);
+
+ /**
* Read property of IDChangeLog* m_pChangeLog.
*
* @return Pointer to the IDChangeLog object.
--- branches/KDE/3.5/kdesdk/umbrello/umbrello/umllistviewitem.cpp #585031:585032
@@ -632,7 +632,7 @@
UMLDoc *umldoc = s_pListView->getDocument();
UMLFolder *extFolder = NULL;
if (m_pObject == NULL) {
- if (! Model_Utils::typeIsDiagram(m_Type))
+ if (! Model_Utils::typeIsDiagram(m_Type) && m_Type != Uml::lvt_View)
kdError() << "UMLListViewItem::saveToXMI(" << m_Label
<< "): m_pObject is NULL" << endl;
itemElement.setAttribute( "label", m_Label );
--- branches/KDE/3.5/kdesdk/umbrello/umbrello/umlobject.cpp #585031:585032
@@ -754,8 +754,8 @@
}
} else if (m_pUMLPackage) {
m_pUMLPackage->addObject(this);
- } else {
- kdError() << "UMLObject::load(" << m_Name << "): m_pUMLPackage is not set"
+ } else if (umldoc->rootFolderType(this) == Uml::N_MODELTYPES) {
+ kdError() << "UMLObject::loadFromXMI(" << m_Name << "): m_pUMLPackage is not set"
<< endl;
}
}
More information about the umbrello-devel
mailing list