Since struct divecomputer is now fully C++ (i.e. cleans up
after itself), we can simply turn the list of divecomputers
into an std::vector<>. This makes the code quite a bit simpler,
because the first divecomputer was actually a subobject.
Yes, this makes the common case of a single divecomputer a
little bit less efficient, but it really shouldn't matter.
If it does, we can still write a special std::vector<>-
like container that keeps the first element inline.
This change makes pointers-to-divecomputers not stable.
So always access the divecomputer via its index. As
far as I can tell, most of the code already does this.
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Q_FOREACH and foreach are anachronisms.
Range based for may cause a performance regression: it can
lead to a copy of shared containers (one reason why Qt's
COW containers are broken). However, as long as there is no
user noticeable delay, there is no point in analyzing each case.
And also no point in slapping an 'asConst' on every container
that is looped over.
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
When a dive has both real dive computers as well as at
least a planned version (which is just another dive
computer with a special name), only use the data from
real dive computers for aggregate values like maxdepth,
dive time, average depth etc in order not to have
imagined data on the dive list, statistics etc.
Macro-magic-provided-by: Dirk Hohndel <dirk@hohndel.org>
Signed-off-by: Robert C. Helling <helling@atdotde.de>
The use of ForEachMacros is working as expected when
used with clang-format version 3.5.0-10.
Also add ConstructorInitializerIndentWidth: 8, which
slightly helps with ctor style, but still does not
enforce the full subsurface ctor guidelines.
Signed-off-by: K. Heller <pestophagous@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
No changes were made to the values of the entries.
Sorting makes it easier for a clang-format n00b to
compare each setting to its documentation on the
http://clang.llvm.org/docs/ClangFormatStyleOptions.html
web page.
Signed-off-by: K. Heller <pestophagous@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This is still not (and likely will never be) intended to just be blindly
run and mechanically applied to all files. It tries to implement our rules
but it is not perfect and more importantly, we have parts of the code
where we intentionally break our rules for various reasons of readability
in that particular situation.
But running this against the sources files you touch often will point out
things that are wrong and should be fixed.
This fixes the indentation for continuation lines and the handling of the
for each style loops (clang 3.5 should have this built in - I'll play with
the current development version of this later).
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This hasn't been tested enought, but it seems to get really close.
It assumes that clang-format is in your patch.
Run
perl scripys/whitespace.pl FILENAME
and you'll get a diff of what it things is wrong with that file.
If you like what you see, simply pipe the output into patch -p0
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>