1 #ifndef Header_UtilsVersion
2 #define Header_UtilsVersion
3 
4 #define TEXSTUDIO "TeXstudio"
5 
6 
7 #define TXSVERSION "4.1.2"
8 
9 #define TXSVERSION_NUMERIC 0x040102
10 
11 
12 
13 //#define IS_DEVELOPMENT_VERSION (TXSVERSION_NUMERIC & 0x000001)
14 #define IS_DEVELOPMENT_VERSION 0 // odd numbers have not been used at all, git version gives a much clearer insight about the used version
15 
16 extern const char *TEXSTUDIO_GIT_REVISION;
17 
18 #ifdef QT_NO_DEBUG
19 #define COMPILED_DEBUG_OR_RELEASE "R"
20 #else
21 #define COMPILED_DEBUG_OR_RELEASE "D"
22 #endif
23 
24 #include "mostQtHeaders.h"
25 
26 int gitRevisionToInt(const char *);
27 
28 class Version
29 {
30 public:
31 	enum VersionCompareResult {Invalid = -2, Lower = -1, Same = 0, Higher = 1};
32 	static VersionCompareResult compareStringVersion(const QString &v1, const QString &v2);
33 	static VersionCompareResult compareIntVersion(const QList<int> &v1, const QList<int> &v2);
34 	static QList<int> parseVersionNumber(const QString &versionNumber);
35 	static bool versionNumberIsValid(const QString &versionNumber);
36     static int parseGitRevisionNumber(const QString &revision);
37 
Version()38 	Version() : revision(0) {}
versionNumber(number)39 	Version(QString number, int rev = 0) : versionNumber(number), revision(rev) {}
versionNumber(number)40     Version(QString number, QString tp,int rev = 0) : versionNumber(number), type(tp), revision(rev) {}
41 	static Version current();
42 
43 	QString platform;       // "win" or "mac" or "linux"
44 	QString versionNumber;  // "2.10.2"
45 	QString type;           // "stable", "release candidate" or "development"
46     int revision;           // 5310, now changed to revision after tag as deliverd by "git describe"
47 
48 	bool operator > (const Version &other) const;
49 
50 	bool isEmpty() const;
51 	bool isValid() const;
52 
53 };
54 #endif // UTILSVERSION_H
55