aboutsummaryrefslogtreecommitdiff
path: root/lib/room.cpp
diff options
context:
space:
mode:
authorAlexey Andreyev <aa13q@ya.ru>2019-08-23 18:00:53 +0300
committerAlexey Andreev <aa13q@ya.ru>2020-02-25 18:08:50 +0300
commit8ff15ee94fc39eef1279d479d12b1cbdec9f4ac5 (patch)
tree1798c445550c730b53903c1ca60f450fa3b42f2c /lib/room.cpp
parent6a3cd81b5179a38b5731f09b62f56b24ada7ff0f (diff)
downloadlibquotient-8ff15ee94fc39eef1279d479d12b1cbdec9f4ac5.tar.gz
libquotient-8ff15ee94fc39eef1279d479d12b1cbdec9f4ac5.zip
Room: fix merge regression
Signed-off-by: Alexey Andreev <aa13q@ya.ru>
Diffstat (limited to 'lib/room.cpp')
-rw-r--r--lib/room.cpp90
1 files changed, 47 insertions, 43 deletions
diff --git a/lib/room.cpp b/lib/room.cpp
index 11a50dde..ecb5a7ad 100644
--- a/lib/room.cpp
+++ b/lib/room.cpp
@@ -449,7 +449,7 @@ Room::Room(Connection* connection, QString id, JoinState initialJoinState)
emit baseStateLoaded();
return this == r; // loadedRoomState fires only once per room
});
- qCDebug(MAIN) << "New" << toCString(initialJoinState) << "Room:" << id;
+ qCDebug(STATE) << "New" << toCString(initialJoinState) << "Room:" << id;
}
Room::~Room() { delete d; }
@@ -587,8 +587,8 @@ void Room::setJoinState(JoinState state)
if (state == oldState)
return;
d->joinState = state;
- qCDebug(MAIN) << "Room" << id() << "changed state: " << int(oldState)
- << "->" << int(state);
+ qCDebug(STATE) << "Room" << id() << "changed state: " << int(oldState)
+ << "->" << int(state);
emit changed(Change::JoinStateChange);
emit joinStateChanged(oldState, state);
}
@@ -644,12 +644,12 @@ void Room::Private::updateUnreadCount(rev_iter_t from, rev_iter_t to)
unreadMessages = 0;
unreadMessages += newUnreadMessages;
- qCDebug(MAIN) << "Room" << q->objectName() << "has gained"
- << newUnreadMessages << "unread message(s),"
- << (q->readMarker() == timeline.crend()
- ? "in total at least"
- : "in total")
- << unreadMessages << "unread message(s)";
+ qCDebug(MESSAGES) << "Room" << q->objectName() << "has gained"
+ << newUnreadMessages << "unread message(s),"
+ << (q->readMarker() == timeline.crend()
+ ? "in total at least"
+ : "in total")
+ << unreadMessages << "unread message(s)";
emit q->unreadMessagesChanged(q);
}
}
@@ -691,11 +691,11 @@ Room::Changes Room::Private::promoteReadMarker(User* u, rev_iter_t newMarker,
if (force || unreadMessages != oldUnreadCount) {
if (unreadMessages == -1) {
- qCDebug(MAIN)
+ qCDebug(MESSAGES)
<< "Room" << displayname << "has no more unread messages";
} else
- qCDebug(MAIN) << "Room" << displayname << "still has"
- << unreadMessages << "unread message(s)";
+ qCDebug(MESSAGES) << "Room" << displayname << "still has"
+ << unreadMessages << "unread message(s)";
emit q->unreadMessagesChanged(q);
changes |= Change::UnreadNotifsChange;
}
@@ -708,7 +708,7 @@ Room::Changes Room::Private::markMessagesAsRead(rev_iter_t upToMarker)
const auto prevMarker = q->readMarker();
auto changes = promoteReadMarker(q->localUser(), upToMarker);
if (prevMarker != upToMarker)
- qCDebug(MAIN) << "Marked messages as read until" << *q->readMarker();
+ qCDebug(MESSAGES) << "Marked messages as read until" << *q->readMarker();
// We shouldn't send read receipts for the local user's own messages - so
// search earlier messages for the latest message not from the local user
@@ -1287,7 +1287,7 @@ Room::Changes Room::Private::setSummary(RoomSummary&& newSummary)
{
if (!summary.merge(newSummary))
return Change::NoChange;
- qCDebug(MAIN).nospace().noquote()
+ qCDebug(STATE).nospace().noquote()
<< "Updated room summary for " << q->objectName() << ": " << summary;
emit q->memberListChanged();
return Change::SummaryChange;
@@ -1457,7 +1457,7 @@ void Room::updateData(SyncRoomData&& data, bool fromCache)
// See https://github.com/quotient-im/libQuotient/wiki/unread_count
if (data.unreadCount != -2 && data.unreadCount != d->unreadMessages) {
- qCDebug(MAIN) << "Setting unread_count to" << data.unreadCount;
+ qCDebug(MESSAGES) << "Setting unread_count to" << data.unreadCount;
d->unreadMessages = data.unreadCount;
emit unreadMessagesChanged(this);
}
@@ -1570,12 +1570,13 @@ QString Room::retryMessage(const QString& txnId)
if (transferIt != d->fileTransfers.end()) {
Q_ASSERT(transferIt->isUpload);
if (transferIt->status == FileTransferInfo::Completed) {
- qCDebug(MAIN) << "File for transaction" << txnId
- << "has already been uploaded, bypassing re-upload";
+ qCDebug(MESSAGES)
+ << "File for transaction" << txnId
+ << "has already been uploaded, bypassing re-upload";
} else {
if (isJobRunning(transferIt->job)) {
- qCDebug(MAIN) << "Abandoning the upload job for transaction"
- << txnId << "and starting again";
+ qCDebug(MESSAGES) << "Abandoning the upload job for transaction"
+ << txnId << "and starting again";
transferIt->job->abandon();
emit fileTransferFailed(txnId,
tr("File upload will be retried"));
@@ -1767,10 +1768,11 @@ void Room::checkVersion()
// or the server capabilities have been loaded.
emit stabilityUpdated(defaultVersion, stableVersions);
if (!stableVersions.contains(version())) {
- qCDebug(MAIN) << this << "version is" << version()
- << "which the server doesn't count as stable";
+ qCDebug(STATE) << this << "version is" << version()
+ << "which the server doesn't count as stable";
if (canSwitchVersions())
- qCDebug(MAIN) << "The current user has enough privileges to fix it";
+ qCDebug(STATE)
+ << "The current user has enough privileges to fix it";
}
}
@@ -2061,15 +2063,15 @@ bool Room::Private::processRedaction(const RedactionEvent& redaction)
auto& ti = timeline[Timeline::size_type(*pIdx - q->minTimelineIndex())];
if (ti->isRedacted() && ti->redactedBecause()->id() == redaction.id()) {
- qCDebug(MAIN) << "Redaction" << redaction.id() << "of event" << ti->id()
- << "already done, skipping";
+ qCDebug(EVENTS) << "Redaction" << redaction.id() << "of event"
+ << ti->id() << "already done, skipping";
return true;
}
// Make a new event from the redacted JSON and put it in the timeline
// instead of the redacted one. oldEvent will be deleted on return.
auto oldEvent = ti.replaceEvent(makeRedacted(*ti, redaction));
- qCDebug(MAIN) << "Redacted" << oldEvent->id() << "with" << redaction.id();
+ qCDebug(EVENTS) << "Redacted" << oldEvent->id() << "with" << redaction.id();
if (oldEvent->isStateEvent()) {
const StateEventKey evtKey { oldEvent->matrixType(),
oldEvent->stateKey() };
@@ -2077,7 +2079,7 @@ bool Room::Private::processRedaction(const RedactionEvent& redaction)
if (currentState.value(evtKey) == oldEvent.get()) {
Q_ASSERT(ti.index() >= 0); // Historical states can't be in
// currentState
- qCDebug(MAIN).nospace()
+ qCDebug(STATE).nospace()
<< "Redacting state " << oldEvent->matrixType() << "/"
<< oldEvent->stateKey();
// Retarget the current state to the newly made event.
@@ -2131,15 +2133,15 @@ bool Room::Private::processReplacement(const RoomMessageEvent& newEvent)
auto& ti = timeline[Timeline::size_type(*pIdx - q->minTimelineIndex())];
if (ti->replacedBy() == newEvent.id()) {
- qCDebug(MAIN) << "Event" << ti->id() << "is already replaced with"
- << newEvent.id();
+ qCDebug(STATE) << "Event" << ti->id() << "is already replaced with"
+ << newEvent.id();
return true;
}
// Make a new event from the redacted JSON and put it in the timeline
// instead of the redacted one. oldEvent will be deleted on return.
auto oldEvent = ti.replaceEvent(makeReplaced(*ti, newEvent));
- qCDebug(MAIN) << "Replaced" << oldEvent->id() << "with" << newEvent.id();
+ qCDebug(STATE) << "Replaced" << oldEvent->id() << "with" << newEvent.id();
emit q->replacedEvent(ti.event(), rawPtr(oldEvent));
return true;
}
@@ -2188,7 +2190,7 @@ Room::Changes Room::Private::addNewMessageEvents(RoomEvents&& events)
}); targetIt != events.end())
*targetIt = makeRedacted(**targetIt, *r);
else
- qCDebug(MAIN)
+ qCDebug(STATE)
<< "Redaction" << r->id() << "ignored: target event"
<< r->redactedEvent() << "is not found";
// If the target event comes later, it comes already redacted.
@@ -2227,10 +2229,10 @@ Room::Changes Room::Private::addNewMessageEvents(RoomEvents&& events)
size_t totalInserted = 0;
for (auto it = events.begin(); it != events.end();) {
auto nextPendingPair =
- findFirstOf(it, events.end(), unsyncedEvents.begin(),
- unsyncedEvents.end(), isEchoEvent);
- const auto& remoteEcho = nextPendingPair.first;
- const auto& localEcho = nextPendingPair.second;
+ findFirstOf(it, events.end(), unsyncedEvents.begin(),
+ unsyncedEvents.end(), isEchoEvent);
+ const auto& remoteEcho = nextPendingPair.first;
+ const auto& localEcho = nextPendingPair.second;
if (it != remoteEcho) {
RoomEventsRange eventsSpan { it, remoteEcho };
@@ -2288,8 +2290,9 @@ Room::Changes Room::Private::addNewMessageEvents(RoomEvents&& events)
}
}
- qCDebug(MAIN) << "Room" << q->objectName() << "received" << totalInserted
- << "new events; the last event is now" << timeline.back();
+ qCDebug(STATE) << "Room" << q->objectName() << "received"
+ << totalInserted << "new events; the last event is now"
+ << timeline.back();
// The first event in the just-added batch (referred to by `from`)
// defines whose read marker can possibly be promoted any further over
@@ -2300,8 +2303,9 @@ Room::Changes Room::Private::addNewMessageEvents(RoomEvents&& events)
auto firstWriter = q->user((*from)->senderId());
if (q->readMarker(firstWriter) != timeline.crend()) {
roomChanges |= promoteReadMarker(firstWriter, rev_iter_t(from) - 1);
- qCDebug(MAIN) << "Auto-promoted read marker for" << firstWriter->id()
- << "to" << *q->readMarker(firstWriter);
+ qCDebug(STATE) << "Auto-promoted read marker for"
+ << firstWriter->id() << "to"
+ << *q->readMarker(firstWriter);
}
updateUnreadCount(timeline.crbegin(), rev_iter_t(from));
@@ -2338,8 +2342,8 @@ void Room::Private::addHistoricalMessageEvents(RoomEvents&& events)
const auto insertedSize = moveEventsToTimeline(events, Older);
const auto from = timeline.crend() - insertedSize;
- qCDebug(MAIN) << "Room" << displayname << "received" << insertedSize
- << "past events; the oldest event is now" << timeline.front();
+ qCDebug(STATE) << "Room" << displayname << "received" << insertedSize
+ << "past events; the oldest event is now" << timeline.front();
q->onAddHistoricalTimelineEvents(from);
emit q->addedMessages(timeline.front().index(), from->index());
@@ -2581,7 +2585,7 @@ Room::Changes Room::processAccountDataEvent(EventPtr&& event)
if (auto* evt = eventCast<ReadMarkerEvent>(event)) {
auto readEventId = evt->event_id();
- qCDebug(MAIN) << "Server-side read marker at" << readEventId;
+ qCDebug(STATE) << "Server-side read marker at" << readEventId;
d->serverReadMarker = readEventId;
const auto newMarker = findInTimeline(readEventId);
changes |= newMarker != timelineEdge()
@@ -2595,8 +2599,8 @@ Room::Changes Room::processAccountDataEvent(EventPtr&& event)
if (!currentData || currentData->contentJson() != event->contentJson()) {
emit accountDataAboutToChange(event->matrixType());
currentData = move(event);
- qCDebug(MAIN) << "Updated account data of type"
- << currentData->matrixType();
+ qCDebug(STATE) << "Updated account data of type"
+ << currentData->matrixType();
emit accountDataChanged(currentData->matrixType());
return Change::AccountDataChange;
}