0
0
mirror of https://github.com/fralx/LimeReport.git synced 2025-09-30 19:19:56 +03:00

Added support for formating numbers and dates by pattern.

This commit is contained in:
Josef Rokos
2016-07-26 16:01:14 +02:00
parent 5001738d76
commit 88ef131148
4 changed files with 115 additions and 7 deletions

View File

@@ -44,6 +44,7 @@ class TextItem : public LimeReport::ContentItemDesignIntf {
Q_OBJECT
Q_ENUMS(AutoWidth)
Q_ENUMS(AngleType)
Q_ENUMS(ValueType)
Q_PROPERTY(QString content READ content WRITE setContent)
Q_PROPERTY(int margin READ marginSize WRITE setMarginSize)
Q_PROPERTY(Qt::Alignment alignment READ alignment() WRITE setAlignment)
@@ -59,10 +60,13 @@ class TextItem : public LimeReport::ContentItemDesignIntf {
Q_PROPERTY(bool trimValue READ trimValue WRITE setTrimValue)
Q_PROPERTY(bool allowHTML READ allowHTML WRITE setAllowHTML)
Q_PROPERTY(bool allowHTMLInFields READ allowHTMLInFields WRITE setAllowHTMLInFields)
Q_PROPERTY(QString format READ format WRITE setFormat)
Q_PROPERTY(ValueType valueType READ valueType WRITE setValueType)
public:
enum AutoWidth{NoneAutoWidth,MaxWordLength,MaxStringLength};
enum AngleType{Angle0,Angle90,Angle180,Angle270,Angle45,Angle315};
enum ValueType{Default,DateTime,Double};
void Init();
TextItem(QObject* owner=0, QGraphicsItem* parent=0);
@@ -118,6 +122,12 @@ public:
bool allowHTMLInFields() const;
void setAllowHTMLInFields(bool allowHTMLInFields);
QString format() const;
void setFormat(const QString &format);
ValueType valueType() const;
void setValueType(const ValueType valueType);
protected:
void updateLayout();
bool isNeedExpandContent() const;
@@ -126,6 +136,9 @@ protected:
int fakeMarginSize();
private:
void initText();
QString formatDateTime(const QDateTime &value);
QString formatNumber(const double value);
QString formatFieldValue();
private:
QString m_strText;
@@ -140,6 +153,9 @@ private:
bool m_trimValue;
bool m_allowHTML;
bool m_allowHTMLInFields;
QString m_format;
ValueType m_valueType;
};
}