[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