From 59232ca17237c67254038b8d2abdf13cf6701449 Mon Sep 17 00:00:00 2001 From: Grace Karanja Date: Fri, 17 Jul 2015 19:09:42 +0300 Subject: QML UI: Add QMLProfile class Add a C++ class to render the dive profile. The rendered image is then passed on to QML. Signed-off-by: Grace Karanja Signed-off-by: Dirk Hohndel --- qt-mobile/qmlprofile.cpp | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 qt-mobile/qmlprofile.cpp (limited to 'qt-mobile/qmlprofile.cpp') 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; +} -- cgit v1.2.3-70-g09d2