GSoC08 Themable Chat Dialogs

From PsiWiki

Jump to: navigation, search

I am Paweł Wiejacha and this page details my project for Google Summer of Code 2008.

Contents

[edit] Overview

[edit] Abstract (from my application)

Psi is a featureful open-source instant messaging application designed for the Jabber IM network (including Google Talk). It is cross-platform (works on Windows, Linux, and Mac OS X), fast, stable and lightweight. Because of that Psi is widely used. However look and feel of its chat windows is clearly obsolete.

Nowadays some IM clients offer really powerful (and simple at the same time) theming for their chats. A good example of this is Mac OS X application Adium which uses XHTML and CSS based styles. This approach allows users to easily create fully customizable themes.

Qt 4.4 comes with integrated WebKit - the open source web browser engine used by companies such as Apple, Google and Nokia. Psi is written in C++ using the Qt toolkit, therefore it is possible to create modern looking chat dialogs. With WebKit Psi will also have improved support for XHTML-IM [XEP-0071] (exchanging instant messages that contain lightweight text markup) in Psi.

The aim of this project is to create themable (by XHTML and CSS templates) QtWebKit-based chat and groupchat dialogs supporting XHTML-IM and extended presence (e.g. mood, user tune etc.) changes. Additionally, chat dialogs will be themable with the distributed Adium themes, in order to be able to enjoy a wide set of themes out of the box.


[edit] How will it look like?

Gsoc08 tcd Essic beta 01 5 2136 1703 image 5108.jpg Gsoc08 tcd Overvieworange.jpg

We will be using Adium themes. You can browse them here.

[edit] Progress

[edit] Iteration 2 (23.06 - 29.06)

* appending ChatEvents (FileTransferChatEvent, StatusChatEvent)
* simple theme selection
  * reading themes from filesystem
  * simple theme dialog
* validation XHTML-IM messages

[edit] Iteration 3 (30.06 - 6.07)

[edit] Iteration 4 (7.07 - 13.07)

[edit] Iteration 5 (14.07 - 20.07)

[edit] Iteration 6 (21.07 - 27.07)

[edit] Iteration 7 (28.07 - 3.08)

[edit] Iteration 8 (4.08 - 10.08)

[edit] Iteration 9 (11.08 - 17.08)

[edit] Iteration 10 (18.06 - 24.08)

[edit] Tasks

Rough sketch.

[edit] HTMLChatView - logging chat messages

Task name Priority Status
Define ChatView and ChatTheme API 10 90%
Create ChatTheme 10 90%
Create ChatView prototype 1 10 90%
Create ChatView prototype 2 10 60%
Emoticons support 7 0%
TrackBar replacement 5 0%
Write documentation and examples for ChatView and ChatTheme 5 0%
Test cases - only generated HTML 7 0%


[edit] ThemeSelector - selecting chat dialog theme/variation

Task name Priority Status
Live theme preview Optional 0%
Different theme per group/user/regexp Optional 0%
Reading themes from filesystem Required 40%


[edit] PlainChatView - logging chat messages without WebKit

Task name Priority Status
Task 1 Optional 0%
Another task Required 0%


[edit] ChatEdit - composing XHTML-IM messages

Task name Priority Status
Define XHTML-IM subset we want to use 10 0%
Create fixed toolbar 7 0%
Make toolbar configurable (Options->Toolbars) 7 0%
Text formatting 10 0%
Inserting images 8 0%



[edit] MessageValidator - validating incoming messages

Task name Priority Status
Validating message by walking through its DOM tree 10 30%
Test cases 10 0%


[edit] ChatDlg refactorings

Task name Priority Status
Task 1 Optional 0%
Another task Required 0%


[edit] Group chat dialog refactorings

Task name Priority Status
Task 1 Optional 0%
Another task Required 0%


[edit] Event logging

Task name Priority Status
User Mood [xep-107] logging 10 0%
User Tune [xep-118] logging 10 0%
FileTransfer logging 10 0%
Personal tools