[SCM] ktp-text-ui packaging branch, master, updated. debian/15.12.1-1-1918-gdf4b0ec

Maximiliano Curia maxy at moszumanska.debian.org
Sat May 28 00:20:32 UTC 2016


Gitweb-URL: http://git.debian.org/?p=pkg-kde/applications/ktp-text-ui.git;a=commitdiff;h=c6d033d

The following commit has been merged in the master branch:
commit c6d033d26b73e340e2eb305e784d32e14c724c2b
Author: David Edmundson <kde at davidedmundson.co.uk>
Date:   Tue Sep 27 23:29:19 2011 +0100

    Add support for /me action messages
---
 lib/chat-widget.cpp | 53 ++++++++++++++++++++++++++++++++++++++++++-----------
 1 file changed, 42 insertions(+), 11 deletions(-)

diff --git a/lib/chat-widget.cpp b/lib/chat-widget.cpp
index 169a071..dbac767 100644
--- a/lib/chat-widget.cpp
+++ b/lib/chat-widget.cpp
@@ -532,6 +532,21 @@ void ChatWidget::handleIncomingMessage(const Tp::ReceivedMessage &message)
             messageInfo.setStatus(QLatin1String("error"));
 
             d->ui.chatArea->addStatusMessage(messageInfo);
+        } else if (message.messageType() == Tp::ChannelTextMessageTypeAction) {
+            //a "/me " message
+
+            AdiumThemeStatusInfo statusMessage;
+            statusMessage.setTime(message.received());
+
+            QString senderName;
+            if (message.sender().isNull()) {
+                senderName = message.senderNickname();
+            } else {
+                senderName = message.sender()->alias();
+            }
+
+            statusMessage.setMessage(QString::fromLatin1("%1 %2").arg(senderName, message.text()));
+            d->ui.chatArea->addStatusMessage(statusMessage);
         } else {
             AdiumThemeContentInfo messageInfo(AdiumThemeMessageInfo::RemoteToLocal);
 
@@ -543,8 +558,8 @@ void ChatWidget::handleIncomingMessage(const Tp::ReceivedMessage &message)
             }
             messageInfo.setTime(time);
 
+            //sender can have just an ID or be a full contactPtr. Use full contact info if available.
             if (message.sender().isNull()) {
-                // just need this info
                 messageInfo.setSenderDisplayName(message.senderNickname());
             } else {
                 messageInfo.setUserIconPath(message.sender()->avatarData().fileName);
@@ -626,16 +641,24 @@ void ChatWidget::notifyAboutIncomingMessage(const Tp::ReceivedMessage & message)
 
 void ChatWidget::handleMessageSent(const Tp::Message &message, Tp::MessageSendingFlags, const QString&) /*Not sure what these other args are for*/
 {
-    AdiumThemeContentInfo messageInfo(AdiumThemeMessageInfo::LocalToRemote);
-    messageInfo.setMessage(message.text());
-    messageInfo.setTime(message.sent());
-
     Tp::ContactPtr sender = d->channel->connection()->selfContact();
-    messageInfo.setSenderDisplayName(sender->alias());
-    messageInfo.setSenderScreenName(sender->id());
-    messageInfo.setUserIconPath(sender->avatarData().fileName);
-    d->ui.chatArea->addContentMessage(messageInfo);
 
+    if (message.messageType() == Tp::ChannelTextMessageTypeAction) {
+        AdiumThemeStatusInfo statusMessage;
+        statusMessage.setTime(message.sent());
+        statusMessage.setMessage(QString::fromLatin1("%1 %2").arg(sender->alias(), message.text()));
+        d->ui.chatArea->addStatusMessage(statusMessage);
+    }
+    else {
+        AdiumThemeContentInfo messageInfo(AdiumThemeMessageInfo::LocalToRemote);
+        messageInfo.setMessage(message.text());
+        messageInfo.setTime(message.sent());
+
+        messageInfo.setSenderDisplayName(sender->alias());
+        messageInfo.setSenderScreenName(sender->id());
+        messageInfo.setUserIconPath(sender->avatarData().fileName);
+        d->ui.chatArea->addContentMessage(messageInfo);
+    }
 
     //send the notification that a message has been sent
     KNotification *notification = new KNotification(QLatin1String("kde_telepathy_outgoing"), this);
@@ -658,8 +681,16 @@ void ChatWidget::chatViewReady()
 
 void ChatWidget::sendMessage()
 {
-    if (!d->ui.sendMessageBox->toPlainText().isEmpty()) {
-        d->channel->send(d->ui.sendMessageBox->toPlainText());
+    QString message = d->ui.sendMessageBox->toPlainText();
+
+    if (!message.isEmpty()) {
+        if (d->channel->supportsMessageType(Tp::ChannelTextMessageTypeAction) && message.startsWith(QLatin1String("/me "))) {
+            //remove "/me " from the start of the message
+            message.remove(0,4);
+            d->channel->send(message, Tp::ChannelTextMessageTypeAction);
+        } else {
+            d->channel->send(message);
+        }
         d->ui.sendMessageBox->clear();
     }
 }

-- 
ktp-text-ui packaging



More information about the pkg-kde-commits mailing list