GSoC 2012 Improve Usability Chelen: Difference between revisions

From Scribus Wiki
Jump to navigation Jump to search
No edit summary
m (Protected "GSoC 2012 Improve Usability Chelen" ([edit=sysop] (indefinite) [move=sysop] (indefinite)))
 
(46 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[Category:GSOC2012]][[Category:GSOC]]
[[Category:GSOC_2012]][[Category:GSOC_2012_Proposals]]
===Improve usability and get rid of little bugs===


Scribus is a really powerful and allow us to do very professional stuffs. But, sometime, it doesn't behave as expect by the user and it looks unfriendly as you have to redo some part of your work.
Please note that the wiki page might not contain the latest version of the proposal. Use the Google Melange link to see the authoritative version.
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 three goal:


==Undo-redo==
[http://www.google-melange.com/gsoc/proposal/review/google/gsoc2012/chelen/1 Chelen's proposal in the Melange]


=Improve usability and get rid of little bugs=


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. Hence, it will be one of the main part of this proposal.
The main goal of this project is to improve friendliness.  
The idea that improving usability very well is possible in curing many very little bugs or sometime in adding very little features. That is why I will focus on this goal and improve undo/redo functionalities which can have incorrect behaviour.


<big>'''Description'''</big>
We can notice that story editor lack of undo/redo but I will not work on this one as this widget should certainly completely change soon.
To perform undo, we have to add the action on a stack where we can "pop" or "push" actions to undo or redo. Qt have already some classes to preform these kinds of actions.


Currently, undo/redo is absent in for some functionality (changing style character http://bugs.scribus.net/view.php?id=10310) or have an abnormal behaviour (with pattern/graphic http://bugs.scribus.net/view.php?id=6220 , http://bugs.scribus.net/view.php?id=5210 , http://bugs.scribus.net/view.php?id=5210 or about save functionality http://bugs.scribus.net/view.php?id=3455). As we can see with those examples, there are some improvement to do in these case and especially with undo/redo when we resize/rotate a frame or a graphic.
As there are always something to do to improve usability, there will not have an exhaustive list of all issues. However, I will do this proposal with those which look to be the most important as user may encounter this regularly. A more important list can be found [[Undo_ToDo|Here]]
We can also notice that story editor lack undo/redo functionalities but cezary have already programmed that and will export his word from 1.4 to 1.5.


<big>'''Implementation'''</big>
==Project description==


===Undo-redo===


-I will firstly look at abnormal behaviour. Most of the time, it is due to separation between different basic actions. As Scribus can remember only 20 actions by default, this issue filled this queue and the user is enable to completely undo this action.


-Then, I will add this functionality where it is missing like with style to be sure that the user can always come back when he does a mistake.
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.  


-To see until where he can come back. It could be great to add a widget with an history. With this, the user can see if the action that he want undo is again in the queue and he can select where he wants to come back without clicking to many time.
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). First of all, I will have to export undo/redo on text frame done by Cezary [http://bugs.scribus.net/view.php?id=9890 #9890] in version 1.4 to version 1.5.


==make easier user handling==
===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 and think it is a real waste of time.
As I can do a lot with Undo/Redo, this part is just in the case I have extra time at the end of the project or after the GSoC.


<big>'''Description'''</big>
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 disturbed 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 case. 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.
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 the number of manipulation that the user need to do an action.
The second case is when the user has to click 10 times to do what he wants or when he has to go in another panel like with contour definition. In all these cases, we have to reduce the number of manipulations needed by the user to do an action.


<big>'''Implementation'''</big>
==Implementation==
 
We can separate this in three parts:
*Studying how the undo and the user interface are managed nowadays
**Reading some part of the code where undo is correctly managed
**Collecting information about Undo/Redo framework in Qt
**Discuss with Scribus team what parts of the code have to be improved first for the undo/redo management (before GSoC)
   
   
*Coding new features
**Fixing well known bug related to user handling (extra)
**Fixing undo/redo management bug
**Improving undo/redo functionalities where it is possible
**Adding a new control panel for undo/redo to enable user to see and control easily his actions.
**Adding a way to save a succession of command and redo this succession.
*Finalisation
**Execution of a bench of test to be sure that this code can be included 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
===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 [http://bugs.scribus.net/view.php?id=10310 #10310]
*Graphic
**EPS graphic [http://bugs.scribus.net/view.php?id=5210 #5210]
**Combine/Split polygons [http://bugs.scribus.net/view.php?id=4718 #4718] and [http://bugs.scribus.net/view.php?id=6220 #6220]
**Rotation, resize of shape [http://bugs.scribus.net/view.php?id=4353 #4353]
*Option
**Overprint in PP [http://bugs.scribus.net/view.php?id=4833 #4833]
**Fusion mode in PP [http://bugs.scribus.net/view.php?id=4832 #4832]
**Arrows in PP [http://bugs.scribus.net/view.php?id=10452 #10452]
**Action pdf [http://bugs.scribus.net/view.php?id=3414 #3414]
*Layout
**Creation of master page [http://bugs.scribus.net/view.php?id=4820 #4820]
**Import of page [http://bugs.scribus.net/view.php?id=5173 #5173]
**Selection of frame after undo [http://bugs.scribus.net/view.php?id=5075 #5075]
*Miscellaneous
**Correct management of save flag after undo [http://bugs.scribus.net/view.php?id=3455 #3455]
**Replay an action [http://bugs.scribus.net/view.php?id=1630 #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 [http://bugs.scribus.net/view.php?id=10468 #10468]
**Master page import [http://bugs.scribus.net/view.php?id=10263 #10263]
**Master page position after switching [http://bugs.scribus.net/view.php?id=10453 #10453]
**Rename/replace style [http://bugs.scribus.net/view.php?id=10455 #10455]
**Pdf options after export [http://bugs.scribus.net/view.php?id=10582 #10582]
**Cursor position after glyph insertion [http://bugs.scribus.net/view.php?id=10584 #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 [http://bugs.scribus.net/view.php?id=10272 #10272]
**Improve click on spinBox [http://bugs.scribus.net/view.php?id=10303 #10303]
**Align shape [http://bugs.scribus.net/view.php?id=10269 #10269]
===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 or two bugs to improve my Scribus code base knowledge.
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, I prefer not to overload my timetable but I may do more.
May 28- May 31:
-Export undo/redo for text frame from 1.4 to 1.5
June 1-June 10:
-Fix undo/redo issues with text and options actions.
June 10-June 25:
-Fix undo/redo issues with graphics actions and other miscellaneous actions.
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 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.


-Firstly, we will have to define which data is always the same so we have to remember this one.
I know that GSoC is a real job and I hope to have at least 35h per week on the project


-Then I will add these functionalities firstly to save usual data and then to reduce the number of manipulation needed to be done.
==Contact Information==


==fix incorrect behaviour==
Name: Pierrick Brunet


The last but not the least is to correct these strange behaviour. Of course, there will always have this kind of issue in a program but some of them can be more unpleasant than others and this is a necessary improvement the usability of Scribus.
irc: Chelen


<big>'''Description'''</big>
mail: pierrick.brunet@telecom-bretagne.eu


<big>
skype: Pierrick912
<big><big>This page will be completed and corrected soon!</big></big></big>

Latest revision as of 20:19, 20 April 2012


Please note that the wiki page might not contain the latest version of the proposal. Use the Google Melange link to see the authoritative version.

Chelen's proposal in the Melange

Improve usability and get rid of little bugs

The main goal of this project is to improve friendliness. The idea that improving usability very well is possible in curing many very little bugs or sometime in adding very little features. That is why I will focus on this goal and improve undo/redo functionalities which can have incorrect behaviour.

We can notice that story editor lack of undo/redo but I will not work on this one as this widget should certainly completely change soon. To perform undo, we have to add the action on a stack where we can "pop" or "push" actions to undo or redo. Qt have already some classes to preform these kinds of actions.

As there are always something to do to improve usability, there will not have an exhaustive list of all issues. However, I will do this proposal with those which look to be the most important as user may encounter this regularly. A more important list can be found Here

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). First of all, I will have to export undo/redo on text frame done by Cezary #9890 in version 1.4 to version 1.5.

Make easier user handling

As I can do a lot with Undo/Redo, this part is just in the case I have extra time at the end of the project or after the GSoC.

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 disturbed 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 has to click 10 times to do what he wants or when he has to go in another panel like with contour definition. In all these cases, we have to reduce the number of manipulations needed by the user to do an action.

Implementation

We can separate this in three parts:

  • Studying how the undo and the user interface are managed nowadays
    • Reading some part of the code where undo is correctly managed
    • Collecting information about Undo/Redo framework in Qt
    • Discuss with Scribus team what parts of the code have to be improved first for the undo/redo management (before GSoC)
  • Coding new features
    • Fixing well known bug related to user handling (extra)
    • Fixing undo/redo management bug
    • Improving undo/redo functionalities where it is possible
    • Adding a new control panel for undo/redo to enable user to see and control easily his actions.
    • Adding a way to save a succession of command and redo this succession.
  • Finalisation
    • Execution of a bench of test to be sure that this code can be included 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

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
  • Layout
    • Creation of master page #4820
    • Import of page #5173
    • Selection of frame after undo #5075
  • 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

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 or two bugs to improve my Scribus code base knowledge.

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, I prefer not to overload my timetable but I may do more.

May 28- May 31:

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

June 1-June 10:

-Fix undo/redo issues with text and options actions.

June 10-June 25:

-Fix undo/redo issues with graphics actions and other miscellaneous actions.

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 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