7#ifndef KISSPINBOXUNITMANAGER_H
8#define KISSPINBOXUNITMANAGER_H
12#include <QAbstractListModel>
14#include "kritawidgetutils_export.h"
31 static void clearUnitManagerBuilder();
79 static inline bool isUnitId(
int code) {
return (code == LENGTH || code == ANGLE || code ==
TIME); }
96 int getUnitDimensionType()
const;
97 QString getReferenceUnitSymbol()
const;
98 QString getApparentUnitSymbol()
const;
101 int getApparentUnitId()
const;
104 int getApparentUnitRecommendedDecimals()
const;
106 virtual QStringList getsUnitSymbolList(
bool withName =
false)
const;
108 qreal getReferenceValue(
double apparentValue)
const;
109 qreal getApparentValue(
double refValue)
const;
112 virtual qreal getConversionFactor(
int dim, QString symbol)
const;
114 virtual qreal getConversionConstant(
int dim, QString symbol)
const;
116 int rowCount(
const QModelIndex &parent = QModelIndex())
const override;
117 QVariant data(
const QModelIndex &index,
int role = Qt::DisplayRole)
const override;
132 void setApparentUnitFromSymbol(QString pSymbol);
133 void selectApparentUnitFromIndex(
int index);
144 void newUnitSymbolToUnitIndex(QString symbol);
147 virtual bool hasPercent(
int unitDim)
const;
150 static const QStringList documentRelativeLengthUnitSymbols;
151 static const QStringList documentRelativeTimeUnitSymbols;
153 void recomputeConversionFactor()
const;
154 void recomputeConversionConstant()
const;
157 void grantDocumentRelativeUnits();
Q_DECLARE_FLAGS(KisUpdaterContextSnapshotEx, KisUpdaterContextSnapshotExTag)
The KisSpinBoxUnitManagerBuilder class is the base class, used in the strategy pattern of KisSpinBoxU...
virtual KisSpinBoxUnitManager * buildUnitManager(QObject *parent)=0
virtual ~KisSpinBoxUnitManagerBuilder()
The KisSpinBoxUnitManagerFactory class is a factory that is used to build a default KisSpinBoxUnitMan...
static KisSpinBoxUnitManagerBuilder * builder
The KisSpinBoxUnitManager class is an abstract interface for the unitspinboxes classes to manage diff...
void unitDimensionChanged(int dimCode)
void conversionFactorChanged(qreal newConversionFactor, qreal oldConversionFactor) const
void conversionConstantChanged(qreal newConversionFactor, qreal oldConversionFactor) const
static bool isUnitId(int code)
void unitChanged(int index)
void unitChanged(QString symbol)