]> git.sesse.net Git - kdenlive/commitdiff
Add TODO with ideas for refactoring
authorAlberto Villa <avilla@FreeBSD.org>
Thu, 10 Nov 2011 09:23:23 +0000 (10:23 +0100)
committerAlberto Villa <avilla@FreeBSD.org>
Thu, 10 Nov 2011 09:23:23 +0000 (10:23 +0100)
Written by Till at KDE 2011 Randa Sprint.

TODO [new file with mode: 0644]

diff --git a/TODO b/TODO
new file mode 100644 (file)
index 0000000..01739df
--- /dev/null
+++ b/TODO
@@ -0,0 +1,69 @@
+Some ideas for a big refactoring of code.
+
+
+Input
+=========
+        handle MLT connection ((re-)move from renderer.cpp (hacks, special cases))
+        handle project document entry
+        draw layer on clip instances in timeline (thumbnails)
+        settings management (available through project tree items)
+        proxy creation
+        input method (register mimetype in file dialog, custom widget)
+        effect support (a, v, av, special effects (freeze, speed))
+
+        => modules for avformat, qimage/gtk_image(?), generators (slideshow, color, f0r)
+
+
+Timeline
+=========
+        provides basic operations (resize, move, add, remove) (GUI + XML + MLT) to be applied on any item
+
+        => modules for input modes (drag & drop, 3/4-point editing, cut, resize by dragging end), spacer, ripple edit, push/pull edit, ...)
+
+Clip instances
+-------
+        connection to input module
+        manage project document entry
+        information about support for timeline operations
+        owns an effect device
+        per instance settings (functionality provided by input module)
+        graphical timeline item (modules can register layers they want to draw (thumbnails, effect names, keyframes))
+
+Clip groups
+------
+        manage project document entry
+        pass on operations to items
+
+
+Effect system
+=========
+Keyframe manager
+------
+        pipe information from/to timeline effect device, effect stack, effect parameter
+
+Effect parameter
+------
+        custom widget
+        function to handle keyframes -> connect to keyframe manager
+        written in QScript/QML ?
+
+Effect device
+------
+        manages list of effects attached to clip, track, timeline, group, the world
+        passes info from/to timeline items and effect stack
+        manage project document entry
+
+
+Project
+=========
+        read/write
+        project settings management
+        provide functionality to manage settings (remove hardcoded stuff (slideshow, proxy, ...))
+
+
+Interface
+=========
+        provide functions to add menu items, global actions (for shortcut management)
+        layout management
+        styles management (see digikam)
+        ...