[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:04:49 UTC 2016
Gitweb-URL: http://git.debian.org/?p=pkg-kde/applications/ktp-common-internals.git;a=commitdiff;h=8c08767
The following commit has been merged in the master branch:
commit 8c087676cc2b6d826b2260003cf21cc0764340a6
Author: Lasath Fernando <kde at lasath.org>
Date: Sun Nov 13 00:14:30 2011 +1100
Tidied code
---
KTp/Declarative/conversation.cpp | 28 +++--
KTp/Declarative/conversation.h | 9 +-
KTp/Declarative/messages-model.cpp | 160 ++++++++++++++--------------
KTp/Declarative/telepathy-text-observer.cpp | 98 ++++++++++++-----
KTp/Declarative/telepathy-text-observer.h | 15 +--
5 files changed, 180 insertions(+), 130 deletions(-)
diff --git a/KTp/Declarative/conversation.cpp b/KTp/Declarative/conversation.cpp
index f4a67c8..d38dd0e 100644
--- a/KTp/Declarative/conversation.cpp
+++ b/KTp/Declarative/conversation.cpp
@@ -19,33 +19,39 @@
#include "conversation.h"
-
#include "conversation-model.h"
#include <TelepathyQt4/TextChannel>
+#include <KDebug>
-class Conversation::ConversationPrivate {
+class Conversation::ConversationPrivate
+{
public:
- ConversationModel* model;
- Tp::AccountPtr account;
+ ConversationModel* model;
+ Tp::AccountPtr account;
};
-Conversation::Conversation(Tp::TextChannelPtr channel, Tp::AccountPtr account) :
- d(new ConversationPrivate)
+Conversation::Conversation ( Tp::TextChannelPtr channel, Tp::AccountPtr account ) :
+ d ( new ConversationPrivate )
{
- d->model = new ConversationModel();
- d->model->setTextChannel(channel);
+ d->model = new ConversationModel();
+ d->model->setTextChannel ( channel );
- d->account = account;
+ d->account = account;
+}
+
+Conversation::Conversation ( QObject* parent ) : QObject ( parent )
+{
+ kError() << "Conversation should not be created directly. Use ConversationWater instead.";
}
const ConversationModel* Conversation::model() const
{
- return d->model;
+ return d->model;
}
Conversation::~Conversation()
{
- delete d->model;
+ delete d->model;
}
diff --git a/KTp/Declarative/conversation.h b/KTp/Declarative/conversation.h
index bb7b40c..56de377 100644
--- a/KTp/Declarative/conversation.h
+++ b/KTp/Declarative/conversation.h
@@ -36,16 +36,17 @@ Q_PROPERTY(const ConversationModel* model READ model NOTIFY modelChanged)
public:
Conversation(Tp::TextChannelPtr channel, Tp::AccountPtr account);
+ Conversation(QObject* parent = 0);
virtual ~Conversation();
- const ConversationModel* model() const;
+ const ConversationModel* model() const;
Q_SIGNALS:
- void modelChanged(ConversationModel* newModel);
+ void modelChanged(ConversationModel* newModel);
private:
- class ConversationPrivate;
- ConversationPrivate *d;
+ class ConversationPrivate;
+ ConversationPrivate *d;
};
#endif // CONVERSATION_H
diff --git a/KTp/Declarative/messages-model.cpp b/KTp/Declarative/messages-model.cpp
index 025af1d..0c6f003 100644
--- a/KTp/Declarative/messages-model.cpp
+++ b/KTp/Declarative/messages-model.cpp
@@ -25,12 +25,12 @@
class MessageItem {
public:
- QString user;
- QString text;
- QDateTime time;
+ QString user;
+ QString text;
+ QDateTime time;
- //FIXME : replace with Tp::ChannelTextMessageType
- enum MessageType {
+ //FIXME : replace with Tp::ChannelTextMessageType
+ enum MessageType {
Incoming,
Outgoing,
Status
@@ -39,121 +39,121 @@ public:
class ConversationModel::ConversationModelPrivate {
public:
- Tp::TextChannelPtr textChannel;
- QList<MessageItem> messages;
+ Tp::TextChannelPtr textChannel;
+ QList<MessageItem> messages;
};
ConversationModel::ConversationModel(QObject* parent):
- QAbstractListModel(parent),
- d(new ConversationModelPrivate)
+ QAbstractListModel(parent),
+ d(new ConversationModelPrivate)
{
}
Tp::TextChannelPtr ConversationModel::textChannel()
{
- return d->textChannel;
+ return d->textChannel;
}
void ConversationModel::setupChannelSignals(Tp::TextChannelPtr channel)
{
- QObject::connect(channel.constData(),
- SIGNAL(messageReceived(Tp::ReceivedMessage)),
- SLOT(messageReceived(Tp::ReceivedMessage)));
- QObject::connect(channel.constData(),
- SIGNAL(messageSent(Tp::Message,Tp::MessageSendingFlags,QString)),
- SLOT(messageSent(Tp::Message,Tp::MessageSendingFlags,QString)));
+ QObject::connect(channel.constData(),
+ SIGNAL(messageReceived(Tp::ReceivedMessage)),
+ SLOT(messageReceived(Tp::ReceivedMessage)));
+ QObject::connect(channel.constData(),
+ SIGNAL(messageSent(Tp::Message,Tp::MessageSendingFlags,QString)),
+ SLOT(messageSent(Tp::Message,Tp::MessageSendingFlags,QString)));
}
void ConversationModel::setTextChannel(Tp::TextChannelPtr channel)
{
- setupChannelSignals(channel);
- if(d->textChannel) {
- removeChannelSignals(channel);
- }
+ setupChannelSignals(channel);
+ if(d->textChannel) {
+ removeChannelSignals(channel);
+ }
- d->textChannel = channel; //NOTE : is it necessary to delete the old one?
+ d->textChannel = channel;
- textChannelChanged(channel);
+ textChannelChanged(channel);
}
void ConversationModel::onMessageReceived(Tp::ReceivedMessage message)
{
- beginInsertRows(QModelIndex(), d->messages.count(), d->messages.count());
+ beginInsertRows(QModelIndex(), d->messages.count(), d->messages.count());
- MessageItem newMessage = {
- message.sender()->alias(),
- message.text(),
- message.sent(),
- MessageItem::Incoming
- };
+ MessageItem newMessage = {
+ message.sender()->alias(),
+ message.text(),
+ message.sent(),
+ MessageItem::Incoming
+ };
- d->messages.append(newMessage);
- endInsertRows();
+ d->messages.append(newMessage);
+ endInsertRows();
}
void ConversationModel::onMessageSent(Tp::Message message, Tp::MessageSendingFlags flags, QString token)
{
- Q_UNUSED(flags);
- Q_UNUSED(token);
- beginInsertRows(QModelIndex(), d->messages.count(), d->messages.count());
-
- MessageItem newMessage = {
- tr("Me"),
- message.text(),
- message.sent(),
- MessageItem::Outgoing
- };
-
- d->messages.append(newMessage);
- endInsertRows();
+ Q_UNUSED(flags);
+ Q_UNUSED(token);
+ beginInsertRows(QModelIndex(), d->messages.count(), d->messages.count());
+
+ MessageItem newMessage = {
+ tr("Me"), //FIXME : use actual nickname from Tp::AccountPtr
+ message.text(),
+ message.sent(),
+ MessageItem::Outgoing
+ };
+
+ d->messages.append(newMessage);
+ endInsertRows();
}
QVariant ConversationModel::data(const QModelIndex& index, int role) const
{
- QVariant result;
-
- if(!index.isValid()) {
- kError() << "Attempting to access data at invalid index (" << index << ")";
- } else {
- MessageItem* requestedData = &d->messages[index.row()];
-
- switch(role) {
- case UserRole:
- result = requestedData->user;
- break;
- case TextRole:
- result = requestedData->text;
- break;
- case TypeRole:
- result = requestedData->type;
- break;
- case TimeRole:
- result = requestedData->time;
- break;
- };
- }
-
- return result;
+ QVariant result;
+
+ if(!index.isValid()) {
+ kError() << "Attempting to access data at invalid index (" << index << ")";
+ } else {
+ MessageItem* requestedData = &d->messages[index.row()];
+
+ switch(role) {
+ case UserRole:
+ result = requestedData->user;
+ break;
+ case TextRole:
+ result = requestedData->text;
+ break;
+ case TypeRole:
+ result = requestedData->type;
+ break;
+ case TimeRole:
+ result = requestedData->time;
+ break;
+ };
+ }
+
+ return result;
}
int ConversationModel::rowCount(const QModelIndex& parent) const
{
- Q_UNUSED(parent);
- return d->messages.count();
+ Q_UNUSED(parent);
+ return d->messages.count();
}
void ConversationModel::removeChannelSignals(Tp::TextChannelPtr channel)
{
- QObject::disconnect(channel.constData(),
- SIGNAL(messageReceived(Tp::ReceivedMessage)),
- this,
- SLOT(onMessageReceived(Tp::ReceivedMessage))
- );
- QObject::disconnect(channel.constData(),
- SIGNAL(messageSent(Tp::Message,Tp::MessageSendingFlags,QString)),
- this,
- SLOT(onMessageSent(Tp::Message,Tp::MessageSendingFlags,QString))
- );
+ QObject::disconnect(channel.constData(),
+ SIGNAL(messageReceived(Tp::ReceivedMessage)),
+ this,
+ SLOT(onMessageReceived(Tp::ReceivedMessage))
+ );
+ QObject::disconnect(channel.constData(),
+ SIGNAL(messageSent(Tp::Message,Tp::MessageSendingFlags,QString)),
+ this,
+ SLOT(onMessageSent(Tp::Message,Tp::MessageSendingFlags,QString))
+ );
}
#include "moc_conversation-model.cpp"
diff --git a/KTp/Declarative/telepathy-text-observer.cpp b/KTp/Declarative/telepathy-text-observer.cpp
index 03e1f6e..bb3ef38 100644
--- a/KTp/Declarative/telepathy-text-observer.cpp
+++ b/KTp/Declarative/telepathy-text-observer.cpp
@@ -25,6 +25,7 @@
#include <TelepathyQt4/ChannelClassSpec>
#include <TelepathyQt4/TextChannel>
#include "conversation.h"
+#include <TelepathyQt4/ClientRegistrar>
static inline Tp::ChannelClassSpecList channelClassList()
@@ -34,40 +35,87 @@ static inline Tp::ChannelClassSpecList channelClassList()
<< Tp::ChannelClassSpec::textChatroom();
}
-ConversationWatcher::ConversationWatcher() :
- AbstractClientObserver(channelClassList())
+class ConversationWatcher::ConversationClientObserver :
+ public Tp::AbstractClientObserver
{
- kDebug();
- qFatal("Derp!");
- *(int*)0=0;
-}
+public:
+ virtual void observeChannels(
+ const Tp::MethodInvocationContextPtr<>& context,
+ const Tp::AccountPtr& account,
+ const Tp::ConnectionPtr& connection,
+ const QList< Tp::ChannelPtr >& channels,
+ const Tp::ChannelDispatchOperationPtr& dispatchOperation,
+ const QList< Tp::ChannelRequestPtr >& requestsSatisfied,
+ const Tp::AbstractClientObserver::ObserverInfo& observerInfo)
+ {
+ kDebug();
+
+ Tp::TextChannelPtr textChannel;
+ Q_FOREACH(const Tp::ChannelPtr & channel, channels) {
+ textChannel = Tp::TextChannelPtr::dynamicCast(channel);
+ if (textChannel) {
+ break;
+ }
+ }
-void ConversationWatcher::observeChannels(const Tp::MethodInvocationContextPtr<>& context,
- const Tp::AccountPtr& account,
- const Tp::ConnectionPtr& connection,
- const QList< Tp::ChannelPtr >& channels,
- const Tp::ChannelDispatchOperationPtr& dispatchOperation,
- const QList< Tp::ChannelRequestPtr >& requestsSatisfied,
- const Tp::AbstractClientObserver::ObserverInfo& observerInfo)
-{
- kDebug();
+ Q_ASSERT(textChannel);
- Tp::TextChannelPtr textChannel;
- Q_FOREACH(const Tp::ChannelPtr & channel, channels) {
- textChannel = Tp::TextChannelPtr::dynamicCast(channel);
- if (textChannel) {
- break;
- }
+ Conversation con(textChannel, account);
+ m_parent->newConversation(&con);
}
- Q_ASSERT(textChannel);
+ ConversationClientObserver(ConversationWatcher *parent) :
+ AbstractClientObserver(channelClassList()),
+ m_parent(parent)
+ {
+ }
- Conversation con(textChannel, account);
- newConversation(con);
+ ConversationWatcher *m_parent;
+ Tp::ClientRegistrarPtr registrar;
+};
+
+ConversationWatcher::ConversationWatcher() :
+ d(new ConversationClientObserver(this))
+{
+ kDebug();
+ Tp::registerTypes();
+ Tp::AccountFactoryPtr accountFactory = Tp::AccountFactory::create(QDBusConnection::sessionBus(),
+ Tp::Account::FeatureCore);
+
+ Tp::ConnectionFactoryPtr connectionFactory = Tp::ConnectionFactory::create(
+ QDBusConnection::sessionBus(),
+ Tp::Features() << Tp::Connection::FeatureSelfContact
+ << Tp::Connection::FeatureCore
+ );
+
+ Tp::ChannelFactoryPtr channelFactory = Tp::ChannelFactory::create(QDBusConnection::sessionBus());
+ channelFactory->addCommonFeatures(Tp::Channel::FeatureCore);
+
+ Tp::Features textFeatures = Tp::Features() << Tp::TextChannel::FeatureMessageQueue
+ << Tp::TextChannel::FeatureMessageSentSignal
+ << Tp::TextChannel::FeatureChatState
+ << Tp::TextChannel::FeatureMessageCapabilities;
+ channelFactory->addFeaturesForTextChats(textFeatures);
+ channelFactory->addFeaturesForTextChatrooms(textFeatures);
+
+ Tp::ContactFactoryPtr contactFactory = Tp::ContactFactory::create(
+ Tp::Features() << Tp::Contact::FeatureAlias
+ << Tp::Contact::FeatureAvatarToken
+ << Tp::Contact::FeatureAvatarData
+ << Tp::Contact::FeatureCapabilities
+ << Tp::Contact::FeatureSimplePresence
+ );
+
+ d->registrar = Tp::ClientRegistrar::create(accountFactory, connectionFactory,
+ channelFactory, contactFactory);
+
+ d->registrar->registerClient(d, QLatin1String("KDE.TextUi.ConversationWatcher"));
}
+
+
ConversationWatcher::~ConversationWatcher()
{
}
-#include "moc_conversation-watcher.cpp"
\ No newline at end of file
+#include "moc_conversation-watcher.cpp"
diff --git a/KTp/Declarative/telepathy-text-observer.h b/KTp/Declarative/telepathy-text-observer.h
index 4364a41..3ea80c0 100644
--- a/KTp/Declarative/telepathy-text-observer.h
+++ b/KTp/Declarative/telepathy-text-observer.h
@@ -26,24 +26,19 @@
class Conversation;
-class KDE_TELEPATHY_CHAT_EXPORT ConversationWatcher : public QObject, public Tp::AbstractClientObserver
+class KDE_TELEPATHY_CHAT_EXPORT ConversationWatcher : public QObject
{
Q_OBJECT
public:
- virtual void observeChannels(const Tp::MethodInvocationContextPtr<>& context,
- const Tp::AccountPtr& account,
- const Tp::ConnectionPtr& connection,
- const QList< Tp::ChannelPtr >& channels,
- const Tp::ChannelDispatchOperationPtr& dispatchOperation,
- const QList< Tp::ChannelRequestPtr >& requestsSatisfied,
- const Tp::AbstractClientObserver::ObserverInfo& observerInfo
- );
ConversationWatcher();
~ConversationWatcher();
Q_SIGNALS:
- void newConversation(Conversation&);
+ void newConversation(Conversation *con);
+private:
+ class ConversationClientObserver;
+ Tp::SharedPtr<ConversationClientObserver> d;
};
#endif // CONVERSATION_WATCHER_H
--
ktp-common-internals packaging
More information about the pkg-kde-commits
mailing list