[GSoC 2012][Collaboration] status, ideas

Eike Rathke erack at redhat.com
Mon Jul 16 06:16:25 PDT 2012

Hi Matúš,

On Saturday, 2012-07-14 19:49:29 +0200, Matúš Kukan wrote:

> This may be a little longer because it's still not clear how the
> telepathy framework should work.

If you have detailed questions I suggest you /join #telepathy on

> I've pushed 10 more patches, all because I wanted to do the last one -
> inviting people into MUC.
> What's new:
> - Registering client handlers is executed with Listen button in
> Collaborate dialog.
> Then current document can accept new channel and receive files. (was
> LIBO_TUBES=slave)

So the LIBO_TUBES variable isn't needed at all anymore, at least
I didn't find it referenced in the code anymore. That's good.

> - ScDocFuncSend owns TeleConference (the channel) instead of
> TeleManager and can directly communicate.
> Thus each document can collaborate with different contact.

Sounds good.

> - Inviting contacts is possible.
> This seem to work. I also played with .service and .client files
> mentioned in tubes/README.
> And it works! I was able to invite a contact and after accepting in VM
> in empathy, Channel Dispatcher has executed .../soffice --calc as told
> in org.freedesktop.Telepathy.Client.LibreOffice.service.
> I was thinking that it could run .../soffice --accept-tube, so we know
> why Libreoffice is started and do something clever ;-)
> But this needs more work and ideas as mentioned later below.

Do things work in any way now when the .client files are not installed?

> Note: that by pressing Collaborate button we are now starting MUC
> session. 'saveme' (sending a file) for example does not work then.
> You can change that in contacts.cxx [3]. Maybe I should add another button but..
> Also, what's not intuitive is that, when you select a contact and
> press Collaborate, the account to which the contact belongs to is
> connecting to liboroom at conference.jabber.org.
> So not the contact you see in the dialog. Check in terminal.

We'll need the MUC be configurable and not hardwired anyway. And both,
1-to-1 and MUC collaboration, should be possible. So extending the
dialog for MUCs will be inevitable ;)

With the current setup it is impossible to run against a local jabberd
that is not connected to the outer world.. in fact I pulled the changes
and now can't test anything.

Btw, the contacts list when opened is not populated until the Listen
button is clicked once and the contacts dialog opened again.

> What's wrong:
> - TeleManager is never destroyed.
> Because I don't know where.

I think ScDocFuncSend and/or ScDocFuncRecv could hold a pointer they
obtained from TubeContacts and call TeleManager::unref() when destroyed.
Make sure TubeContacts passes the pointer by calling TeleManager::get()
to increment the reference count and unrefs any instance it obtained via
get() itself.

> And also where we want the code which is called after signaling from
> tubes/ (when we receive a file or a new channel) ?
> Or more importantly: what should happen ?
>   - when someone wants to start a session with us, he sends us file
> and then we can start collaborating on it ?

Yes. Though in practice it should be an invitation and the file sent
only if the receiver accepted.

>     There is no other case when someone sends us file ?

Currently not. Maybe we could distinguish between a "send file" and
"send file for collaboration" later.

>     I am not sure how to do this. Some class alive as the whole
> ./soffice is running could help.

But that did already work with the "saveme" hack, or do I lose track

>     But still, after receiving new channel [4], I need to accept it,
> receive the file and then bind the channel to that file ?

Yes. But also that (except accepting) worked already, if I'm not

> - Also unit test is broken

Hum.. why that? It didn't break here, or is it the slowcheck

> Should I start working on side-bar widget we can dock ? Any hints?
> But I think that we need to improve receiving channels and files,
> handle TeleManager properly and everything related.

Please work on the channels and file receiving internals first, widget
eye candy can be added later.

> Hope you can parse this, I am loosing myself,

Seemed to do ;-)


LibreOffice Calc developer. Number formatter stricken i18n transpositionizer.
GnuPG key 0x293C05FD : 997A 4C60 CE41 0149 0DB3  9E96 2F1A D073 293C 05FD
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/libreoffice/attachments/20120716/9f07db8e/attachment.pgp>

More information about the LibreOffice mailing list