diff options
Diffstat (limited to 'Swift/QtUI')
-rw-r--r-- | Swift/QtUI/QtChatWindow.cpp | 20 | ||||
-rw-r--r-- | Swift/QtUI/QtChatWindow.h | 2 |
2 files changed, 21 insertions, 1 deletions
diff --git a/Swift/QtUI/QtChatWindow.cpp b/Swift/QtUI/QtChatWindow.cpp index fdf1ebc..a0b25a9 100644 --- a/Swift/QtUI/QtChatWindow.cpp +++ b/Swift/QtUI/QtChatWindow.cpp @@ -28,7 +28,7 @@ #include <QUrl> namespace Swift { -QtChatWindow::QtChatWindow(const QString &contact, UIEventStream* eventStream) : QtTabbable(), contact_(contact), previousMessageWasSelf_(false), previousMessageWasSystem_(false), eventStream_(eventStream) { +QtChatWindow::QtChatWindow(const QString &contact, UIEventStream* eventStream) : QtTabbable(), contact_(contact), previousMessageWasSelf_(false), previousMessageWasSystem_(false), previousMessageWasPresence_(false), eventStream_(eventStream) { unreadCount_ = 0; inputEnabled_ = true; completer_ = NULL; @@ -268,6 +268,7 @@ void QtChatWindow::addMessage(const String &message, const String &senderName, b previousMessageWasSelf_ = senderIsSelf; previousSenderName_ = P2QSTRING(senderName); previousMessageWasSystem_ = false; + previousMessageWasPresence_ = false; } int QtChatWindow::getCount() { @@ -289,6 +290,7 @@ void QtChatWindow::addErrorMessage(const String& errorMessage) { previousMessageWasSelf_ = false; previousMessageWasSystem_ = true; + previousMessageWasPresence_ = false; } void QtChatWindow::addSystemMessage(const String& message) { @@ -302,8 +304,24 @@ void QtChatWindow::addSystemMessage(const String& message) { previousMessageWasSelf_ = false; previousMessageWasSystem_ = true; + previousMessageWasPresence_ = false; } +void QtChatWindow::addPresenceMessage(const String& message) { + if (isWidgetSelected()) { + onAllMessagesRead(); + } + + QString messageHTML(Qt::escape(P2QSTRING(message))); + messageHTML.replace("\n","<br/>"); + messageLog_->addMessage(SystemMessageSnippet(messageHTML, QDateTime::currentDateTime(),previousMessageWasPresence_)); + + previousMessageWasSelf_ = false; + previousMessageWasSystem_ = false; + previousMessageWasPresence_ = true; +} + + void QtChatWindow::returnPressed() { if (!inputEnabled_) { return; diff --git a/Swift/QtUI/QtChatWindow.h b/Swift/QtUI/QtChatWindow.h index f68ff1c..1770186 100644 --- a/Swift/QtUI/QtChatWindow.h +++ b/Swift/QtUI/QtChatWindow.h @@ -30,6 +30,7 @@ namespace Swift { void addMessage(const String &message, const String &senderName, bool senderIsSelf, const boost::optional<SecurityLabel>& label, const String& avatarPath, const boost::posix_time::ptime& time); void addAction(const String &message, const String &senderName, bool senderIsSelf, const boost::optional<SecurityLabel>& label, const String& avatarPath, const boost::posix_time::ptime& time); void addSystemMessage(const String& message); + void addPresenceMessage(const String& message); void addErrorMessage(const String& errorMessage); void show(); void activate(); @@ -81,6 +82,7 @@ namespace Swift { std::vector<SecurityLabel> availableLabels_; bool previousMessageWasSelf_; bool previousMessageWasSystem_; + bool previousMessageWasPresence_; QString previousSenderName_; bool inputClearing_; UIEventStream* eventStream_; |