summaryrefslogtreecommitdiff
path: root/src/items/database/databaserelationship.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/items/database/databaserelationship.cpp')
-rw-r--r--src/items/database/databaserelationship.cpp18
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 *