From 07a0ef213993b1dd04ace8ff3d8720a499570764 Mon Sep 17 00:00:00 2001 From: Dirk Hohndel Date: Fri, 25 Dec 2015 16:53:57 -0800 Subject: QML-UI: attempt to improve profile scaling This still doesn't address all the issues, but appears to be a step forward. It also contains some debug output to better understand what's going on. Signed-off-by: Dirk Hohndel --- qt-mobile/qmlprofile.cpp | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) (limited to 'qt-mobile') diff --git a/qt-mobile/qmlprofile.cpp b/qt-mobile/qmlprofile.cpp index 67eb1328a..cb9575858 100644 --- a/qt-mobile/qmlprofile.cpp +++ b/qt-mobile/qmlprofile.cpp @@ -29,6 +29,8 @@ QString QMLProfile::diveId() const void QMLProfile::setDiveId(const QString &diveId) { + static bool firstRun = true; + static QTransform profileTransform; m_diveId = diveId; struct dive *d = get_dive_by_uniq_id(m_diveId.toInt()); if (m_diveId.toInt() < 1) @@ -36,11 +38,25 @@ void QMLProfile::setDiveId(const QString &diveId) if (!d) return; + qDebug() << "setDiveId called with pos/size" << x() << y() << width() << height(); // set the profile widget's geometry and scale the viewport so // the scene fills it, then plot the dive on that widget - m_profileWidget->setGeometry(QRect(x(), y(), width(), height())); - QTransform profileTransform; - profileTransform.scale(width() / 100, height() / 100); + if (firstRun) { + firstRun = false; + m_profileWidget->setGeometry(QRect(x(), y(), width(), height())); + profileTransform.scale(width() / 100, height() / 100); + } m_profileWidget->setTransform(profileTransform); + qDebug() << "effective transformation:" << + m_profileWidget->transform().m11() << + m_profileWidget->transform().m12() << + m_profileWidget->transform().m13() << + m_profileWidget->transform().m21() << + m_profileWidget->transform().m22() << + m_profileWidget->transform().m23() << + m_profileWidget->transform().m31() << + m_profileWidget->transform().m32() << + m_profileWidget->transform().m33(); + m_profileWidget->plotDive(d); } -- cgit v1.2.3-70-g09d2