QML UI: scale profile in two stages

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@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Rick Walsh 2015-12-31 00:22:30 +11:00 committed by Dirk Hohndel
parent 2cce4ec3a4
commit 7f22984d18

View file

@ -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);
}