diff options
Diffstat (limited to 'src/items/database/databaserelationship.cpp')
-rw-r--r-- | src/items/database/databaserelationship.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/items/database/databaserelationship.cpp b/src/items/database/databaserelationship.cpp index e407ce2..aacacf6 100644 --- a/src/items/database/databaserelationship.cpp +++ b/src/items/database/databaserelationship.cpp @@ -18,6 +18,7 @@ #include <QDebug> #include "diagramdocument.h" #include "column.h" +#include "columnlist.h" #include "databasetable.h" #include "line.h" #include "databaserelationship.h" @@ -384,6 +385,15 @@ DatabaseRelationship::loadFromXml(QDomElement element, DiagramDocument *document setChildOptional(readBoolElement(modalityElement, "child", true, "Optional", "Mandatory")); setParentOptional(readBoolElement(modalityElement, "parent", true, "Optional", "Mandatory")); } + QDomElement columnsElement = relationshipeElement.firstChildElement("columns"); + if (!columnsElement.isNull()) { + int index = readIntElement(columnsElement, "child", -1); + if (index != -1 && childTable()) + setChildColumn(childTable()->columnList()->column(index)); + index = readIntElement(columnsElement, "parent", -1); + if (index != -1 && parentTable()) + setParentColumn(parentTable()->columnList()->column(index)); + } } } @@ -398,6 +408,14 @@ DatabaseRelationship::saveToXml(QDomDocument doc, QDomElement element) relationshipeElement.appendChild(modalityElement); appendBoolElement(doc, modalityElement, "child", d->childOptional, "Optional", "Mandatory"); appendBoolElement(doc, modalityElement, "parent", d->parentOptional, "Optional", "Mandatory"); + if (d->childColumn || d->parentColumn) { + QDomElement columnsElement = doc.createElement("columns"); + relationshipeElement.appendChild(columnsElement); + if (d->childColumn) + appendIntElement(doc, columnsElement, "child", childTable()->columnList()->indexOf(d->childColumn)); + if (d->parentColumn) + appendIntElement(doc, columnsElement, "parent", parentTable()->columnList()->indexOf(d->parentColumn)); + } } DiagramItemProperties * |