office-gobmx/tubes
Stephan Bergmann 106ea87205 Remove _TYPED suffix from tools/link.hxx macros
...which was introduced with 3ead3ad52f "Gradually
typed Link" to distinguish the new, typed versions from the old, untyped ones,
but is no longer necessary since 382eb1a23c
"remove untyped Link<>" removed the old versions.

Change-Id: I494025df486a16a45861fcd8192dfe0275b1103c
2016-10-05 07:56:12 +02:00
..
qa
source
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