From ea574b6b11d18670779bab3154d41a09cb95460d Mon Sep 17 00:00:00 2001 From: Grace Karanja Date: Sat, 25 Jul 2015 19:10:51 +0300 Subject: QML UI: Show profile on Android This is a better way for showing the profile. The show() and hide() statements are replaced by a QTransform statement. Signed-off-by: Grace Karanja --- qt-mobile/qmlprofile.cpp | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) (limited to 'qt-mobile') diff --git a/qt-mobile/qmlprofile.cpp b/qt-mobile/qmlprofile.cpp index 351b5b1ce..9e30cc018 100644 --- a/qt-mobile/qmlprofile.cpp +++ b/qt-mobile/qmlprofile.cpp @@ -1,13 +1,11 @@ #include "qmlprofile.h" #include "profilewidget2.h" #include "dive.h" +#include QMLProfile::QMLProfile(QQuickItem *parent) : QQuickPaintedItem(parent) { - profile = new ProfileWidget2(0); - profile->setProfileState(); - profile->setToolTipVisibile(false); } void QMLProfile::paint(QPainter *painter) @@ -20,16 +18,21 @@ void QMLProfile::paint(QPainter *painter) if (!d) return; + + profile = new ProfileWidget2(0); + profile->setProfileState(); + profile->setToolTipVisibile(false); + 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()); + QTransform profileTransform; + profileTransform.scale((this->width() / profile->sceneRect().width()) - 1, (this->height()/profile->sceneRect().height()) - 1); + profile->setTransform(profileTransform); + profile->render(painter); prefs.animation_speed = old_animation_speed; + + profile->deleteLater(); } QString QMLProfile::diveId() const -- cgit v1.2.3-70-g09d2