office-gobmx/tubes
Stephan Bergmann 226383e690 loplugin:reservedid
Change-Id: I49e0e53b4ff17170e8aa8247b5428b6f1209d93c
2016-10-28 08:52:47 +02:00
..
qa
source loplugin:reservedid 2016-10-28 08:52:47 +02:00
uiconfig/ui
CppunitTest_tubes_test.mk
Executable_liboapprover.mk
Library_tubes.mk
LibreOffice.client
LibreOfficeApprover.client
Makefile
Module_tubes.mk
org.freedesktop.Telepathy.Client.LibreOffice.service
org.freedesktop.Telepathy.Client.LibreOfficeApprover.service
README
UIConfig_tubes.mk

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
http://telepathy.freedesktop.org/releases/telepathy-glib/
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