summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swift/QtUI')
-rw-r--r--Swift/QtUI/QtChatWindow.cpp20
-rw-r--r--Swift/QtUI/QtChatWindow.h2
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_;