[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:17 UTC 2016
Gitweb-URL: http://git.debian.org/?p=pkg-kde/applications/ktp-common-internals.git;a=commitdiff;h=1d8ae32
The following commit has been merged in the master branch:
commit 1d8ae32cd6b8752810027f90ff99c8b5354342a7
Author: David Edmundson <kde at davidedmundson.co.uk>
Date: Tue Jan 29 17:37:57 2013 +0000
Generally fix MessageProcessor to match the original design
- Make Message constructor private and a friend class of the message processor. This simplifies code, and makes accidentally skipping the escape filtering impossible
- Message now has two extra properties isHistory and messageDirection
- Message filters have access to the "message context" the account/channel in which the message was received
- Remove the broken filterIncomingMessage / filterOutgoingMessages with just one method. Plugins can use messageDirection to get the same functionality
This is a setup to fix a range of bugs in the message filters
---
KTp/abstract-message-filter.cpp | 3 ++-
KTp/abstract-message-filter.h | 18 +++++--------
KTp/{contact-factory.h => message-context.h} | 39 +++++++++++++++++-----------
KTp/message-processor.cpp | 31 +++++++++++++++-------
KTp/message-processor.h | 9 ++++---
KTp/message.cpp | 19 +++++++-------
KTp/message.h | 11 ++++----
7 files changed, 75 insertions(+), 55 deletions(-)
diff --git a/KTp/abstract-message-filter.cpp b/KTp/abstract-message-filter.cpp
index 83351f9..acead98 100644
--- a/KTp/abstract-message-filter.cpp
+++ b/KTp/abstract-message-filter.cpp
@@ -29,9 +29,10 @@ AbstractMessageFilter::~AbstractMessageFilter()
{
}
-void AbstractMessageFilter::filterMessage(KTp::Message &message)
+void AbstractMessageFilter::filterMessage(KTp::Message &message, const KTp::MessageContext &context)
{
Q_UNUSED(message)
+ Q_UNUSED(context)
}
QStringList AbstractMessageFilter::requiredScripts()
diff --git a/KTp/abstract-message-filter.h b/KTp/abstract-message-filter.h
index d5259ee..dfa7bc6 100644
--- a/KTp/abstract-message-filter.h
+++ b/KTp/abstract-message-filter.h
@@ -16,22 +16,18 @@
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-#ifndef ABSTRACTPLUGIN_H
-#define ABSTRACTPLUGIN_H
+#ifndef KTP_ABSTRACT_MESSAGE_FILTER_H
+#define KTP_ABSTRACT_MESSAGE_FILTER_H
#include <KTp/message.h>
+#include <KTp/message-context.h>
#include <KTp/ktp-export.h>
-namespace KTp
-{
+#include <TelepathyQt/Account>
+#include <TelepathyQt/TextChannel>
-class MessageContext
+namespace KTp
{
-public:
- Tp::AccountPtr &account;
- Tp::TextChannelPtr &channel;
-};
-
class KTP_EXPORT AbstractMessageFilter : public QObject
{
@@ -42,7 +38,7 @@ class KTP_EXPORT AbstractMessageFilter : public QObject
virtual ~AbstractMessageFilter();
/** Filter messages to show on the UI recieved by another contact*/
- virtual void filterMessage(KTp::Message &message, const Tp::AccountPtr &account, const Tp::TextChannelPtr &channel);
+ virtual void filterMessage(KTp::Message &message, const KTp::MessageContext &context);
/** Scripts that must be included in the <head> section of the html required by this message filter.*/
virtual QStringList requiredScripts();
diff --git a/KTp/contact-factory.h b/KTp/message-context.h
similarity index 53%
copy from KTp/contact-factory.h
copy to KTp/message-context.h
index 5881451..007b247 100644
--- a/KTp/contact-factory.h
+++ b/KTp/message-context.h
@@ -1,5 +1,5 @@
/*
-* Copyright (C) 2012 David Edmundson <kde at davidedmundson.co.uk>
+* Copyright (C) 2013 David Edmundson <kde at davidedmundson.co.uk>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -16,24 +16,33 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
-#ifndef KTP_CONTACT_FACTORY_H
-#define KTP_CONTACT_FACTORY_H
+#ifndef KTP_MESSAGE_CONTEXT_H
+#define KTP_MESSAGE_CONTEXT_H
-#include <TelepathyQt/ContactFactory>
-#include <TelepathyQt/Types>
+#include <TelepathyQt/Account>
+#include <TelepathyQt/TextChannel>
-#include <KTp/ktp-export.h>
+namespace KTp
+{
-namespace KTp {
-class KTP_EXPORT ContactFactory : public Tp::ContactFactory
+class KTP_EXPORT MessageContext
{
public:
- static Tp::ContactFactoryPtr create(const Tp::Features &features=Tp::Features());
-protected:
- ContactFactory(const Tp::Features &features);
- virtual Tp::ContactPtr construct(Tp::ContactManager *manager, const Tp::ReferencedHandles &handle, const Tp::Features &features, const QVariantMap &attributes) const;
-};
-}
+ MessageContext(const Tp::AccountPtr &_account, const Tp::TextChannelPtr &_channel) :
+ account(_account),
+ channel(_channel)
+ {
+ }
+ /** Account in which the message is sent
+ */
+ Tp::AccountPtr account;
-#endif // CONTACTFACTORY_H
+ /** Channel in which the message was sent
+ @warning this may be null, and should be checked before use
+ */
+ Tp::TextChannelPtr channel;
+};
+
+}
+#endif // MESSAGECONTEXT_H
diff --git a/KTp/message-processor.cpp b/KTp/message-processor.cpp
index 760e369..7232f77 100644
--- a/KTp/message-processor.cpp
+++ b/KTp/message-processor.cpp
@@ -139,19 +139,30 @@ QString MessageProcessor::header()
return out;
}
-KTp::Message MessageProcessor::processIncomingMessage(KTp::Message receivedMessage)
+KTp::Message MessageProcessor::processIncomingMessage(const Tp::Message &message, const Tp::AccountPtr &account, const Tp::TextChannelPtr &channel)
{
- Q_FOREACH (AbstractMessageFilter *filter, d->filters) {
- kDebug() << "running filter :" << filter->metaObject()->className();
- filter->filterIncomingMessage(receivedMessage);
- }
- return receivedMessage;
+ KTp::MessageContext context(account, channel);
+ return processMessage(KTp::Message(message, context), context);
+}
+
+KTp::Message KTp::MessageProcessor::processIncomingMessage(const Tp::ReceivedMessage &message, const Tp::AccountPtr &account, const Tp::TextChannelPtr &channel)
+{
+ KTp::MessageContext context(account, channel);
+ return processMessage(KTp::Message(message, context), context);
}
-KTp::Message MessageProcessor::processOutgoingMessage(KTp::Message sentMessage)
+KTp::Message KTp::MessageProcessor::processIncomingMessage(const Tpl::TextEventPtr &message, const Tp::AccountPtr &account, const Tp::TextChannelPtr &channel)
{
- Q_FOREACH (AbstractMessageFilter *filter, d->filters) {
- filter->filterOutgoingMessage(sentMessage);
+ KTp::MessageContext context(account, channel);
+ return processMessage(KTp::Message(message, context), context);
+}
+
+
+KTp::Message MessageProcessor::processMessage(Message message, const MessageContext &context)
+{
+ Q_FOREACH (AbstractMessageFilter *filter, d->filters) {
+ kDebug() << "running filter :" << filter->metaObject()->className();
+ filter->filterMessage(message, context);
}
- return sentMessage;
+ return message;
}
diff --git a/KTp/message-processor.h b/KTp/message-processor.h
index 3b458ab..e1609aa 100644
--- a/KTp/message-processor.h
+++ b/KTp/message-processor.h
@@ -26,7 +26,7 @@
#include <KTp/message.h>
#include <KTp/ktp-export.h>
-
+#include <KTp/abstract-message-filter.h>
#include <TelepathyLoggerQt4/Types>
namespace Tp
@@ -54,13 +54,14 @@ class KTP_EXPORT MessageProcessor : public QObject
QString header();
//text-ui will call this somewhere in handleIncommingMessage just before displaying it
- KTp::Message processIncomingMessage(const Tp::Message &message, const Tp::AccountPtr &account, const Tp::TextChannelPtr &channel);
- KTp::Message processIncomingMessage(const Tp::ReceivedMessage &message, const Tp::AccountPtr &account, const Tp::TextChannelPtr &channel);
- KTp::Message processIncomingMessage(const Tpl::TextEventPtr &message, const Tp::AccountPtr &account, const Tp::TextChannelPtr &channel);
+ KTp::Message processMessage(const Tp::Message &message, const Tp::AccountPtr &account, const Tp::TextChannelPtr &channel);
+ KTp::Message processMessage(const Tp::ReceivedMessage &message, const Tp::AccountPtr &account, const Tp::TextChannelPtr &channel);
+ KTp::Message processMessage(const Tpl::TextEventPtr &message, const Tp::AccountPtr &account, const Tp::TextChannelPtr &channel);
// Tp::PendingSendMessage* sendMessage(const QString textMessage, const Tp::AccountPtr &account, const Tp::TextChannelPtr &channel);
protected:
+ KTp::Message processMessage(KTp::Message message, const KTp::MessageContext &context);
explicit MessageProcessor();
private:
diff --git a/KTp/message.cpp b/KTp/message.cpp
index 9b33f73..2ee7f96 100644
--- a/KTp/message.cpp
+++ b/KTp/message.cpp
@@ -45,9 +45,10 @@ class Message::Private : public QSharedData {
MessageDirection direction;
};
-Message::Message(const Tp::Message &original) :
+Message::Message(const Tp::Message &original, const KTp::MessageContext &context) :
d(new Private)
{
+ Q_UNUSED(context)
d->sentTime = original.sent();
d->token = original.messageToken();
d->messageType = original.messageType();
@@ -56,26 +57,26 @@ Message::Message(const Tp::Message &original) :
setMainMessagePart(original.text());
}
-Message::Message(const Tp::ReceivedMessage &original)
+Message::Message(const Tp::ReceivedMessage &original, const KTp::MessageContext &context)
{
d->sentTime = original.sent();
d->token = original.messageToken();
d->messageType = original.messageType();
d->isHistory = original.isScrollback();
- if (original.sender() && original.sender()->manager()) {
- d->direction = original.sender()->manager()->connection()->selfContact();
- }
+// if (original.sender() && original.sender()->manager()) {
+// d->direction = original.sender()->manager()->connection()->selfContact();
+// }
}
-Message::Message(const Tpl::TextEventPtr &original) :
+Message::Message(const Tpl::TextEventPtr &original, const KTp::MessageContext &context) :
d(new Private)
{
d->sentTime = original->timestamp();
d->token = original->messageToken();
d->messageType = original->messageType();
d->isHistory = true;
- original->
+// original->
setMainMessagePart(original->message());
}
@@ -173,7 +174,7 @@ bool Message::isHistory() const
return d->isHistory;
}
-MessageDirection Message::direction() const
+KTp::Message::MessageDirection Message::direction() const
{
- return d->direction();
+ return d->direction;
}
diff --git a/KTp/message.h b/KTp/message.h
index 3a3b828..240e498 100644
--- a/KTp/message.h
+++ b/KTp/message.h
@@ -17,8 +17,8 @@
*/
-#ifndef MESSAGE_H
-#define MESSAGE_H
+#ifndef KTP_MESSAGE_H
+#define KTP_MESSAGE_H
#include <TelepathyQt/Message>
@@ -26,6 +26,7 @@
#include <TelepathyLoggerQt4/TextEvent>
#include <KTp/ktp-export.h>
+#include <KTp/message-context.h>
#include <QSharedDataPointer>
@@ -142,9 +143,9 @@ class KTP_EXPORT Message
MessageDirection direction() const;
protected:
- Message(const Tp::Message &original);
- Message(const Tp::ReceivedMessage &original);
- Message(const Tpl::TextEventPtr &original);
+ Message(const Tp::Message &original, const KTp::MessageContext &context);
+ Message(const Tp::ReceivedMessage &original, const KTp::MessageContext &context);
+ Message(const Tpl::TextEventPtr &original, const KTp::MessageContext &context);
private:
--
ktp-common-internals packaging
More information about the pkg-kde-commits
mailing list