diff --git a/src/libs/ifc/schema.qrc b/src/libs/ifc/schema.qrc index 1056de83e..12129b994 100644 --- a/src/libs/ifc/schema.qrc +++ b/src/libs/ifc/schema.qrc @@ -32,6 +32,7 @@ schema/standard_measurements/v0.4.1.xsd schema/standard_measurements/v0.4.2.xsd schema/standard_measurements/v0.4.3.xsd + schema/standard_measurements/v0.4.4.xsd schema/individual_measurements/v0.2.0.xsd schema/individual_measurements/v0.3.0.xsd schema/individual_measurements/v0.3.1.xsd diff --git a/src/libs/ifc/schema/standard_measurements/v0.4.4.xsd b/src/libs/ifc/schema/standard_measurements/v0.4.4.xsd new file mode 100644 index 000000000..48b01bf06 --- /dev/null +++ b/src/libs/ifc/schema/standard_measurements/v0.4.4.xsd @@ -0,0 +1,178 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/libs/ifc/xml/vpatternconverter.h b/src/libs/ifc/xml/vpatternconverter.h index 649acd5e8..73310c676 100644 --- a/src/libs/ifc/xml/vpatternconverter.h +++ b/src/libs/ifc/xml/vpatternconverter.h @@ -103,6 +103,7 @@ private: void ToV0_4_0(); void ToV0_4_1(); void ToV0_4_2(); + void ToV0_4_3(); void TagUnitToV0_2_0(); void TagIncrementToV0_2_0(); diff --git a/src/libs/ifc/xml/vvstconverter.cpp b/src/libs/ifc/xml/vvstconverter.cpp index 7d66e5492..a23a21280 100644 --- a/src/libs/ifc/xml/vvstconverter.cpp +++ b/src/libs/ifc/xml/vvstconverter.cpp @@ -54,8 +54,8 @@ */ const QString VVSTConverter::MeasurementMinVerStr = QStringLiteral("0.3.0"); -const QString VVSTConverter::MeasurementMaxVerStr = QStringLiteral("0.4.3"); -const QString VVSTConverter::CurrentSchema = QStringLiteral("://schema/standard_measurements/v0.4.3.xsd"); +const QString VVSTConverter::MeasurementMaxVerStr = QStringLiteral("0.4.4"); +const QString VVSTConverter::CurrentSchema = QStringLiteral("://schema/standard_measurements/v0.4.4.xsd"); //VVSTConverter::MeasurementMinVer; // <== DON'T FORGET TO UPDATE TOO!!!! //VVSTConverter::MeasurementMaxVer; // <== DON'T FORGET TO UPDATE TOO!!!! @@ -87,6 +87,8 @@ QString VVSTConverter::XSDSchema(int ver) const case (0x000402): return QStringLiteral("://schema/standard_measurements/v0.4.2.xsd"); case (0x000403): + return QStringLiteral("://schema/standard_measurements/v0.4.3.xsd"); + case (0x000404): return CurrentSchema; default: InvalidVersion(ver); @@ -116,6 +118,10 @@ void VVSTConverter::ApplyPatches() ValidateXML(XSDSchema(0x000403), m_convertedFileName); V_FALLTHROUGH case (0x000403): + ToV0_4_4(); + ValidateXML(XSDSchema(0x000404), m_convertedFileName); + V_FALLTHROUGH + case (0x000404): break; default: InvalidVersion(m_ver); @@ -134,7 +140,7 @@ void VVSTConverter::DowngradeToCurrentMaxVersion() bool VVSTConverter::IsReadOnly() const { // Check if attribute read-only was not changed in file format - Q_STATIC_ASSERT_X(VVSTConverter::MeasurementMaxVer == CONVERTER_VERSION_CHECK(0, 4, 3), + Q_STATIC_ASSERT_X(VVSTConverter::MeasurementMaxVer == CONVERTER_VERSION_CHECK(0, 4, 4), "Check attribute read-only."); // Possibly in future attribute read-only will change position etc. @@ -363,3 +369,14 @@ void VVSTConverter::ToV0_4_3() SetVersion(QStringLiteral("0.4.3")); Save(); } + +//--------------------------------------------------------------------------------------------------------------------- +void VVSTConverter::ToV0_4_4() +{ + // TODO. Delete if minimal supported version is 0.4.4 + Q_STATIC_ASSERT_X(VVSTConverter::MeasurementMinVer < CONVERTER_VERSION_CHECK(0, 4, 4), + "Time to refactor the code."); + + SetVersion(QStringLiteral("0.4.4")); + Save(); +} diff --git a/src/libs/ifc/xml/vvstconverter.h b/src/libs/ifc/xml/vvstconverter.h index 15872915f..5d20be30d 100644 --- a/src/libs/ifc/xml/vvstconverter.h +++ b/src/libs/ifc/xml/vvstconverter.h @@ -51,10 +51,10 @@ public: // GCC 4.6 doesn't allow constexpr and const together #if !defined(__INTEL_COMPILER) && !defined(__clang__) && defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__) <= 406 static Q_DECL_CONSTEXPR int MeasurementMinVer = CONVERTER_VERSION_CHECK(0, 3, 0); - static Q_DECL_CONSTEXPR int MeasurementMaxVer = CONVERTER_VERSION_CHECK(0, 4, 3); + static Q_DECL_CONSTEXPR int MeasurementMaxVer = CONVERTER_VERSION_CHECK(0, 4, 4); #else static Q_DECL_CONSTEXPR const int MeasurementMinVer = CONVERTER_VERSION_CHECK(0, 3, 0); - static Q_DECL_CONSTEXPR const int MeasurementMaxVer = CONVERTER_VERSION_CHECK(0, 4, 3); + static Q_DECL_CONSTEXPR const int MeasurementMaxVer = CONVERTER_VERSION_CHECK(0, 4, 4); #endif protected: @@ -84,6 +84,7 @@ private: void ToV0_4_1(); void ToV0_4_2(); void ToV0_4_3(); + void ToV0_4_4(); }; //---------------------------------------------------------------------------------------------------------------------