diff --git a/src/app/container/vcontainer.cpp b/src/app/container/vcontainer.cpp index f5e59523a..6a5ceb691 100644 --- a/src/app/container/vcontainer.cpp +++ b/src/app/container/vcontainer.cpp @@ -36,7 +36,7 @@ quint32 VContainer::_id = 0; //--------------------------------------------------------------------------------------------------------------------- VContainer::VContainer() - :_size(50), sizeName("Сг"), _height(176), heightName("P"), gObjects(QHash()), + :_size(50), sizeName(size_M), _height(176), heightName(height_M), gObjects(QHash()), measurements(QHash()), increments(QHash()), lengthLines(QHash()), lineAngles(QHash()), lengthSplines(QHash()), lengthArcs(QHash()), details(QHash()) @@ -51,7 +51,7 @@ VContainer &VContainer::operator =(const VContainer &data) //--------------------------------------------------------------------------------------------------------------------- VContainer::VContainer(const VContainer &data) - :_size(50), sizeName("Сг"), _height(176), heightName("P"), gObjects(QHash()), + :_size(50), sizeName(size_M), _height(176), heightName(height_M), gObjects(QHash()), measurements(QHash()), increments(QHash()), lengthLines(QHash()), lineAngles(QHash()), lengthSplines(QHash()), lengthArcs(QHash()), details(QHash()) diff --git a/src/app/xml/vdomdocument.cpp b/src/app/xml/vdomdocument.cpp index 81f52a123..c65e1b50c 100644 --- a/src/app/xml/vdomdocument.cpp +++ b/src/app/xml/vdomdocument.cpp @@ -83,11 +83,12 @@ inline qint64 MessageHandler::column() const return m_sourceLocation.column(); } -const QString VDomDocument::AttrId = QStringLiteral("id"); -const QString VDomDocument::AttrUnit = QStringLiteral("unit"); -const QString VDomDocument::UnitMM = QStringLiteral("mm"); -const QString VDomDocument::UnitCM = QStringLiteral("cm"); +const QString VDomDocument::AttrId = QStringLiteral("id"); +const QString VDomDocument::AttrUnit = QStringLiteral("unit"); +const QString VDomDocument::UnitMM = QStringLiteral("mm"); +const QString VDomDocument::UnitCM = QStringLiteral("cm"); const QString VDomDocument::UnitINCH = QStringLiteral("inch"); +const QString VDomDocument::TagVersion = QStringLiteral("version"); //--------------------------------------------------------------------------------------------------------------------- VDomDocument::VDomDocument(VContainer *data) @@ -431,6 +432,30 @@ bool VDomDocument::SaveDocument(const QString &fileName) return result; } +//--------------------------------------------------------------------------------------------------------------------- +QString VDomDocument::Major() const +{ + QString version = UniqueTagText(TagVersion, "0.0.0"); + QStringList v = version.split("."); + return v.at(0); +} + +//--------------------------------------------------------------------------------------------------------------------- +QString VDomDocument::Minor() const +{ + QString version = UniqueTagText(TagVersion, "0.0.0"); + QStringList v = version.split("."); + return v.at(1); +} + +//--------------------------------------------------------------------------------------------------------------------- +QString VDomDocument::Patch() const +{ + QString version = UniqueTagText(TagVersion, "0.0.0"); + QStringList v = version.split("."); + return v.at(2); +} + //--------------------------------------------------------------------------------------------------------------------- void VDomDocument::setTagText(const QString &tag, const QString &text) { diff --git a/src/app/xml/vdomdocument.h b/src/app/xml/vdomdocument.h index a0369050e..6f3777205 100644 --- a/src/app/xml/vdomdocument.h +++ b/src/app/xml/vdomdocument.h @@ -35,6 +35,11 @@ #include #include "../options.h" +/* + can be used like #if (V_FORMAT_VERSION >= V_FORMAT_VERSION_CHECK(4, 4, 0)) +*/ +#define V_FORMAT_VERSION_CHECK(major, minor, patch) ((major<<16)|(minor<<8)|(patch)) + #ifdef Q_CC_GNU #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Weffc++" @@ -70,6 +75,7 @@ public: static const QString UnitMM; static const QString UnitCM; static const QString UnitINCH; + static const QString TagVersion; /** * @param data container with variables * @param comboBoxDraws pointer to the ComboBox that will hold the pattern piece names @@ -145,7 +151,10 @@ public: void setContent(const QString &fileName); static Valentina::Units StrToUnits(const QString &unit); static QString UnitsToStr(const Valentina::Units &unit); - virtual bool SaveDocument(const QString &fileName); + virtual bool SaveDocument(const QString &fileName); + QString Major() const; + QString Minor() const; + QString Patch() const; protected: /** * @brief data container with data. diff --git a/src/app/xml/vindividualmeasurements.h b/src/app/xml/vindividualmeasurements.h index 148121bd9..e8dcdb9df 100644 --- a/src/app/xml/vindividualmeasurements.h +++ b/src/app/xml/vindividualmeasurements.h @@ -32,6 +32,14 @@ #include "vdomdocument.h" #include +/* + VIT_VERSION is (major << 16) + (minor << 8) + patch. +*/ +// version without patch part +#define VIT_MIN_VERSION 0x000100 +// max support version of format +#define VIT_VERSION 0x000100 + class VIndividualMeasurements:public VDomDocument { public: diff --git a/src/app/xml/vpattern.h b/src/app/xml/vpattern.h index 101e95002..da166a6b0 100644 --- a/src/app/xml/vpattern.h +++ b/src/app/xml/vpattern.h @@ -45,6 +45,14 @@ namespace Document } Q_DECLARE_OPERATORS_FOR_FLAGS(Document::Documents) +/* + VAL_VERSION is (major << 16) + (minor << 8) + patch. +*/ +// version without patch part +#define VAL_MIN_VERSION 0x000100 +// max support version of format +#define VAL_VERSION 0x000100 + /** * @brief The VPattern class working with pattern file. */ diff --git a/src/app/xml/vstandardmeasurements.h b/src/app/xml/vstandardmeasurements.h index 9b6b1d694..a970f46c4 100644 --- a/src/app/xml/vstandardmeasurements.h +++ b/src/app/xml/vstandardmeasurements.h @@ -31,6 +31,14 @@ #include "vdomdocument.h" +/* + VST_VERSION is (major << 16) + (minor << 8) + patch. +*/ +// version without patch part +#define VST_MIN_VERSION 0x000100 +// max support version of format +#define VST_VERSION 0x000100 + class VStandardMeasurements:public VDomDocument { public: