~ubuntu-branches/ubuntu/edgy/koffice/edgy-updates

« back to all changes in this revision

Viewing changes to karbon/TODO

  • Committer: Bazaar Package Importer
  • Author(s): Ben Burton
  • Date: 2004-05-09 11:33:00 UTC
  • mto: This revision was merged to the branch mainline in revision 3.
  • Revision ID: james.westby@ubuntu.com-20040509113300-xi5t1z4yxe7n03x7
Tags: upstream-1.3.1
ImportĀ upstreamĀ versionĀ 1.3.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
BIG TOPICS:
 
2
1) create a consistent tool/plugin system
 
3
        plugin input:
 
4
        -       canvas (drawing, connecting to mouse/keyboard signals)
 
5
        plugin output:
 
6
        - icon
 
7
        - help text
 
8
        - options widget
 
9
        - command
 
10
        - kaction?
 
11
2) selection redesign
 
12
        - unify object and or node selection?
 
13
        - achieve tight selection (exact selection-object collision test)
 
14
3) reintroduce nodetool
 
15
4) make VObject leaner
 
16
5) introduce renderstack. And dont forget to rewrite shadoweffect to use it.
 
17
 
 
18
GUI:
 
19
-       split the dialog under "Object->Transform" into different non-tabbed dialogs
 
20
-       remove the "Selection property" docker, this is basically the same as the above docker
 
21
-       remove the dialogs which show up when double clicking the strokefillpreview, this job is done
 
22
        by "color manager" docker
 
23
-       other koffice apps have widgts that may of interest to us, for instance in kpresenter. We should
 
24
        try to reuse them.
 
25
-       make a UI for the node manipulation tool.
 
26
-       rework the stroke/fill docker with preview on the document and apply button.
 
27
-       Find a better way to select a color than the color manager. Maybe a popup ?
 
28
-       gradient widget: maybe turn the midpoint arrows to black or 3d triangles like in gimp or illu
 
29
-       gradient widget: better separate the midpoint arrows from the color stop triangles: put them
 
30
        above the gradient bar like in adobe products. the current situation is a bit nasty
 
31
        with near together midpoints and colorstops
 
32
-       gradient widget: the midpoint arrows are currently hard to hit and modify
 
33
 
 
34
REAL BUGS:
 
35
-       patterns dont zoom
 
36
-       VSelectionTool has an offset error relative to the handle nodes in the VSelection.
 
37
-       fix i18n singular/plural
 
38
-       crashes in vtext
 
39
-       make curve1To, curve2To work
 
40
-       vpolylinetool creates beziers where it could create lines
 
41
 
 
42
TODO:
 
43
-       make pattern coords absolute and not relative to the shape
 
44
-       VImage
 
45
-       VPattern like VImage with embedded binaries instead of paths
 
46
-       bring text support back, ideally using fontconfig and freetype, and no xft.
 
47
-       printing
 
48
-       select first/last segment's knot if one of each other's knot is selected
 
49
-       allow for multiple strokes and fills in VPath which get rendered in the order they occur.
 
50
-       use inside/intersection tests in vpath::combine() for changing winding.
 
51
-       change flatness test in intersection code to a estimation used in gems code. otherwise
 
52
        if the 2 input curves are the same our code runs forever.
 
53
-       make VSelection a state pattern
 
54
-       try to abstract rendering even more, preferably using kpainter abstraction.
 
55
-       make layers tree robust, efficient and scalable.
 
56
-       support 2 roundness params (rx and ry) for round rectangles.
 
57
 
 
58
WISHLIST:
 
59
-       krita export filter (with layers)
 
60
-       gimp gradient import
 
61
-       add a nice grid-like shape like in Illu and webdraw
 
62
 
 
63
OPTIMIZATION:
 
64
-       in VShapeTool and all manipulation tools: store temporary objects so one doesnt
 
65
        have to recalculate/regenerate those for second draw() (erasing old shape)
 
66
-       make fill/stroke shared so copying for undo/redo is more efficient. Also potentially
 
67
        apply this to file format (like OOo does).
 
68
-       transform() bbox too and dont recalculate it
 
69
-       check places we use sqrt() if these are really necessary (lenny)
 
70
 
 
71
MAKE IT NICE:
 
72
-       can't we pass VTool::draw() a painter inseatd of each tool creating a painter itself?
 
73
-       remove V*Tool::refreshUnit(). call this directly via dialog() instead
 
74
-       pass all dialogs a parent
 
75
-       think about using ghostscript's flatten algo (see comments in vflatten.cc)
 
76
-       why represent opacity as float, not as short?
 
77
-       introduce our own "Color drag" class, since we have in addition to rgb also opacity,
 
78
        and maybe also gradient info could be dragged later.
 
79