Introduce feature flag for remote disconnecting
[quassel.git] / src / common / quassel.h
index 09a5d84..e69a898 100644 (file)
@@ -72,8 +72,17 @@ public:
         HideInactiveNetworks = 0x0008,
         PasswordChange = 0x0010,
         CapNegotiation = 0x0020,           /// IRCv3 capability negotiation, account tracking
-
-        NumFeatures = 0x0020
+        VerifyServerSSL = 0x0040,          /// IRC server SSL validation
+        CustomRateLimits = 0x0080,         /// IRC server custom message rate limits
+        DccFileTransfer = 0x0100,
+        AwayFormatTimestamp = 0x0200,      /// Timestamp formatting in away (e.g. %%hh:mm%%)
+        Authenticators = 0x0400,           /// Whether or not the core supports auth backends.
+        BufferActivitySync = 0x0800,       /// Sync buffer activity status
+        CoreSideHighlights = 0x1000,       /// Core-Side highlight configuration and matching
+        SenderPrefixes = 0x2000,           /// Show prefixes for senders in backlog
+        RemoteDisconnect = 0x4000,         /// Allow this peer to be remotely disconnected
+
+        NumFeatures = 0x4000
     };
     Q_DECLARE_FLAGS(Features, Feature)
 
@@ -143,6 +152,16 @@ protected:
     virtual bool init();
     virtual void quit();
 
+    /**
+     * Requests a reload of relevant runtime configuration.
+     *
+     * Does not reload all configuration, but could catch things such as SSL certificates.  Unless
+     * overridden, simply does nothing.
+     *
+     * @return True if configuration reload successful, otherwise false
+     */
+    virtual bool reloadConfig() { return true; }
+
     inline void setRunMode(RunMode mode);
     inline void setDataDirPaths(const QStringList &paths);
     QStringList findDataDirPaths() const;