summaryrefslogtreecommitdiff
path: root/src/databasetable.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/databasetable.cpp')
-rw-r--r--src/databasetable.cpp47
1 files changed, 41 insertions, 6 deletions
diff --git a/src/databasetable.cpp b/src/databasetable.cpp
index cfbeb5d..911457f 100644
--- a/src/databasetable.cpp
+++ b/src/databasetable.cpp
@@ -183,11 +183,46 @@ DatabaseTable::updateLayout()
update();
}
-QMimeData *
-DatabaseTable::toMimeData()
+#include "domutils.h"
+
+void
+DatabaseTable::loadFromXml(QDomElement element, DiagramDocument *document)
{
- QMimeData *mimeData = new QMimeData();
- QByteArray data = name().toUtf8();
- mimeData->setData("application/dbmodel.object", data);
- return mimeData;
+ DiagramItem::loadFromXml(element, document);
+ QDomElement tableElement = element.firstChildElement("table");
+ if (!tableElement.isNull()) {
+ setName(readStringElement(tableElement, "name"));
+ QDomElement columnListElement = tableElement.firstChildElement("column-list");
+ QDomElement columnElement = columnListElement.firstChildElement("column");
+ while (!columnElement.isNull()) {
+ Column *column = new Column();
+ column->setName(readStringElement(columnElement, "name"));
+ column->setDataType(readStringElement(columnElement, "data-type"));
+ column->setRequired(readStringElement(columnElement, "required") == "yes");
+ column->setPrimaryKey(readStringElement(columnElement, "primary-key") == "yes");
+ column->setNotes(readStringElement(columnElement, "notes"));
+ columnList()->appendColumn(column);
+ columnElement = columnElement.nextSiblingElement("column");
+ }
+ }
+}
+
+void
+DatabaseTable::saveToXml(QDomDocument doc, QDomElement element)
+{
+ DiagramItem::saveToXml(doc, element);
+ QDomElement tableElement = doc.createElement("table");
+ element.appendChild(tableElement);
+ appendStringElement(doc, tableElement, "name", name());
+ QDomElement columnListElement = doc.createElement("column-list");
+ tableElement.appendChild(columnListElement);
+ foreach (Column *column, columnList()->columns()) {
+ QDomElement columnElement = doc.createElement("column");
+ columnListElement.appendChild(columnElement);
+ appendStringElement(doc, columnElement, "name", column->name());
+ appendStringElement(doc, columnElement, "data-type", column->dataType());
+ appendStringElement(doc, columnElement, "required", column->isRequired() ? "yes" : QString());
+ appendStringElement(doc, columnElement, "primary-key", column->isPrimaryKey() ? "yes" : QString());
+ appendStringElement(doc, columnElement, "notes", column->notes());
+ }
}