[vlc-devel] GSoC proposal draft: New Qt interface

Jean-Baptiste Kempf jb at videolan.org
Tue Mar 3 20:08:39 CET 2009


On Mon, Mar 02, 2009 at 10:43:07PM +0100, Teo Mrnjavac wrote :
> My name is Teo Mrnjavac and I'm a computer science student and junior Qt coder.
> I'm submitting for your consideration the first draft of my Google
> Summer of Code proposal:
> http://docs.google.com/Doc?id=dg7vjhzd_6f8m5rvhf

As I know some are too lazy to open the doc (and this list is archived), here it is.

////////////////////////////////////////////////////////////////////////////////
Interface refactoring
////////////////////////////////////////////////////////////////////////////////

I) INTRODUCTION

It has been said that a technology can be deemed mature when it becomes an integral part of our lives so much that it becomes invisible. It is my opinion that this is what VLC has already become for many users: small, unobtrusive, reliable, does the job on many platforms without messing around with questionable codec packs and 3rd party plugins.

In many ways VLC is light-years ahead of the competition, though there are still reasons why one would choose another media player. Especially for the video player and music player use cases there are many alternatives: SMPlayer, KMPlayer, Kaffeine, Dragon Player, dare I say Windows Media Player, then of course Amarok, Exaile, JuK, Songbird, iTunes and many others. Often these programs are chosen by a user who simply wishes a different interface than what VLC has to offer, as the current VLC's Qt interface is somewhat clunky by today's usability standards.

In the days of Plasma and composited window managers, nifty interfaces have become a must have for any application, and by nifty I don't mean anything that insanely over the top, just an interface that's easy on the eyes and quick to satisfy the most common use cases.

II) PROJECT GOALS

The goal of this project is to modify the current Qt GUI to make it more usable in many ways. There are many usability issues that need to be addressed. Tiny main window + lots of dialogs with lots of tabs = bad usability practice. VLC should work nicely both as a music player and as a video player, so the playlist should definitely live in the main window but stay out of the way when playing a movie. Also the media library should be more readily available, with a nice way to browse both audio and video content. The "VLM Configuration", "Preferences" and "Extended Settings" dialogs are also a mess and would be heavily modified. The menus would be recategorized. The "Open..." dialog is in pretty bad shape, with all the tabs, and would be simplified, possibly with an advanced view hidden behind an extender.

III) IMPLEMENTATION

Many implementation details would be discussed directly with the VLC developers, and resolved as decided by consensus. The result I'm aiming for is a main window that would generally be larger than the current basic VLC Qt interface, and would include the playlist and the media library as dockable panes. The video and music visualization area would definitely be inline and the playback controls would be also dockable on top or bottom. A mini mode for music is an idea that could be done if deemed necessary.

As I'm a junior Qt coder who has picked up some usability tips over time and definitely not an artist, I would not be able to do pretty icons or graphics, an artist should do that. But generally, layout-wise, this is the one of the directions that my interface refactoring could allow for VLC (not my artwork): http://kde-look.org/content/show.php/A+Media+Player+for+KDE4?content=94472.

Key points of this mockup that I would like to point out and would gladly implement for VLC are:

 - the integration of audio and video in the inline media library, possibly with the distinction of music videos

 - a single interface with a central area with fancy tabs that allows for easy access to all the most critical features (though I feel that both horizontal + vertical tabs are a bit too much)

 - the "Now Playing" area is used for video content, and for visualizations when there's no video

 - a context view with information about the current media like in the mockup could be done but I would skip that one as I feel it's enough work to be a GSoC project on its own (for Amarok 2, even a whole GSoC term wasn't enough to do the context view right)

 - a shown on hover bar that displays quick audio/subtitles or visualization configuration would be added in the video/visualization view.
 

IV) TIMELINE

I would start working before the official beginning of the Summer of Code program to be able to take some time off in June for exams.

So this would be a preliminary schedule:

Apr 20 - if accepted, I start right away with research and prototyping
May 15 - by mid may at least a working prototype of the main view should be done
May 31 - around this time I would probably have uncluttered the many settings dialogs
Jun - taking 2-3 weeks off for exams
Jul 31 - deadline to self for a feature-complete grand new VLC Qt interface
Aug 17 - pencils down date.


V) ABOUT ME
Name: Teo Mrnjavac;
In this last section I will try to explain why I think I am a good choice for the task.
I am a 22 years old  theoretical computer science student from Trieste, Italy. I graduated from high school in 2005 with top grades and started to attend the undergraduate university course in computer science at the University of Trieste. My weighted mean grade is around 28/30, and on summer 2009 when I graduate I plan on continuing my studies with a postgraduate course in bioinformatics.
I have some experience with Qt and KDE development since spring  2008, when I started contributing to Amarok, working mostly on a tagging interface.
I want to gain university credit from this work too so I'm extra motivated to finish it as soon as possible. I see no problem in working with a distant mentor and communicating in English on a daily basis.
I think I'm a good choice for the job because I already have some experience with Qt user interface elements, I care about usability and I'm certain that this refactoring can give VLC a big edge over the competition.


-- 
Jean-Baptiste Kempf
http://www.jbkempf.com/



More information about the vlc-devel mailing list