QMLProfile: correctly track the device pixel ratio

And set the font size accordingly.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Dirk Hohndel 2016-03-08 19:33:19 -08:00
parent 7f99d9e9c3
commit f798132862
2 changed files with 12 additions and 1 deletions

View file

@ -1,7 +1,9 @@
#include "qmlprofile.h" #include "qmlprofile.h"
#include "qmlmanager.h"
#include "profile-widget/profilewidget2.h" #include "profile-widget/profilewidget2.h"
#include "subsurface-core/dive.h" #include "subsurface-core/dive.h"
#include <QTransform> #include <QTransform>
#include <QScreen>
QMLProfile::QMLProfile(QQuickItem *parent) : QMLProfile::QMLProfile(QQuickItem *parent) :
QQuickPaintedItem(parent), QQuickPaintedItem(parent),
@ -13,7 +15,8 @@ QMLProfile::QMLProfile(QQuickItem *parent) :
m_profileWidget->setProfileState(); m_profileWidget->setProfileState();
m_profileWidget->setPrintMode(true); m_profileWidget->setPrintMode(true);
m_profileWidget->setFontPrintScale(0.8); m_profileWidget->setFontPrintScale(0.8);
//m_profileWidget->setGeometry(this->geometry()); connect(QMLManager::instance(), &QMLManager::sendScreenChanged, this, &QMLProfile::screenChanged);
setDevicePixelRatio(QMLManager::instance()->lastDevicePixelRatio());
} }
QMLProfile::~QMLProfile() QMLProfile::~QMLProfile()
@ -65,6 +68,12 @@ void QMLProfile::setDevicePixelRatio(qreal dpr)
{ {
if (dpr != m_devicePixelRatio) { if (dpr != m_devicePixelRatio) {
m_devicePixelRatio = dpr; m_devicePixelRatio = dpr;
m_profileWidget->setFontPrintScale(0.8 * dpr);
emit devicePixelRatioChanged(); emit devicePixelRatioChanged();
} }
} }
void QMLProfile::screenChanged(QScreen *screen)
{
setDevicePixelRatio(screen->devicePixelRatio());
}

View file

@ -24,11 +24,13 @@ public:
public slots: public slots:
void setMargin(int margin); void setMargin(int margin);
void screenChanged(QScreen *screen);
private: private:
QString m_diveId; QString m_diveId;
qreal m_devicePixelRatio; qreal m_devicePixelRatio;
int m_margin; int m_margin;
ProfileWidget2 *m_profileWidget; ProfileWidget2 *m_profileWidget;
signals: signals:
void rightAlignedChanged(); void rightAlignedChanged();
void diveIdChanged(); void diveIdChanged();