projects
/
quassel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Event backend porting
[quassel.git]
/
src
/
core
/
corebuffersyncer.cpp
diff --git
a/src/core/corebuffersyncer.cpp
b/src/core/corebuffersyncer.cpp
index
b055e72
..
55c28b2
100644
(file)
--- a/
src/core/corebuffersyncer.cpp
+++ b/
src/core/corebuffersyncer.cpp
@@
-30,8
+30,9
@@
public:
PurgeEvent() : QEvent(QEvent::User) {}
};
PurgeEvent() : QEvent(QEvent::User) {}
};
+INIT_SYNCABLE_OBJECT(CoreBufferSyncer)
CoreBufferSyncer::CoreBufferSyncer(CoreSession *parent)
CoreBufferSyncer::CoreBufferSyncer(CoreSession *parent)
- : BufferSyncer(Core::bufferLastSeenMsgIds(parent->user()), parent),
+ : BufferSyncer(Core::bufferLastSeenMsgIds(parent->user()),
Core::bufferMarkerLineMsgIds(parent->user()),
parent),
_coreSession(parent),
_purgeBuffers(false)
{
_coreSession(parent),
_purgeBuffers(false)
{
@@
-39,18
+40,31
@@
CoreBufferSyncer::CoreBufferSyncer(CoreSession *parent)
void CoreBufferSyncer::requestSetLastSeenMsg(BufferId buffer, const MsgId &msgId) {
if(setLastSeenMsg(buffer, msgId))
void CoreBufferSyncer::requestSetLastSeenMsg(BufferId buffer, const MsgId &msgId) {
if(setLastSeenMsg(buffer, msgId))
- dirtyBuffers << buffer;
+ dirtyLastSeenBuffers << buffer;
+}
+
+void CoreBufferSyncer::requestSetMarkerLine(BufferId buffer, const MsgId &msgId) {
+ if(setMarkerLine(buffer, msgId))
+ dirtyMarkerLineBuffers << buffer;
}
void CoreBufferSyncer::storeDirtyIds() {
UserId userId = _coreSession->user();
MsgId msgId;
}
void CoreBufferSyncer::storeDirtyIds() {
UserId userId = _coreSession->user();
MsgId msgId;
- foreach(BufferId bufferId, dirtyBuffers) {
+ foreach(BufferId bufferId, dirty
LastSeen
Buffers) {
msgId = lastSeenMsg(bufferId);
if(msgId.isValid())
Core::setBufferLastSeenMsg(userId, bufferId, msgId);
}
msgId = lastSeenMsg(bufferId);
if(msgId.isValid())
Core::setBufferLastSeenMsg(userId, bufferId, msgId);
}
- dirtyBuffers.clear();
+
+ foreach(BufferId bufferId, dirtyMarkerLineBuffers) {
+ msgId = markerLine(bufferId);
+ if(msgId.isValid())
+ Core::setBufferMarkerLineMsg(userId, bufferId, msgId);
+ }
+
+ dirtyLastSeenBuffers.clear();
+ dirtyMarkerLineBuffers.clear();
}
void CoreBufferSyncer::removeBuffer(BufferId bufferId) {
}
void CoreBufferSyncer::removeBuffer(BufferId bufferId) {
@@
-139,7
+153,7
@@
void CoreBufferSyncer::purgeBufferIds() {
actualBuffers << bufferInfo.bufferId();
}
actualBuffers << bufferInfo.bufferId();
}
- Q
List<BufferId> storedIds = bufferIds
();
+ Q
Set<BufferId> storedIds = lastSeenBufferIds().toSet() + markerLineBufferIds().toSet
();
foreach(BufferId bufferId, storedIds) {
if(!actualBuffers.contains(bufferId)) {
BufferSyncer::removeBuffer(bufferId);
foreach(BufferId bufferId, storedIds) {
if(!actualBuffers.contains(bufferId)) {
BufferSyncer::removeBuffer(bufferId);