mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-12-17 12:40:35 +01:00
store terminalData in the terminal tag. Fixes the drag problem from the collection into the diagram. The problem was that some tags missed and therefore the creation of the element for dragging was unsuccessful
This commit is contained in:
@@ -78,7 +78,17 @@ void PartTerminal::toXmlPriv(QDomElement& e) const {
|
||||
d->m_pos = pos();
|
||||
|
||||
QDomDocument doc = e.ownerDocument();
|
||||
e.appendChild(d -> toXml(doc));
|
||||
QDomElement terminalData = d -> toXml(doc);
|
||||
|
||||
// Copy everything from terminalData to terminal
|
||||
for (int i=0; i < terminalData.attributes().count(); i++) {
|
||||
QDomAttr attr = terminalData.attributes().item(i).toAttr();
|
||||
e.setAttribute(attr.name(), attr.value());
|
||||
}
|
||||
// for (int i=0; i < terminalData.childNodes().count(); i++) {
|
||||
// e.appendChild(terminalData.childNodes().at(i));
|
||||
// }
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -56,14 +56,16 @@ class TerminalData : public PropertiesInterface
|
||||
const QString& prefix = QString()) const override;
|
||||
void fromSettings(QSettings &settings,
|
||||
const QString& = QString()) override;
|
||||
void toXmlPriv(QDomElement &xml_element) const override;
|
||||
bool fromXmlPriv(const QDomElement &xml_element) override;
|
||||
|
||||
static bool valideXml(const QDomElement &xml_element);
|
||||
|
||||
static QString typeToString(TerminalData::Type type);
|
||||
static TerminalData::Type typeFromString(const QString &string);
|
||||
|
||||
private:
|
||||
void toXmlPriv(QDomElement &xml_element) const override;
|
||||
bool fromXmlPriv(const QDomElement &xml_element) override;
|
||||
|
||||
// must be public, because this class is a private member
|
||||
// of PartTerminal/Terminal and they must access this data
|
||||
public:
|
||||
|
||||
@@ -771,8 +771,18 @@ void Terminal::toXmlPriv(QDomElement &qdo) const
|
||||
// Bad hack. The problem is that in the diagrams the terminal is described by the position and in the Collection by the dock.
|
||||
QPointF tempPos = d->m_pos;
|
||||
d->m_pos = dock_elmt_;
|
||||
d->toXmlPriv(qdo); // TerminalData
|
||||
QDomDocument doc = qdo.ownerDocument();
|
||||
QDomElement terminalData = d->toXml(doc); // TerminalData
|
||||
d->m_pos = tempPos;
|
||||
|
||||
// Copy everything from terminalData to terminal
|
||||
for (int i=0; i < terminalData.attributes().count(); i++) {
|
||||
QDomAttr attr = terminalData.attributes().item(i).toAttr();
|
||||
qdo.setAttribute(attr.name(), attr.value());
|
||||
}
|
||||
// for (int i=0; i < terminalData.childNodes().count(); i++) {
|
||||
// qdo.appendChild(terminalData.childNodes().at(i));
|
||||
// }
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user