X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fcommon%2Fquassel.h;h=b42ee47d38503907ba89d9404f2346fcc8878408;hb=b619ad78665f63b798389d0f7a33a22da7d93718;hp=fa7d02c9e96109e8dad8e0b419956d2ec4fbc7df;hpb=906391224228274450914361efd104630827e580;p=quassel.git diff --git a/src/common/quassel.h b/src/common/quassel.h index fa7d02c9..b42ee47d 100644 --- a/src/common/quassel.h +++ b/src/common/quassel.h @@ -58,6 +58,25 @@ public: 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, + + NumFeatures = 0x0001 + }; + Q_DECLARE_FLAGS(Features, Feature); + + //! The features the current version of Quassel supports (\sa Feature) + /** \return An ORed list of all enum values in Feature + */ + static Features features(); + virtual ~Quassel(); static void setupBuildInfo(const QString &generated); @@ -132,6 +151,8 @@ private: static QString _translationDirPath; }; +Q_DECLARE_OPERATORS_FOR_FLAGS(Quassel::Features); + const Quassel::BuildInfo & Quassel::buildInfo() { return _buildInfo; } Quassel::RunMode Quassel::runMode() { return _runMode; } void Quassel::setRunMode(Quassel::RunMode mode) { _runMode = mode; }