projects
/
quassel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Implement /ignore functionality
[quassel.git]
/
src
/
core
/
corebuffersyncer.cpp
diff --git
a/src/core/corebuffersyncer.cpp
b/src/core/corebuffersyncer.cpp
index
fc4812a
..
ce90e42
100644
(file)
--- a/
src/core/corebuffersyncer.cpp
+++ b/
src/core/corebuffersyncer.cpp
@@
-1,5
+1,5
@@
/***************************************************************************
/***************************************************************************
- * Copyright (C) 2005-201
5
by the Quassel Project *
+ * Copyright (C) 2005-201
6
by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
@@
-34,17
+34,21
@@
public:
INIT_SYNCABLE_OBJECT(CoreBufferSyncer)
CoreBufferSyncer::CoreBufferSyncer(CoreSession *parent)
INIT_SYNCABLE_OBJECT(CoreBufferSyncer)
CoreBufferSyncer::CoreBufferSyncer(CoreSession *parent)
- : BufferSyncer(Core::bufferLastSeenMsgIds(parent->user()), Core::bufferMarkerLineMsgIds(parent->user()), parent),
+ : BufferSyncer(Core::bufferLastSeenMsgIds(parent->user()), Core::bufferMarkerLineMsgIds(parent->user()),
Core::bufferActivities(parent->user()),
parent),
_coreSession(parent),
_purgeBuffers(false)
{
_coreSession(parent),
_purgeBuffers(false)
{
+ connect(parent, SIGNAL(displayMsg(Message)), SLOT(addBufferActivity(Message)));
}
void CoreBufferSyncer::requestSetLastSeenMsg(BufferId buffer, const MsgId &msgId)
{
}
void CoreBufferSyncer::requestSetLastSeenMsg(BufferId buffer, const MsgId &msgId)
{
- if (setLastSeenMsg(buffer, msgId))
+ if (setLastSeenMsg(buffer, msgId)) {
+ int activity = Core::bufferActivity(buffer, msgId);
+ setBufferActivity(buffer, activity);
dirtyLastSeenBuffers << buffer;
dirtyLastSeenBuffers << buffer;
+ }
}
}
@@
-71,8
+75,13
@@
void CoreBufferSyncer::storeDirtyIds()
Core::setBufferMarkerLineMsg(userId, bufferId, msgId);
}
Core::setBufferMarkerLineMsg(userId, bufferId, msgId);
}
+ foreach(BufferId bufferId, dirtyActivities) {
+ Core::setBufferActivity(userId, bufferId, activity(bufferId));
+ }
+
dirtyLastSeenBuffers.clear();
dirtyMarkerLineBuffers.clear();
dirtyLastSeenBuffers.clear();
dirtyMarkerLineBuffers.clear();
+ dirtyActivities.clear();
}
}
@@
-129,13
+138,14
@@
void CoreBufferSyncer::mergeBuffersPermanently(BufferId bufferId1, BufferId buff
BufferInfo bufferInfo1 = Core::getBufferInfo(_coreSession->user(), bufferId1);
BufferInfo bufferInfo2 = Core::getBufferInfo(_coreSession->user(), bufferId2);
if (!bufferInfo1.isValid() || !bufferInfo2.isValid()) {
BufferInfo bufferInfo1 = Core::getBufferInfo(_coreSession->user(), bufferId1);
BufferInfo bufferInfo2 = Core::getBufferInfo(_coreSession->user(), bufferId2);
if (!bufferInfo1.isValid() || !bufferInfo2.isValid()) {
- qWarning() << "CoreBufferSyncer::mergeBufferPermanently(): invalid BufferIds:" << bufferId1 << bufferId2 << "for User:" << _coreSession->user();
+ qWarning() << "CoreBufferSyncer::mergeBuffer
s
Permanently(): invalid BufferIds:" << bufferId1 << bufferId2 << "for User:" << _coreSession->user();
return;
}
return;
}
- if (bufferInfo1.type() != BufferInfo::QueryBuffer || bufferInfo2.type() != BufferInfo::QueryBuffer) {
- qWarning() << "CoreBufferSyncer::mergeBufferPermanently(): only QueryBuffers can be merged!" << bufferId1 << bufferId2;
- return;
+ if ((bufferInfo1.type() != BufferInfo::QueryBuffer && bufferInfo1.type() != BufferInfo::ChannelBuffer)
+ || (bufferInfo2.type() != BufferInfo::QueryBuffer && bufferInfo2.type() != BufferInfo::ChannelBuffer)) {
+ qWarning() << "CoreBufferSyncer::mergeBuffersPermanently(): only QueryBuffers and/or ChannelBuffers can be merged!" << bufferId1 << bufferId2;
+ return;
}
if (Core::mergeBuffersPermanently(_coreSession->user(), bufferId1, bufferId2)) {
}
if (Core::mergeBuffersPermanently(_coreSession->user(), bufferId1, bufferId2)) {
@@
-180,3
+190,8
@@
void CoreBufferSyncer::purgeBufferIds()
}
}
}
}
}
}
+
+void CoreBufferSyncer::setBufferActivity(BufferId buffer, int activity) {
+ BufferSyncer::setBufferActivity(buffer, activity);
+ dirtyActivities << buffer;
+}