View module in:   cgit   Doxygen


Interface to Telepathy Tubes.

The idea is to provide 1-1 collaboration between contacts and many-many collaboration via MUCs, using Telepathy DBus Tubes over Jabber/XMPP.

To enable configure LibO with --enable-telepathy

Currently (2012-04-14) at least telepathy-glib 0.18 is needed, which doesn't come with distributions. Download it from and make install it locally, e.g. with --prefix=$HOME/usr For LibO configure then use PKG_CONFIG_PATH="$HOME/usr/lib/pkgconfig To not have tubes and sc cppunittests stumble (LD_LIBRARY_PATH is not evaluated in unit tests and thus not a solution) copy the libs to the solver, i.e. cp -p $HOME/usr/lib/libtelepathy-glib.* $SRCDIR/solver/$INPATH/lib/

If you have a Telepathy-enabled LibreOffice installed to /usr (including liboapprover) you may also want to install the .service and .client files to make everything service-activatable. Currently this does not seem to work.

mkdir -p $HOME/.local/share/telepathy/clients ln -s $PWD/tubes/LibreOffice.client \ $PWD/tubes/LibreOfficeApprover.client \ $HOME/.local/share/telepathy/clients

mkdir -p $HOME/.local/share/dbus-1/services ln -s $PWD/tubes/org.freedesktop.Telepathy.Client.LibreOfficeApprover.service \ $PWD/tubes/org.freedesktop.Telepathy.Client.LibreOffice.service \ $HOME/.local/share/dbus-1/services

* liboapprover

You may run it in the background. When someone wants to collaborate with you, you then get a confirmation dialog.

* Demo modes

To play with the interposing without having an online account connected, create a bit of a document, go to File -> Collaboration -> startDemoSession and bingo.

* To do interesting things with this code build and run calc thus:

SAL_LOG=1 ./soffice --calc

Now type simple strings into cells, rename sheets, or go to File -> Collaboration; Listen; startBuddySession; to transfer your document as-is to the other side ...

* for the cppunittest needed: * Configure two Jabber accounts in Empathy * Both must be online and on each other's contact list * Copy qa/test-config.ini.example to qa/test-config.ini, and specify those two accounts' JIDs in it.

* TODOs:

* TeleConference is not deleted anywhere * dialog to pick own account * dialog to pick contact or MUC to work with * dialog to accept/reject collaboration requests * make the .service and .client files work reliably

In applications, e.g. Calc:

* stricter model,view,controller * disable all actions we cannot process collaboratively * separate input from view * preprocess input to determine data type (text, number, date, ...) * send typed/categorized data over wire before actually processing in model * process serialized input as received * Calc specific: * use existing shared document feature with change-tracking enabled to visualize changes * may have the benefit of having already only a subset of trackable change actions available * let ScDocFunc handle also received changes * have dialogs send their result item sets over the wire