Save as XML
| 4749 | |
| 4750 | //! Save as XML |
| 4751 | void CartesianPlot::save(QXmlStreamWriter* writer) const { |
| 4752 | Q_D(const CartesianPlot); |
| 4753 | |
| 4754 | writer->writeStartElement(QStringLiteral("cartesianPlot")); |
| 4755 | writeBasicAttributes(writer); |
| 4756 | writeCommentElement(writer); |
| 4757 | |
| 4758 | // applied theme |
| 4759 | if (!d->theme.isEmpty()) { |
| 4760 | writer->writeStartElement(QStringLiteral("theme")); |
| 4761 | writer->writeAttribute(QStringLiteral("name"), d->theme); |
| 4762 | writer->writeEndElement(); |
| 4763 | } |
| 4764 | |
| 4765 | // cursor |
| 4766 | d->cursorLine->save(writer); |
| 4767 | |
| 4768 | // geometry |
| 4769 | writer->writeStartElement(QStringLiteral("geometry")); |
| 4770 | writer->writeAttribute(QStringLiteral("x"), QString::number(d->rect.x())); |
| 4771 | writer->writeAttribute(QStringLiteral("y"), QString::number(d->rect.y())); |
| 4772 | writer->writeAttribute(QStringLiteral("width"), QString::number(d->rect.width())); |
| 4773 | writer->writeAttribute(QStringLiteral("height"), QString::number(d->rect.height())); |
| 4774 | writer->writeAttribute(QStringLiteral("visible"), QString::number(d->isVisible())); |
| 4775 | writer->writeEndElement(); |
| 4776 | |
| 4777 | // x-ranges |
| 4778 | writer->writeStartElement(QStringLiteral("xRanges")); |
| 4779 | for (const auto& range : d->xRanges) { |
| 4780 | writer->writeStartElement(QStringLiteral("xRange")); |
| 4781 | writer->writeAttribute(QStringLiteral("autoScale"), QString::number(range.range.autoScale())); |
| 4782 | writer->writeAttribute(QStringLiteral("start"), QString::number(range.range.start(), 'g', 16)); |
| 4783 | writer->writeAttribute(QStringLiteral("end"), QString::number(range.range.end(), 'g', 16)); |
| 4784 | writer->writeAttribute(QStringLiteral("scale"), QString::number(static_cast<int>(range.range.scale()))); |
| 4785 | writer->writeAttribute(QStringLiteral("format"), QString::number(static_cast<int>(range.range.format()))); |
| 4786 | writer->writeAttribute(QStringLiteral("dateTimeFormat"), range.range.dateTimeFormat()); |
| 4787 | writer->writeEndElement(); |
| 4788 | } |
| 4789 | writer->writeEndElement(); |
| 4790 | |
| 4791 | // y-ranges |
| 4792 | writer->writeStartElement(QStringLiteral("yRanges")); |
| 4793 | for (const auto& range : d->yRanges) { |
| 4794 | writer->writeStartElement(QStringLiteral("yRange")); |
| 4795 | writer->writeAttribute(QStringLiteral("autoScale"), QString::number(range.range.autoScale())); |
| 4796 | writer->writeAttribute(QStringLiteral("start"), QString::number(range.range.start(), 'g', 16)); |
| 4797 | writer->writeAttribute(QStringLiteral("end"), QString::number(range.range.end(), 'g', 16)); |
| 4798 | writer->writeAttribute(QStringLiteral("scale"), QString::number(static_cast<int>(range.range.scale()))); |
| 4799 | writer->writeAttribute(QStringLiteral("format"), QString::number(static_cast<int>(range.range.format()))); |
| 4800 | writer->writeAttribute(QStringLiteral("dateTimeFormat"), range.range.dateTimeFormat()); |
| 4801 | writer->writeEndElement(); |
| 4802 | } |
| 4803 | writer->writeEndElement(); |
| 4804 | |
| 4805 | // coordinate systems, data range settings and padding |
| 4806 | writer->writeStartElement(QStringLiteral("coordinateSystems")); |
| 4807 | writer->writeAttribute(QStringLiteral("defaultCoordinateSystem"), QString::number(defaultCoordinateSystemIndex())); |
| 4808 | writer->writeAttribute(QStringLiteral("horizontalPadding"), QString::number(d->horizontalPadding)); |