Add a flag to enable Qt deprecation warnings on Qt < 5.13
[quassel.git] / src / core / coresession.h
index 07426f9..cfa04e3 100644 (file)
@@ -32,6 +32,7 @@
 #include "coreignorelistmanager.h"
 #include "coreinfo.h"
 #include "message.h"
+#include "metricsserver.h"
 #include "peer.h"
 #include "protocol.h"
 #include "storage.h"
@@ -52,7 +53,6 @@ class EventStringifier;
 class InternalPeer;
 class IrcParser;
 class MessageEvent;
-class NetworkConnection;
 class RemotePeer;
 class SignalProxy;
 
@@ -83,7 +83,6 @@ public:
     const QString strictCompliantIdent(const CoreIdentity* identity);
 
     inline CoreNetworkConfig* networkConfig() const { return _networkConfig; }
-    NetworkConnection* networkConnection(NetworkId) const;
 
     Protocol::SessionState sessionState() const;
 
@@ -164,7 +163,7 @@ public slots:
      * @param[in] msg             Away message, or blank to set unaway
      * @param[in] skipFormatting  If true, skip timestamp formatting codes (e.g. if already done)
      */
-    void globalAway(const QString& msg = QString(), const bool skipFormatting = false);
+    void globalAway(const QString& msg = QString(), bool skipFormatting = false);
 
 signals:
     void initialized();
@@ -203,13 +202,7 @@ private slots:
     void removeClient(Peer* peer);
 
     void recvStatusMsgFromServer(QString msg);
-    void recvMessageFromServer(NetworkId networkId,
-                               Message::Type,
-                               BufferInfo::Type,
-                               const QString& target,
-                               const QString& text,
-                               const QString& sender = "",
-                               Message::Flags flags = Message::None);
+    void recvMessageFromServer(RawMessage msg);
 
     void destroyNetwork(NetworkId);
 
@@ -287,10 +280,35 @@ private:
     bool _processMessages;
     CoreIgnoreListManager _ignoreListManager;
     CoreHighlightRuleManager _highlightRuleManager;
+    MetricsServer* _metricsServer{nullptr};
+};
+
+struct NetworkInternalMessage
+{
+    Message::Type type;
+    BufferInfo::Type bufferType;
+    QString target;
+    QString text;
+    QString sender;
+    Message::Flags flags;
+    NetworkInternalMessage(Message::Type type,
+                           BufferInfo::Type bufferType,
+                           QString target,
+                           QString text,
+                           QString sender = "",
+                           Message::Flags flags = Message::None)
+        : type(type)
+        , bufferType(bufferType)
+        , target(std::move(target))
+        , text(std::move(text))
+        , sender(std::move(sender))
+        , flags(flags)
+    {}
 };
 
 struct RawMessage
 {
+    QDateTime timestamp;
     NetworkId networkId;
     Message::Type type;
     BufferInfo::Type bufferType;
@@ -298,9 +316,17 @@ struct RawMessage
     QString text;
     QString sender;
     Message::Flags flags;
-    RawMessage(
-        NetworkId networkId, Message::Type type, BufferInfo::Type bufferType, QString target, QString text, QString sender, Message::Flags flags)
-        : networkId(networkId)
+
+    RawMessage(QDateTime timestamp,
+               NetworkId networkId,
+               Message::Type type,
+               BufferInfo::Type bufferType,
+               QString target,
+               QString text,
+               QString sender,
+               Message::Flags flags)
+        : timestamp(std::move(timestamp))
+        , networkId(networkId)
         , type(type)
         , bufferType(bufferType)
         , target(std::move(target))
@@ -308,4 +334,16 @@ struct RawMessage
         , sender(std::move(sender))
         , flags(flags)
     {}
+
+    RawMessage(NetworkId networkId,
+               const NetworkInternalMessage& msg)
+        : timestamp(QDateTime::currentDateTimeUtc())
+        , networkId(networkId)
+        , type(msg.type)
+        , bufferType(msg.bufferType)
+        , target(msg.target)
+        , text(msg.text)
+        , sender(msg.sender)
+        , flags(msg.flags)
+    {}
 };