[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kwrite-devel
Subject:    GSoC proposal: "Kobby"
From:       Alex Merry <huntedhacker () tiscali ! co ! uk>
Date:       2008-03-21 1:01:18
Message-ID: 200803210101.25187.huntedhacker () tiscali ! co ! uk
[Download RAW message or body]

[Attachment #2 (multipart/signed)]


I'm interested in applying for one of the suggested GSoC projects: a 
KTextEditor plugin for Infinote, the replacement for Gobby.

This list seemed the most related one for this proposal.  I've also included 
Andreas Ramm in the email, as he was suggested as the mentor for the project 
on the ideas page.

Included below is what I've come up with for my application.  It's a little 
over the character limit for the synopsis for the application form, but I 
would put this in a PDF file and link to it from my application.

Any comments/criticisms/advice would be greatly appreciated!

Alex



Kobby - Alex Merry

Collaborative editing is very useful, particularly in the
open source community where the people involved may be
spread across countries and continents.  A discussion held
over IRC or Jabber can often be greatly enhanced if the
participants are able to edit, in real time, a related
document or even simply a meeting report.

A common open source application used for this currently is
Gobby, which uses the obby library as its backend.  The
successor to Gobby will be Infinote.  A working (although
not yet complete) library exists for this.  This is split
so that the core functionality is separate from the GTK+
integration.

The goal of this GSoC project would be to implement a
KTextEditor::Plugin that would provide collaborative text
editing to any application that can use a KatePart, such
as KWrite, Kate, Kile or KDevelop.

The structure of libinfinity lends itself to this integration.
It provides a core library (libinfinote) and a text note
plugin (libinfinote could be used to power other forms
of collaborative editing, such as SVG editing).  There are
also libraries providing GTK+ integration - libinfgtk provides
integration of libinfinote into the GLib loop as well as
related GTK+ widgets, and libinftextgtk provides a GTK+
text buffer.

This project has the chance to provide great benefit to KDE,
allowing its users to concurrently edit a text document in
real time with each other and with GNOME or other users
(when the main Infinote client and/or GEdit integration is
complete).



Tasks:

1. Qt Integration

A KDE-equivalent of the libinfgtk library would be needed,
providing a Qt/KDE-style C++ API for libinfinote, including
providing the relevant widgets.


2. InfTextBuffer Implementation

The InfTextBuffer interface is used to store the text
for the document being edited by libinftext.  It is
necessary to implement it and provide a backend, which
should be a Qt or Qt-style class.

A possibility for this is QTextDocument, which can store
information such as text colour.


3. KTextEditor Plugin

The above libraries can then be used by a plugin that
provides the KTextEditor::Document interface.  This should
obviously provide the expected colourisation of text
depending on the user that wrote it, but also needs to
provide various other features such as an interface for
connecting, an interface for messaging other collaborators
and a legend for the colours belonging to the participants.



Time:

A certain amount of time needs to be spent becoming familiar
with libinfinote and related libraries, which is written in an
unfamiliar style (it is GLib/GObject based), although it is
documented.

I would expect to spend the majority of the time on the
KDE interface to libinfinote, as most of the widgets
will be included here.

The remainder of the time would be split between providing
the implementation of InfTextBuffer and wrapping it up
into a KTextEditor plugin.



Biography:

I am in my fourth year of my undergraduate masters in
Mathematics and Computer Science.  I got involved with the
KDE project at the start of 2007, learning C++ and Qt to
do so.  I started doing various junior jobs in the core
KDE libraries, and then got involed in Plasma development
when it kicked off later that year.

My biggest programming projects to date have both involved
Qt: the nowplaying data engine and applet for Plasma and
my final year project for my degree course.

I can generally be found on #kde-devel and #plasma as
randomguy3.

-- 
KDE: http://www.kde.org
Ubuntu/Kubuntu: http://www.ubuntu.org http://www.kubuntu.org

["signature.asc" (application/pgp-signature)]

_______________________________________________
KWrite-Devel mailing list
KWrite-Devel@kde.org
https://mail.kde.org/mailman/listinfo/kwrite-devel


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic