diff options
author | Dirk Hohndel <dirk@hohndel.org> | 2015-12-25 16:53:57 -0800 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2015-12-26 09:03:33 -0800 |
commit | 07a0ef213993b1dd04ace8ff3d8720a499570764 (patch) | |
tree | a86ef2fe8f1df8d15372af331d6a33e8ffea5fab /qt-mobile | |
parent | 320ff2eba3dbc37821402b318a0704c1c2441888 (diff) | |
download | subsurface-07a0ef213993b1dd04ace8ff3d8720a499570764.tar.gz |
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 <dirk@hohndel.org>
Diffstat (limited to 'qt-mobile')
-rw-r--r-- | qt-mobile/qmlprofile.cpp | 22 |
1 files changed, 19 insertions, 3 deletions
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); } |