moved serialization

This commit is contained in:
itsmattkc
2023-02-21 14:26:34 -08:00
parent 85a8fbf1fd
commit 028651f9fb
31 changed files with 1203 additions and 1443 deletions
+42
View File
@@ -55,6 +55,48 @@ void TimelineWorkArea::set_range(const TimeRange &range)
emit RangeChanged(workarea_range_);
}
bool TimelineWorkArea::load(QXmlStreamReader *reader)
{
rational range_in = this->in();
rational range_out = this->out();
uint version = 0;
XMLAttributeLoop(reader, attr) {
if (attr.name() == QStringLiteral("version")) {
version = attr.value().toUInt();
}
}
while (XMLReadNextStartElement(reader)) {
if (reader->name() == QStringLiteral("enabled")) {
this->set_enabled(reader->readElementText() != QStringLiteral("0"));
} else if (reader->name() == QStringLiteral("in")) {
range_in = rational::fromString(reader->readElementText().toStdString());
} else if (reader->name() == QStringLiteral("out")) {
range_out = rational::fromString(reader->readElementText().toStdString());
} else {
reader->skipCurrentElement();
}
}
TimeRange loaded_workarea(range_in, range_out);
if (loaded_workarea != this->range()) {
this->set_range(loaded_workarea);
}
return true;
}
void TimelineWorkArea::save(QXmlStreamWriter *writer) const
{
writer->writeAttribute(QStringLiteral("version"), QString::number(1));
writer->writeTextElement(QStringLiteral("enabled"), QString::number(this->enabled()));
writer->writeTextElement(QStringLiteral("in"), QString::fromStdString(this->in().toString()));
writer->writeTextElement(QStringLiteral("out"), QString::fromStdString(this->out().toString()));
}
const rational &TimelineWorkArea::in() const
{
return workarea_range_.in();