Telepathy File Transfer in KSnapshot

This wasn’t in my project, but I thought it would be useful…
When I’m chatting with someone, I often need to send him screenshots, so the “standard procedure” is to hit printscreen (KSnapshot pops up), save the file, open Kopete, find contact, right click, send file, locate the file on my file system… That’s boring! What about a “Send to…” menu in KSnapshot?

Easy done using KTelepathy šŸ˜‰

"Send to..." button in KSnapshot

"Send to.." menu in KSnapshot

GSoC Update: Telepathy File Transfer in Cantor

A few updates about my GSoC:

  • Most of the contact list work was moved in a library (libktelepathy in trunk/playground/network/). It is quite ugly at the moment, it will need a lot of cleaning
  • File transfer jobs don’t depend on any qt/telepathy-qt4 patch, so they are now in libktelepathy. By the way all issues with file transfer and telepathy-qt4 are now fixed, but we decided that the kioslave is outside the goal of my project, so I abandoned it for the moment
  • I added a “Send to…” menu in Cantor, the allows you to send your results to your contacts, not only images, but also latex formulas and animations!
"Send to..." menu in Cantor

GSoC Update: DBusTubes work!

“D-Bus Tubes allow you to share a private D-Bus bus between two or more clients, proxied over Telepathy.” Basically this means that your client can create a dbus object and share its methods and signals with a client run by your contact (you can find more information here).

Here at Akademy in Tampere we fixed telepathy-qt4 and now Telepathy DBusTubes can be used in KDE!
You need to patch qt and you need to patch telepathy-qt4, but they do work!

We also set up a small demo application called KWhiteBoard, that is a shared white-board that allows you to draw very beautiful black and white drawings with your favorite remote friend. Well, the functionalities are quite limited at the moment, but it will get more soon!

KWhiteBoard "hello world"

If you want to try KWhiteBoard or just DBusTubes in your application you need to rebuild patched Qt and telepathy-qt4, but if you ping me on #telepathy-kde, (or if you are in tampere, I’ll be here until sunday morning) I’ll be happy to help you setting up everything!

GSoC update

Just a quick update about my GSoC project:

  • StreamTubes works both offering and accepting, and both on Tcp and Local sockets (code still needs some cleaning)
  • I’m waiting for Dario to add DBusTubes support in Telepathy-qt4. Then it shouldn’t take much time…
  • Sending and receiving files works, but I’m writing on a telepathy kioslave that will allow, for example, to send files using drag and drop or starting a copyjob.
  • I had some troubles with receiving file transfer due to telepathy-gabble 0.9, even the telepathy-qt4 example is not working, so I switchd back to 0.8
  • Today I quickly installed a local xmmp server (ejabberd) on my laptop. Now I have a local server and a remote server with several testing accounts on each, 2 different kde builds from trunk and a big mess on my hard disk, tons of code that need to be cleaned and a huge todo list… šŸ˜›
  • I hope to start working on plasma widget sharing as soon as I come back from Akademy…

Ah! I almost forgot…

I'm going to Akademy 2010

I'm going to Akademy 2010

More Telepathy StreamTubes in KDE

Offering a TCP StreamTube finally works as it is supposed to do! So, if you want to start a streamtube, you just have to create an OfferTcpStreamTubeJob using your favorite method offered by TelepathyBridge:

KJob* offerTcpStreamTube(const Nepomuk::PersonContact& contact,
                         const QVariantMap& parameters = QVariantMap());
KJob* offerTcpStreamTube(const Nepomuk::PersonContact& contact,
                         const QHostAddress& hostAddress,
                         quint16 port = 0,
                         const QVariantMap& parameters = QVariantMap());
KJob* offerTcpStreamTube(const Nepomuk::PersonContact& contact,
                         QTcpServer* server,
                         const QVariantMap& parameters = QVariantMap());
KJob* offerTcpStreamTube(const Nepomuk::Person& metacontact,
                         const QVariantMap& parameters = QVariantMap());
KJob* offerTcpStreamTube(const Nepomuk::Person& metacontact,
                         const QHostAddress& hostAddress,
                         quint16 port = 0,
                         const QVariantMap& parameters = QVariantMap());
KJob* offerTcpStreamTube(const Nepomuk::Person& metacontact,
                         QTcpServer* server,
                         const QVariantMap& parameters = QVariantMap());

…for example…

Nepomuk::PersonContact targetContact = ...;
server = new QTcpServer;
server->listen();
KJob* job = TelepathyBridge::instance()->offerTcpStreamTube(targetContact, server);

…then just start the job…

connect( job, SIGNAL(result(KJob*)), this, SLOT (handleResult(KJob*))); job->start();

…and you should be able to forget that you are using telepathy and you can control everything using your QTcpServer!

If you feel brave enough to test it, you can find the code on gitorious

And now time for some more beautiful screenshots (Yeah, they are not really useful, but I wanted to show something šŸ˜› )

More StreamTube Parameters

More StreamTube Parameters

KNotify and StreamTubes

KNotify and StreamTubes


EDIT: I really hate you, WordPress! Iā€™m sorry for escaped characters…