subsurface/backend-shared
Berthold Stoeger e7907c494f statistics: convert chart to QQuickItem
It turns out that the wrong base class was used for the chart.
QQuickWidget can only be used on desktop, not in a mobile UI.

Therefore, turn this into a QQuickItem and move the container
QQuickWidget into desktop-only code.

Currently, this code is insane: The chart is rendered onto a
QGraphicsScene (as it was before), which is then rendered into
a QImage, which is transformed into a QSGTexture, which is then
projected onto the device. This is performed on every mouse
move event, since these events in general change the position
of the info-box.

The plan is to slowly convert elements such as the info-box into
QQuickItems. Browsing the QtQuick documentation, this will
not be much fun.

Also note that the rendering currently tears, flickers and has
antialiasing artifacts, most likely owing to integer (QImage)
to floating point (QGraphicsScene, QQuickItem) conversion
problems. The data flow is
QGraphicsScene (float) -> QImage (int) -> QQuickItem (float).

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2021-01-10 15:16:52 -08:00
..
CMakeLists.txt ui: create a RoundRectItem class 2021-01-03 13:56:05 -08:00
exportfuncs.cpp cleanup: remove pref.h include in dive.h 2020-10-25 13:59:52 -07:00
exportfuncs.h Cleanup: remove const bool parameters and return types 2020-02-09 12:13:18 -08:00
plannershared.cpp Make MND display depend on O2 narcotic preference 2020-07-11 10:37:49 -07:00
plannershared.h Cleanup: rename plannerShared to PlannerShared 2020-02-04 02:17:52 +01:00
README
roundrectitem.cpp statistics: convert chart to QQuickItem 2021-01-10 15:16:52 -08:00
roundrectitem.h statistics: convert chart to QQuickItem 2021-01-10 15:16:52 -08:00

This directory contains shared UI backend code shared between
the desktop version and the mobile version.

The backend code sits between the actual functionality, which
are implemented in core and qt-models, and the UI/QML which
are implemented in desktop-widgets and mobile-widgets.

The idea of backend is not to duplicate code, and at the same time
limit the UI and QML to only deal with real GUI.

The first implementations for backend are "export" and "diveplanner".