mirror of
https://github.com/subsurface/subsurface.git
synced 2025-01-31 23:43:24 +00:00
e844b8dcad
The current way of handling the "print scale factor" is complex: The text fields are added and later resized via signals. Things could be simplified by just redoing the chart when changing the scale factor. Moreover, in the future we will want to adapt the size of the axes depending on the size of the texts. As a first step, factor out the creation of the profile-widget. This can then be used to recreate the profile when changing the scale factor. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
53 lines
1.3 KiB
C++
53 lines
1.3 KiB
C++
// SPDX-License-Identifier: GPL-2.0
|
|
#ifndef QMLPROFILE_H
|
|
#define QMLPROFILE_H
|
|
|
|
#include "profilewidget2.h"
|
|
#include "core/subsurface-qt/divelistnotifier.h"
|
|
#include <QQuickPaintedItem>
|
|
|
|
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);
|
|
|
|
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;
|
|
QScopedPointer<ProfileWidget2> m_profileWidget;
|
|
void updateProfile();
|
|
void createProfileView();
|
|
|
|
private slots:
|
|
void divesChanged(const QVector<dive *> &dives, DiveField);
|
|
|
|
signals:
|
|
void rightAlignedChanged();
|
|
void devicePixelRatioChanged();
|
|
void xOffsetChanged();
|
|
void yOffsetChanged();
|
|
};
|
|
|
|
#endif // QMLPROFILE_H
|