diff --git a/include/ProjectVersion.h b/include/ProjectVersion.h index a253a18a40..c41d2ae08a 100644 --- a/include/ProjectVersion.h +++ b/include/ProjectVersion.h @@ -31,6 +31,24 @@ enum CompareType { Major, Minor, Release, Build }; + +static inline int parseMajor(QString & version) { + return version.section( '.', 0, 0 ).toInt(); +} + +static inline int parseMinor(QString & version) { + return version.section( '.', 1, 1 ).toInt(); +} + +static inline int parseRelease(QString & version) { + return version.section( '.', 2 ).section( '-', 0, 0 ).toInt(); +} + +static inline QString parseBuild(QString & version) { + return version.section( '.', 2 ).section( '-', 1 ); +} + + /*! \brief Version number parsing and comparison * * Parses and compares version information. i.e. "1.0.3" < "1.0.10" @@ -40,10 +58,20 @@ class ProjectVersion public: ProjectVersion(QString version, CompareType c = CompareType::Build) : m_version(version), - m_major(version.section( '.', 0, 0 ).toInt()) , - m_minor(version.section( '.', 1, 1 ).toInt()) , - m_release(version.section( '.', 2 ).section( '-', 0, 0 ).toInt()) , - m_build(version.section( '.', 2 ).section( '-', 1 )), + m_major(parseMajor(m_version)), + m_minor(parseMinor(m_version)), + m_release(parseRelease(m_version)) , + m_build(parseBuild(m_version)), + m_compareType(c) + { + } + + ProjectVersion(const char * version, CompareType c = CompareType::Build) : + m_version(QString(version)), + m_major(parseMajor(m_version)), + m_minor(parseMinor(m_version)), + m_release(parseRelease(m_version)) , + m_build(parseBuild(m_version)), m_compareType(c) { } @@ -55,7 +83,7 @@ public: int getRelease() { return m_release; } QString getBuild() { return m_build; } CompareType getCompareType() { return m_compareType; } - void setCompareType(CompareType compareType) { m_compareType = compareType; } + ProjectVersion setCompareType(CompareType compareType) { m_compareType = compareType; return * this; } private: @@ -67,17 +95,12 @@ private: CompareType m_compareType; } ; - - - inline int compare(ProjectVersion v1, QString v2) { return ProjectVersion::compare(v1, ProjectVersion(v2)); } - - /* * ProjectVersion v. char[] */ diff --git a/src/core/ProjectVersion.cpp b/src/core/ProjectVersion.cpp index e9d29edcad..df7b5bd466 100644 --- a/src/core/ProjectVersion.cpp +++ b/src/core/ProjectVersion.cpp @@ -76,4 +76,3 @@ int ProjectVersion::compare(ProjectVersion v1, ProjectVersion v2) return QString::compare(v1.getBuild(), v2.getBuild()); } -