]> git.sesse.net Git - kdenlive/blob - TODO
Add TODO with ideas for refactoring
[kdenlive] / TODO
1 Some ideas for a big refactoring of code.
2
3
4 Input
5 =========
6         handle MLT connection ((re-)move from renderer.cpp (hacks, special cases))
7         handle project document entry
8         draw layer on clip instances in timeline (thumbnails)
9         settings management (available through project tree items)
10         proxy creation
11         input method (register mimetype in file dialog, custom widget)
12         effect support (a, v, av, special effects (freeze, speed))
13
14         => modules for avformat, qimage/gtk_image(?), generators (slideshow, color, f0r)
15
16
17 Timeline
18 =========
19         provides basic operations (resize, move, add, remove) (GUI + XML + MLT) to be applied on any item
20
21         => modules for input modes (drag & drop, 3/4-point editing, cut, resize by dragging end), spacer, ripple edit, push/pull edit, ...)
22
23 Clip instances
24 -------
25         connection to input module
26         manage project document entry
27         information about support for timeline operations
28         owns an effect device
29         per instance settings (functionality provided by input module)
30         graphical timeline item (modules can register layers they want to draw (thumbnails, effect names, keyframes))
31
32 Clip groups
33 ------
34         manage project document entry
35         pass on operations to items
36
37
38 Effect system
39 =========
40 Keyframe manager
41 ------
42         pipe information from/to timeline effect device, effect stack, effect parameter
43
44 Effect parameter
45 ------
46         custom widget
47         function to handle keyframes -> connect to keyframe manager
48         written in QScript/QML ?
49
50 Effect device
51 ------
52         manages list of effects attached to clip, track, timeline, group, the world
53         passes info from/to timeline items and effect stack
54         manage project document entry
55
56
57 Project
58 =========
59         read/write
60         project settings management
61         provide functionality to manage settings (remove hardcoded stuff (slideshow, proxy, ...))
62
63
64 Interface
65 =========
66         provide functions to add menu items, global actions (for shortcut management)
67         layout management
68         styles management (see digikam)
69         ...