Home · Modules · All Classes · All Namespaces
roster/roster-window.cpp
#include "roster-window.h"
#include "_gen/roster-window.moc.hpp"
#include "roster-widget.h"
#include <TelepathyQt/Types>
#include <TelepathyQt/ChannelFactory>
#include <TelepathyQt/Connection>
#include <TelepathyQt/ConnectionFactory>
#include <TelepathyQt/ContactFactory>
#include <TelepathyQt/PendingOperation>
#include <TelepathyQt/PendingReady>
#include <QDebug>
using namespace Tp;
RosterWindow::RosterWindow(const QString &accountName, QWidget *parent)
: QMainWindow(parent)
{
setWindowTitle(QLatin1String("Roster"));
setupGui();
ChannelFactoryPtr channelFactory = ChannelFactory::create(
QDBusConnection::sessionBus());
ConnectionFactoryPtr connectionFactory = ConnectionFactory::create(
QDBusConnection::sessionBus(), Connection::FeatureConnected |
ContactFactoryPtr contactFactory = ContactFactory::create(
TP_QT_ACCOUNT_OBJECT_PATH_BASE + QLatin1Char('/') + accountName,
connectionFactory, channelFactory, contactFactory);
connect(mAccount->becomeReady(Account::FeatureCore),
SIGNAL(finished(Tp::PendingOperation *)),
SLOT(onAccountReady(Tp::PendingOperation *)));
resize(240, 320);
}
RosterWindow::~RosterWindow()
{
}
void RosterWindow::setupGui()
{
mRoster = new RosterWidget();
setCentralWidget(mRoster);
}
void RosterWindow::onAccountReady(Tp::PendingOperation *op)
{
if (op->isError()) {
qWarning() << "Account cannot become ready - " <<
op->errorName() << '-' << op->errorMessage();
QCoreApplication::exit(1);
return;
}
qDebug() << "Account ready";
connect(mAccount.data(),
SIGNAL(connectionChanged(Tp::ConnectionPtr)),
SLOT(onAccountConnectionChanged(Tp::ConnectionPtr)));
if (mAccount->connection().isNull()) {
qDebug() << "The account given has no Connection. Please set it online to continue.";
}
onAccountConnectionChanged(mAccount->connection());
}
void RosterWindow::onAccountConnectionChanged(const ConnectionPtr &conn)
{
if (conn) {
mRoster->setConnection(conn);
} else {
mRoster->unsetConnection();
}
}
Tp::PendingOperation
The PendingOperation class is a base class for pending asynchronous operations.
Definition: pending-operation.h:45
Tp::PendingOperation::errorMessage
QString errorMessage() const
Definition: pending-operation.cpp:264
Tp::PendingOperation::errorName
QString errorName() const
Definition: pending-operation.cpp:252
Tp::ConnectionFactory::create
static ConnectionFactoryPtr create(const QDBusConnection &bus, const Features &features=Features())
Definition: connection-factory.cpp:57
Tp::Connection::FeatureRosterGroups
static const Feature FeatureRosterGroups
Definition: connection.h:72
Tp::Contact::FeatureSimplePresence
static const Feature FeatureSimplePresence
Definition: contact.h:63
Tp::ChannelFactory::create
static ChannelFactoryPtr create(const QDBusConnection &bus)
Definition: channel-factory.cpp:86
TP_QT_ACCOUNT_OBJECT_PATH_BASE
#define TP_QT_ACCOUNT_OBJECT_PATH_BASE
Definition: TelepathyQt/constants.h:106
Tp
Definition: abstract-adaptor.cpp:31
Tp::Connection::FeatureConnected
static const Feature FeatureConnected
Definition: connection.h:74
Tp::Connection::FeatureRoster
static const Feature FeatureRoster
Definition: connection.h:71
Tp::PendingOperation::isError
bool isError() const
Definition: pending-operation.cpp:240
Tp::Account::FeatureCore
static const Feature FeatureCore
Definition: account.h:103
Tp::ContactFactory::create
static ContactFactoryPtr create(const Features &features=Features())
Definition: contact-factory.cpp:48
TP_QT_ACCOUNT_MANAGER_BUS_NAME
#define TP_QT_ACCOUNT_MANAGER_BUS_NAME
Definition: TelepathyQt/constants.h:76
Tp::Contact::FeatureAlias
static const Feature FeatureAlias
Definition: contact.h:57
Tp::Account::create
static AccountPtr create(const QString &busName, const QString &objectPath, const ConnectionFactoryConstPtr &connectionFactory=ConnectionFactory::create(QDBusConnection::sessionBus()), const ChannelFactoryConstPtr &channelFactory=ChannelFactory::create(QDBusConnection::sessionBus()), const ContactFactoryConstPtr &contactFactory=ContactFactory::create())
Definition: account.cpp:946