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

TOC generation has been changed

This commit is contained in:
Arin Alexander
2017-08-31 02:53:34 +03:00
parent 2c50a9a791
commit 992c53e19a
21 changed files with 515 additions and 177 deletions

View File

@@ -339,7 +339,7 @@ void TextItem::updateLayout()
bool TextItem::isNeedExpandContent() const
{
QRegExp rx("$*\\{[^{]*\\}");
return content().contains(rx);
return content().contains(rx) || isContentBackedUp();
}
QString TextItem::replaceBR(QString text)
@@ -733,23 +733,35 @@ void TextItem::setAlignment(Qt::Alignment value)
void TextItem::expandContent(DataSourceManager* dataManager, RenderPass pass)
{
QString context=content();
ExpandType expandType = (allowHTML() && !allowHTMLInFields())?ReplaceHTMLSymbols:NoEscapeSymbols;
foreach (QString variableName, dataManager->variableNamesByRenderPass(SecondPass)) {
QRegExp rx(QString(Const::NAMED_VARIABLE_RX).arg(variableName));
if (context.contains(rx) && pass == FirstPass){
backupContent();
break;
}
}
ExpandType expandType = (allowHTML() && !allowHTMLInFields()) ? ReplaceHTMLSymbols : NoEscapeSymbols;
switch(pass){
case FirstPass:
if (!fillInSecondPass()){
context=expandUserVariables(context, pass, expandType, dataManager);
context=expandScripts(context, dataManager);
context=expandDataFields(context, expandType, dataManager);
} else {
context=expandDataFields(context, expandType, dataManager);
}
break;
case SecondPass:;
case SecondPass:
if (isContentBackedUp()) {
restoreContent();
context = content();
}
context=expandUserVariables(context, pass, expandType, dataManager);
context=expandScripts(context, dataManager);
if (fillInSecondPass())
context=expandDataFields(context, expandType, dataManager);
}
if (expandType == NoEscapeSymbols && !m_varValue.isNull() &&m_valueType!=Default) {
if (expandType == NoEscapeSymbols && !m_varValue.isNull() &&m_valueType != Default) {
setContent(formatFieldValue());
} else {
setContent(context);

View File

@@ -71,6 +71,7 @@ class TextItem : public LimeReport::ContentItemDesignIntf, IPageInit {
Q_PROPERTY(BrushStyle backgroundBrushStyle READ backgroundBrushStyle WRITE setBackgroundBrushStyle)
Q_PROPERTY(qreal textIndent READ textIndent WRITE setTextIndent)
Q_PROPERTY(Qt::LayoutDirection textLayoutDirection READ textLayoutDirection WRITE setTextLayoutDirection)
Q_PROPERTY(bool fillInSecondPass READ fillInSecondPass WRITE setFillInSecondPass)
public:
enum AutoWidth{NoneAutoWidth,MaxWordLength,MaxStringLength};