0
0
mirror of https://github.com/fralx/LimeReport.git synced 2025-09-23 08:29:07 +03:00

replaceCRwithBR property has been added

This commit is contained in:
Arin Alexander
2018-06-04 00:17:56 +03:00
parent 8fd072c65e
commit 21b9a94168
5 changed files with 50 additions and 14 deletions

View File

@@ -59,7 +59,8 @@ namespace LimeReport{
TextItem::TextItem(QObject *owner, QGraphicsItem *parent)
: ContentItemDesignIntf(xmlTag,owner,parent), m_angle(Angle0), m_trimValue(true), m_allowHTML(false),
m_allowHTMLInFields(false), m_followTo(""), m_follower(0), m_textIndent(0), m_textLayoutDirection(Qt::LayoutDirectionAuto)
m_allowHTMLInFields(false), m_replaceCarriageReturns(false), m_followTo(""), m_follower(0), m_textIndent(0),
m_textLayoutDirection(Qt::LayoutDirectionAuto)
{
PageItemDesignIntf* pageItem = dynamic_cast<PageItemDesignIntf*>(parent);
BaseDesignIntf* parentItem = dynamic_cast<BaseDesignIntf*>(parent);
@@ -289,8 +290,10 @@ void TextItem::setContent(const QString &value)
void TextItem::updateItemSize(DataSourceManager* dataManager, RenderPass pass, int maxHeight)
{
if (isNeedExpandContent())
expandContent(dataManager, pass);
if (!isLoading() && (autoHeight() || autoWidth() || hasFollower()) )
initTextSizes();
@@ -331,12 +334,12 @@ bool TextItem::isNeedExpandContent() const
return content().contains(rx);
}
QString TextItem::replaceBR(QString text)
QString TextItem::replaceBR(QString text) const
{
return text.replace("<br/>","\n");
}
QString TextItem::replaceReturns(QString text)
QString TextItem::replaceReturns(QString text) const
{
QString result = text.replace("\r\n","<br/>");
result = result.replace("\n","<br/>");
@@ -465,7 +468,11 @@ TextItem::TextPtr TextItem::textDocument() const
TextPtr text(new QTextDocument);
if (allowHTML())
text->setHtml(m_strText);
if (isReplaceCarriageReturns()){
text->setHtml(replaceReturns(m_strText));
} else {
text->setHtml(m_strText);
}
else
text->setPlainText(m_strText);
@@ -513,6 +520,21 @@ TextItem::TextPtr TextItem::textDocument() const
}
bool TextItem::isReplaceCarriageReturns() const
{
return m_replaceCarriageReturns;
}
void TextItem::setReplaceCarriageReturns(bool replaceCarriageReturns)
{
if (replaceCarriageReturns != m_replaceCarriageReturns){
m_replaceCarriageReturns = replaceCarriageReturns;
update();
notify("replaceCRwithBR",!replaceCarriageReturns, replaceCarriageReturns);
}
}
qreal TextItem::textIndent() const
{
return m_textIndent;

View File

@@ -72,6 +72,7 @@ class TextItem : public LimeReport::ContentItemDesignIntf, IPageInit {
Q_PROPERTY(qreal textIndent READ textIndent WRITE setTextIndent)
Q_PROPERTY(Qt::LayoutDirection textLayoutDirection READ textLayoutDirection WRITE setTextLayoutDirection)
Q_PROPERTY(bool watermark READ isWatermark WRITE setWatermark)
Q_PROPERTY(bool replaceCRwithBR READ isReplaceCarriageReturns WRITE setReplaceCarriageReturns)
public:
enum AutoWidth{NoneAutoWidth,MaxWordLength,MaxStringLength};
@@ -167,11 +168,14 @@ public:
void setWatermark(bool watermark);
bool isReplaceCarriageReturns() const;
void setReplaceCarriageReturns(bool isReplaceCarriageReturns);
protected:
void updateLayout();
bool isNeedExpandContent() const;
QString replaceBR(QString text);
QString replaceReturns(QString text);
QString replaceBR(QString text) const;
QString replaceReturns(QString text) const;
int fakeMarginSize() const;
QString getTextPart(int height, int skipHeight);
void restoreLinksEvent();
@@ -204,6 +208,7 @@ private:
int m_underlineLineSize;
bool m_allowHTML;
bool m_allowHTMLInFields;
bool m_replaceCarriageReturns;
QString m_format;
ValueType m_valueType;

View File

@@ -135,6 +135,7 @@ void QObjectPropertyModel::translatePropertyName()
tr("groupFieldName");
tr("keepGroupTogether");
tr("watermark");
tr("replaceCRwithBR");
}
void QObjectPropertyModel::clearObjectsList()