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();
};
//---------------------------------------------------------------------------------------------------------------------