0
0
mirror of https://github.com/fralx/LimeReport.git synced 2024-12-26 01:24:39 +03:00

Finish 1.4.54

This commit is contained in:
Arin Alexander 2017-12-07 19:53:56 +03:00
commit cc48fbe176
3 changed files with 26 additions and 39 deletions

View File

@ -62,7 +62,7 @@ RCC_DIR = $${ARCH_DIR}/$${BUILD_TYPE}/rcc
LIMEREPORT_VERSION_MAJOR = 1 LIMEREPORT_VERSION_MAJOR = 1
LIMEREPORT_VERSION_MINOR = 4 LIMEREPORT_VERSION_MINOR = 4
LIMEREPORT_VERSION_RELEASE = 52 LIMEREPORT_VERSION_RELEASE = 54
LIMEREPORT_VERSION = '\\"$${LIMEREPORT_VERSION_MAJOR}.$${LIMEREPORT_VERSION_MINOR}.$${LIMEREPORT_VERSION_RELEASE}\\"' LIMEREPORT_VERSION = '\\"$${LIMEREPORT_VERSION_MAJOR}.$${LIMEREPORT_VERSION_MINOR}.$${LIMEREPORT_VERSION_RELEASE}\\"'
DEFINES += LIMEREPORT_VERSION_STR=\"$${LIMEREPORT_VERSION}\" DEFINES += LIMEREPORT_VERSION_STR=\"$${LIMEREPORT_VERSION}\"

View File

@ -777,50 +777,39 @@ bool TextItem::canBeSplitted(int height) const
return height > m_firstLineSize; return height > m_firstLineSize;
} }
QString TextItem::getTextPart(int height, int skipHeight){ QString TextItem::extractText(QTextBlock& curBlock, int height){
int linesHeight = 0;
int curLine = 0; int curLine = 0;
// int textPos = 0; int linesHeight = 0;
QString resultText;
for (;curBlock != curBlock.document()->end() || curLine<=curBlock.lineCount(); curBlock = curBlock.next(), curLine = 0, resultText += '\n' ){
linesHeight+=curBlock.blockFormat().topMargin();
for (;curLine < curBlock.layout()->lineCount(); curLine++){
linesHeight += curBlock.layout()->lineAt(curLine).height() + lineSpacing();
if (height > 0 && linesHeight > (height-borderLineSize() * 2)) {goto loop_exit;}
resultText += curBlock.text().mid(curBlock.layout()->lineAt(curLine).textStart(),
curBlock.layout()->lineAt(curLine).textLength());
}
}
loop_exit: return resultText;
}
QString TextItem::getTextPart(int height, int skipHeight){
QString resultText = "";
TextPtr text = textDocument(); TextPtr text = textDocument();
text->size().height(); text->size().height();
QTextBlock curBlock = text->begin();
QTextCursor cursor(text.data()); QTextCursor cursor(text.data());
cursor.movePosition(QTextCursor::Start); cursor.movePosition(QTextCursor::Start);
QTextBlock curBlock = text->begin();
QString resultText = "";
if (skipHeight > 0){ if (skipHeight > 0){
for (;curBlock != text->end() || curLine<=curBlock.lineCount(); curBlock = curBlock.next(), curLine = 0){ resultText = extractText(curBlock, skipHeight);
linesHeight+=curBlock.blockFormat().topMargin(); cursor.movePosition(QTextCursor::Right, QTextCursor::MoveAnchor, resultText.length());
for (;curLine < curBlock.layout()->lineCount(); curLine++){
linesHeight += curBlock.layout()->lineAt(curLine).rect().height() + lineSpacing();
if (linesHeight > (skipHeight-(/*fakeMarginSize()*2+*/borderLineSize() * 2))) {goto loop_exit;}
cursor.movePosition(QTextCursor::Right, QTextCursor::MoveAnchor, curBlock.layout()->lineAt(curLine).textLength());
}
}
loop_exit: cursor.movePosition(QTextCursor::EndOfLine, QTextCursor::MoveAnchor);
} }
linesHeight = 0; resultText = extractText(curBlock, height);
cursor.movePosition(QTextCursor::Right, QTextCursor::KeepAnchor, resultText.length());
for (;curBlock != text->end() || curLine<curBlock.lineCount(); curBlock = curBlock.next(), curLine = 0, resultText += '\n')
{
linesHeight+=curBlock.blockFormat().topMargin();
for (; curLine < curBlock.layout()->lineCount(); curLine++){
// if (resultText == "") textPos = curBlock.layout()->lineAt(curLine).textStart();
linesHeight += curBlock.layout()->lineAt(curLine).height() + lineSpacing();
if ( (height>0) && (linesHeight>(height-(/*fakeMarginSize()*2+*/borderLineSize()*2))) ) {
linesHeight-=curBlock.layout()->lineAt(curLine).height();
goto loop_exit1;
}
// QString fragment = curBlock.text().mid(curBlock.layout()->lineAt(curLine).textStart(),
// curBlock.layout()->lineAt(curLine).textLength());
// resultText+=fragment;
cursor.movePosition(QTextCursor::Right, QTextCursor::KeepAnchor, curBlock.layout()->lineAt(curLine).textLength());
}
}
loop_exit1:;
cursor.movePosition(QTextCursor::EndOfLine, QTextCursor::KeepAnchor);
if (allowHTML()){ if (allowHTML()){
resultText = cursor.selection().toHtml(); resultText = cursor.selection().toHtml();
resultText.remove("<!--StartFragment-->"); resultText.remove("<!--StartFragment-->");
@ -829,10 +818,7 @@ QString TextItem::getTextPart(int height, int skipHeight){
resultText = cursor.selection().toPlainText(); resultText = cursor.selection().toPlainText();
} }
// resultText.chop(1); return resultText;
// QScopedPointer<HtmlContext> context(new HtmlContext(m_strText));
return resultText;//context->extendTextByTags(resultText,textPos);
} }
void TextItem::restoreLinksEvent() void TextItem::restoreLinksEvent()

View File

@ -181,7 +181,7 @@ private:
QString formatDateTime(const QDateTime &value); QString formatDateTime(const QDateTime &value);
QString formatNumber(const double value); QString formatNumber(const double value);
QString formatFieldValue(); QString formatFieldValue();
QString extractText(QTextBlock& curBlock, int height);
TextPtr textDocument() const; TextPtr textDocument() const;
private: private:
QString m_strText; QString m_strText;
@ -208,6 +208,7 @@ private:
TextItem* m_follower; TextItem* m_follower;
qreal m_textIndent; qreal m_textIndent;
Qt::LayoutDirection m_textLayoutDirection; Qt::LayoutDirection m_textLayoutDirection;
}; };
} }