diff options
Diffstat (limited to 'qt-mobile')
-rw-r--r-- | qt-mobile/qmlprofile.cpp | 43 | ||||
-rw-r--r-- | qt-mobile/qmlprofile.h | 27 |
2 files changed, 70 insertions, 0 deletions
diff --git a/qt-mobile/qmlprofile.cpp b/qt-mobile/qmlprofile.cpp new file mode 100644 index 000000000..351b5b1ce --- /dev/null +++ b/qt-mobile/qmlprofile.cpp @@ -0,0 +1,43 @@ +#include "qmlprofile.h" +#include "profilewidget2.h" +#include "dive.h" + +QMLProfile::QMLProfile(QQuickItem *parent) : + QQuickPaintedItem(parent) +{ + profile = new ProfileWidget2(0); + profile->setProfileState(); + profile->setToolTipVisibile(false); +} + +void QMLProfile::paint(QPainter *painter) +{ + if (m_diveId.toInt() < 1) + return; + + struct dive *d; + d = get_dive_by_uniq_id(m_diveId.toInt()); + if (!d) + return; + + int old_animation_speed = prefs.animation_speed; + prefs.animation_speed = 0; // no animations while rendering the QGraphicsView + profile->plotDive(d); + // we need to show the widget so it gets populated, but then + // hide it right away so we get to draw it ourselves below + profile->show(); + profile->hide(); + profile->resize(this->width(), this->height()); + profile->render(painter, profile->geometry()); + prefs.animation_speed = old_animation_speed; +} + +QString QMLProfile::diveId() const +{ + return m_diveId; +} + +void QMLProfile::setDiveId(const QString &diveId) +{ + m_diveId = diveId; +} diff --git a/qt-mobile/qmlprofile.h b/qt-mobile/qmlprofile.h new file mode 100644 index 000000000..b5192913a --- /dev/null +++ b/qt-mobile/qmlprofile.h @@ -0,0 +1,27 @@ +#ifndef QMLPROFILE_H +#define QMLPROFILE_H + +#include <QQuickPaintedItem> + +class ProfileWidget2; + +class QMLProfile : public QQuickPaintedItem +{ + Q_OBJECT + Q_PROPERTY(QString diveId READ diveId WRITE setDiveId NOTIFY diveIdChanged) +public: + explicit QMLProfile(QQuickItem *parent = 0); + void paint(QPainter *painter); + + QString diveId() const; + void setDiveId(const QString &diveId); + +private: + QString m_diveId; + ProfileWidget2 *profile; +signals: + void rightAlignedChanged(); + void diveIdChanged(); +}; + +#endif // QMLPROFILE_H |