/*
* Copyright 2012 Canonical Ltd.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation; version 3.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see .
*
* Author: Florian Boucault
*/
#ifndef UBUNTU_COMPONENTS_UNITS_H
#define UBUNTU_COMPONENTS_UNITS_H
#include
#include
#include
class UCUnits : public QObject
{
Q_OBJECT
Q_PROPERTY(float gridUnit READ gridUnit WRITE setGridUnit NOTIFY gridUnitChanged)
public:
static UCUnits& instance() {
static UCUnits instance;
return instance;
}
explicit UCUnits(QObject *parent = 0);
Q_INVOKABLE float dp(float value);
Q_INVOKABLE float gu(float value);
QString resolveResource(const QUrl& url);
// getters
float gridUnit();
// setters
void setGridUnit(float gridUnit);
Q_SIGNALS:
void gridUnitChanged();
protected:
QString suffixForGridUnit(float gridUnit);
float gridUnitSuffixFromFileName(const QString &fileName);
private:
float m_devicePixelRatio;
float m_gridUnit;
};
#endif // UBUNTU_COMPONENTS_UNITS_H