diff options
Diffstat (limited to 'depends/util/include/modutils.h')
-rw-r--r-- | depends/util/include/modutils.h | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/depends/util/include/modutils.h b/depends/util/include/modutils.h index e04db66f..1fecd4d5 100644 --- a/depends/util/include/modutils.h +++ b/depends/util/include/modutils.h @@ -1,6 +1,8 @@ #pragma once #include <QString> +#include <QList> + #include "libutil_config.h" class QUrl; @@ -10,10 +12,12 @@ namespace Util struct Version { Version(const QString &str); + Version() {} bool operator<(const Version &other) const; bool operator<=(const Version &other) const; bool operator>(const Version &other) const; + bool operator>=(const Version &other) const; bool operator==(const Version &other) const; bool operator!=(const Version &other) const; @@ -24,9 +28,34 @@ struct Version private: QString m_string; + struct Section + { + explicit Section(const QString &str, const int num) : numValid(true), number(num), string(str) {} + explicit Section(const QString &str) : numValid(false), string(str) {} + explicit Section() {} + bool numValid; + int number; + QString string; + + inline bool operator!=(const Section &other) const + { + return (numValid && other.numValid) ? (number != other.number) : (string != other.string); + } + inline bool operator<(const Section &other) const + { + return (numValid && other.numValid) ? (number < other.number) : (string < other.string); + } + inline bool operator>(const Section &other) const + { + return (numValid && other.numValid) ? (number > other.number) : (string > other.string); + } + }; + QList<Section> m_sections; + + void parse(); }; -LIBUTIL_EXPORT QUrl expandQMURL(const QString &in); LIBUTIL_EXPORT bool versionIsInInterval(const QString &version, const QString &interval); +LIBUTIL_EXPORT bool versionIsInInterval(const Version &version, const QString &interval); } |