[SCM] ktp-common-internals packaging branch, master, updated. debian/15.12.1-2-1839-gf0635e9
Maximiliano Curia
maxy at moszumanska.debian.org
Mon May 9 09:06:47 UTC 2016
Gitweb-URL: http://git.debian.org/?p=pkg-kde/applications/ktp-common-internals.git;a=commitdiff;h=5e02ba5
The following commit has been merged in the master branch:
commit 5e02ba58f2186de6c354e140267585ac9d058d79
Author: David Edmundson <david at davidedmundson.co.uk>
Date: Sun Apr 14 18:11:03 2013 +0100
Expose sender in KTp::Message
Simplify code and make it less possible to crash.
Store the contactPtr of the sender where possible
Also fix direction of log messages
REVIEW: 109834
---
KTp/message.cpp | 68 +++++++++++++++++++++++++++++++++------------------------
KTp/message.h | 12 ++++++++--
2 files changed, 50 insertions(+), 30 deletions(-)
diff --git a/KTp/message.cpp b/KTp/message.cpp
index cbb9134..5e2bdc3 100644
--- a/KTp/message.cpp
+++ b/KTp/message.cpp
@@ -45,6 +45,11 @@ class Message::Private : public QSharedData {
QStringList scripts;
bool isHistory;
MessageDirection direction;
+
+ //if we have a valid sender pointer store that, otherwise store alias
+ KTp::ContactPtr sender;
+ QString senderAlias;
+ QString senderId;
};
Message& Message::operator=(const Message &other) {
@@ -64,10 +69,12 @@ Message::Message(const Tp::Message &original, const KTp::MessageContext &context
setMainMessagePart(original.text());
- setProperty("senderName", context.account()->nickname());
- setProperty("senderAvatar", context.account()->avatar().avatarData);
- setProperty("senderId",
- context.account()->connection()->selfContact()->id());
+ if (context.account()->connection()) {
+ d->sender = KTp::ContactPtr::qObjectCast(context.account()->connection()->selfContact());
+ } else {
+ d->senderAlias = context.account()->nickname();
+ d->senderId = context.account()->uniqueIdentifier();
+ }
}
Message::Message(const Tp::ReceivedMessage &original, const KTp::MessageContext &context) :
@@ -88,11 +95,9 @@ Message::Message(const Tp::ReceivedMessage &original, const KTp::MessageContext
setMainMessagePart(original.text());
if (!original.sender().isNull()) {
- setProperty("senderName", original.sender()->alias());
- setProperty("senderAvatar", original.sender()->avatarData().fileName);
- setProperty("senderId", original.sender()->id());
+ d->sender = KTp::ContactPtr::qObjectCast(original.sender());
} else {
- setProperty("senderName", original.senderNickname());
+ d->senderAlias = original.senderNickname();
}
}
@@ -104,18 +109,20 @@ Message::Message(const Tpl::TextEventPtr &original, const KTp::MessageContext &c
d->messageType = original->messageType();
d->isHistory = true;
- setProperty("senderName", original->sender()->alias());
- setProperty("senderId", original->sender()->identifier());
-
- if (context.account() && context.account()->connection() && context.channel()) {
- if (original->sender()->identifier() == context.account()->normalizedName()) {
- d->direction = KTp::Message::LocalToRemote;
- setProperty("senderAvatar", context.account()->
- connection()->selfContact()->avatarData().fileName);
- } else {
- d->direction = KTp::Message::RemoteToLocal;
- setProperty("senderAvatar",
- context.channel()->targetContact()->avatarData().fileName);
+ d->senderAlias = original->sender()->alias();
+ d->senderId = original->sender()->identifier();
+
+ if (original->sender()->identifier() == context.account()->normalizedName()) {
+ d->direction = KTp::Message::LocalToRemote;
+ } else {
+ d->direction = KTp::Message::RemoteToLocal;
+ }
+
+ if (context.channel()) {
+ Q_FOREACH (const Tp::ContactPtr &contact, context.channel()->groupContacts()) {
+ if (contact->id() == original->sender()->identifier()) {
+ d->sender = KTp::ContactPtr::qObjectCast(contact);
+ }
}
}
@@ -130,12 +137,6 @@ Message::Message(const QString &messageText, const MessageContext &context) :
d->direction = LocalToRemote;
d->isHistory = false;
- setProperty("senderName", context.account()->nickname());
- setProperty("senderId", context.account()->
- connection()->selfContact()->id());
- setProperty("senderAvatar", context.account()->
- connection()->selfContact()->avatarData().fileName);
-
setMainMessagePart(messageText);
}
@@ -224,12 +225,23 @@ Tp::ChannelTextMessageType Message::type() const
QString Message::senderAlias() const
{
- return property("senderName").toString();
+ if (d->sender) {
+ return d->sender->alias();
+ }
+ return d->senderAlias;
}
QString Message::senderId() const
{
- return property("senderId").toString();
+ if (d->sender) {
+ return d->sender->id();
+ }
+ return d->senderId;
+}
+
+KTp::ContactPtr Message::sender() const
+{
+ return d->sender;
}
int Message::partsSize() const
diff --git a/KTp/message.h b/KTp/message.h
index 812c90e..982b8cf 100644
--- a/KTp/message.h
+++ b/KTp/message.h
@@ -26,6 +26,8 @@
#include <TelepathyLoggerQt4/TextEvent>
#include <KTp/ktp-export.h>
+#include <KTp/types.h>
+
#include <KTp/message-context.h>
#include <QSharedData>
@@ -51,7 +53,7 @@ namespace KTp
*/
class KTP_EXPORT Message
{
- public:
+public:
enum MessageDirection {
LocalToRemote,
RemoteToLocal
@@ -135,11 +137,17 @@ class KTP_EXPORT Message
QString token() const;
/*!
eturn the type of the message*/
Tp::ChannelTextMessageType type() const;
+
/*!
eturn the alias of the contact who composed this message */
QString senderAlias() const;
- /*!
eturn the Id of the contact who composed this message */
+ /*!
eturn the id of the contact who composed this message */
QString senderId() const;
+ /*!
eturn the contact who composed this message
+ * @warning This may be null for service messages, log messages and other cases
+ */
+ KTp::ContactPtr sender() const;
+
/*!
eturn the number of appended parts */
int partsSize() const;
--
ktp-common-internals packaging
More information about the pkg-kde-commits
mailing list