calligra season of usability project idea

Boudewijn Rempt boud at valdyas.org
Tue Aug 23 10:10:31 BST 2011


Hi Celeste,

As promised, here's the challenge for Calligra for this year's season of usability. I sort of feel that this is the kind of project two students could very well cooperate on, but I'm not sure if that's allowed. Anyway, here goes:

--------------------------
Calligra Season of Usability Project Proposal

As asked, here's a short writeup of what I think Calligra really needs now in terms of usability work. First what we don't need: a study that examines how certain tasks can be executed now in a certain Calligra application. The purpose of this project is to create an interaction design for the creation and manipulation of objects.

_Introduction_

Calligra uses some specific terminology to describe the components that make up a document:

* a document is made up of shapes that are placed on a canvas
* shapes are objects, like text boxes, lines or images
* a shape is created from a set of default values, for instance the width of a line or the font for text.
* the default values are used whenever a new shape is created.

_Creating Shapes_

Currently, there are two ways to create objects in Calligra:

* from the "Add Shapes" docker
* using a tool that can create shapes

Originally, adding shapes from a docker with a collection of shapes was intended to make it easy to create and save new default settings for a particular type of shape. Then the new shape would show up in the docker. We do not have a suitable interaction for actually creating the new shape defaults, sorting, ordering and tagging them, although the basic code does exist to create shapes from saved parameters.
Creating shapes with the a tool was intended to be used only for vector shapes like lines and calligraphic lines where a user would create many shapes by drawing on the canvas.

After creation, the settings of a shape can be manipulated in two ways:

* by selecting the shape and changing some settings in one or more shape option dockers
* by selecting a tool that can manipulate the shape. Some tools come with option widgets that set properties on shapes directly.

By now, more and more option widgets are migrating to tools. 

_Problems we face_

* Selecting a shape is quite difficult. Depending on the active tool, a click can select a shape, manipulate a shape or do nothing. One proposal is to show a border on hover that when clicked will always select the shape and that will allow basic manipulation such as dragging and changing geometry.

However:

Tt's not as easy as it sounds. If I edit a control point of a path shape which happens to be on top of another shape, I don't want to accidentally hit that magic border of the other shape and select that.

Or the case where there are several shapes on top of each other, editing one of them would show all selection borders of all these shapes?

So we have to keep in mind, that shapes are not always nicely separated from each other but can overlap.

* Creating new default settings for creating new shapes. We don't have anything for this, with the result that the Add Shapes docker always shows a set of rather boring defaults and cannot be customized.

* When working, it's useful to be able to set values and have those values carried over to the next object you create. We do not support that either.

_Goal_

The goal of this project would be to create an interaction design for creating and manipulating shapes. The start should be http://community.kde.org/Calligra/Usability_and_UX/Common/Dockers_vs_ToolOptions. Thomas Pfeiffer can work with the students to arrive at a full plan, while I am volunteering to help with the implementation.
--------------------------
-- 
Boudewijn Rempt
http://www.valdyas.org, http://www.krita.org, http://www.boudewijnrempt.nl



More information about the calligra-devel mailing list