profile: reimplement DivePercentageItem

The tissue percentages were realized as 16 independent polygons.
That didn't work at all with the new absolute scaling.

Reimplement the item and blast it onto a pixmap. Not only is
this artifact-free, it also should (hopefully) be quite a bit
more efficient than painting numerous lines.

In contrast to the old code, this does access the plot_info
structure directly instead of using the model. Not so much
for performance reason, but rather to make things more robust:
We have a strongly typed language. Why would we shoehorn data
through the weakly typed QVariant and mess with wierd
index-arithmetics. Makes no sense to me. Qt-model have to
be used for interfacing with Qt. They are terrible for
intra-application data transfer.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2021-08-29 22:13:26 +02:00 committed by Dirk Hohndel
parent 24cf6709e3
commit 505e4e47eb
10 changed files with 177 additions and 89 deletions

View file

@ -10,6 +10,8 @@ set(SUBSURFACE_PROFILE_LIB_SRCS
divelineitem.h
divepixmapitem.cpp
divepixmapitem.h
divepercentageitem.cpp
divepercentageitem.h
diveprofileitem.cpp
diveprofileitem.h
diverectitem.cpp