summaryrefslogtreecommitdiffstats
path: root/karbon/TODO
diff options
context:
space:
mode:
Diffstat (limited to 'karbon/TODO')
-rw-r--r--karbon/TODO101
1 files changed, 101 insertions, 0 deletions
diff --git a/karbon/TODO b/karbon/TODO
new file mode 100644
index 00000000..9c268232
--- /dev/null
+++ b/karbon/TODO
@@ -0,0 +1,101 @@
+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
+ - kaction?
+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:
+- krita 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?
+