Use SyncableObject::requestUpdate() for updating Identities
[quassel.git] / src / client / client.h
index 7c42784..8b991bd 100644 (file)
@@ -31,6 +31,7 @@
 class BufferInfo;
 class Message;
 class MessageModel;
+class AbstractMessageProcessor;
 
 class Identity;
 class Network;
@@ -52,15 +53,19 @@ class Client : public QObject {
   Q_OBJECT
 
 public:
+  enum ClientMode {
+    LocalCore,
+    RemoteCore
+  };
+
   static Client *instance();
   static void destroy();
   static void init(AbstractUi *);
 
   static QList<BufferInfo> allBufferInfos();
   static QList<Buffer *> buffers();
-  static Buffer *buffer(BufferId bufferUid);
+  // static Buffer *buffer(BufferId bufferUid);
   static Buffer *buffer(BufferInfo);
-  static inline Buffer *monitorBuffer() { return instance()->_monitorBuffer; }
 
   static QList<NetworkId> networkIds();
   static const Network * network(NetworkId);
@@ -77,9 +82,10 @@ public:
 
   //! Request update of an identity with the given data.
   /** The request will be sent to the core, and will be propagated back to all the clients.
-   *  \param identity The identity to be updated.
+   *  \param id The identity to be updated.
+   *  \param serializedData The identity's content (cf. SyncableObject::toVariantMap())
    */
-  static void updateIdentity(const Identity &identity);
+  static void updateIdentity(IdentityId id, const QVariantMap &serializedData);
 
   //! Request removal of the identity with the given ID from the core (and all the clients, of course).
   /** \param id The ID of the identity to be removed.
@@ -93,6 +99,7 @@ public:
   static inline NetworkModel *networkModel() { return instance()->_networkModel; }
   static inline BufferModel *bufferModel() { return instance()->_bufferModel; }
   static inline MessageModel *messageModel() { return instance()->_messageModel; }
+  static inline AbstractMessageProcessor *messageProcessor() { return instance()->_messageProcessor; }
   static inline SignalProxy *signalProxy() { return instance()->_signalProxy; }
 
   static inline ClientBacklogManager *backlogManager() { return instance()->_backlogManager; }
@@ -106,9 +113,6 @@ public:
 
   static void userInput(BufferInfo bufferInfo, QString message);
 
-  enum ClientMode { LocalCore, RemoteCore };
-
-  static void checkForHighlight(Message &msg);
   static void setBufferLastSeenMsg(BufferId id, const MsgId &msgId); // this is synced to core and other clients
   static void removeBuffer(BufferId id);
 
@@ -142,8 +146,6 @@ signals:
 
   //! Sent to the core when an identity shall be created. Should not be used elsewhere.
   void requestCreateIdentity(const Identity &);
-  //! Sent to the core when an identity shall be updated. Should not be used elsewhere.
-  void requestUpdateIdentity(const Identity &);
   //! Sent to the core when an identity shall be removed. Should not be used elsewhere.
   void requestRemoveIdentity(IdentityId);
 
@@ -174,7 +176,6 @@ private slots:
   void recvStatusMsg(QString network, QString message);
   void receiveBacklog(BufferId bufferId, const QVariantList &msgs);
   void updateBufferInfo(BufferInfo);
-  void updateLastSeenMsg(BufferId id, const MsgId &msgId);
 
   void bufferDestroyed();
   void networkDestroyed();
@@ -213,6 +214,7 @@ private:
   ClientIrcListHelper *_ircListHelper;
 
   MessageModel *_messageModel;
+  AbstractMessageProcessor *_messageProcessor;
 
   ClientMode clientMode;
 
@@ -223,8 +225,6 @@ private:
   QHash<NetworkId, Network *> _networks;
   QHash<IdentityId, Identity *> _identities;
 
-  Buffer *_monitorBuffer;
-
   static AccountId _currentCoreAccount;
 
   friend class ClientSyncer;