GSoC proposal: collaborative editor
Daniele E. Domenichelli
daniele.domenichelli at gmail.com
Wed Mar 21 01:09:08 UTC 2012
Hello Othmane,
On 20/03/12 23:01, Othmane Moustaouda wrote:
>I thought that
> should be possible to manage the text's changes through a mechanism
> based on diffs, i.e. each time an user makes a change to the shared
> text, a diff will be generated and shared to all other participants.
>
> In order to make this possible, in my vision, something like a
> checksum is needed, to ensure that all participants are working on the
> same text.
> [...]
> About the diff part, since Qt doesn't offer something for generating a
> diff between two strings, I have to use some kind of library that
> offers a diff algorithm, searching I found a very few of interesting
> things,
> [...]
> a little graphical detail (adopted by almost collaborative editors)
> could be that each participant will have its own color and every
> addition made by him will have that color as background.
diff + checksum makes me think about git! You could also get for free a
full history of the document, tags, blame (for the colours), and much
more... Perhaps it makes no sense, but it might be worth investigating.
> All these informations will be transmitted via a D-Bus Tube, I thought
> that for this case a D-Bus Tube is more convenient for use than a
> Stream Tube as it offers the possibility to handle events via signals
> (for example an user login or logout, or a text modify).
On 21/03/12 00:12, David Edmundson wrote:
> Quick word change - on a stream tube, you'd still have a dbus
> connection to telepathy so you'd get signals for
> entering/disconnecting. You're absolutely right a dbus one some
> advantages (like the last one you mentioned) but the contacts in the
> room isn't one.
If I remember correctly, you do get connect/disconnect signals on multi
user dbustubes, for single user tubes you just get disconnected.
I don't think you can have multi user streamtubes though, so if you want
to go for a multi user collaborative editor dbustubes is the way to go.
> I made an initial UI draft, it's very basic, something like a starting point
> http://dl.dropbox.com/u/61029609/ui_draft1.png
+1 on the mockup from me too! Try to find out if some parts of the UI
can be reused later for something else (for example to make a "shared
whiteboard"), and/or if you can reuse some code or libraries for your
interface.
Good luck with your project!
Daniele
More information about the KDE-Telepathy
mailing list