AusweisApp2/src/global/VersionNumber.h

64 lines
1.5 KiB
C++

/*!
* \brief Extension to QVersionNumber.
*
* \copyright Copyright (c) 2016-2019 Governikus GmbH & Co. KG, Germany
*/
#pragma once
#include <QVersionNumber>
namespace governikus
{
class VersionNumber
{
private:
QVersionNumber mVersionNumber;
QString mSuffix;
friend bool operator==(const VersionNumber& pLeft, const VersionNumber& pRight);
public:
static const VersionNumber& getApplicationVersion();
explicit VersionNumber(const QString& pVersion);
const QVersionNumber& getVersionNumber() const;
bool isDeveloperVersion() const;
int getDistance() const;
QString getBranch() const;
QString getRevision() const;
bool isDraft() const;
};
inline bool operator==(const VersionNumber& pLeft, const VersionNumber& pRight)
{
return &pLeft == &pRight || (
pLeft.mVersionNumber == pRight.mVersionNumber &&
pLeft.mSuffix == pRight.mSuffix);
}
inline bool operator!=(const VersionNumber& pLeft, const VersionNumber& pRight)
{
return !(pLeft == pRight);
}
inline bool operator<(const VersionNumber& pLeft, const VersionNumber& pRight)
{
return pLeft.getVersionNumber() < pRight.getVersionNumber() ||
(pLeft.getVersionNumber() == pRight.getVersionNumber() && pLeft.getDistance() < pRight.getDistance());
}
inline bool operator>(const VersionNumber& pLeft, const VersionNumber& pRight)
{
return pLeft.getVersionNumber() > pRight.getVersionNumber() ||
(pLeft.getVersionNumber() == pRight.getVersionNumber() && pLeft.getDistance() > pRight.getDistance());
}
} // namespace governikus