Changes: Set individual timeouts for unit tests
[qtcontacts-tracker:hasselmms-qtcontacts-tracker.git] / HACKING
1 * Include module header first to make sure it is self-contained,
2   e.g. foo.cpp should have foo.h has first include directive.
3
4 * Field names are prefixed with "m_", e.g. "m_fooBar".
5   Only exception is the private implementation field, which is called "d".
6
7 * Private implementation class use the "Data" suffix, e.g. "FooBarData".
8
9 * Use implicit sharing carefully, use QExplicitlySharedDataPointer
10   for the private implementation pointer if in doubt.
11
12 * Avoid importing namespaces in header files.
13
14 * Only include a minimal set of other headers in header files.
15   Use forward declarations when possible.
16
17 * Use assignment operator to initialize variables when ever possible
18   for better readability and more importantly to get warned when
19   accidentally using an explicit constructor.
20
21 * No commits of "#if 0" code please. If the code is obsolete, just drop it:
22   We got version control. If an unit test is not proper yet, please use the
23   QSKIP() facility which does such a better job in documenting missing
24   features than "#if 0". If you still feel like adding an "#if 0" block,
25   please add a comment why that block is disabled, and call qctWarn() with
26   a good message describing the problem.
27
28 * Only call deleteLater() when being absolutely certain that the object
29   won't be dereferenced anymore. This method often is seen as way to hint
30   Qt that an object can be safely deleted after the current function is
31   left. Unfortunately that's only half true for single threaded environments.
32   That assumption is entirely wrong for threaded environments like this
33   project. Any spinning of the object thread's event loop will delete
34   the object instantly. In single threaded environments you have some
35   chance to avoid this problem by strictly avoiding nested event loops,
36   which is a good idea anyway, but in threaded code your are out of control.