core defaults to safer umask
[quassel.git] / src / common / buffersyncer.h
index f57caae..4893189 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005-08 by the Quassel IRC Team                         *
+ *   Copyright (C) 2005-09 by the Quassel Project                          *
  *   devel@quassel-irc.org                                                 *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
 #include "types.h"
 
 class BufferSyncer : public SyncableObject {
+  SYNCABLE_OBJECT
   Q_OBJECT
 
 public:
   explicit BufferSyncer(QObject *parent);
+  explicit BufferSyncer(const QHash<BufferId, MsgId> &lastSeenMsg, QObject *parent);
+
   inline virtual const QMetaObject *syncMetaObject() const { return &staticMetaObject; }
 
   MsgId lastSeenMsg(BufferId buffer) const;
@@ -37,32 +40,28 @@ public slots:
   QVariantList initLastSeenMsg() const;
   void initSetLastSeenMsg(const QVariantList &);
 
-  virtual inline void requestSetLastSeenMsg(BufferId buffer, const MsgId &msgId) { emit setLastSeenMsgRequested(buffer, msgId); }
+  virtual inline void requestSetLastSeenMsg(BufferId buffer, const MsgId &msgId) { REQUEST(ARG(buffer), ARG(msgId)) }
 
-  virtual inline void requestRemoveBuffer(BufferId buffer) { emit removeBufferRequested(buffer); }
+  virtual inline void requestRemoveBuffer(BufferId buffer) { REQUEST(ARG(buffer)) }
   virtual void removeBuffer(BufferId buffer);
 
-  virtual inline void requestRenameBuffer(BufferId buffer, QString newName) { emit renameBufferRequested(buffer, newName); }
-  virtual inline void renameBuffer(BufferId buffer, QString newName) { emit bufferRenamed(buffer, newName); }
+  virtual inline void requestRenameBuffer(BufferId buffer, QString newName) { REQUEST(ARG(buffer), ARG(newName)) }
+  virtual inline void renameBuffer(BufferId buffer, QString newName) { SYNC(ARG(buffer), ARG(newName)) emit bufferRenamed(buffer, newName); }
 
-  virtual inline void requestMergeBuffersPermanently(BufferId buffer1, BufferId buffer2) { emit mergeBuffersPermanentlyRequested(buffer1, buffer2); }
+  virtual inline void requestMergeBuffersPermanently(BufferId buffer1, BufferId buffer2) { emit REQUEST(ARG(buffer1), ARG(buffer2)) }
   virtual void mergeBuffersPermanently(BufferId buffer1, BufferId buffer2);
 
+  virtual inline void requestPurgeBufferIds() { REQUEST(NO_ARG); }
+
 signals:
   void lastSeenMsgSet(BufferId buffer, const MsgId &msgId);
-  void setLastSeenMsgRequested(BufferId buffer, const MsgId &msgId);
-
-  void removeBufferRequested(BufferId buffer);
   void bufferRemoved(BufferId buffer);
-
-  void renameBufferRequested(BufferId buffer, QString newName);
   void bufferRenamed(BufferId buffer, QString newName);
-
-  void mergeBuffersPermanentlyRequested(BufferId buffer1, BufferId buffer2);
   void buffersPermanentlyMerged(BufferId buffer1, BufferId buffer2);
 
 protected slots:
   bool setLastSeenMsg(BufferId buffer, const MsgId &msgId);
+  QList<BufferId> bufferIds() const { return _lastSeenMsg.keys(); }
 
 private:
   QHash<BufferId, MsgId> _lastSeenMsg;