[PATCH] QML UI: scale profile in two stages

Rick Walsh rickmwalsh at gmail.com
Wed Dec 30 05:22:30 PST 2015


Scale the QML profile in two stages.  Firstly, scale to fit.  Secondly, scale
again to 95% to create a margin around the profile.

The previous method scales to fit a create a margin in one step.  It appears
more elegant, and the margin is calculated more rationally.  Unfortunately on
some devices, including mine, the resulting profile is cropped for no obvious
reason.

Signed-off-by: Rick Walsh <rickmwalsh at gmail.com>
---

I really do not know why the current method clips the displayed profile.  This way works, at least on my device.

This commit effectively reverts 7e2898d (QML UI: scale profile to allow for some visible separation), and adds the second scale call to create the margin.

If this commit is taken, ef653b4 (QML UI: obtain a reasonable margin from QML) could be reverted as the margin isn't used anymore.  On the other hand, the calculated margin could be useful.

 qt-mobile/qmlprofile.cpp | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/qt-mobile/qmlprofile.cpp b/qt-mobile/qmlprofile.cpp
index d428364..ee0eea7 100644
--- a/qt-mobile/qmlprofile.cpp
+++ b/qt-mobile/qmlprofile.cpp
@@ -51,10 +51,8 @@ void QMLProfile::setDiveId(const QString &diveId)
 	// the scene fills it, then plot the dive on that widget
 	if (firstRun) {
 		firstRun = false;
-		double w = contentsBoundingRect().width();
-		double h = contentsBoundingRect().height();
-		double m = m_margin;
-		profileTransform.scale((w - 2 * m) / 100, (h - 2 * m) / 100);
+		m_profileWidget->setGeometry(QRect(x(), y(), width(), height()));
+		profileTransform.scale(width() / 100, height() / 100);
 	}
 	m_profileWidget->setTransform(profileTransform);
 	qDebug() << "effective transformation:" <<
@@ -69,4 +67,6 @@ void QMLProfile::setDiveId(const QString &diveId)
 		    m_profileWidget->transform().m33();
 
 	m_profileWidget->plotDive(d);
+	// scale the profile to create a margin
+	m_profileWidget->scale(0.95, 0.95);
 }
-- 
2.5.0



More information about the subsurface mailing list