[Uml-devel] KDE/kdesdk/umbrello/umbrello
Ralf Habacker
ralf.habacker at gmail.com
Mon Mar 12 09:49:59 UTC 2012
SVN commit 1285121 by habacker:
Added association role names to dot export.
M +22 -12 dotgenerator.h
--- trunk/KDE/kdesdk/umbrello/umbrello/dotgenerator.h #1285120:1285121
@@ -251,13 +251,21 @@
}
foreach(AssociationWidget *assoc, scene->getAssociationList()) {
- QStringList params;
- QString label;
QString type = assoc->associationType().toString().toLower();
QString key = "type::" + type;
- label = assoc->getName();
+ bool swapId = m_edgeParameters.contains("id::" + key) && m_edgeParameters["id::" + key] == "swap";
+
+ QString label = assoc->getName();
+
+ QString headLabel = assoc->roleName(swapId ? Uml::B : Uml::A);
+ QString tailLabel = assoc->roleName(swapId ? Uml::A : Uml::B);
+ if (!headLabel.isEmpty())
+ headLabel.prepend("+");
+ if (!tailLabel.isEmpty())
+ tailLabel.prepend("+");
+
QString edgeParameters;
-
+ QStringList params;
QString rkey = QLatin1String("ranking::") + key;
if (m_edgeParameters.contains(rkey))
edgeParameters = m_edgeParameters[rkey];
@@ -274,20 +282,22 @@
}
params << edgeParameters.split(',');
- QString aID = fixID(ID2STR(assoc->getWidgetID(Uml::A)));
- QString bID = fixID(ID2STR(assoc->getWidgetID(Uml::B)));
if (!findItem(params,"label="))
params << QString("label=\"%1\"").arg(label);
+ if (!findItem(params,"headlabel="))
+ params << QString("headlabel=\"%1\"").arg(headLabel);
+
+ if (!findItem(params,"taillabel="))
+ params << QString("taillabel=\"%1\"").arg(tailLabel);
+
#ifdef DOTGENERATOR_DATA_DEBUG
uDebug() << type << params;
#endif
- if (m_edgeParameters.contains("id::" + key) && m_edgeParameters["id::" + key] == "swap")
- out << "\"" << aID << "\" -> \"" << bID << "\""
- << " [" << params.join(",") << "];\n";
- else
- out << "\"" << bID << "\" -> \"" << aID << "\""
- << " [" << params.join(",") << "];\n";
+ QString aID = fixID(ID2STR(assoc->getWidgetID(swapId ? Uml::A : Uml::B)));
+ QString bID = fixID(ID2STR(assoc->getWidgetID(swapId ? Uml::B : Uml::A)));
+
+ out << "\"" << aID << "\" -> \"" << bID << "\"" << " [" << params.join(",") << "];\n";
}
QTextStream o(&file);
More information about the umbrello-devel
mailing list