summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Markmann <tm@ayena.de>2015-01-30 13:56:12 (GMT)
committerSwift Review <review@swift.im>2015-02-03 17:27:11 (GMT)
commit53c86d070255ae1a33b7a3642bb6eb9ce42e7f70 (patch)
treef2793fbb216ffcd9b34bde3c8f6d1c419523c214 /Swift/QtUI/QtPlainChatView.cpp
parent4b2c07264f6cfccf8ed577c9b68b5b237e528be0 (diff)
downloadswift-53c86d070255ae1a33b7a3642bb6eb9ce42e7f70.zip
swift-53c86d070255ae1a33b7a3642bb6eb9ce42e7f70.tar.bz2
Fix chat log system messages related to entering a room
In the past MUCController added a "trying to enter..." message and later tried to replace this with "entered room as..." message. However, any message received in between, like a system message about room topic, came in between since MUCController replaced the *last* message added to the log. The new code also adds message IDs to system messages. This way the correct message can be replaced on successful login, no matter how many messages came in between. Test-Information: Tested against a MUC component that send a system message before sending the join presence back to a user. Change-Id: I3bcb5d78de680494965d837b2ad3edb847ff7f99
Diffstat (limited to 'Swift/QtUI/QtPlainChatView.cpp')
-rw-r--r--Swift/QtUI/QtPlainChatView.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/Swift/QtUI/QtPlainChatView.cpp b/Swift/QtUI/QtPlainChatView.cpp
index 1483205..031a41d 100644
--- a/Swift/QtUI/QtPlainChatView.cpp
+++ b/Swift/QtUI/QtPlainChatView.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013-2014 Isode Limited.
+ * Copyright (c) 2013-2015 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
@@ -104,12 +104,13 @@ std::string QtPlainChatView::addAction(const ChatWindow::ChatMessage& message, c
return idx;
}
-void QtPlainChatView::addSystemMessage(const ChatWindow::ChatMessage& message, ChatWindow::Direction /*direction*/)
+std::string QtPlainChatView::addSystemMessage(const ChatWindow::ChatMessage& message, ChatWindow::Direction /*direction*/)
{
QString text = "<p><i>";
text += chatMessageToString(message);
text += "</i></p>";
log_->append(text);
+ return "";
}
void QtPlainChatView::addPresenceMessage(const ChatWindow::ChatMessage& message, ChatWindow::Direction /*direction*/)
@@ -162,6 +163,13 @@ void QtPlainChatView::replaceLastMessage(const ChatWindow::ChatMessage& message,
log_->append(text);
}
+void QtPlainChatView::replaceSystemMessage(const ChatWindow::ChatMessage& message, const std::string& id, const ChatWindow::TimestampBehaviour timestampBehaviour) {
+ QString text = "<p><i>";
+ text += chatMessageToString(message);
+ text += "</i></p>";
+ log_->append(text);
+}
+
void QtPlainChatView::setAckState(const std::string& /*id*/, ChatWindow::AckState state)
{
if (state == ChatWindow::Failed) {