aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/corelib/tools/version.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/corelib/tools/version.h')
-rw-r--r--src/lib/corelib/tools/version.h46
1 files changed, 35 insertions, 11 deletions
diff --git a/src/lib/corelib/tools/version.h b/src/lib/corelib/tools/version.h
index a0239a6e4..9e31d13b0 100644
--- a/src/lib/corelib/tools/version.h
+++ b/src/lib/corelib/tools/version.h
@@ -55,21 +55,23 @@ class QBS_EXPORT Version
{
public:
explicit Version(int majorVersion = 0, int minorVersion = 0, int patchLevel = 0,
- int buildNr = 0);
+ int buildNr = 0)
+ : m_major(majorVersion), m_minor(minorVersion), m_patch(patchLevel), m_build(buildNr)
+ { }
bool isValid() const { return m_major || m_minor || m_patch || m_build; }
- int majorVersion() const;
- void setMajorVersion(int majorVersion);
+ int majorVersion() const { return m_major; }
+ void setMajorVersion(int majorVersion) { m_major = majorVersion; }
- int minorVersion() const;
- void setMinorVersion(int minorVersion);
+ int minorVersion() const { return m_minor; }
+ void setMinorVersion(int minorVersion) { m_minor = minorVersion;}
- int patchLevel() const;
- void setPatchLevel(int patchLevel);
+ int patchLevel() const { return m_patch; }
+ void setPatchLevel(int patchLevel) { m_patch = patchLevel; }
- int buildNumber() const;
- void setBuildNumber(int nr);
+ int buildNumber() const { return m_build; }
+ void setBuildNumber(int nr) { m_build = nr; }
static Version fromString(const QString &versionString, bool buildNumberAllowed = false);
QString toString(const QChar &separator = QLatin1Char('.'),
@@ -86,7 +88,9 @@ class VersionRange
{
public:
VersionRange() = default;
- VersionRange(const Version &minVersion, const Version &maxVersion);
+ VersionRange(const Version &minVersion, const Version &maxVersion)
+ : minimum(minVersion), maximum(maxVersion)
+ { }
Version minimum;
Version maximum; // exclusive
@@ -94,7 +98,27 @@ public:
VersionRange &narrowDown(const VersionRange &other);
};
-QBS_EXPORT int compare(const Version &lhs, const Version &rhs);
+inline int compare(const Version &lhs, const Version &rhs)
+{
+ if (lhs.majorVersion() < rhs.majorVersion())
+ return -1;
+ if (lhs.majorVersion() > rhs.majorVersion())
+ return 1;
+ if (lhs.minorVersion() < rhs.minorVersion())
+ return -1;
+ if (lhs.minorVersion() > rhs.minorVersion())
+ return 1;
+ if (lhs.patchLevel() < rhs.patchLevel())
+ return -1;
+ if (lhs.patchLevel() > rhs.patchLevel())
+ return 1;
+ if (lhs.buildNumber() < rhs.buildNumber())
+ return -1;
+ if (lhs.buildNumber() > rhs.buildNumber())
+ return 1;
+ return 0;
+}
+
inline bool operator==(const Version &lhs, const Version &rhs) { return compare(lhs, rhs) == 0; }
inline bool operator!=(const Version &lhs, const Version &rhs) { return !operator==(lhs, rhs); }
inline bool operator<(const Version &lhs, const Version &rhs) { return compare(lhs, rhs) < 0; }