Terminal strip bridge are now save in .qet file

This commit is contained in:
joshua
2022-01-31 18:11:21 +01:00
parent bd635b8e43
commit c02238cab8
5 changed files with 93 additions and 9 deletions

View File

@@ -18,6 +18,7 @@
#include "terminalstripbridge.h"
#include "realterminal.h"
#include "terminalstrip.h"
#include "../qetxml.h"
TerminalStripBridge::TerminalStripBridge(TerminalStrip *parent_strip) :
m_strip(parent_strip)
@@ -70,6 +71,55 @@ QVector<QSharedPointer<RealTerminal> > TerminalStripBridge::realTerminals() cons
return m_real_terminals;
}
/**
* @brief TerminalStripBridge::toXml
* Save this bridge into a QDomElement and return it.
* @param parent_document
* @return
*/
QDomElement TerminalStripBridge::toXml(QDomDocument &parent_document) const
{
auto root_elmt = parent_document.createElement(xmlTagName());
root_elmt.setAttribute(QStringLiteral("uuid"), m_uuid.toString());
root_elmt.setAttribute(QStringLiteral("color"), m_color.name());
auto terminals_elmt = parent_document.createElement(QStringLiteral("real_terminals"));
for (const auto &real_t : qAsConst(m_real_terminals))
{
if (real_t)
{
auto terminal_elmt = parent_document.createElement(QStringLiteral("real_terminal"));
terminal_elmt.setAttribute(QStringLiteral("uuid"), real_t->uuid().toString());
terminals_elmt.appendChild(terminal_elmt);
}
}
root_elmt.appendChild(terminals_elmt);
return root_elmt;
}
void TerminalStripBridge::fromXml(const QDomElement &dom_element)
{
if (dom_element.tagName() != xmlTagName() || !m_strip) {
return;
}
m_uuid.fromString(dom_element.attribute(QStringLiteral("uuid"), m_uuid.toString()));
m_color.setNamedColor(dom_element.attribute(QStringLiteral("color")));
const auto real_t_vector = QETXML::subChild(dom_element,
QStringLiteral("real_terminals"),
QStringLiteral("real_terminal"));
for (const auto &xml_real_t : real_t_vector)
{
auto real_t = m_strip->realTerminalForUuid(QUuid(xml_real_t.attribute(QStringLiteral("uuid"))));
if (real_t) {
m_real_terminals.append(real_t);
}
}
}
/**
* @brief TerminalStripBridge::addTerminals
* @param real_terminals