[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdenetwork/krdc
From: George Kiagiadakis <kiagiadakis.george () gmail ! com>
Date: 2012-03-06 16:54:14
Message-ID: 20120306165414.CC8A3AC897 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1283919 by gkiagia:
Port telepathy tubes support to the new high level tubes api.
M +0 -1 CMakeLists.txt
M +2 -7 mainwindow.cpp
M +1 -6 mainwindow.h
D tube.cpp
D tube.h
M +32 -76 tubesmanager.cpp
M +17 -20 tubesmanager.h
--- trunk/KDE/kdenetwork/krdc/CMakeLists.txt #1283918:1283919
@@ -84,7 +84,6 @@
if(BUILD_EXPERIMENTAL_TUBES_SUPPORT AND TELEPATHY_QT4_FOUND)
set(krdc_SRCS ${krdc_SRCS}
tubesmanager.cpp
- tube.cpp
)
endif(BUILD_EXPERIMENTAL_TUBES_SUPPORT AND TELEPATHY_QT4_FOUND)
--- trunk/KDE/kdenetwork/krdc/mainwindow.cpp #1283918:1283919
@@ -251,13 +251,8 @@
#ifdef TELEPATHY_SUPPORT
/* Start tube handler */
- m_tubesManager = Tp::SharedPtr<TubesManager>(new TubesManager(this));
- connect(m_tubesManager.data(),
- SIGNAL(newConnection(KUrl)),
- SLOT(newConnection(KUrl)));
-
- m_registrar = Tp::ClientRegistrar::create();
- m_registrar->registerClient(Tp::AbstractClientPtr::dynamicCast(m_tubesManager), "krdc_rfb_handler");
+ m_tubesManager = new TubesManager(this);
+ connect(m_tubesManager, SIGNAL(newConnection(KUrl)), SLOT(newConnection(KUrl)));
#endif
}
--- trunk/KDE/kdenetwork/krdc/mainwindow.h #1283918:1283919
@@ -32,10 +32,6 @@
#include <KService>
#include <KXmlGuiWindow>
-#ifdef TELEPATHY_SUPPORT
-#include <TelepathyQt4/ClientRegistrar>
-#endif
-
class KComboBox;
class KLineEdit;
class KPushButton;
@@ -139,8 +135,7 @@
QTableView *m_newConnectionTableView;
QSortFilterProxyModel *m_remoteDesktopsModelProxy;
#ifdef TELEPATHY_SUPPORT
- Tp::SharedPtr<TubesManager> m_tubesManager;
- Tp::ClientRegistrarPtr m_registrar;
+ TubesManager *m_tubesManager;
#endif
QWidget *m_newConnectionWidget;
};
--- trunk/KDE/kdenetwork/krdc/tubesmanager.cpp #1283918:1283919
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2009 Collabora Ltd <info@collabora.co.uk>
+** Copyright (C) 2009-2011 Collabora Ltd <info@collabora.co.uk>
** Copyright (C) 2009 Abner Silva <abner.silva@kdemail.net>
**
** This file is part of KDE.
@@ -24,25 +24,14 @@
#include "tubesmanager.h"
-#include <TelepathyQt4/ChannelClassSpecList>
+#include <TelepathyQt4/IncomingStreamTubeChannel>
#include <TelepathyQt4/Debug>
#include <KDebug>
-static inline Tp::ChannelClassSpecList channelClassSpecList()
-{
- Tp::ChannelClassSpec spec = Tp::ChannelClassSpec();
- spec.setChannelType(TP_QT4_IFACE_CHANNEL_TYPE_STREAM_TUBE);
- spec.setTargetHandleType(Tp::HandleTypeContact);
- spec.setRequested(false);
- spec.setProperty(QString(TP_QT4_IFACE_CHANNEL_TYPE_STREAM_TUBE) + ".Service",
- QVariant("rfb"));
- return Tp::ChannelClassSpecList() << spec;
-}
TubesManager::TubesManager(QObject *parent)
- : QObject(parent),
- AbstractClientHandler(channelClassSpecList())
+ : QObject(parent)
{
kDebug() << "Initializing tubes manager";
@@ -51,82 +40,49 @@
/* Registering telepathy types */
Tp::registerTypes();
+
+ m_stubeClient = Tp::StreamTubeClient::create(
+ QStringList() << QLatin1String("rfb"),
+ QStringList(),
+ QLatin1String("krdc_rfb_handler"));
+
+ m_stubeClient->setToAcceptAsTcp();
+
+ connect(m_stubeClient.data(),
+ SIGNAL(tubeAcceptedAsTcp(QHostAddress,quint16,QHostAddress,quint16,
+ Tp::AccountPtr,Tp::IncomingStreamTubeChannelPtr)),
+ SLOT(onTubeAccepted(QHostAddress,quint16,QHostAddress,quint16,
+ Tp::AccountPtr,Tp::IncomingStreamTubeChannelPtr)));
}
TubesManager::~TubesManager()
{
- kDebug() << "Destroying tube manager";
+ kDebug() << "Destroying tubes manager";
}
-bool TubesManager::bypassApproval() const
+void TubesManager::closeTube(const KUrl& url)
{
- kDebug() << "bypassing";
- return false;
+ if (m_tubes.contains(url)) {
+ m_tubes.take(url)->requestClose();
}
+}
-void TubesManager::handleChannels(const Tp::MethodInvocationContextPtr<> & context,
+void TubesManager::onTubeAccepted(
+ const QHostAddress & listenAddress, quint16 listenPort,
+ const QHostAddress & sourceAddress, quint16 sourcePort,
const Tp::AccountPtr & account,
- const Tp::ConnectionPtr & connection,
- const QList<Tp::ChannelPtr> & channels,
- const QList<Tp::ChannelRequestPtr> & requestsSatisfied,
- const QDateTime & userActionTime,
- const Tp::AbstractClientHandler::HandlerInfo & handlerInfo)
+ const Tp::IncomingStreamTubeChannelPtr & tube)
{
+ Q_UNUSED(sourceAddress);
+ Q_UNUSED(sourcePort);
Q_UNUSED(account);
- Q_UNUSED(connection);
- Q_UNUSED(requestsSatisfied);
- Q_UNUSED(userActionTime);
- Q_UNUSED(handlerInfo);
- foreach(const Tp::ChannelPtr &channel, channels) {
- kDebug() << "Handling new tube";
+ KUrl url;
+ url.setScheme("vnc");
+ url.setHost(listenAddress.toString());
+ url.setPort(listenPort);
- QVariantMap properties = channel->immutableProperties();
-
- if (properties[TELEPATHY_INTERFACE_CHANNEL ".ChannelType"] ==
- TELEPATHY_INTERFACE_CHANNEL_TYPE_STREAM_TUBE) {
-
- kDebug() << "Handling:" << TELEPATHY_INTERFACE_CHANNEL_TYPE_STREAM_TUBE;
-
- /* New tube arrived */
- Tube *tube = new Tube(channel, this);
-
- /* Listening to tube status changed */
- connect(tube,
- SIGNAL(statusChanged(Tube::Status)),
- SLOT(onTubeStateChanged(Tube::Status)));
-
- m_tubes.append(tube);
- }
- }
- context->setFinished();
-}
-
-void TubesManager::closeTube(KUrl url)
-{
- kDebug() << "Closing tube:" << url;
-
- foreach (Tube *tube, m_tubes)
- if (tube->url() == url) {
- m_tubes.removeOne(tube);
- tube->close();
- }
-}
-
-void TubesManager::onTubeStateChanged(Tube::Status status)
-{
- kDebug() << "tube status changed:" << status;
- Tube *tube = qobject_cast<Tube *>(sender());
-
- if (status == Tube::Open) {
- KUrl url = tube->url();
kDebug() << "newConnection:" << url;
+ m_tubes.insert(url, tube);
emit newConnection(url);
}
- else if (status == Tube::Close) {
- kDebug() << "Tube:" << tube->url() << "closed";
- m_tubes.removeOne(tube);
- tube->deleteLater();
- kDebug() << m_tubes;
- }
-}
--- trunk/KDE/kdenetwork/krdc/tubesmanager.h #1283918:1283919
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2009 Collabora Ltd <info@collabora.co.uk>
+** Copyright (C) 2009-2011 Collabora Ltd <info@collabora.co.uk>
** Copyright (C) 2009 Abner Silva <abner.silva@kdemail.net>
**
** This file is part of KDE.
@@ -25,13 +25,11 @@
#ifndef TUBESMANAGER_H
#define TUBESMANAGER_H
-#include "tube.h"
-
-#include <TelepathyQt4/AbstractClientHandler>
-
+#include <TelepathyQt4/StreamTubeClient>
+#include <QtNetwork/QHostAddress>
#include <KUrl>
-class TubesManager : public QObject, public Tp::AbstractClientHandler
+class TubesManager : public QObject
{
Q_OBJECT
@@ -39,24 +37,23 @@
TubesManager(QObject *parent);
virtual ~TubesManager();
- void closeTube(KUrl url);
+ void closeTube(const KUrl & url);
- virtual bool bypassApproval() const;
- virtual void handleChannels(const Tp::MethodInvocationContextPtr<> & context,
- const Tp::AccountPtr & account,
- const Tp::ConnectionPtr & connection,
- const QList<Tp::ChannelPtr> & channels,
- const QList<Tp::ChannelRequestPtr> & requestsSatisfied,
- const QDateTime & userActionTime,
- const Tp::AbstractClientHandler::HandlerInfo & handlerInfo);
-
-private Q_SLOTS:
- void onTubeStateChanged(Tube::Status);
-
Q_SIGNALS:
void newConnection(KUrl);
+private Q_SLOTS:
+ void onTubeAccepted(
+ const QHostAddress & listenAddress,
+ quint16 listenPort,
+ const QHostAddress & sourceAddress,
+ quint16 sourcePort,
+ const Tp::AccountPtr & account,
+ const Tp::IncomingStreamTubeChannelPtr & tube);
+
private:
- QList<Tube *> m_tubes;
+ Tp::StreamTubeClientPtr m_stubeClient;
+ QHash<KUrl, Tp::IncomingStreamTubeChannelPtr> m_tubes;
};
+
#endif
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic