MCPcopy Create free account
hub / github.com/KDE/labplot / save

Method save

src/backend/datasources/LiveDataSource.cpp:780–843  ·  view source on GitHub ↗

############################################################################## ################## Serialization/Deserialization ########################### ############################################################################## ! Saves as XML. */

Source from the content-addressed store, hash-verified

778 Saves as XML.
779 */
780void LiveDataSource::save(QXmlStreamWriter* writer) const {
781 writer->writeStartElement(QStringLiteral("liveDataSource"));
782 writeBasicAttributes(writer);
783 writeCommentElement(writer);
784
785 // general
786 writer->writeStartElement(QStringLiteral("general"));
787
788 switch (m_sourceType) {
789 case SourceType::FileOrPipe:
790 writer->writeAttribute(QStringLiteral("fileType"), QString::number(static_cast<int>(m_fileType)));
791 writer->writeAttribute(QStringLiteral("fileLinked"), QString::number(m_fileLinked));
792 writer->writeAttribute(QStringLiteral("relativePath"), QString::number(m_relativePath));
793 if (m_relativePath) {
794 // convert from the absolute to the relative path and save it
795 const Project* p = const_cast<LiveDataSource*>(this)->project();
796 QFileInfo fi(p->fileName());
797 writer->writeAttribute(QStringLiteral("fileName"), fi.dir().relativeFilePath(m_fileName));
798 } else
799 writer->writeAttribute(QStringLiteral("fileName"), m_fileName);
800
801 break;
802 case SourceType::SerialPort:
803 writer->writeAttribute(QStringLiteral("baudRate"), QString::number(m_baudRate));
804 writer->writeAttribute(QStringLiteral("serialPortName"), m_serialPortName);
805 break;
806 case SourceType::NetworkTCPSocket:
807 case SourceType::NetworkUDPSocket:
808 writer->writeAttribute(QStringLiteral("host"), m_host);
809 writer->writeAttribute(QStringLiteral("port"), QString::number(m_port));
810 break;
811 case SourceType::LocalSocket:
812 break;
813 case SourceType::MQTT:
814 break;
815 }
816
817 writer->writeAttribute(QStringLiteral("updateType"), QString::number(static_cast<int>(m_updateType)));
818 writer->writeAttribute(QStringLiteral("readingType"), QString::number(static_cast<int>(m_readingType)));
819 writer->writeAttribute(QStringLiteral("sourceType"), QString::number(static_cast<int>(m_sourceType)));
820 writer->writeAttribute(QStringLiteral("keepNValues"), QString::number(m_keepNValues));
821
822 if (m_updateType == UpdateType::TimeInterval)
823 writer->writeAttribute(QStringLiteral("updateInterval"), QString::number(m_updateInterval_ms));
824
825 if (m_readingType != ReadingType::TillEnd)
826 writer->writeAttribute(QStringLiteral("sampleSize"), QString::number(m_sampleSize));
827 writer->writeEndElement(); // general
828
829 // filter
830 if (m_filter) {
831 // If older project do not have loaded the filter correctly
832 // The filter might not be available. So check before saving
833 m_filter->save(writer);
834 }
835
836 // columns
837 if (!m_fileLinked) {

Callers

nothing calls this directly

Calls 2

projectMethod · 0.45
fileNameMethod · 0.45

Tested by

no test coverage detected