GSoC 2012 Improve Usability Chelen

From Scribus Wiki
Jump to navigation Jump to search

Improve usability and get rid of little bugs

Scribus is a really powerful tool and allow us to do very professional stuffs. But, sometime, it doesn't behave as expected by the user and it looks unfriendly as you have to redo some part of your work. As this subject suggest, it will not be just one big task but different little ones to improve user-friendliness of Scribus. During the GSoC, I will focus on two goal describe below : undo-redo and make easier user handling.

Project description

Undo-redo

When we speak about user-friendliness, it also means that Scribus has to do what the user expect it does. We can notice that it remains some bug in undo/redo functionalities.

Currently, undo/redo is absent with some functionalities (changing style character for example) or have an abnormal behaviour (with pattern/graphic or about save functionality ). As we can see with those examples, there are some improvement to do in these cases and especially with undo/redo when we resize/rotate a frame or a graphic. We can also notice that story editor lack undo/redo functionalities but cezary have already programmed that and will export his work from 1.4 to 1.5.

Make easier user handling

To improve usability of scribus, we have to avoid repetitive actions and quicken access to different linked actions. Even if regular users used to do with these actions, new ones can be disturb by this kind of behaviour as it is a waste of time.

In this case, we can think there are a lot of different thinks to do but in reality, it is pretty much the same in all different cases. Indeed, whether adding some space after a paragraph or enable/disable pre press or remembering rename or replace and many others, what the user want is just that scribus remember a default behaviour.

The second case is when the user have to click 10 time to do what he wants or when he has to go in another panel like with contour definition. In all these case, we have to reduce the number of manipulation that the user need to do an action.

Implementation

We can separate this in three parts:

-Studying how is manage undo and the user interface now

   -Reading some part of the code where undo is correctly manage
   -Collecting information about Undo/Redo framework in Qt
   -Discuss with Scribus team what part of the code have to be improve first either of user interface and undo/redo management

-Coding new features

   -Fixing well known bug related to user handling 
   -Fixing undo/redo management bug
   -Improve undo/redo functionalities where it is possible
   -Add a new control panel for undo/redo to enable user to see and control easily his actions.

-Finalisation

   -Execution of a bench of test to be sure that this code can be include in the trunk
   -Documentation of the code the enable the team to maintain this part of the code
   -Merging the code in the scribus trunk

Time Line

As the main goal of GSoC is to involved student in open source project. There are no reason to wait until June before beginning this project even if I will have more time during the summer. To make easier user handling and improve undo/redo management, I will have to discuss all the time with scribus team to be inform about user difficulties and fixing them as a new part of the project.

April:

-Define a list of main task to improve usability and what should be done for the mid term evaluation.

-Have a deeper understanding of the undo/redo manager in scribus.

-Fixing one or two bugs to improve my Scribus code base knowledge.

May:

-Fixing one undo/redo bug to see what is involved when I will work on that.

-As this is the month when I have my exam, I prefer don't overload my timetable but I may do more.

May 28-June 10:

-Fixing undo/redo issue with shape.

June 10-June 25:

-Fixing undo/redo issue with style.

June 25-July 6:

-Be sure that everything is good with undo/redo and improve performance

July 6-July 10:

-Redaction of the mid term evaluation

July 10-July 24:

-Enable Scribus to remember user default behaviour

July 24-August 7:

-Make faster user actions on scribus

August 7-August 13:

-Final test and merge with scribus trunk

13-30 August:

-Pencil down: Preparing the final evaluation and polish all the work

After GSoC

I really want to work with Scribus team even after GSoC and I will continue to fix bug and help you in all these tasks. Also, I have some idea to improve Scribus but I can't do it in GSoC as the timeline is to short or I may need a deeper knowledge of the code base.

For example:

-When I used Scribus, I used to work with other persons and it is really inefficient to work on different computer and merge difference files at the end. I think it could be great to enable scribus to work through the network. Like googledoc but with scribus. This project have to mature but Qt supply a lot of class to do network stuff.

-Add openMP instruction to make scribus work in parallel and improve its capacities. It have to be add with the multithreading subject.

-Add a way to update scribus automatically on the computer without reinstalling everything.

Biography

I am Pierrick, second years at Telecom Bretagne a renowned engineering telecommunication school in France.

I use Scribus since more than one year to do a newspaper and a magazine.

I have already some experience in developing with C/C++ and Qt sometime for fun, others for school project http://code.google.com/p/qrypt4all/ As I had work with other guys, I have already use cooperative tools like svn/git.

It is the first time I am involved in big open source project like this one. To show my capacities, I have fix two bugs I scribus:

http://bugs.scribus.net/view.php?id=10571

http://bugs.scribus.net/view.php?id=7793

The second one is now merge in scribus trunk.

I know that GSoC is a real job and I hope to have at least 35h per week on the project

Contact Information

Name: Pierrick Brunet

irc: Chelen

mail: pierrick.brunet@telecom-bretagne.eu

skype: Pierrick912

This page will be completed and corrected soon!