/***************************************************************************
- * 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 "buffersyncer.h"
+INIT_SYNCABLE_OBJECT(BufferSyncer)
BufferSyncer::BufferSyncer(QObject *parent)
: SyncableObject(parent)
{
}
+BufferSyncer::BufferSyncer(const QHash<BufferId, MsgId> &lastSeenMsg, QObject *parent)
+ : SyncableObject(parent),
+ _lastSeenMsg(lastSeenMsg)
+{
+}
MsgId BufferSyncer::lastSeenMsg(BufferId buffer) const {
if(_lastSeenMsg.contains(buffer))
const MsgId oldLastSeenMsg = lastSeenMsg(buffer);
if(!oldLastSeenMsg.isValid() || oldLastSeenMsg < msgId) {
_lastSeenMsg[buffer] = msgId;
+ SYNC(ARG(buffer), ARG(msgId))
emit lastSeenMsgSet(buffer, msgId);
return true;
}
}
}
-void BufferSyncer::requestSetLastSeenMsg(BufferId buffer, const MsgId &msgId) {
- if(setLastSeenMsg(buffer, msgId))
- emit setLastSeenMsgRequested(buffer, msgId);
-}
-
-
-void BufferSyncer::requestRemoveBuffer(BufferId buffer) {
- emit removeBufferRequested(buffer);
-}
-
void BufferSyncer::removeBuffer(BufferId buffer) {
if(_lastSeenMsg.contains(buffer))
_lastSeenMsg.remove(buffer);
+ SYNC(ARG(buffer))
emit bufferRemoved(buffer);
}
-void BufferSyncer::renameBuffer(BufferId buffer, QString newName) {
- emit bufferRenamed(buffer, newName);
+void BufferSyncer::mergeBuffersPermanently(BufferId buffer1, BufferId buffer2) {
+ if(_lastSeenMsg.contains(buffer2))
+ _lastSeenMsg.remove(buffer2);
+ SYNC(ARG(buffer1), ARG(buffer2))
+ emit buffersPermanentlyMerged(buffer1, buffer2);
}