mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-30 22:20:21 +00:00
8046a05e95
Rendering resets the size, which now recalculates the axes. Therefore, plotDive() must be called. The callers were doing the opposite: call plotDive() first, then draw(). To make it easier for the callers, present a single interface that handles these subtleties. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
55 lines
1.3 KiB
C++
55 lines
1.3 KiB
C++
// SPDX-License-Identifier: GPL-2.0
|
|
#ifndef QMLPROFILE_H
|
|
#define QMLPROFILE_H
|
|
|
|
#include "core/subsurface-qt/divelistnotifier.h"
|
|
#include <QQuickPaintedItem>
|
|
#include <memory>
|
|
|
|
class ProfileScene;
|
|
|
|
class QMLProfile : public QQuickPaintedItem
|
|
{
|
|
Q_OBJECT
|
|
Q_PROPERTY(int diveId MEMBER m_diveId WRITE setDiveId)
|
|
Q_PROPERTY(qreal devicePixelRatio READ devicePixelRatio WRITE setDevicePixelRatio NOTIFY devicePixelRatioChanged)
|
|
Q_PROPERTY(qreal xOffset MEMBER m_xOffset WRITE setXOffset NOTIFY xOffsetChanged)
|
|
Q_PROPERTY(qreal yOffset MEMBER m_yOffset WRITE setYOffset NOTIFY yOffsetChanged)
|
|
|
|
public:
|
|
explicit QMLProfile(QQuickItem *parent = 0);
|
|
~QMLProfile();
|
|
|
|
void paint(QPainter *painter);
|
|
|
|
int diveId() const;
|
|
void setDiveId(int diveId);
|
|
qreal devicePixelRatio() const;
|
|
void setDevicePixelRatio(qreal dpr);
|
|
void setXOffset(qreal value);
|
|
void setYOffset(qreal value);
|
|
|
|
public slots:
|
|
void setMargin(int margin);
|
|
void screenChanged(QScreen *screen);
|
|
void triggerUpdate();
|
|
|
|
private:
|
|
int m_diveId;
|
|
qreal m_devicePixelRatio;
|
|
int m_margin;
|
|
qreal m_xOffset, m_yOffset;
|
|
std::unique_ptr<ProfileScene> m_profileWidget;
|
|
void createProfileView();
|
|
|
|
private slots:
|
|
void divesChanged(const QVector<dive *> &dives, DiveField);
|
|
|
|
signals:
|
|
void rightAlignedChanged();
|
|
void devicePixelRatioChanged();
|
|
void xOffsetChanged();
|
|
void yOffsetChanged();
|
|
};
|
|
|
|
#endif // QMLPROFILE_H
|