profile: move axes to ProfileScene

Part of separating the static (for printing, export) and
dynamic (UI) parts of the profile. This is still quite messy
with many direct accesses from the ProfileWidget.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2021-06-28 20:29:46 +02:00 committed by Dirk Hohndel
parent c8b3ac0f99
commit db726862ae
7 changed files with 430 additions and 398 deletions

View file

@ -1,15 +1,38 @@
// SPDX-License-Identifier: GPL-2.0
// Displays the dive profile. Used by the interactive profile widget
// and the printing/exporting code.
// SPDX-License-Identifier: GPL-2.0
// Displays the dive profile. Used by the interactive profile widget
// and the printing/exporting code.
#ifndef PROFILESCENE_H
#define PROFILESCENE_H
#include <QGraphicsScene>
class DivePlotDataModel;
class DepthAxis;
class DiveCartesianAxis;
class PartialGasPressureAxis;
class TemperatureAxis;
class TimeAxis;
class ProfileScene : public QGraphicsScene {
public:
ProfileScene();
ProfileScene(double fontPrintScale);
~ProfileScene();
void updateAxes(); // Update axes according to preferences
bool isPointOutOfBoundaries(const QPointF &point) const;
int animSpeed;
private:
friend class ProfileWidget2; // For now, give the ProfileWidget full access to the objects on the scene
DivePlotDataModel *dataModel;
DepthAxis *profileYAxis;
PartialGasPressureAxis *gasYAxis;
TemperatureAxis *temperatureAxis;
TimeAxis *timeAxis;
DiveCartesianAxis *cylinderPressureAxis;
DiveCartesianAxis *heartBeatAxis;
DiveCartesianAxis *percentageAxis;
};
#endif