- QString version;
- QString baseVersion;
- QString generatedVersion;
- QString buildDate;
- QString buildTime;
- QString commitHash;
- uint archiveDate;
- uint protocolVersion;
- uint clientNeedsProtocol;
- uint coreNeedsProtocol;
-
- QString applicationName;
- QString coreApplicationName;
- QString clientApplicationName;
- QString organizationName;
- QString organizationDomain;
+ QString fancyVersionString; // clickable rev
+ QString plainVersionString; // no <a> tag
+
+ QString baseVersion;
+ QString generatedVersion;
+ QString commitHash;
+ QString commitDate;
+
+ uint protocolVersion; // deprecated
+
+ QString applicationName;
+ QString coreApplicationName;
+ QString clientApplicationName;
+ QString organizationName;
+ QString organizationDomain;
+ };
+
+ //! A list of features that are optional in core and/or client, but need runtime checking
+ /** Some features require an uptodate counterpart, but don't justify a protocol break.
+ * This is what we use this enum for. Add such features to it and check at runtime on the other
+ * side for their existence.
+ *
+ * This list should be cleaned up after every protocol break, as we can assume them to be present then.
+ */
+ enum Feature {
+ SynchronizedMarkerLine = 0x0001,
+ SaslAuthentication = 0x0002,
+ SaslExternal = 0x0004,
+ HideInactiveNetworks = 0x0008,
+ PasswordChange = 0x0010,
+ CapNegotiation = 0x0020, /// IRCv3 capability negotiation, account tracking
+ VerifyServerSSL = 0x0040, /// IRC server SSL validation
+ CustomRateLimits = 0x0080, /// IRC server custom message rate limits
+
+ NumFeatures = 0x0080