forked from nemomobile/contactsd
-
Notifications
You must be signed in to change notification settings - Fork 0
/
HACKING
73 lines (61 loc) · 2.96 KB
/
HACKING
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
Contents:
- Version control
- Coding style...
> ...for C++ code
- Submitting patches
===============================================================================
Version control
===============================================================================
The current development version of contactsd is available from the
'master' branch in the git repository:
<[email protected]:qtcontacts-tracker/contactsd.git>
===============================================================================
Coding style
===============================================================================
For C++ code:
-------------
contactsd uses the standard Qt4 coding style for the Qt/C++ code, as also
followed by eg. KDELibs. The coding style is described in more detail in the
KDE TechBase at <http://techbase.kde.org/Policies/Kdelibs_Coding_Style>; in
short, it amounts to:
* 4 spaces for indentation (no tabs, anywhere)
* javaCase for variables and functions (incl. members), FullCamelCase for types
* No abbreviations, except for 100% standard ones like regex, refcount, etc.
* Type &var and Type *var, not Type& var and Type* var for pointers and refs
* Use only one empty line to separate both groups of related statements AND
function & class bodies
* Use a space after each keyword but none after opening parens (if (true))
* No spaces between the function name and the parens for the parameter list
* Surround binary operators with spaces, but don't put spaces between a unary
operator and their operand
* For function bodies, put the opening curly brace on its own line. For
everything else, put the opening curly brace in the same line as the
statement (if, for, etc.) associated with it.
* Use curly braces even for single-line bodies of conditional statements and
loops
* Prefer static_cast, const_cast etc over C-style casts
* Wrap long lines to 100 characters at most
* Use foreach, emit instead of Q_FOREACH/Q_EMIT
* Use Q_SLOTS, Q_SIGNALS instead of slots, signals
* Don't write long (> ~5 lines) inline methods unless they are needed because of
eg. template
* Don't use references to QObjects
* Destroy transient objects such as method call watchers as soon as possible
rather than accumulating them to long-lived parent objects
* Documentation should be in the source file instead of the header file
* Methods should be ordered as follows:
public
public Q_SLOTS
Q_SIGNALS
protected
protected Q_SLOTS
private Q_SLOTS
private
* friend class xxx definitions must be placed right below the private keyword.
===============================================================================
Submitting patches
===============================================================================
Patches should be made as (preferably) gitorious merge requests or (last resort)
-uNr diffs against upstream git master, as found at:
<[email protected]:qtcontacts-tracker/contactsd.git>
Patches can be announced by creating gitorious merge requests.