aboutsummaryrefslogtreecommitdiffstats
path: root/qt-mobile
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2015-12-25 16:53:57 -0800
committerGravatar Dirk Hohndel <dirk@hohndel.org>2015-12-26 09:03:33 -0800
commit07a0ef213993b1dd04ace8ff3d8720a499570764 (patch)
treea86ef2fe8f1df8d15372af331d6a33e8ffea5fab /qt-mobile
parent320ff2eba3dbc37821402b318a0704c1c2441888 (diff)
downloadsubsurface-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.cpp22
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);
}