|
|
|
From the usability review of Thomas Zander
|
|
|
|
------------------------------------------
|
|
|
|
|
|
|
|
* Toolbars
|
|
|
|
- Toolbars should be persistent ----
|
|
|
|
- toolbox to the left by default ----
|
|
|
|
|
|
|
|
* Toolbox
|
|
|
|
- select tool dialog has title "insert star" DONE
|
|
|
|
- difficult to see which tool is selected ----
|
|
|
|
- clicking the "14" icon does not unselect previous tool DONE
|
|
|
|
- add kbd shortcuts to the tools ----
|
|
|
|
- make 'ESC' select the 'Select tool' ----
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
BIG TOPICS:
|
|
|
|
1) create a consistent tool/plugin system
|
|
|
|
plugin input:
|
|
|
|
- canvas (drawing, connecting to mouse/keyboard signals)
|
|
|
|
plugin output:
|
|
|
|
- icon
|
|
|
|
- help text
|
|
|
|
- options widget
|
|
|
|
- command
|
|
|
|
- tdeaction?
|
|
|
|
2) selection redesign
|
|
|
|
- unify object and or node selection?
|
|
|
|
- achieve tight selection (exact selection-object collision test)
|
|
|
|
3) reintroduce nodetool
|
|
|
|
4) make VObject leaner
|
|
|
|
5) introduce renderstack. And dont forget to rewrite shadoweffect to use it.
|
|
|
|
|
|
|
|
GUI:
|
|
|
|
- remove the dialogs which show up when double clicking the strokefillpreview, this job is done
|
|
|
|
by "color manager" docker
|
|
|
|
- other koffice apps have widgts that may of interest to us, for instance in kpresenter. We should
|
|
|
|
try to reuse them.
|
|
|
|
- make a UI for the node manipulation tool.
|
|
|
|
- rework the stroke/fill docker with preview on the document and apply button.
|
|
|
|
- Find a better way to select a color than the color manager. Maybe a popup ?
|
|
|
|
- gradient widget: maybe turn the midpoint arrows to black or 3d triangles like in gimp or illu
|
|
|
|
- gradient widget: better separate the midpoint arrows from the color stop triangles: put them
|
|
|
|
above the gradient bar like in adobe products. the current situation is a bit nasty
|
|
|
|
with near together midpoints and colorstops
|
|
|
|
- gradient widget: the midpoint arrows are currently hard to hit and modify
|
|
|
|
|
|
|
|
REAL BUGS:
|
|
|
|
- patterns dont zoom
|
|
|
|
- VSelectionTool has an offset error relative to the handle nodes in the VSelection.
|
|
|
|
- fix i18n singular/plural
|
|
|
|
- crashes in vtext
|
|
|
|
- make curve1To, curve2To work
|
|
|
|
- vpolylinetool creates beziers where it could create lines
|
|
|
|
- Selections can't be undone/redone because there are no selection commands.
|
|
|
|
Add a VSelectNodeCmd and/or a VSelectCmd. (See bug #60438)
|
|
|
|
|
|
|
|
TODO:
|
|
|
|
- make pattern coords absolute and not relative to the shape
|
|
|
|
- VImage
|
|
|
|
- VPattern like VImage with embedded binaries instead of paths
|
|
|
|
- bring text support back, ideally using fontconfig and freetype, and no xft.
|
|
|
|
- improve printing (specifically printing of gradient and pattern fill),
|
|
|
|
should go along with porting to qt4/the new rendering framework
|
|
|
|
- select first/last segment's knot if one of each other's knot is selected
|
|
|
|
- allow for multiple strokes and fills in VPath which get rendered in the order they occur.
|
|
|
|
- use inside/intersection tests in vpath::combine() for changing winding.
|
|
|
|
- change flatness test in intersection code to a estimation used in gems code. otherwise
|
|
|
|
if the 2 input curves are the same our code runs forever.
|
|
|
|
- make VSelection a state pattern
|
|
|
|
- try to abstract rendering even more, preferably using kpainter abstraction.
|
|
|
|
- make layers tree robust, efficient and scalable.
|
|
|
|
- write odf enhanced-path parser (use some code from svgpathparser in lib)
|
|
|
|
|
|
|
|
WISHLIST:
|
|
|
|
- chalk export filter (with layers)
|
|
|
|
- add a nice grid-like shape like in Illu and webdraw
|
|
|
|
- pdf import filter (based on poppler)
|
|
|
|
|
|
|
|
OPTIMIZATION:
|
|
|
|
- in VShapeTool and all manipulation tools: store temporary objects so one doesnt
|
|
|
|
have to recalculate/regenerate those for second draw() (erasing old shape)
|
|
|
|
- make fill/stroke shared so copying for undo/redo is more efficient. Also potentially
|
|
|
|
apply this to file format (like OOo does).
|
|
|
|
- transform() bbox too and dont recalculate it
|
|
|
|
- check places we use sqrt() if these are really necessary (lenny)
|
|
|
|
|
|
|
|
MAKE IT NICE:
|
|
|
|
- can't we pass VTool::draw() a painter inseatd of each tool creating a painter itself?
|
|
|
|
- remove V*Tool::refreshUnit(). call this directly via dialog() instead
|
|
|
|
- pass all dialogs a parent
|
|
|
|
- think about using ghostscript's flatten algo (see comments in vflatten.cc)
|
|
|
|
- why represent opacity as float, not as short?
|
|
|
|
- introduce our own "Color drag" class, since we have in addition to rgb also opacity,
|
|
|
|
and maybe also gradient info could be dragged later.
|
|
|
|
|
|
|
|
NEW IDEAS:
|
|
|
|
- make VDocument a KoDocument?
|
|
|
|
- use KParts::plugin for tools?
|
|
|
|
|