diff --git a/common.pri b/common.pri index cef5fe8..2f71265 100644 --- a/common.pri +++ b/common.pri @@ -105,7 +105,7 @@ RCC_DIR = $${ARCH_DIR}/$${BUILD_TYPE}/rcc LIMEREPORT_VERSION_MAJOR = 1 LIMEREPORT_VERSION_MINOR = 4 -LIMEREPORT_VERSION_RELEASE = 78 +LIMEREPORT_VERSION_RELEASE = 80 LIMEREPORT_VERSION = '$${LIMEREPORT_VERSION_MAJOR}.$${LIMEREPORT_VERSION_MINOR}.$${LIMEREPORT_VERSION_RELEASE}' DEFINES *= LIMEREPORT_VERSION_STR=\\\"$${LIMEREPORT_VERSION}\\\" diff --git a/limereport/items/lrtextitem.cpp b/limereport/items/lrtextitem.cpp index a022147..0745e0f 100644 --- a/limereport/items/lrtextitem.cpp +++ b/limereport/items/lrtextitem.cpp @@ -61,7 +61,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(parent); BaseDesignIntf* parentItem = dynamic_cast(parent); @@ -308,8 +309,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(); @@ -350,12 +353,12 @@ bool TextItem::isNeedExpandContent() const return content().contains(rx) || isContentBackedUp(); } -QString TextItem::replaceBR(QString text) +QString TextItem::replaceBR(QString text) const { return text.replace("
","\n"); } -QString TextItem::replaceReturns(QString text) +QString TextItem::replaceReturns(QString text) const { QString result = text.replace("\r\n","
"); result = result.replace("\n","
"); @@ -484,7 +487,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); @@ -531,6 +538,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; diff --git a/limereport/items/lrtextitem.h b/limereport/items/lrtextitem.h index 778bfb7..3eb06e2 100644 --- a/limereport/items/lrtextitem.h +++ b/limereport/items/lrtextitem.h @@ -73,6 +73,7 @@ class TextItem : public LimeReport::ContentItemDesignIntf, IPageInit { Q_PROPERTY(Qt::LayoutDirection textLayoutDirection READ textLayoutDirection WRITE setTextLayoutDirection) Q_PROPERTY(bool fillInSecondPass READ fillInSecondPass WRITE setFillInSecondPass) Q_PROPERTY(bool watermark READ isWatermark WRITE setWatermark) + Q_PROPERTY(bool replaceCRwithBR READ isReplaceCarriageReturns WRITE setReplaceCarriageReturns) public: enum AutoWidth{NoneAutoWidth,MaxWordLength,MaxStringLength}; @@ -168,11 +169,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(); @@ -205,6 +209,7 @@ private: int m_underlineLineSize; bool m_allowHTML; bool m_allowHTMLInFields; + bool m_replaceCarriageReturns; QString m_format; ValueType m_valueType; diff --git a/limereport/objectinspector/lrobjectitemmodel.cpp b/limereport/objectinspector/lrobjectitemmodel.cpp index b5c8712..8a1d8a7 100644 --- a/limereport/objectinspector/lrobjectitemmodel.cpp +++ b/limereport/objectinspector/lrobjectitemmodel.cpp @@ -151,6 +151,7 @@ void QObjectPropertyModel::translatePropertyName() tr("keepTopSpace"); tr("printable"); tr("variable"); + tr("replaceCRwithBR"); } void QObjectPropertyModel::clearObjectsList() diff --git a/translations/limereport_ru.ts b/translations/limereport_ru.ts index e827173..6f0aa6b 100644 --- a/translations/limereport_ru.ts +++ b/translations/limereport_ru.ts @@ -1803,7 +1803,7 @@ p, li { white-space: pre-wrap; } watermark - водяной знак + Водяной знак keepTopSpace @@ -1817,6 +1817,10 @@ p, li { white-space: pre-wrap; } variable Переменная + + replaceCRwithBR + Заменять CR на BR + LimeReport::RectMMPropItem @@ -2474,6 +2478,10 @@ This preview is no longer valid. datasourceName Имя источника данных + + Seconds + Секунды + LimeReport::SettingDialog