[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:19:58 UTC 2016


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

The following commit has been merged in the master branch:
commit 31188e7fa17bca303d4f46cf72d397dd08574e65
Author: George Kiagiadakis <george.kiagiadakis at collabora.com>
Date:   Sun Sep 25 17:13:02 2011 +0300

    Handle delivery error reports.
---
 lib/chat-widget.cpp | 144 +++++++++++++++++++++++++++++++++-------------------
 1 file changed, 91 insertions(+), 53 deletions(-)

diff --git a/lib/chat-widget.cpp b/lib/chat-widget.cpp
index 28b9ae2..7750ce6 100644
--- a/lib/chat-widget.cpp
+++ b/lib/chat-widget.cpp
@@ -472,61 +472,98 @@ void ChatWidget::handleIncomingMessage(const Tp::ReceivedMessage &message)
 {
     kDebug() << title() << message.text();
 
-    if (message.isDeliveryReport()) {
-        ///TODO what to do with this info? For now just output to cli
-        // we don't need to show this in chat
-        Tp::ReceivedMessage::DeliveryDetails reportDetails = message.deliveryDetails();
-
-        switch (reportDetails.status()) {
-            case (Tp::DeliveryStatusAccepted):
-                kDebug() << "ChatWidget::handleIncomingMessage DeliveryStatusAccepted";
-                break;
-            case (Tp::DeliveryStatusDeleted):
-                kDebug() << "ChatWidget::handleIncomingMessage DeliveryStatusDeleted";
-                break;
-            case (Tp::DeliveryStatusDelivered):
-                kDebug() << "ChatWidget::handleIncomingMessage DeliveryStatusDelivered";
-                break;
-            case (Tp::DeliveryStatusPermanentlyFailed):
-                kDebug() << "ChatWidget::handleIncomingMessage DeliveryStatusPermanentlyFailed";
-                break;
-            case (Tp::DeliveryStatusRead):
-                kDebug() << "ChatWidget::handleIncomingMessage DeliveryStatusRead";
-                break;
-            case (Tp::DeliveryStatusTemporarilyFailed):
-                kDebug() << "ChatWidget::handleIncomingMessage DeliveryStatusTemporarilyFailed";
-                break;
-            case (Tp::DeliveryStatusUnknown):
-                kDebug() << "ChatWidget::handleIncomingMessage DeliveryStatusUnknown";
-                break;
-        }
+    if (d->chatviewlInitialised) {
+
+        //debug the message parts (looking for HTML etc)
+//        Q_FOREACH(Tp::MessagePart part, message.parts())
+//        {
+//            qDebug() << "***";
+//            Q_FOREACH(QString key, part.keys())
+//            {
+//                qDebug() << key << part.value(key).variant();
+//            }
+//        }
+//      turns out we have no HTML, because no CM supports it yet
+
+        if (message.isDeliveryReport()) {
+            QString text;
+            AdiumThemeStatusInfo messageInfo;
+            Tp::ReceivedMessage::DeliveryDetails reportDetails = message.deliveryDetails();
+
+            if (reportDetails.hasDebugMessage()) {
+                kDebug() << "delivery report debug message: " << reportDetails.debugMessage();
+            }
 
-        if (reportDetails.isError()) {
-            kDebug() << "ChatWidget::handleIncomingMessage ERROR: " << reportDetails.error();
-            kDebug() << "ChatWidget::handleIncomingMessage DBUS ERROR: " << reportDetails.dbusError();
-        }
+            if (reportDetails.isError()) {
+                switch (reportDetails.error()) {
+                case Tp::ChannelTextSendErrorOffline:
+                    if (reportDetails.hasEchoedMessage()) {
+                        text = i18n("Delivery of the message \"%1\" "
+                                    "failed because the remote contact is offline",
+                                    reportDetails.echoedMessage().text());
+                    } else {
+                        text = i18n("Delivery of a message failed "
+                                    "because the remote contact is offline");
+                    }
+                    break;
+                case Tp::ChannelTextSendErrorInvalidContact:
+                    if (reportDetails.hasEchoedMessage()) {
+                        text = i18n("Delivery of the message \"%1\" "
+                                    "failed because the remote contact is not valid",
+                                    reportDetails.echoedMessage().text());
+                    } else {
+                        text = i18n("Delivery of a message failed "
+                                    "because the remote contact is not valid");
+                    }
+                    break;
+                case Tp::ChannelTextSendErrorPermissionDenied:
+                    if (reportDetails.hasEchoedMessage()) {
+                        text = i18n("Delivery of the message \"%1\" failed because "
+                                    "you do not have permission to speak in this room",
+                                    reportDetails.echoedMessage().text());
+                    } else {
+                        text = i18n("Delivery of a message failed because "
+                                    "you do not have permission to speak in this room");
+                    }
+                    break;
+                case Tp::ChannelTextSendErrorTooLong:
+                    if (reportDetails.hasEchoedMessage()) {
+                        text = i18n("Delivery of the message \"%1\" "
+                                    "failed because it was too long",
+                                    reportDetails.echoedMessage().text());
+                    } else {
+                        text = i18n("Delivery of a message failed "
+                                    "because it was too long");
+                    }
+                    break;
+                default:
+                    if (reportDetails.hasEchoedMessage()) {
+                        text = i18n("Delivery of the message \"%1\" failed: %2",
+                                    reportDetails.echoedMessage().text(),
+                                    message.text());
+                    } else {
+                        text = i18n("Delivery of a message failed: %1", message.text());
+                    }
+                    break;
+                }
+            } else {
+                //TODO: handle delivery reports properly
+                kWarning() << "Ignoring delivery report";
+                d->channel->acknowledge(QList<Tp::ReceivedMessage>() << message);
+                return;
+            }
 
-        if (reportDetails.hasDebugMessage()) {
-            kDebug() << "ChatWidget::handleIncomingMessage DEBUG MESSAGE: " << reportDetails.debugMessage();
-        }
-    } else {
-        if (d->chatviewlInitialised) {
+            messageInfo.setMessage(text);
+            messageInfo.setTime(message.received());
+
+            d->ui.chatArea->addStatusMessage(messageInfo);
+        } else {
             AdiumThemeContentInfo messageInfo(AdiumThemeMessageInfo::RemoteToLocal);
 
-            //debug the message parts (looking for HTML etc)
-    //        Q_FOREACH(Tp::MessagePart part, message.parts())
-    //        {
-    //            qDebug() << "***";
-    //            Q_FOREACH(QString key, part.keys())
-    //            {
-    //                qDebug() << key << part.value(key).variant();
-    //            }
-    //        }
-    //      turns out we have no HTML, because no CM supports it yet
             messageInfo.setMessage(message.text());
             messageInfo.setTime(message.received());
 
-            if (message.sender() == 0) {
+            if (message.sender().isNull()) {
                 // just need this info
                 messageInfo.setSenderDisplayName(message.senderNickname());
             } else {
@@ -536,14 +573,15 @@ void ChatWidget::handleIncomingMessage(const Tp::ReceivedMessage &message)
             }
 
             d->ui.chatArea->addContentMessage(messageInfo);
-            d->channel->acknowledge(QList<Tp::ReceivedMessage>() << message);
+        }
 
-            if (!isOnTop()) {
-                incrementUnreadMessageCount();
-            }
+        d->channel->acknowledge(QList<Tp::ReceivedMessage>() << message);
 
-            Q_EMIT messageReceived();
+        if (!isOnTop()) {
+            incrementUnreadMessageCount();
         }
+
+        Q_EMIT messageReceived();
     }
 
     //if the window isn't ready, we don't acknowledge the message. We process them as soon as we are ready.

-- 
ktp-text-ui packaging



More information about the pkg-kde-commits mailing list