Coding Style ============ See http://korganizer.kde.org/develop/hacking.html for an HTML version. Formatting ---------- - No Tabs. - Indent with 2 spaces. - A line must not have more than 80 chars. - Put Spaces between brackets and arguments of functions. - For if, else, while and similar statements put the brackets on the same line as the statement. - Function and class definitions have their brackets on separate lines. Example: void MyClass::myFunction() { if ( blah == fasel ) { blubbVariable = arglValue; } else { blubbVariable = oerxValue; } } Header Formatting ----------------- - General formatting rules apply. - Access modifiers are indented. - Put curly brackets of class definition on its own line. - Double inclusion protection defines are all upper case letters and are composed of the namespace (if available), the classname and a H suffix separated by underscores. - Inside a namespace there is no indentation. Example: #ifndef XKJ_MYCLASS_H #define XKJ_MYCLASS_H namespace XKJ { class MyClass { public: MyClass(); private: int mMyInt; }; } #endif API docs -------- - Each public function must have a Doxygen compatible comment in the header - Use C-style comments without additional asterisks - Indent correctly. - Comments should be grammatically correct, e.g. sentences start with uppercase letters and end with a full stop. - Be concise. Example: /** This function makes tea. @param cups number of cups. @result tea */ Tea makeTea( int cups ); Class and File Names -------------------- - Put classes in files, which have the same name as the class, but only lower-case letters. - Designer-generated files should have a name classname_base.ui and shoul contain a class called ClassnameBase. - Classes inheriting from designer-generated classes have the same name as the generated class, but without the Base suffix. Class and Variable Names ------------------------ - For class, variable, function names seperate multiple words by upper-casing the words precedeed by other words. - Class names start with an upper-case letter. - Function names start with a lower-case letter. - Variable names start with a lower-case letter. - Member variables of a class start with "m" followed by an upper-case letter.