GSoC 2012 Usability Improvements

=What is done on the project=

To follow my work on the scribus project, you can go to http://seenthis.net/people/chelen where I will try to note everything I do. (in french)

If you want to see my commit on git : git clone git@www1.scribus.net:gsoc12ux.git

=Introduction=

All informations about project and how I plan to do this is write on my proposal. I will write here only the timeline as it may change during all the summer and I will notice what is done and what could be done.

Project deliverables
Here is the full list of what I expect to do.

Undo/Redo

 * Text
 * Export to 1.5 the text frame undo/redo already done by Cezary on 1.4
 * Character style modification #10310


 * Graphic
 * EPS graphic #5210  DONE 
 * Combine/Split polygons #4718  DONE  and #6220  DONE 
 * Rotation, resize of shape #4353  DONE 


 * Option
 * Overprint in PP #4833  DONE 
 * Fusion mode in PP #4832  DONE 
 * Arrows in PP #10452  RESOLVED 
 * Action pdf #3414


 * Layout
 * Creation of master page #4820
 * Import of page #5173
 * Selection of frame after undo #5075  DONE 


 * Miscellaneous
 * Correct management of save flag after undo #3455
 * Replay an action #1630
 * add undo/redo panel

Make user handling easier
If enough time


 * Remember usual behaviour
 * Multiple-duplicate (remember options value as asked on the mailing list)
 * locked copy #10468
 * Master page import #10263
 * Master page position after switching #10453
 * Rename/replace style #10455
 * Pdf options after export #10582
 * Cursor position after glyph insertion #10584
 * Add vertical space before/after paragraph

To do this, data will be separate between data which will be save in the sla file. These data are specifics to one document. And other data saved like in the preference panel and related to all documents. The better can be to add a panel in preference to give this choice to the user and add a default behaviour for user who do not change preferences.


 * Enable user to do things faster
 * Add multiple master page #10272
 * Improve click on spinBox #10303
 * Align shape #10269  DONE 

Contingency
As some actions might take more time than expected, I have selected some parts which can be postponed after GSoC.


 * Add undo/redo panel
 * As it really has a place in undo/redo project, I hope I can implement this during the summer


 * Replay an action
 * This is a part which can take a lot of time and it is on the edge of the undo/redo subject.

Time Line
As the main goal of GSoC is to involve students 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 user handling easier and improve undo/redo management, I will have to discuss all the time with scribus team to be informed about user difficulties to be able to fix them as a new part of the project.

April:

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

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

-Fix one bugs to improve my Scribus code base knowledge and three bug about undo/redo to well know how it work.

May:

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

-As this is the month when I take my exams (May 14-May 26), I prefer not to overload my timetable but I may do more.

May 28- June 10:

-Fix undo/redo issues with graphics actions and layout actions.

June 10-June 25:

-Export undo/redo for text frame from 1.4 to 1.5

June 25-July 6:

-Begin to fix issue about options action.

July 6-July 10:

-Redaction of the mid term evaluation.

July 10-July 24:

-Finish to fix issue about options action and text actions

July 24-August 7:

-Fix and development of miscellaneous actions.

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 ideas to improve Scribus but I cannot 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 computers and merge different 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 has to mature but Qt supplies a lot of classes to do network stuff.

-Add openMP instructions to make scribus work in parallel and improve its capacities. It has to be added with the multithreading subject.

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

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

I have been using 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 sometimes for fun, others for school project http://code.google.com/p/qrypt4all/ As I had work with other guys, I have already used cooperative tools like svn/git.

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

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

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

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

The first and the second now merged 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