Kopete User Interface Refactoring
(Google SoC 2006 project)

About

Student: Michaël Larouche
Mentor: Matt Rogers
Organisation: KDE
Program: Kopete

Synopsis

This project aim to offer a cleaner code and an improved user interface to Kopete, the KDE Instant Messaging. It will provide a better window management and a cleaner interface that respect KDE Human Interface Guide.

Goals

The goals of this project

  • Provide a single window mode called workspace that will contain all components of Kopete User Interface.
  • Make the UI components easier to plug into a container (using KParts)
  • Allow to switch between multiple window mode and workspace mode.
  • Refactor the View API, allow to select either chat window or email window. Remove the view plug-in interface.
  • Improve the user interface: less bloat, more consistent and more eye-candy.

Schedule

I’ll work 20 hour per week on this project. I can’t work more than 20 hours because I have a full-time summer job at the same time.

Order of tasks and estimated time

  • Cleanup the code (8 days)
  • Refactor major UI components into KParts (12 days)
  • Refactor View API (10 days)
  • Make the workspace mode(7 days)
  • Allow to switch between both mode (2 days)
  • Improve the user interface (20 days)

Task Details

  • Cleanup the code
    Remove Qt3support, dead code, deprecated methods. Make the code more efficient. Document the code
  • Refactor major UI components into KParts
    Make contact list, main window, chat window KParts. KParts will make UI components easily embedable into containers.
  • Refactor View API
    Remove View plugin architecture. Simplify the API to request a specific type of window (chat or email).
  • Make the workspace mode
    Make the Kopete workspace container, which will be a single window mode. Should not be hard because all UI components will be KParts.
  • Allow to switch between workspace and mutliple window mode
    Not all users will like the new single window mode so allow to switch between the current multiple window mode and the new workspace mode.
  • Improve the user interface
    Make the user interface respect the KDE HIG. Remove bloat and inconsistency. Add avatar to contact member list of a group chat. Rework the main menu and toolbars.

Why Me

I have a solid knowledge of the Kopete architecture, I have been working on this project for a year now and I worked on various parts of Kopete which gave me an overview of most parts of the code.
My last work on user interface was the new chat window style theme engine and the users loved it. I’m also fluent with C++ and Qt library which is the core of KDE.

Bio

I’ve been programming since I turned 15 years old and I haven’t stopped since. I have done several projects in C, C++, Delphi, C# before joining the KDE project in May 2005.

My current education is College at “Cégep de Sept-Iles”, where I’ll do my last year this fall in “Technique de l’informatique” (an IT course). After college, I’ll go to university doing a degree in Computer Science. But I’m self taught for the most part.

I have been a Kopete developer since I joined KDE project. I helped with the MSN plugin adding the new features from MSN Messenger 7.0. I added the global identity, including the configuration module and the toolbar widget. I have made the new theme engine for 0.12 release that use Adium message view styles. Recently I worked to port Kopete to KDE4 and I’m doing a new protocol plug-in for Windows Live Messenger from scratch.
I’m also involved with Solid and Kamefu in KDE. See links for more details about these projects.

Links

My Sourceforge User page
Kopete Website
Solid Website
Kamefu Website