From: Alberto Villa Date: Thu, 10 Nov 2011 09:23:23 +0000 (+0100) Subject: Add TODO with ideas for refactoring X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=2c307972ad8e922ab73719d1aee686badf4181a6;p=kdenlive Add TODO with ideas for refactoring Written by Till at KDE 2011 Randa Sprint. --- diff --git a/TODO b/TODO new file mode 100644 index 00000000..01739df2 --- /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) + ...