From: Simon A. Eugster Date: Thu, 9 Jun 2011 08:34:26 +0000 (+0000) Subject: * HACKING file added (how to code on kdenlive) X-Git-Url: https://git.sesse.net/?p=kdenlive;a=commitdiff_plain;h=e3cb41c0fe6405747c3b381e908db6ac39ee1cdc * HACKING file added (how to code on kdenlive) * CHANGELOG file added (new features) * AUTHORS re-styled. Please update yourself :) svn path=/trunk/kdenlive/; revision=5686 --- diff --git a/AUTHORS b/AUTHORS index 3c315045..23f96dbd 100644 --- a/AUTHORS +++ b/AUTHORS @@ -1,9 +1,31 @@ -Jean-Baptiste Mardelle : MLT and KDE SC 4 porting, main developer and maintainer -Marco Gittler : MLT transitions and effects, timeline, audio thumbs -Dan Dennedy : bug fixing, etc. -Simon A. Eugster : color scopes, bug fixing, etc. -Till Theato : bug fixing, etc. -Alberto Villa : bug fixing, logo, etc. -Jean-Michel Poure : rendering profiles customization -Ray Lehtiniemi : bug fixing, etc. -Jason Wood : original KDE 3 version author (not active anymore) +Active Kdenlive authors + + Jean-Baptiste Mardelle + MLT and KDE SC 4 porting, main developer and maintainer + 2005-present + Marco Gittler + MLT transitions and effects, timeline, audio thumbs + 2009-present + Dan Dennedy + Bug fixing, etc. + 2009-present + Simon A. Eugster (Granjow) + Colour and audio scopes, titler, manual, bug fixing, etc. + 2009-present + Till Theato + Bug fixing, etc. + 2010-present + Alberto Villa + Bug fixing, logo, etc. + 2009-present + +Former Kdenlive authors + + Jean-Michel Poure + Rendering profiles customization + 2004-2009 + Ray Lehtiniemi + Bug fixing, etc. + 2009 + Jason Wood + Original KDE 3 version author diff --git a/CHANGELOG b/CHANGELOG new file mode 100644 index 00000000..fe6f5048 --- /dev/null +++ b/CHANGELOG @@ -0,0 +1,7 @@ + +HEAD + * Kdenlive creates automatic backups of the project file; they can be restored in a recovery dialog. + * Whole projects (including all necessary files) can be archieved into a directory or file. + +0.8 + See http://kdenlive.org/discover/0.8 diff --git a/HACKING b/HACKING new file mode 100644 index 00000000..7d454fb7 --- /dev/null +++ b/HACKING @@ -0,0 +1,111 @@ + +This is the coding guideline for Kdenlive. + +Committing + Auto-indent + Please don't use for existing files. It is very likely to break manual tweaks like: + const int componentFlags = (ui->cbY->isChecked() ? 1 : 0) * HistogramGenerator::ComponentY + | (ui->cbS->isChecked() ? 1 : 0) * HistogramGenerator::ComponentSum + | (ui->cbR->isChecked() ? 1 : 0) * HistogramGenerator::ComponentR + | (ui->cbG->isChecked() ? 1 : 0) * HistogramGenerator::ComponentG + | (ui->cbB->isChecked() ? 1 : 0) * HistogramGenerator::ComponentB; + which are intended to improve readability. + + Changelog + When adding a new feature, add it to the CHANGELOG file. Features often are not mentioned + in the bug tracker; adding it to the changelog helps keeping track of them. + + Bug fixes + Bugs often are in mantis. When fixing a bug, add a link to the bug tracker entry in the commit log + and close the bug there. + If the bug is not in mantis, it should be (a) added (and marked as fixed) if it is an important bug, + or (b) not added otherwise. + + +Source code comments + Classes + Each class should be shortly described in its header file. + + Functions + Public functions should be documented as well in the header file. Especially regarding side effects! + (What does a programmer neeed to know in order to use this function without reading the whole source code?) + + Inline comments + are very helpful for commands (function calls, calculations) that are not obvious. For example, what + does this function call do? + + davinci.drawLine(0, y, scopeRect().size().width()-RGBParadeGenerator::distRight, y); + + A short comment makes it obvious (also helps locating bugs when something needs to be fixed): + + // Draw a horizontal line through the current mouse position + davinci.drawLine(0, y, scopeRect().size().width()-RGBParadeGenerator::distRight, y); + + +API documentation + The docs can be generated by using doxygen (doxygen DoxyConfig in the main directory). + See [1] for an overview of doxygen commands. + Often used: \brief, \param, \return + + +Coding style + This part is based on Krita's HACKING file[2]. + + Indentation, Braces etc. + 4 Spaces for indentation. Always braces. + This is, according to the Qt4 coding style, which is documented here: + http://techbase.kde.org/Policies/Kdelibs_Coding_Style + + Includes + Avoid as much as possible #includes in header files; use forward declarations + of classes. + + Initializers + Avoid as much as possible initializers in the body of the constructor. Use + initializer lists instead. + + Scope prefixes + Use only m_ for class-level variables. No other scope prefixes; no g_, l_, + no 'p' for pointer variables. + + Shared pointers + Use shared pointers wherever possible. + + Getter/setter + Getter/setters are named x() for getters and setX(int x) for setters. If you + come across violations of this rule, change the code. + + Function naming + Functions should be named in camelBackedFashion, to conform to Qt's standards. + If you encounter functions in c_style_like_this, feel free to rename. Also: + verbNoun -- i.e., rotateLayer, not layer_rotate. The latter is a true c-ism, + introduced by a language that needs to prefix the 'class' name to every function + in order to have something that not quite OO. + + Variable/Parameter names + Variable/parameter names start with an undercast letter. A name composed of different + words is done in camelBackedStyle. + + Files and classes + It's preferred (and strongly preferred) to have only one class per .h/.cpp file. + (Which is logical, because otherwise you won't be able to keep to the naming scheme.) + + Spaces + Keep the source airy and open. In particular, there should be empty lines between function + declarations and definitions. + + Slots and signals + Prefix slots with slot and signals with signal: slotUpdateSelection, signalSelectionUpdated. + + Boolean operators + Use the standard !, !=, ==, && etc style, not the "not", "and" etc. style. Keep kdenlive code + using one, easily recognizable, C++ style. + + + Exceptions + These rules are merely guidelines for making the code consistent and more readable. In some cases + it makes sense to not follow some of the points mentioned above. + + +[1] http://www.stack.nl/~dimitri/doxygen/commands.html +[2] http://quickgit.kde.org/?p=calligra.git&a=blob_plain&h=3e8fcab9dd3588c0228498af2795d3b714b73d42&f=krita/HACKING diff --git a/reindent.sh b/reindent.sh deleted file mode 100755 index 5d6708de..00000000 --- a/reindent.sh +++ /dev/null @@ -1,28 +0,0 @@ -#! /bin/sh - -WRKDIR=$(dirname $0) -SRCDIRS="$WRKDIR/src $WRKDIR/plugins $WRKDIR/renderer $WRKDIR/thumbnailer" - -if [ $# -gt 0 ] -then - FILES=$@ -else - FILES=$(find $SRCDIRS -type f -name \*.cpp -o -name \*.h) -fi - -astyle --indent=spaces=4 --brackets=linux \ - --indent-labels --unpad=paren \ - --pad=oper --convert-tabs \ - --indent-preprocessor \ - ${FILES} - -echo -n "Delete .orig files (y/N) ? " -read del - -if [ "x${del}" = "xy" ] -then - echo "removing .orig files" - find $SRCDIRS -iname "*.orig" -exec rm {} ";" -else - echo "Not deleting .orig files" -fi